diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8e41fd6e3..6162cb03a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -263,6 +263,16 @@ message(STATUS "StoRM - Using Boost ${Boost_VERSION} (lib ${Boost_LIB_VERSION})"
 message (STATUS "StoRM - Including ExprTk")
 include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/exprtk")
 
+#############################################################
+##
+##	ModernJSON
+##
+#############################################################
+
+#use the shipped version of modernjson
+message (STATUS "StoRM - Including ModernJSON")
+include_directories("${PROJECT_SOURCE_DIR}/resources/3rdparty/modernjson/src/")
+
 #############################################################
 ##
 ##	Z3 (optional)
diff --git a/examples/jani-examples/beb.jani b/examples/jani-examples/beb.jani
new file mode 100755
index 000000000..df2d43c66
--- /dev/null
+++ b/examples/jani-examples/beb.jani
@@ -0,0 +1,2604 @@
+{
+	"jani-version": 1,
+	"name": "modelName",
+	"type": "mdp",
+	"actions": [
+		{
+			"name": "tick"
+		},
+		{
+			"name": "tack"
+		},
+		{
+			"name": "tock"
+		}
+	],
+	"variables": [
+		{
+			"name": "cr",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 2
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "line_seized",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "gave_up",
+			"type": "bool",
+			"initial-value": false
+		}
+	],
+	"properties": [
+		{
+			"name": "LineSeized",
+			"reach": "line_seized",
+			"type": "probability-max-query"
+		},
+		{
+			"name": "GaveUp",
+			"reach": "gave_up",
+			"type": "probability-max-query"
+		}
+	],
+	"automata": [
+		{
+			"name": "Clock",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1"
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tack",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2"
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "cr",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "tock",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Host",
+			"variables": [
+				{
+					"name": "na",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 3
+					},
+					"initial-value": 0
+				},
+				{
+					"name": "ev",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 4
+					},
+					"initial-value": 2
+				},
+				{
+					"name": "wt",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 4
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				},
+				{
+					"name": "l_4"
+				},
+				{
+					"name": "l_5"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": {
+						"op": ">",
+						"args": [
+							"wt",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "wt",
+									"value": {
+										"op": "-",
+										"args": [
+											"wt",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"wt",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "cr",
+									"value": {
+										"op": "min",
+										"args": [
+											2,
+											{
+												"op": "+",
+												"args": [
+													"cr",
+													1
+												]
+											}
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tack",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4"
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "tock",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "=",
+						"args": [
+							"cr",
+							1
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "line_seized",
+									"value": true
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "≥",
+								"args": [
+									"na",
+									3
+								]
+							},
+							{
+								"op": "≠",
+								"args": [
+									"cr",
+									1
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "gave_up",
+									"value": true
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									1
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									2
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 2
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									3
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 2
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 3
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Host_1",
+			"variables": [
+				{
+					"name": "na",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 3
+					},
+					"initial-value": 0
+				},
+				{
+					"name": "ev",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 4
+					},
+					"initial-value": 2
+				},
+				{
+					"name": "wt",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 4
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				},
+				{
+					"name": "l_4"
+				},
+				{
+					"name": "l_5"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": {
+						"op": ">",
+						"args": [
+							"wt",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "wt",
+									"value": {
+										"op": "-",
+										"args": [
+											"wt",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"wt",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "cr",
+									"value": {
+										"op": "min",
+										"args": [
+											2,
+											{
+												"op": "+",
+												"args": [
+													"cr",
+													1
+												]
+											}
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tack",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4"
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "tock",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "=",
+						"args": [
+							"cr",
+							1
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "line_seized",
+									"value": true
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "≥",
+								"args": [
+									"na",
+									3
+								]
+							},
+							{
+								"op": "≠",
+								"args": [
+									"cr",
+									1
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "gave_up",
+									"value": true
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									1
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									2
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 2
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									3
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 2
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 3
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Host_2",
+			"variables": [
+				{
+					"name": "na",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 3
+					},
+					"initial-value": 0
+				},
+				{
+					"name": "ev",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 4
+					},
+					"initial-value": 2
+				},
+				{
+					"name": "wt",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 4
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				},
+				{
+					"name": "l_4"
+				},
+				{
+					"name": "l_5"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": {
+						"op": ">",
+						"args": [
+							"wt",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "wt",
+									"value": {
+										"op": "-",
+										"args": [
+											"wt",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"wt",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "cr",
+									"value": {
+										"op": "min",
+										"args": [
+											2,
+											{
+												"op": "+",
+												"args": [
+													"cr",
+													1
+												]
+											}
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tack",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4"
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "tock",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "=",
+						"args": [
+							"cr",
+							1
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "line_seized",
+									"value": true
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "≥",
+								"args": [
+									"na",
+									3
+								]
+							},
+							{
+								"op": "≠",
+								"args": [
+									"cr",
+									1
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "gave_up",
+									"value": true
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									1
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									2
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									3
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 2
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"na",
+											3
+										]
+									},
+									{
+										"op": "≠",
+										"args": [
+											"cr",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									{
+										"op": "max",
+										"args": [
+											0,
+											{
+												"op": "-",
+												"args": [
+													"ev",
+													1
+												]
+											}
+										]
+									},
+									3
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 0
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 1
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 2
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									4
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "na",
+									"value": {
+										"op": "+",
+										"args": [
+											"na",
+											1
+										]
+									}
+								},
+								{
+									"ref": "wt",
+									"value": 3
+								},
+								{
+									"ref": "ev",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "*",
+												"args": [
+													2,
+													"ev"
+												]
+											},
+											4
+										]
+									}
+								}
+							]
+						}
+					]
+				}
+			]
+		}
+	],
+	"system": {
+		"composition": "parallel",
+		"elements": [
+			{
+				"composition": "parallel",
+				"elements": [
+					{
+						"composition": "parallel",
+						"elements": [
+							"Clock",
+							"Host"
+						],
+						"alphabet": [
+							"tick",
+							"tack",
+							"tock"
+						]
+					},
+					"Host_1"
+				],
+				"alphabet": [
+					"tick",
+					"tack",
+					"tock"
+				]
+			},
+			"Host_2"
+		],
+		"alphabet": [
+			"tick",
+			"tack",
+			"tock"
+		]
+	}
+}
\ No newline at end of file
diff --git a/examples/jani-examples/beb.jani.txt b/examples/jani-examples/beb.jani.txt
new file mode 100755
index 000000000..ca4a540d1
--- /dev/null
+++ b/examples/jani-examples/beb.jani.txt
@@ -0,0 +1,27 @@
+Peak memory usage: 38 MB
+Analysis results for beb.jani
+
++ State space exploration
+  States:      4528
+  Transitions: 4874
+  Branches:    6899
+  Time:        0.0 s
+  Rate:        92408 states/s
+
++ LineSeized
+  Probability: 0.9166259765625
+  Time:        0.1 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  8
+    Time:        0.0 s
+
++ GaveUp
+  Probability: 0.0833740234375
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  9
+    Time:        0.0 s
diff --git a/examples/jani-examples/beb.modest b/examples/jani-examples/beb.modest
new file mode 100755
index 000000000..44f06b30e
--- /dev/null
+++ b/examples/jani-examples/beb.modest
@@ -0,0 +1,64 @@
+// Modest MDP model of the bounded exponential backoff procedure (BEB)
+// [BFHH11]
+action tick, tack, tock;
+
+const int K = 4; // maximum value for backoff
+const int N = 3; // number of tries before giving up
+const int H = 3; // number of hosts (must correspond to the number of Host() instantiations in the global composition)
+
+int(0..2) cr; // count how many hosts attempt to seize the line in a slot (zero, one, many)
+bool line_seized;
+bool gave_up;
+
+property LineSeized = Pmax(<> line_seized); // some host managed to seize the line before any other gave up
+property GaveUp = Pmax(<> gave_up); // some host gave up before any other managed to seize the line (does not work with POR)
+
+process Clock()
+{
+	tick; tack; tau {= cr = 0 =}; tock; Clock()
+}
+
+process Host()
+{
+	int(0..N) na;     // nr_attempts 0..N
+	int(0..K) ev = 2; // exp_val 0..K
+	int(0..K) wt;     // slots_to_wait 0..K
+
+	do
+	{
+		if(wt > 0)
+		{
+			// wait this slot
+			tick {= wt-- =}
+		}
+		else
+		{
+			tau {= cr = min(2, cr + 1) =}; // attempt to seize the line
+			tick;
+			if(cr == 1)
+			{
+				// someone managed to seize the line
+				tau {= line_seized = true =}; stop
+			}
+			else if(na >= N)
+			{
+				// maximum number of attempts exceeded
+				tau {= gave_up = true =}; stop
+			}
+			else
+			{
+				// backoff
+				tau {= na++, wt = DiscreteUniform(0, max(0, ev - 1)), ev = min(2 * ev, K) =} 
+			}
+		};
+		tack; tock
+	}
+}
+
+par
+{
+::	Clock()
+::	Host()
+::	Host()
+::	Host()
+}
diff --git a/examples/jani-examples/beb.modest.txt b/examples/jani-examples/beb.modest.txt
new file mode 100755
index 000000000..cbaee0f3d
--- /dev/null
+++ b/examples/jani-examples/beb.modest.txt
@@ -0,0 +1,27 @@
+Peak memory usage: 39 MB
+Analysis results for beb.modest
+
++ State space exploration
+  States:      4528
+  Transitions: 4874
+  Branches:    6899
+  Time:        0.0 s
+  Rate:        94333 states/s
+
++ LineSeized
+  Probability: 0.9166259765625
+  Time:        0.1 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  8
+    Time:        0.0 s
+
++ GaveUp
+  Probability: 0.0833740234375
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  9
+    Time:        0.0 s
diff --git a/examples/jani-examples/brp.jani b/examples/jani-examples/brp.jani
new file mode 100755
index 000000000..bd5d91a38
--- /dev/null
+++ b/examples/jani-examples/brp.jani
@@ -0,0 +1,2092 @@
+{
+	"jani-version": 1,
+	"name": "modelName",
+	"type": "mdp",
+	"actions": [
+		{
+			"name": "put"
+		},
+		{
+			"name": "get"
+		},
+		{
+			"name": "put_k"
+		},
+		{
+			"name": "get_k"
+		},
+		{
+			"name": "put_l"
+		},
+		{
+			"name": "get_l"
+		},
+		{
+			"name": "new_file"
+		},
+		{
+			"name": "s_ok"
+		},
+		{
+			"name": "s_dk"
+		},
+		{
+			"name": "s_nok"
+		},
+		{
+			"name": "s_restart"
+		},
+		{
+			"name": "r_ok"
+		},
+		{
+			"name": "r_inc"
+		},
+		{
+			"name": "r_fst"
+		},
+		{
+			"name": "r_nok"
+		},
+		{
+			"name": "r_timeout"
+		},
+		{
+			"name": "error"
+		},
+		{
+			"name": "tick"
+		}
+	],
+	"variables": [
+		{
+			"name": "ff",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "lf",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "ab",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "i",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 16
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "inTransitK",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "inTransitL",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "first_file_done",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "get_k_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "s_ok_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "s_nok_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "s_dk_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "s_restart_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "r_ok_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "r_timeout_seen",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "premature_timeout",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "channel_k_overflow",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "channel_l_overflow",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "Sender_location",
+			"type": "int",
+			"initial-value": 0
+		},
+		{
+			"name": "Receiver_location",
+			"type": "int",
+			"initial-value": 0
+		},
+		{
+			"name": "ChannelK_location",
+			"type": "int",
+			"initial-value": 0
+		},
+		{
+			"name": "ChannelL_location",
+			"type": "int",
+			"initial-value": 0
+		},
+		{
+			"name": "Observer_location",
+			"type": "int",
+			"initial-value": 0
+		}
+	],
+	"properties": [
+		{
+			"name": "P_A",
+			"reach": {
+				"op": "∧",
+				"args": [
+					"s_nok_seen",
+					"r_ok_seen"
+				]
+			},
+			"type": "probability-max-query"
+		},
+		{
+			"name": "P_B",
+			"reach": {
+				"op": "∧",
+				"args": [
+					"s_ok_seen",
+					{
+						"op": "!",
+						"args": [
+							"r_ok_seen"
+						]
+					}
+				]
+			},
+			"type": "probability-max-query"
+		},
+		{
+			"name": "P_1",
+			"reach": {
+				"op": "∨",
+				"args": [
+					"s_nok_seen",
+					"s_dk_seen"
+				]
+			},
+			"type": "probability-max-query"
+		},
+		{
+			"name": "P_2",
+			"reach": "s_dk_seen",
+			"type": "probability-max-query"
+		},
+		{
+			"name": "P_3",
+			"reach": {
+				"op": "∧",
+				"args": [
+					"s_nok_seen",
+					{
+						"op": ">",
+						"args": [
+							"i",
+							8
+						]
+					}
+				]
+			},
+			"type": "probability-max-query"
+		},
+		{
+			"name": "P_4",
+			"reach": {
+				"op": "∧",
+				"args": [
+					{
+						"op": "∨",
+						"args": [
+							{
+								"op": "∨",
+								"args": [
+									"s_ok_seen",
+									"s_nok_seen"
+								]
+							},
+							"s_dk_seen"
+						]
+					},
+					{
+						"op": "!",
+						"args": [
+							"get_k_seen"
+						]
+					}
+				]
+			},
+			"type": "probability-max-query"
+		}
+	],
+	"automata": [
+		{
+			"name": "Sender",
+			"variables": [
+				{
+					"name": "bit",
+					"type": "bool",
+					"initial-value": false
+				},
+				{
+					"name": "rc",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 2
+					},
+					"initial-value": 0
+				},
+				{
+					"name": "c",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 16
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				},
+				{
+					"name": "l_4"
+				},
+				{
+					"name": "l_5"
+				},
+				{
+					"name": "l_6"
+				},
+				{
+					"name": "l_7"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": {
+						"op": "<",
+						"args": [
+							"i",
+							16
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "i",
+									"value": {
+										"op": "+",
+										"args": [
+											"i",
+											1
+										]
+									}
+								},
+								{
+									"ref": "Sender_location",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "s_ok",
+					"guard": {
+						"op": "=",
+						"args": [
+							"i",
+							16
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "first_file_done",
+									"value": true
+								},
+								{
+									"ref": "Sender_location",
+									"value": 2
+								},
+								{
+									"ref": "c",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "≥",
+								"args": [
+									"i",
+									16
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"c",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "put_k",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "ff",
+									"value": {
+										"op": "=",
+										"args": [
+											"i",
+											1
+										]
+									}
+								},
+								{
+									"ref": "lf",
+									"value": {
+										"op": "=",
+										"args": [
+											"i",
+											16
+										]
+									}
+								},
+								{
+									"ref": "ab",
+									"value": "bit"
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "Sender_location",
+									"value": 3
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4",
+							"assignments": [
+								{
+									"ref": "Sender_location",
+									"value": 4
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "get_l",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "bit",
+									"value": {
+										"op": "!",
+										"args": [
+											"bit"
+										]
+									}
+								},
+								{
+									"ref": "rc",
+									"value": 0
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "Sender_location",
+									"value": 5
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "<",
+								"args": [
+									"rc",
+									2
+								]
+							},
+							{
+								"op": "≥",
+								"args": [
+									"c",
+									3
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "rc",
+									"value": {
+										"op": "+",
+										"args": [
+											"rc",
+											1
+										]
+									}
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "Sender_location",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "s_nok",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "<",
+										"args": [
+											"i",
+											16
+										]
+									},
+									{
+										"op": "≥",
+										"args": [
+											"rc",
+											2
+										]
+									}
+								]
+							},
+							{
+								"op": "≥",
+								"args": [
+									"c",
+									3
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_6",
+							"assignments": [
+								{
+									"ref": "rc",
+									"value": 0
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "Sender_location",
+									"value": 6
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "s_dk",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "≥",
+										"args": [
+											"i",
+											16
+										]
+									},
+									{
+										"op": "≥",
+										"args": [
+											"rc",
+											2
+										]
+									}
+								]
+							},
+							{
+								"op": "≥",
+								"args": [
+									"c",
+									3
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_6",
+							"assignments": [
+								{
+									"ref": "rc",
+									"value": 0
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "Sender_location",
+									"value": 6
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							3
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4"
+						}
+					]
+				},
+				{
+					"location": "l_5",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "Sender_location",
+									"value": 7
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_6",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_7",
+							"assignments": [
+								{
+									"ref": "Sender_location",
+									"value": 8
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_7",
+					"action": "s_restart",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"c",
+							15
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4",
+							"assignments": [
+								{
+									"ref": "bit",
+									"value": false
+								},
+								{
+									"ref": "first_file_done",
+									"value": true
+								},
+								{
+									"ref": "Sender_location",
+									"value": 4
+								},
+								{
+									"ref": "c",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_7",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							15
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_7",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Receiver",
+			"variables": [
+				{
+					"name": "r_ff",
+					"type": "bool",
+					"initial-value": false
+				},
+				{
+					"name": "r_lf",
+					"type": "bool",
+					"initial-value": false
+				},
+				{
+					"name": "r_ab",
+					"type": "bool",
+					"initial-value": false
+				},
+				{
+					"name": "bit",
+					"type": "bool",
+					"initial-value": false
+				},
+				{
+					"name": "c",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 16
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				},
+				{
+					"name": "l_4"
+				},
+				{
+					"name": "l_5"
+				},
+				{
+					"name": "l_6"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "get_k",
+					"guard": "ff",
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "bit",
+									"value": "ab"
+								},
+								{
+									"ref": "r_ff",
+									"value": "ff"
+								},
+								{
+									"ref": "r_lf",
+									"value": "lf"
+								},
+								{
+									"ref": "r_ab",
+									"value": "ab"
+								},
+								{
+									"ref": "Receiver_location",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "get_k",
+					"guard": {
+						"op": "!",
+						"args": [
+							"ff"
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "premature_timeout",
+									"value": true
+								},
+								{
+									"ref": "Receiver_location",
+									"value": 2
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "put_l",
+					"guard": {
+						"op": "≠",
+						"args": [
+							"r_ab",
+							"bit"
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 3
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "r_ok",
+					"guard": {
+						"op": "∧",
+						"args": [
+							"r_lf",
+							{
+								"op": "=",
+								"args": [
+									"r_ab",
+									"bit"
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 4
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "r_fst",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									"r_ff",
+									{
+										"op": "!",
+										"args": [
+											"r_lf"
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									"r_ab",
+									"bit"
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 4
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "r_inc",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "!",
+										"args": [
+											"r_ff"
+										]
+									},
+									{
+										"op": "!",
+										"args": [
+											"r_lf"
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									"r_ab",
+									"bit"
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 4
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2"
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "get_k",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "r_ff",
+									"value": "ff"
+								},
+								{
+									"ref": "r_lf",
+									"value": "lf"
+								},
+								{
+									"ref": "r_ab",
+									"value": "ab"
+								},
+								{
+									"ref": "Receiver_location",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "r_timeout",
+					"guard": {
+						"op": "∧",
+						"args": [
+							"r_lf",
+							{
+								"op": "=",
+								"args": [
+									"c",
+									15
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 5
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "r_nok",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "!",
+								"args": [
+									"r_lf"
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									"c",
+									15
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_6",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 6
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							15
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"action": "put_l",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "bit",
+									"value": {
+										"op": "!",
+										"args": [
+											"bit"
+										]
+									}
+								},
+								{
+									"ref": "Receiver_location",
+									"value": 3
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_4",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							0
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_4",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_5",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "r_ff",
+									"value": false
+								},
+								{
+									"ref": "r_lf",
+									"value": false
+								},
+								{
+									"ref": "r_ab",
+									"value": false
+								},
+								{
+									"ref": "bit",
+									"value": false
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "Receiver_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_5",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							15
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_6",
+					"action": "r_timeout",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_5",
+							"assignments": [
+								{
+									"ref": "Receiver_location",
+									"value": 5
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_6",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							15
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_6",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											16
+										]
+									}
+								}
+							]
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "ChannelK",
+			"variables": [
+				{
+					"name": "c",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 2
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "put_k",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									49,
+									50
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "inTransitK",
+									"value": true
+								},
+								{
+									"ref": "ChannelK_location",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									50
+								]
+							},
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "ChannelK_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "get_k",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "inTransitK",
+									"value": false
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "ChannelK_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "put_k",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "channel_k_overflow",
+									"value": true
+								},
+								{
+									"ref": "ChannelK_location",
+									"value": 2
+								},
+								{
+									"ref": "c",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							1
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											2
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "ChannelL",
+			"variables": [
+				{
+					"name": "c",
+					"type": {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound": 0,
+						"upper-bound": 2
+					},
+					"initial-value": 0
+				}
+			],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "put_l",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									99,
+									100
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "inTransitL",
+									"value": true
+								},
+								{
+									"ref": "ChannelL_location",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									100
+								]
+							},
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "ChannelL_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "get_l",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "inTransitL",
+									"value": false
+								},
+								{
+									"ref": "c",
+									"value": 0
+								},
+								{
+									"ref": "ChannelL_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "put_l",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "channel_l_overflow",
+									"value": true
+								},
+								{
+									"ref": "ChannelL_location",
+									"value": 2
+								},
+								{
+									"ref": "c",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"action": "tick",
+					"guard": {
+						"op": "<",
+						"args": [
+							"c",
+							1
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "c",
+									"value": {
+										"op": "min",
+										"args": [
+											{
+												"op": "+",
+												"args": [
+													"c",
+													1
+												]
+											},
+											2
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Observer",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"action": "get_k",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "get_k_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "s_ok",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "s_ok_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "s_nok",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "s_nok_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "s_dk",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "s_dk_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "s_restart",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "s_restart_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "r_ok",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "r_ok_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "r_timeout",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0",
+							"assignments": [
+								{
+									"ref": "r_timeout_seen",
+									"value": true
+								},
+								{
+									"ref": "Observer_location",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_0",
+					"action": "tick",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_0"
+						}
+					]
+				}
+			]
+		}
+	],
+	"system": {
+		"composition": "parallel",
+		"elements": [
+			{
+				"composition": "parallel",
+				"elements": [
+					{
+						"composition": "parallel",
+						"elements": [
+							{
+								"composition": "parallel",
+								"elements": [
+									"Sender",
+									"Receiver"
+								],
+								"alphabet": [
+									"tick"
+								]
+							},
+							"ChannelK"
+						],
+						"alphabet": [
+							"put_k",
+							"get_k",
+							"tick"
+						]
+					},
+					"ChannelL"
+				],
+				"alphabet": [
+					"get_l",
+					"put_l",
+					"tick"
+				]
+			},
+			"Observer"
+		],
+		"alphabet": [
+			"s_nok",
+			"s_dk",
+			"s_ok",
+			"s_restart",
+			"get_k",
+			"r_ok",
+			"r_timeout",
+			"tick"
+		]
+	}
+}
\ No newline at end of file
diff --git a/examples/jani-examples/brp.jani.txt b/examples/jani-examples/brp.jani.txt
new file mode 100755
index 000000000..9c0fcd322
--- /dev/null
+++ b/examples/jani-examples/brp.jani.txt
@@ -0,0 +1,63 @@
+Peak memory usage: 39 MB
+Analysis results for brp.jani
+
++ State space exploration
+  States:      3959
+  Transitions: 4244
+  Branches:    4593
+  Time:        0.1 s
+  Rate:        74698 states/s
+
++ P_A
+  Probability: 0
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  1
+    Time:        0.0 s
+
++ P_B
+  Probability: 0
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  1
+    Time:        0.0 s
+
++ P_1
+  Probability: 0.000423333443357766
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 2.35005704803786E-07
+    Iterations:  13
+    Time:        0.0 s
+
++ P_2
+  Probability: 2.64530890961023E-05
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 2.05561452068843E-07
+    Iterations:  14
+    Time:        0.0 s
+
++ P_3
+  Probability: 0.000185191226393368
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 3.32462409056221E-07
+    Iterations:  13
+    Time:        0.0 s
+
++ P_4
+  Probability: 8E-06
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  2
+    Time:        0.0 s
diff --git a/examples/jani-examples/brp.modest b/examples/jani-examples/brp.modest
new file mode 100755
index 000000000..64743232f
--- /dev/null
+++ b/examples/jani-examples/brp.modest
@@ -0,0 +1,213 @@
+// Modest PTA model of the bounded retransmission protocol (BRP)
+// [HH09], http://www.modestchecker.net/CaseStudies/BRP/
+action put, get, put_k, get_k, put_l, get_l;
+action new_file;
+action s_ok, s_dk, s_nok, s_restart;
+action r_ok, r_inc, r_fst, r_nok, r_timeout;
+exception error;
+
+const int N = 16; // number of frames per file
+const int MAX = 2; // maximum number of retransmissions per frame
+const int TD = 1; // transmission delay
+const int TS = 2 * TD + 1; // sender timeout
+const int TR = 2 * MAX * TS + 3 * TD; // receiver timeout
+const int SYNC = TR;
+
+bool ff, lf, ab; // channel data: first/last frame, alternating bit
+int(0..N) i; // sender chunk counter
+bool inTransitK = false;
+bool inTransitL = false;
+
+bool first_file_done = false;
+bool get_k_seen, s_ok_seen, s_nok_seen, s_dk_seen, s_restart_seen, r_ok_seen, r_timeout_seen;
+
+// Invariant (timed) properties (from [BrpOnTime], the TA model)
+bool premature_timeout, channel_k_overflow, channel_l_overflow;
+// "there is at most one message in transit for each channel"
+property T_1 = A[] (!(channel_k_overflow || channel_l_overflow));
+// "there is at most one message in transit in total"
+property T_2 = A[] (!(inTransitK && inTransitL));
+// Assumption (A1): "no premature timeouts"
+property T_A1 = A[] (!premature_timeout);
+// Assumption (A2): "sender starts new file only after receiver reacted to failure"
+// Note that receiver can only notice failure if it received at least one chunk, i.e. get_k_seen
+property T_A2 = A[] (!s_restart_seen || !get_k_seen || r_timeout_seen);
+
+// Probabilistic reachability properties (from [D'AJJL01], the RAPTURE/PRISM model)
+// property A of [D'AJJL01]: "the maximum probability that eventually the sender reports 
+// a certain unsuccessful transmission but the receiver got the complete file"
+property P_A = Pmax(<>(s_nok_seen && r_ok_seen));
+// property B of [D'AJJL01]: "the maximum probability that eventually the sender reports
+// a certain successful transmission but the receiver did not get the complete file"
+property P_B = Pmax(<>(s_ok_seen && !r_ok_seen));
+// property 1 of [D'AJJL01]: "the maximum probability that eventually the sender
+// does not report a successful transmission"
+property P_1 = Pmax(<>(s_nok_seen || s_dk_seen));
+// property 2 of [D'AJJL01]: "the maximum probability that eventually the sender
+// reports an uncertainty on the success of the transmission"
+property P_2 = Pmax(<>(s_dk_seen));
+// property 3 of [D'AJJL01]: "the maximum probability that eventually the sender
+// reports an unsuccessful transmission after more than 8 chunks have been sent successfully"
+property P_3 = Pmax(<>(s_nok_seen && i > 8));
+// property 4 of [D'AJJL01]: "the maximum probability that eventually the receiver
+// does not receive any chunk and the sender tried to send a chunk"
+property P_4 = Pmax(<>((s_ok_seen || s_nok_seen || s_dk_seen) && !get_k_seen));
+
+
+process Sender()
+{
+	bool bit;
+	int(0..MAX) rc;
+	clock c;
+
+	try
+	{
+		do {
+		::	when urgent(i < N) {= i++ =};
+			do
+			{
+				// send frame
+				invariant(c <= 0) put_k {= ff = (i == 1), lf = (i == N), ab = bit, c = 0 =};
+				invariant(c <= TS) alt {
+				::	// receive ack
+					get_l {= bit = !bit, rc = 0, c = 0 =};
+					urgent break
+				:: // timeout
+					when(c >= TS)
+					if(rc < MAX)
+					{
+						// retry
+						{= rc++, c = 0 =}
+					}
+					else if(i < N)
+					{
+						// no retries left
+						s_nok {= rc = 0, c = 0 =};
+						urgent throw(error)
+					}
+					else
+					{
+						// no retries left
+						s_dk {= rc = 0, c = 0 =};
+						urgent throw(error)
+					}
+				}
+			}
+		::	when(i == N)
+			// file transmission successfully completed
+			invariant(c <= 0) s_ok {= first_file_done = true =};
+			urgent break
+		}
+	}
+	catch error
+	{
+		// File transfer did not succeed: wait, then restart with next file
+		invariant(c <= SYNC) when(c >= SYNC)
+		s_restart {= bit = false, first_file_done = true =}
+	}
+}
+
+process Receiver()
+{
+	bool r_ff, r_lf, r_ab;
+	bool bit;
+	clock c;
+
+	// receive first frame
+	if(ff) { get_k {= c = 0, bit = ab, r_ff = ff, r_lf = lf, r_ab = ab =} }
+	else { get_k {= c = 0, premature_timeout = true =}; stop };
+	do
+	{
+		invariant(c <= 0)
+		{
+			if(r_ab != bit)
+			{
+				// repetition, re-ack
+				put_l
+			}
+			else
+			{
+				// report frame
+				if(r_lf)      { r_ok }
+				else if(r_ff) { r_fst }
+				else          { r_inc };
+				put_l {= bit = !bit =}
+			}
+		};
+		invariant(c <= TR)
+		{
+			alt {
+			::	// receive next frame
+				get_k {= c = 0, r_ff = ff, r_lf = lf, r_ab = ab =}
+			::	// timeout
+				when(c == TR)
+				if(r_lf)
+				{
+					// we just got the last frame, though
+					r_timeout; break
+				}
+				else
+				{
+					r_nok;
+					// abort transfer
+					r_timeout; break
+				}
+			}
+		}
+	};
+	Receiver()
+}
+
+process ChannelK()
+{
+	clock c;
+
+	put_k palt
+	{
+		:98:	{= c = 0, inTransitK = true =};
+				invariant(c <= TD) alt {
+				::	get_k {= inTransitK = false =}
+				::	put_k {= channel_k_overflow = true =}; stop
+				}
+		: 2:	{==}
+	};
+	ChannelK()
+}
+
+process ChannelL()
+{
+	clock c;
+
+	put_l palt
+	{
+		:99:	{= c = 0, inTransitL = true =};
+				invariant(c <= TD) alt {
+				::	get_l {= inTransitL = false =}
+				::	put_l {= channel_l_overflow = true =}; stop
+				}
+		: 1:	{==}
+	};
+	ChannelL()
+}
+
+process Observer()
+{
+	alt {
+	::	get_k     {= get_k_seen     = true =}
+	::	s_ok      {= s_ok_seen      = true =}
+	::	s_nok     {= s_nok_seen     = true =}
+	::	s_dk      {= s_dk_seen      = true =}
+	::	s_restart {= s_restart_seen = true =}
+	::	r_ok      {= r_ok_seen      = true =}
+	::	r_timeout {= r_timeout_seen = true =}
+	};
+	Observer()
+}
+
+par {
+::	Sender()
+::	Receiver()
+::	ChannelK()
+::	ChannelL()
+::	Observer()
+}
diff --git a/examples/jani-examples/brp.modest.txt b/examples/jani-examples/brp.modest.txt
new file mode 100755
index 000000000..6ec6b0c5e
--- /dev/null
+++ b/examples/jani-examples/brp.modest.txt
@@ -0,0 +1,63 @@
+Peak memory usage: 40 MB
+Analysis results for brp.modest
+
++ State space exploration
+  States:      3959
+  Transitions: 4244
+  Branches:    4593
+  Time:        0.1 s
+  Rate:        73315 states/s
+
++ P_A
+  Probability: 0
+  Time:        0.1 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  1
+    Time:        0.0 s
+
++ P_B
+  Probability: 0
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  1
+    Time:        0.0 s
+
++ P_1
+  Probability: 0.000423333443357766
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 2.35005704803786E-07
+    Iterations:  13
+    Time:        0.0 s
+
++ P_2
+  Probability: 2.64530890961023E-05
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 2.05561452068843E-07
+    Iterations:  14
+    Time:        0.0 s
+
++ P_3
+  Probability: 0.000185191226393368
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 3.32462409056221E-07
+    Iterations:  13
+    Time:        0.0 s
+
++ P_4
+  Probability: 8E-06
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 0
+    Iterations:  2
+    Time:        0.0 s
diff --git a/examples/jani-examples/consensus-6.jani b/examples/jani-examples/consensus-6.jani
new file mode 100755
index 000000000..58acabfef
--- /dev/null
+++ b/examples/jani-examples/consensus-6.jani
@@ -0,0 +1,2129 @@
+{
+	"jani-version": 1,
+	"name": "modelName",
+	"type": "mdp",
+	"actions": [
+		{
+			"name": "done"
+		}
+	],
+	"variables": [
+		{
+			"name": "counter",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 60
+			},
+			"initial-value": 30
+		},
+		{
+			"name": "fin1",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "fin2",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "fin3",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "fin4",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "fin5",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "fin6",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "coin1",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "coin2",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "coin3",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "coin4",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "coin5",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		},
+		{
+			"name": "coin6",
+			"type": {
+				"kind": "bounded",
+				"base": "int",
+				"lower-bound": 0,
+				"upper-bound": 1
+			},
+			"initial-value": 0
+		}
+	],
+	"rewards": [
+		{
+			"name": "coin_flips"
+		}
+	],
+	"properties": [
+		{
+			"name": "C1",
+			"bound": 1,
+			"op": "≥",
+			"reach": {
+				"op": "∧",
+				"args": [
+					{
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "∧",
+										"args": [
+											{
+												"op": "∧",
+												"args": [
+													{
+														"op": "=",
+														"args": [
+															"fin1",
+															1
+														]
+													},
+													{
+														"op": "=",
+														"args": [
+															"fin2",
+															1
+														]
+													}
+												]
+											},
+											{
+												"op": "=",
+												"args": [
+													"fin3",
+													1
+												]
+											}
+										]
+									},
+									{
+										"op": "=",
+										"args": [
+											"fin4",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									"fin5",
+									1
+								]
+							}
+						]
+					},
+					{
+						"op": "=",
+						"args": [
+							"fin6",
+							1
+						]
+					}
+				]
+			},
+			"type": "probability-comparison"
+		},
+		{
+			"name": "C2",
+			"reach": {
+				"op": "∧",
+				"args": [
+					{
+						"op": "∧",
+						"args": [
+							{
+								"op": "∧",
+								"args": [
+									{
+										"op": "∧",
+										"args": [
+											{
+												"op": "∧",
+												"args": [
+													{
+														"op": "∧",
+														"args": [
+															{
+																"op": "∧",
+																"args": [
+																	{
+																		"op": "∧",
+																		"args": [
+																			{
+																				"op": "∧",
+																				"args": [
+																					{
+																						"op": "∧",
+																						"args": [
+																							{
+																								"op": "∧",
+																								"args": [
+																									{
+																										"op": "=",
+																										"args": [
+																											"fin1",
+																											1
+																										]
+																									},
+																									{
+																										"op": "=",
+																										"args": [
+																											"fin2",
+																											1
+																										]
+																									}
+																								]
+																							},
+																							{
+																								"op": "=",
+																								"args": [
+																									"fin3",
+																									1
+																								]
+																							}
+																						]
+																					},
+																					{
+																						"op": "=",
+																						"args": [
+																							"fin4",
+																							1
+																						]
+																					}
+																				]
+																			},
+																			{
+																				"op": "=",
+																				"args": [
+																					"fin5",
+																					1
+																				]
+																			}
+																		]
+																	},
+																	{
+																		"op": "=",
+																		"args": [
+																			"fin6",
+																			1
+																		]
+																	}
+																]
+															},
+															{
+																"op": "=",
+																"args": [
+																	"coin1",
+																	1
+																]
+															}
+														]
+													},
+													{
+														"op": "=",
+														"args": [
+															"coin2",
+															1
+														]
+													}
+												]
+											},
+											{
+												"op": "=",
+												"args": [
+													"coin3",
+													1
+												]
+											}
+										]
+									},
+									{
+										"op": "=",
+										"args": [
+											"coin4",
+											1
+										]
+									}
+								]
+							},
+							{
+								"op": "=",
+								"args": [
+									"coin5",
+									1
+								]
+							}
+						]
+					},
+					{
+						"op": "=",
+						"args": [
+							"coin6",
+							1
+						]
+					}
+				]
+			},
+			"type": "probability-min-query"
+		}
+	],
+	"automata": [
+		{
+			"name": "Tourist1",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin1",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin1",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin1",
+									0
+								]
+							},
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "-",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin1",
+									1
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									60
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "+",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								},
+								{
+									"ref": "coin1",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"counter",
+							6
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin1",
+									"value": 0
+								},
+								{
+									"ref": "fin1",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"counter",
+							54
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin1",
+									"value": 1
+								},
+								{
+									"ref": "fin1",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									6
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									54
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin1",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin1",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "done",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Tourist2",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin2",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin2",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin2",
+									0
+								]
+							},
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "-",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin2",
+									1
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									60
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "+",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								},
+								{
+									"ref": "coin2",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"counter",
+							6
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin2",
+									"value": 0
+								},
+								{
+									"ref": "fin2",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"counter",
+							54
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin2",
+									"value": 1
+								},
+								{
+									"ref": "fin2",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									6
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									54
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin2",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin2",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "done",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Tourist3",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin3",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin3",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin3",
+									0
+								]
+							},
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "-",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin3",
+									1
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									60
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "+",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								},
+								{
+									"ref": "coin3",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"counter",
+							6
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin3",
+									"value": 0
+								},
+								{
+									"ref": "fin3",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"counter",
+							54
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin3",
+									"value": 1
+								},
+								{
+									"ref": "fin3",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									6
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									54
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin3",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin3",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "done",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Tourist4",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin4",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin4",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin4",
+									0
+								]
+							},
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "-",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin4",
+									1
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									60
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "+",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								},
+								{
+									"ref": "coin4",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"counter",
+							6
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin4",
+									"value": 0
+								},
+								{
+									"ref": "fin4",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"counter",
+							54
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin4",
+									"value": 1
+								},
+								{
+									"ref": "fin4",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									6
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									54
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin4",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin4",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "done",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Tourist5",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin5",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin5",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin5",
+									0
+								]
+							},
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "-",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin5",
+									1
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									60
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "+",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								},
+								{
+									"ref": "coin5",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"counter",
+							6
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin5",
+									"value": 0
+								},
+								{
+									"ref": "fin5",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"counter",
+							54
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin5",
+									"value": 1
+								},
+								{
+									"ref": "fin5",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									6
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									54
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin5",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin5",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "done",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				}
+			]
+		},
+		{
+			"name": "Tourist6",
+			"variables": [],
+			"locations": [
+				{
+					"name": "l_0"
+				},
+				{
+					"name": "l_1"
+				},
+				{
+					"name": "l_2"
+				},
+				{
+					"name": "l_3"
+				}
+			],
+			"initial-location": "l_0",
+			"edges": [
+				{
+					"location": "l_0",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin6",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin6",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin6",
+									0
+								]
+							},
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									0
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "-",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_1",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": "=",
+								"args": [
+									"coin6",
+									1
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									60
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_2",
+							"assignments": [
+								{
+									"ref": "counter",
+									"value": {
+										"op": "+",
+										"args": [
+											"counter",
+											1
+										]
+									}
+								},
+								{
+									"ref": "coin6",
+									"value": 0
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≤",
+						"args": [
+							"counter",
+							6
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin6",
+									"value": 0
+								},
+								{
+									"ref": "fin6",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "≥",
+						"args": [
+							"counter",
+							54
+						]
+					},
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3",
+							"assignments": [
+								{
+									"ref": "coin6",
+									"value": 1
+								},
+								{
+									"ref": "fin6",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_2",
+					"guard": {
+						"op": "∧",
+						"args": [
+							{
+								"op": ">",
+								"args": [
+									"counter",
+									6
+								]
+							},
+							{
+								"op": "<",
+								"args": [
+									"counter",
+									54
+								]
+							}
+						]
+					},
+					"destinations": [
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin6",
+									"value": 0
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						},
+						{
+							"probability": {
+								"op": "/",
+								"args": [
+									1,
+									2
+								]
+							},
+							"location": "l_1",
+							"assignments": [
+								{
+									"ref": "coin6",
+									"value": 1
+								}
+							],
+							"reward": [
+								{
+									"ref": "coin_flips",
+									"value": 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location": "l_3",
+					"action": "done",
+					"guard": true,
+					"destinations": [
+						{
+							"probability": 1,
+							"location": "l_3"
+						}
+					]
+				}
+			]
+		}
+	],
+	"system": {
+		"composition": "parallel",
+		"elements": [
+			{
+				"composition": "parallel",
+				"elements": [
+					{
+						"composition": "parallel",
+						"elements": [
+							{
+								"composition": "parallel",
+								"elements": [
+									{
+										"composition": "parallel",
+										"elements": [
+											"Tourist1",
+											"Tourist2"
+										],
+										"alphabet": [
+											"done"
+										]
+									},
+									"Tourist3"
+								],
+								"alphabet": [
+									"done"
+								]
+							},
+							"Tourist4"
+						],
+						"alphabet": [
+							"done"
+						]
+					},
+					"Tourist5"
+				],
+				"alphabet": [
+					"done"
+				]
+			},
+			"Tourist6"
+		],
+		"alphabet": [
+			"done"
+		]
+	}
+}
\ No newline at end of file
diff --git a/examples/jani-examples/consensus-6.jani.txt b/examples/jani-examples/consensus-6.jani.txt
new file mode 100755
index 000000000..17509db20
--- /dev/null
+++ b/examples/jani-examples/consensus-6.jani.txt
@@ -0,0 +1,27 @@
+Peak memory usage: 530 MB
+Analysis results for consensus-6.jani
+
++ State space exploration
+  States:      2345194
+  Transitions: 9418584
+  Branches:    13891248
+  Time:        8.7 s
+  Rate:        270964 states/s
+
++ C1
+  Result:                       True
+  Time for min. prob. 0 states: 1.6 s
+  Time for min. prob. 1 states: 0.1 s
+  Time:                         1.7 s
+  Min. probability:             1
+
++ C2
+  Probability:                  0.395776147642961
+  Time for min. prob. 0 states: 2.0 s
+  Time for min. prob. 1 states: 0.1 s
+  Time:                         125.8 s
+
+  + Value iteration
+    Final error: 9.96634356860147E-07
+    Iterations:  2137
+    Time:        123.8 s
diff --git a/examples/jani-examples/consensus-6.modest b/examples/jani-examples/consensus-6.modest
new file mode 100755
index 000000000..6b129af06
--- /dev/null
+++ b/examples/jani-examples/consensus-6.modest
@@ -0,0 +1,157 @@
+// Modest version of http://www.prismmodelchecker.org/casestudies/consensus_prism.php
+// Command line: mcsta.exe consensus-6.modest -S Memory --nochainopt --bounded-alg StateElimination -E "K=2"
+
+action done;
+
+// constants
+const int N = 6;
+const int K = 4;
+const int range = 2 * (K + 1) * N;
+const int counter_init = (K + 1) * N;
+const int left = N;
+const int right = 2 * (K + 1) * N - N;
+
+// shared coin
+int(0..range) counter = counter_init;
+reward coin_flips;
+
+property C1 = P(<> (fin1 == 1 && fin2 == 1 && fin3 == 1 && fin4 == 1 && fin5 == 1 && fin6 == 1)) >= 1;
+property C2 = Pmin(<> (fin1 == 1 && fin2 == 1 && fin3 == 1 && fin4 == 1 && fin5 == 1 && fin6 == 1 && coin1 == 1 && coin2 == 1 && coin3 == 1 && coin4 == 1 && coin5 == 1 && coin6 == 1));
+
+int(0..1) fin1, fin2, fin3, fin4, fin5, fin6;
+int(0..1) coin1, coin2, coin3, coin4, coin5, coin6;
+
+process Tourist1()
+{
+	process Flip() { palt { :1: {= coin1 = 0, coin_flips++ =} :1: {= coin1 = 1, coin_flips++ =} }; Write() }
+	process Write() {
+		alt {
+		::	when(coin1 == 0 && counter > 0) {= counter-- =}; Check()
+		::	when(coin1 == 1 && counter < range) {= counter++, coin1 = 0 =}; Check()
+		}
+	}
+	process Check() {
+		alt {
+		::	when(counter <= left) {= coin1 = 0, fin1 = 1 =}; Finished()
+		::	when(counter >= right) {= coin1 = 1, fin1 = 1 =}; Finished()
+		::	when(counter > left && counter < right) Tourist1()
+		}
+	}
+	process Finished() { done; Finished() }
+
+	Flip()
+}
+
+process Tourist2()
+{
+	process Flip() { palt { :1: {= coin2 = 0, coin_flips++ =} :1: {= coin2 = 1, coin_flips++ =} }; Write() }
+	process Write() {
+		alt {
+		::	when(coin2 == 0 && counter > 0) {= counter-- =}; Check()
+		::	when(coin2 == 1 && counter < range) {= counter++, coin2 = 0 =}; Check()
+		}
+	}
+	process Check() {
+		alt {
+		::	when(counter <= left) {= coin2 = 0, fin2 = 1 =}; Finished()
+		::	when(counter >= right) {= coin2 = 1, fin2 = 1 =}; Finished()
+		::	when(counter > left && counter < right) Tourist2()
+		}
+	}
+	process Finished() { done; Finished() }
+
+	Flip()
+}
+
+process Tourist3()
+{
+	process Flip() { palt { :1: {= coin3 = 0, coin_flips++ =} :1: {= coin3 = 1, coin_flips++ =} }; Write() }
+	process Write() {
+		alt {
+		::	when(coin3 == 0 && counter > 0) {= counter-- =}; Check()
+		::	when(coin3 == 1 && counter < range) {= counter++, coin3 = 0 =}; Check()
+		}
+	}
+	process Check() {
+		alt {
+		::	when(counter <= left) {= coin3 = 0, fin3 = 1 =}; Finished()
+		::	when(counter >= right) {= coin3 = 1, fin3 = 1 =}; Finished()
+		::	when(counter > left && counter < right) Tourist3()
+		}
+	}
+	process Finished() { done; Finished() }
+
+	Flip()
+}
+
+process Tourist4()
+{
+	process Flip() { palt { :1: {= coin4 = 0, coin_flips++ =} :1: {= coin4 = 1, coin_flips++ =} }; Write() }
+	process Write() {
+		alt {
+		::	when(coin4 == 0 && counter > 0) {= counter-- =}; Check()
+		::	when(coin4 == 1 && counter < range) {= counter++, coin4 = 0 =}; Check()
+		}
+	}
+	process Check() {
+		alt {
+		::	when(counter <= left) {= coin4 = 0, fin4 = 1 =}; Finished()
+		::	when(counter >= right) {= coin4 = 1, fin4 = 1 =}; Finished()
+		::	when(counter > left && counter < right) Tourist4()
+		}
+	}
+	process Finished() { done; Finished() }
+
+	Flip()
+}
+
+process Tourist5()
+{
+	process Flip() { palt { :1: {= coin5 = 0, coin_flips++ =} :1: {= coin5 = 1, coin_flips++ =} }; Write() }
+	process Write() {
+		alt {
+		::	when(coin5 == 0 && counter > 0) {= counter-- =}; Check()
+		::	when(coin5 == 1 && counter < range) {= counter++, coin5 = 0 =}; Check()
+		}
+	}
+	process Check() {
+		alt {
+		::	when(counter <= left) {= coin5 = 0, fin5 = 1 =}; Finished()
+		::	when(counter >= right) {= coin5 = 1, fin5 = 1 =}; Finished()
+		::	when(counter > left && counter < right) Tourist5()
+		}
+	}
+	process Finished() { done; Finished() }
+
+	Flip()
+}
+
+process Tourist6()
+{
+	process Flip() { palt { :1: {= coin6 = 0, coin_flips++ =} :1: {= coin6 = 1, coin_flips++ =} }; Write() }
+	process Write() {
+		alt {
+		::	when(coin6 == 0 && counter > 0) {= counter-- =}; Check()
+		::	when(coin6 == 1 && counter < range) {= counter++, coin6 = 0 =}; Check()
+		}
+	}
+	process Check() {
+		alt {
+		::	when(counter <= left) {= coin6 = 0, fin6 = 1 =}; Finished()
+		::	when(counter >= right) {= coin6 = 1, fin6 = 1 =}; Finished()
+		::	when(counter > left && counter < right)  Tourist6()
+		}
+	}
+	process Finished() { done; Finished() }
+
+	Flip()
+}
+
+par {
+::	Tourist1()
+::	Tourist2()
+::	Tourist3()
+::	Tourist4()
+::	Tourist5()
+::	Tourist6()
+}
diff --git a/examples/jani-examples/consensus-6.modest.txt b/examples/jani-examples/consensus-6.modest.txt
new file mode 100755
index 000000000..3ff5c0821
--- /dev/null
+++ b/examples/jani-examples/consensus-6.modest.txt
@@ -0,0 +1,27 @@
+Peak memory usage: 531 MB
+Analysis results for consensus-6.modest
+
++ State space exploration
+  States:      2345194
+  Transitions: 9418584
+  Branches:    13891248
+  Time:        8.2 s
+  Rate:        287507 states/s
+
++ C1
+  Result:                       True
+  Time for min. prob. 0 states: 1.5 s
+  Time for min. prob. 1 states: 0.2 s
+  Time:                         1.7 s
+  Min. probability:             1
+
++ C2
+  Probability:                  0.395776147642961
+  Time for min. prob. 0 states: 2.0 s
+  Time for min. prob. 1 states: 0.1 s
+  Time:                         126.8 s
+
+  + Value iteration
+    Final error: 9.96634356860147E-07
+    Iterations:  2137
+    Time:        124.7 s
diff --git a/examples/jani-examples/dice.jani b/examples/jani-examples/dice.jani
new file mode 100755
index 000000000..e9e377e15
--- /dev/null
+++ b/examples/jani-examples/dice.jani
@@ -0,0 +1,354 @@
+{
+	"jani-version": 1,
+  "name": "dice",
+	"type" : "mdp",
+	"actions" : [],
+	"variables" : [
+		{
+			"name": "thrownSix",
+			"type": "bool",
+			"initial-value": false
+		},
+		{
+			"name": "terminated",
+			"type": "bool",
+			"initial-value": false
+		}
+	],
+	"rewards" : [
+		{
+			"name" : "step"
+		}
+	],
+	"properties" : [
+		{
+			"name" : "ProbThrowSix",
+			"reach" : "thrownSix",
+			"type": "probability-max-query"
+		},
+		{
+			"name" : "StepsUntilReach",
+			"reach" : "terminated",
+			"reward": "step",
+			"type": "expected-reachability-reward-max-query"
+		}
+	],
+	"automata" : [
+		{
+			"name" : "dice",
+			"variables" : [
+				{
+					"name" : "d",
+					"type" : {
+						"kind": "bounded",
+						"base": "int",
+						"lower-bound" : 0,
+						"upper-bound" : 6
+					},
+					"initial-value" : 0
+				}
+			],
+			"locations" : [
+				{
+					"name" : "s0"
+				},
+				{
+					"name" : "s1"
+				},
+				{
+					"name" : "s2"
+				},
+				{
+					"name" : "s3"
+				},
+				{
+					"name" : "s4"
+				},
+				{
+					"name" : "s5"
+				},
+				{
+					"name" : "s6"
+				},
+				{
+					"name" : "s7"
+				}
+			],
+			"initial-location" : "s0",
+			"edges" : [
+				{
+					"location" : "s0",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s1",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s2",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s1",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s3",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s4",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s2",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s5",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s6",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s3",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s1",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s7",
+							"assignments" : [
+								{
+									"ref" : "d",
+									"value" : 1
+								},
+								{
+									"ref" : "terminated",
+									"value" : true
+								}
+							],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s4",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s7",
+							"assignments" : [
+								{
+									"ref" : "d",
+									"value" : 2
+								},
+								{
+									"ref" : "terminated",
+									"value" : true
+								}
+							],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s7",
+							"assignments" : [
+								{
+									"ref" : "d",
+									"value" : 3
+								},
+								{
+									"ref" : "terminated",
+									"value" : true
+								}
+							],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s5",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s7",
+							"assignments" : [
+								{
+									"ref" : "d",
+									"value" : 4
+								},
+								{
+									"ref" : "terminated",
+									"value" : true
+								}
+							],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s7",
+							"assignments" : [
+								{
+									"ref" : "d",
+									"value" : 5
+								},
+								{
+									"ref" : "terminated",
+									"value" : true
+								}
+							],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s6",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 0.5,
+							"location" : "s2",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						},
+						{
+							"probability" : 0.5,
+							"location" : "s7",
+							"assignments" : [
+								{
+									"ref" : "d",
+									"value" : 6
+								},
+								{
+									"ref" : "thrownSix",
+									"value" : true
+								},
+								{
+									"ref" : "terminated",
+									"value" : true
+								}
+							],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				},
+				{
+					"location" : "s7",
+					"guard" : true,
+					"destinations" : [
+						{
+							"probability" : 1,
+							"location" : "s7",
+							"assignments" : [],
+							"rewards" : [
+								{
+									"ref" : "step",
+									"value" : 1
+								}
+							]
+						}
+					]
+				}
+			]
+		}
+	],
+	"system" : "dice"
+}
diff --git a/examples/jani-examples/dice.jani.txt b/examples/jani-examples/dice.jani.txt
new file mode 100755
index 000000000..2cf07a5ed
--- /dev/null
+++ b/examples/jani-examples/dice.jani.txt
@@ -0,0 +1,29 @@
+Peak memory usage: 36 MB
+Analysis results for dice.jani
+
++ State space exploration
+  States:      8
+  Transitions: 8
+  Branches:    14
+  Time:        0.0 s
+  Rate:        190 states/s
+
++ ProbThrowSix
+  Probability: 0.166666626930237
+  Time:        0.0 s
+
+  + Value iteration
+    Final error: 7.15255907834985E-07
+    Iterations:  11
+    Time:        0.0 s
+
++ StepsUntilReach
+  Value:                        3.66666650772095
+  Time for min. prob. 0 states: 0.0 s
+  Time for min. prob. 1 states: 0.0 s
+  Time:                         0.0 s
+
+  + Value iteration
+    Final error: 4.08717619857464E-07
+    Iterations:  12
+    Time:        0.0 s
diff --git a/resources/3rdparty/modernjson/CMakeLists.txt b/resources/3rdparty/modernjson/CMakeLists.txt
new file mode 100755
index 000000000..18e9c651f
--- /dev/null
+++ b/resources/3rdparty/modernjson/CMakeLists.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.0)
+
+# define the project
+project(nlohmann_json VERSION 2.0.0 LANGUAGES CXX)
+
+option(BuildTests "Build the unit tests" ON)
+
+# define project variables
+set(JSON_TARGET_NAME ${PROJECT_NAME})
+set(JSON_PACKAGE_NAME ${JSON_TARGET_NAME})
+set(JSON_TARGETS_FILENAME "${JSON_PACKAGE_NAME}Targets.cmake")
+set(JSON_CONFIG_FILENAME "${JSON_PACKAGE_NAME}Config.cmake")
+set(JSON_CONFIGVERSION_FILENAME "${JSON_PACKAGE_NAME}ConfigVersion.cmake")
+set(JSON_CONFIG_DESTINATION "cmake")
+set(JSON_INCLUDE_DESTINATION "include/nlohmann")
+
+# create and configure the library target
+add_library(${JSON_TARGET_NAME} INTERFACE)
+target_include_directories(${JSON_TARGET_NAME} INTERFACE
+  $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
+  $<INSTALL_INTERFACE:${JSON_INCLUDE_DESTINATION}>)
+
+# create and configure the unit test target
+if (BuildTests)
+    add_subdirectory(test)
+endif()
+
+# generate a config and config version file for the package
+include(CMakePackageConfigHelpers)
+configure_package_config_file("cmake/config.cmake.in"
+    "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIG_FILENAME}"
+    INSTALL_DESTINATION ${JSON_CONFIG_DESTINATION})
+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}"
+    VERSION ${PROJECT_VERSION}
+    COMPATIBILITY SameMajorVersion)
+
+# export the library target and store build directory in package registry
+export(TARGETS ${JSON_TARGET_NAME}
+	FILE "${CMAKE_CURRENT_BINARY_DIR}/${JSON_TARGETS_FILENAME}")
+export(PACKAGE ${JSON_PACKAGE_NAME})
+
+# install library target and config files
+install(TARGETS ${JSON_TARGET_NAME}
+	EXPORT ${JSON_PACKAGE_NAME})
+install(FILES "src/json.hpp"
+	DESTINATION ${JSON_INCLUDE_DESTINATION})
+install(EXPORT ${JSON_PACKAGE_NAME}
+	FILE ${JSON_TARGETS_FILENAME}
+	DESTINATION ${JSON_CONFIG_DESTINATION})
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIG_FILENAME}"
+	"${CMAKE_CURRENT_BINARY_DIR}/${JSON_CONFIGVERSION_FILENAME}"
+	DESTINATION ${JSON_CONFIG_DESTINATION})
diff --git a/resources/3rdparty/modernjson/ChangeLog.md b/resources/3rdparty/modernjson/ChangeLog.md
new file mode 100755
index 000000000..f0654ea28
--- /dev/null
+++ b/resources/3rdparty/modernjson/ChangeLog.md
@@ -0,0 +1,207 @@
+# Change Log
+All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
+
+## [Unreleased](https://github.com/nlohmann/json/tree/HEAD)
+
+[Full Changelog](https://github.com/nlohmann/json/compare/v1.1.0...HEAD)
+
+- Unit test fails when doing a CMake out-of-tree build [\#241](https://github.com/nlohmann/json/issues/241)
+- Additional integration options [\#237](https://github.com/nlohmann/json/issues/237)
+- Can't use basic\_json::iterator as a base iterator for std::move\_iterator [\#233](https://github.com/nlohmann/json/issues/233)
+- Provide a FAQ [\#163](https://github.com/nlohmann/json/issues/163)
+- Create PULL\_REQUEST\_TEMPLATE.md [\#213](https://github.com/nlohmann/json/pull/213) ([whackashoe](https://github.com/whackashoe))
+- fixed noexcept; added constexpr [\#208](https://github.com/nlohmann/json/pull/208) ([nlohmann](https://github.com/nlohmann))
+- Add support for afl-fuzz testing [\#207](https://github.com/nlohmann/json/pull/207) ([mykter](https://github.com/mykter))
+- Issue \#178 - Extending support to full uint64\_t/int64\_t range and unsigned type \(updated\) [\#193](https://github.com/nlohmann/json/pull/193) ([twelsby](https://github.com/twelsby))
+
+- -Wconversion warnings [\#239](https://github.com/nlohmann/json/issues/239)
+- ambiguous overload for 'push\_back' and 'operator+=' [\#235](https://github.com/nlohmann/json/issues/235)
+- double values are serialized with commas as decimal points [\#228](https://github.com/nlohmann/json/issues/228)
+- Move semantics with std::initializer\_list [\#225](https://github.com/nlohmann/json/issues/225)
+- abort during getline in yyfill [\#223](https://github.com/nlohmann/json/issues/223)
+- Wrong link in the README.md [\#217](https://github.com/nlohmann/json/issues/217)
+- Small bugs in json.hpp \(get\_number\) and unit.cpp \(non-standard integer type test\) [\#199](https://github.com/nlohmann/json/issues/199)
+- GCC/clang floating point parsing bug in strtod\(\) [\#195](https://github.com/nlohmann/json/issues/195)
+- Bugs in miloyip/nativejson-benchmark: roundtrips [\#187](https://github.com/nlohmann/json/issues/187)
+- Floating point exceptions [\#181](https://github.com/nlohmann/json/issues/181)
+- In basic\_json::basic\_json\(const CompatibleArrayType& val\), the requirement of CompatibleArrayType is not strict enough. [\#174](https://github.com/nlohmann/json/issues/174)
+- Implicit assignment to std::string fails [\#144](https://github.com/nlohmann/json/issues/144)
+- Issue \#195 - update Travis to Trusty due to gcc/clang strtod\(\) bug [\#196](https://github.com/nlohmann/json/pull/196) ([twelsby](https://github.com/twelsby))
+
+- Conflicting typedef of ssize\_t on Windows 32 bit when using Boost.Python [\#204](https://github.com/nlohmann/json/issues/204)
+- Integer conversion to unsigned [\#178](https://github.com/nlohmann/json/issues/178)
+
+- Out of tree builds and a few other miscellaneous CMake cleanups. [\#242](https://github.com/nlohmann/json/pull/242) ([ChrisKitching](https://github.com/ChrisKitching))
+- Implement additional integration options [\#238](https://github.com/nlohmann/json/pull/238) ([robertmrk](https://github.com/robertmrk))
+- make serialization locale-independent [\#232](https://github.com/nlohmann/json/pull/232) ([nlohmann](https://github.com/nlohmann))
+- fixes \#223 by updating README.md [\#227](https://github.com/nlohmann/json/pull/227) ([kevin--](https://github.com/kevin--))
+- Use namespace std for int64\_t and uint64\_t [\#226](https://github.com/nlohmann/json/pull/226) ([lv-zheng](https://github.com/lv-zheng))
+- Added missing cerrno header to fix ERANGE compile error on android [\#222](https://github.com/nlohmann/json/pull/222) ([Teemperor](https://github.com/Teemperor))
+- Corrected readme [\#218](https://github.com/nlohmann/json/pull/218) ([Annihil](https://github.com/Annihil))
+- replaced ssize\_t occurrences with auto \(addresses \#204\) [\#205](https://github.com/nlohmann/json/pull/205) ([nlohmann](https://github.com/nlohmann))
+- Fixed issue \#199 - Small bugs in json.hpp \(get\_number\) and unit.cpp \(non-standard integer type test\) [\#200](https://github.com/nlohmann/json/pull/200) ([twelsby](https://github.com/twelsby))
+- Fix broken link [\#197](https://github.com/nlohmann/json/pull/197) ([vog](https://github.com/vog))
+
+## [v1.1.0](https://github.com/nlohmann/json/releases/tag/v1.1.0) (2016-01-24)
+[Full Changelog](https://github.com/nlohmann/json/compare/v1.0.0...v1.1.0)
+
+- JSON performance benchmark comparision [\#177](https://github.com/nlohmann/json/issues/177)
+- Since re2c is often ignored in pull requests, it may make sense to make a contributing.md file [\#175](https://github.com/nlohmann/json/issues/175)
+- Add assertions [\#168](https://github.com/nlohmann/json/issues/168)
+- range based for loop for objects [\#83](https://github.com/nlohmann/json/issues/83)
+- Implementation of get\_ref\(\) [\#184](https://github.com/nlohmann/json/pull/184) ([dariomt](https://github.com/dariomt))
+
+- Small error in pull \#185 [\#194](https://github.com/nlohmann/json/issues/194)
+- Bugs in miloyip/nativejson-benchmark: floating-point parsing [\#186](https://github.com/nlohmann/json/issues/186)
+- Cannot index by key of type static constexpr const char\* [\#171](https://github.com/nlohmann/json/issues/171)
+- Fixed Issue \#171 - added two extra template overloads of operator\[\] for T\* arguments [\#189](https://github.com/nlohmann/json/pull/189) ([twelsby](https://github.com/twelsby))
+- Fixed issue \#167 - removed operator ValueType\(\) condition for VS2015 [\#188](https://github.com/nlohmann/json/pull/188) ([twelsby](https://github.com/twelsby))
+
+- Floating point equality [\#185](https://github.com/nlohmann/json/issues/185)
+- Unused variables in catch [\#180](https://github.com/nlohmann/json/issues/180)
+- Typo in documentation [\#179](https://github.com/nlohmann/json/issues/179)
+- Android? [\#172](https://github.com/nlohmann/json/issues/172)
+- MSVC 2015 build fails when attempting to compare object\_t [\#167](https://github.com/nlohmann/json/issues/167)
+- Member detector is not portable [\#166](https://github.com/nlohmann/json/issues/166)
+- Unnecessary const\_cast [\#162](https://github.com/nlohmann/json/issues/162)
+- Consider submitting this to the Boost Library Incubator [\#66](https://github.com/nlohmann/json/issues/66)
+
+- Fixed Issue \#186 - add strto\(f|d|ld\) overload wrappers, "-0.0" special case and FP trailing zero [\#191](https://github.com/nlohmann/json/pull/191) ([twelsby](https://github.com/twelsby))
+- Issue \#185 - remove approx\(\) and use \#pragma to kill warnings [\#190](https://github.com/nlohmann/json/pull/190) ([twelsby](https://github.com/twelsby))
+- Fixed some typos in CONTRIBUTING.md [\#182](https://github.com/nlohmann/json/pull/182) ([nibroc](https://github.com/nibroc))
+
+## [v1.0.0](https://github.com/nlohmann/json/releases/tag/v1.0.0) (2015-12-27)
+[Full Changelog](https://github.com/nlohmann/json/compare/v1.0.0-rc1...v1.0.0)
+
+- add key name to exception [\#160](https://github.com/nlohmann/json/issues/160)
+- prevent json.hpp from emitting compiler warnings [\#154](https://github.com/nlohmann/json/issues/154)
+- json::parse\(string\) does not check utf8 bom [\#152](https://github.com/nlohmann/json/issues/152)
+- unsigned 64bit values output as signed [\#151](https://github.com/nlohmann/json/issues/151)
+- Wish feature: json5 [\#150](https://github.com/nlohmann/json/issues/150)
+- overload of at\(\) with default value [\#133](https://github.com/nlohmann/json/issues/133)
+- Memory leak in face of exceptions [\#118](https://github.com/nlohmann/json/issues/118)
+- Find and Count for arrays [\#117](https://github.com/nlohmann/json/issues/117)
+- dynamically constructing an arbitrarily nested object [\#114](https://github.com/nlohmann/json/issues/114)
+- object field accessors [\#103](https://github.com/nlohmann/json/issues/103)
+- v8pp and json [\#95](https://github.com/nlohmann/json/issues/95)
+- Wishlist [\#65](https://github.com/nlohmann/json/issues/65)
+- Windows/Visual Studio \(through 2013\) is unsupported [\#62](https://github.com/nlohmann/json/issues/62)
+
+- Bug in basic\_json::operator\[\] const overload [\#135](https://github.com/nlohmann/json/issues/135)
+- wrong enable\_if for const pointer \(instead of pointer-to-const\) [\#134](https://github.com/nlohmann/json/issues/134)
+- Visual Studio 14 Debug assertion failed [\#125](https://github.com/nlohmann/json/issues/125)
+- Compile error with g++ 4.9.3 cygwin 64-bit [\#112](https://github.com/nlohmann/json/issues/112)
+- error: unterminated raw string [\#109](https://github.com/nlohmann/json/issues/109)
+- \[clang-3.6.2\] string/sstream with number to json issue [\#107](https://github.com/nlohmann/json/issues/107)
+
+- Getting member discarding qualifyer [\#159](https://github.com/nlohmann/json/issues/159)
+- basic\_json::iterator::value\(\) output includes quotes while basic\_json::iterator::key\(\) doesn't [\#158](https://github.com/nlohmann/json/issues/158)
+- Indexing `const basic\_json\<\>` with `const basic\_string\<char\>` [\#157](https://github.com/nlohmann/json/issues/157)
+- token\_type\_name\(token\_type t\): not all control paths return a value [\#156](https://github.com/nlohmann/json/issues/156)
+- Unable to compile on MSVC 2015 with SDL checking enabled: This function or variable may be unsafe. [\#149](https://github.com/nlohmann/json/issues/149)
+- dump\(\)  convert strings encoded by utf-8 to shift-jis on windows 10.  [\#147](https://github.com/nlohmann/json/issues/147)
+- Unable to get field names in a json object [\#145](https://github.com/nlohmann/json/issues/145)
+- json.hpp:5746:32: error: 'to\_string' is not a member of 'std' [\#136](https://github.com/nlohmann/json/issues/136)
+- Returning any data type [\#113](https://github.com/nlohmann/json/issues/113)
+- vector\<json\> copy constructor really weird [\#108](https://github.com/nlohmann/json/issues/108)
+- maintaining order of keys during iteration [\#106](https://github.com/nlohmann/json/issues/106)
+
+- Replace sprintf with hex function, this fixes \#149 [\#153](https://github.com/nlohmann/json/pull/153) ([whackashoe](https://github.com/whackashoe))
+- Fix character skipping after a surrogate pair [\#146](https://github.com/nlohmann/json/pull/146) ([robertmrk](https://github.com/robertmrk))
+- Detect correctly pointer-to-const [\#137](https://github.com/nlohmann/json/pull/137) ([dariomt](https://github.com/dariomt))
+- disabled "CopyAssignable" test for MSVC in Debug mode, see \#125 [\#131](https://github.com/nlohmann/json/pull/131) ([dariomt](https://github.com/dariomt))
+- removed stream operator for iterator, resolution for \#125 [\#130](https://github.com/nlohmann/json/pull/130) ([dariomt](https://github.com/dariomt))
+- fixed typos in comments for examples [\#129](https://github.com/nlohmann/json/pull/129) ([dariomt](https://github.com/dariomt))
+- Remove superfluous inefficiency [\#126](https://github.com/nlohmann/json/pull/126) ([d-frey](https://github.com/d-frey))
+- remove invalid parameter '-stdlib=libc++' in CMakeLists.txt [\#124](https://github.com/nlohmann/json/pull/124) ([emvivre](https://github.com/emvivre))
+- exception-safe object creation, fixes \#118 [\#122](https://github.com/nlohmann/json/pull/122) ([d-frey](https://github.com/d-frey))
+- Fix small oversight. [\#121](https://github.com/nlohmann/json/pull/121) ([ColinH](https://github.com/ColinH))
+- Overload parse\(\) to accept an rvalue reference [\#120](https://github.com/nlohmann/json/pull/120) ([silverweed](https://github.com/silverweed))
+- Use the right variable name in doc string [\#115](https://github.com/nlohmann/json/pull/115) ([whoshuu](https://github.com/whoshuu))
+
+## [v1.0.0-rc1](https://github.com/nlohmann/json/releases/tag/v1.0.0-rc1) (2015-07-26)
+- Adjust wording to JSON RFC [\#97](https://github.com/nlohmann/json/issues/97)
+- access by \(const\) reference [\#91](https://github.com/nlohmann/json/issues/91)
+- is\_integer and is\_float tests [\#90](https://github.com/nlohmann/json/issues/90)
+- MinGW have no std::to\_string [\#80](https://github.com/nlohmann/json/issues/80)
+- erase elements using iterators [\#57](https://github.com/nlohmann/json/issues/57)
+- Removing item from array [\#56](https://github.com/nlohmann/json/issues/56)
+- Serialize/Deserialize like PHP? [\#55](https://github.com/nlohmann/json/issues/55)
+- Document erase, count, and iterators key and value [\#52](https://github.com/nlohmann/json/issues/52)
+- Supported compilers [\#50](https://github.com/nlohmann/json/issues/50)
+- Use non-member begin/end [\#48](https://github.com/nlohmann/json/issues/48)
+- Erase key [\#47](https://github.com/nlohmann/json/issues/47)
+- Key iterator [\#46](https://github.com/nlohmann/json/issues/46)
+- Add count member function [\#45](https://github.com/nlohmann/json/issues/45)
+- Printing attribute names [\#39](https://github.com/nlohmann/json/issues/39)
+- Avoid using spaces when encoding without pretty print [\#31](https://github.com/nlohmann/json/issues/31)
+- Cannot encode long numbers [\#30](https://github.com/nlohmann/json/issues/30)
+- Creating an empty array [\#27](https://github.com/nlohmann/json/issues/27)
+- Custom allocator support [\#25](https://github.com/nlohmann/json/issues/25)
+- create a header-only version [\#16](https://github.com/nlohmann/json/issues/16)
+- Add to\_string overload for indentation [\#13](https://github.com/nlohmann/json/issues/13)
+- move code into namespace [\#9](https://github.com/nlohmann/json/issues/9)
+- free functions for explicit objects and arrays in initializer lists [\#8](https://github.com/nlohmann/json/issues/8)
+- Test case coverage [\#2](https://github.com/nlohmann/json/issues/2)
+- Parse streams incrementally. [\#40](https://github.com/nlohmann/json/pull/40) ([aburgh](https://github.com/aburgh))
+
+- Binary string causes numbers to be dumped as hex [\#101](https://github.com/nlohmann/json/issues/101)
+- failed to iterator json object with reverse\_iterator [\#100](https://github.com/nlohmann/json/issues/100)
+- static analysis warnings [\#94](https://github.com/nlohmann/json/issues/94)
+- reverse\_iterator operator inheritance problem [\#93](https://github.com/nlohmann/json/issues/93)
+- Nonstandard integer type [\#89](https://github.com/nlohmann/json/issues/89)
+- lexer::get\_number return NAN [\#82](https://github.com/nlohmann/json/issues/82)
+- Handle infinity and NaN cases [\#70](https://github.com/nlohmann/json/issues/70)
+- errors in g++-4.8.1 [\#68](https://github.com/nlohmann/json/issues/68)
+- Double quotation mark is not parsed correctly [\#60](https://github.com/nlohmann/json/issues/60)
+- Do not use std::to\_string [\#51](https://github.com/nlohmann/json/issues/51)
+- Confused about iterating through json objects [\#49](https://github.com/nlohmann/json/issues/49)
+- Problem getting vector \(array\) of strings [\#44](https://github.com/nlohmann/json/issues/44)
+- Compilation error due to assuming that private=public [\#43](https://github.com/nlohmann/json/issues/43)
+- Use of deprecated implicit copy constructor [\#42](https://github.com/nlohmann/json/issues/42)
+- dumping a small number\_float just outputs 0.000000 [\#37](https://github.com/nlohmann/json/issues/37)
+- Avoid using spaces when encoding without pretty print [\#31](https://github.com/nlohmann/json/issues/31)
+- Cannot encode long numbers [\#30](https://github.com/nlohmann/json/issues/30)
+- segmentation fault when iterating over empty arrays/objects [\#28](https://github.com/nlohmann/json/issues/28)
+- Improper parsing of JSON string "\\" [\#17](https://github.com/nlohmann/json/issues/17)
+- Don't return "const values" [\#15](https://github.com/nlohmann/json/issues/15)
+- string parser does not recognize uncompliant strings [\#12](https://github.com/nlohmann/json/issues/12)
+- free functions for explicit objects and arrays in initializer lists [\#8](https://github.com/nlohmann/json/issues/8)
+- Runtime error in Travis job [\#1](https://github.com/nlohmann/json/issues/1)
+- Fix compilation of json\_unit with GCC 5 [\#59](https://github.com/nlohmann/json/pull/59) ([dkopecek](https://github.com/dkopecek))
+
+- Finish documenting the public interface in Doxygen [\#102](https://github.com/nlohmann/json/issues/102)
+- 'noexcept' : unknown override specifier [\#99](https://github.com/nlohmann/json/issues/99)
+- Keys when iterating over objects [\#67](https://github.com/nlohmann/json/issues/67)
+- Complete brief documentation [\#61](https://github.com/nlohmann/json/issues/61)
+- Get coverage back to 100% [\#58](https://github.com/nlohmann/json/issues/58)
+- possible double-free in find function [\#11](https://github.com/nlohmann/json/issues/11)
+- UTF-8 encoding/deconding/testing [\#10](https://github.com/nlohmann/json/issues/10)
+- Add unit tests [\#4](https://github.com/nlohmann/json/issues/4)
+- Drop C++98 support [\#3](https://github.com/nlohmann/json/issues/3)
+
+- Keyword 'inline' is useless when member functions are defined in headers [\#87](https://github.com/nlohmann/json/pull/87) ([ahamez](https://github.com/ahamez))
+- Remove useless typename [\#86](https://github.com/nlohmann/json/pull/86) ([ahamez](https://github.com/ahamez))
+- Avoid warning with Xcode's clang [\#85](https://github.com/nlohmann/json/pull/85) ([ahamez](https://github.com/ahamez))
+-  Fix typos [\#73](https://github.com/nlohmann/json/pull/73) ([aqnouch](https://github.com/aqnouch))
+- Replace `default\_callback` function with `nullptr` and check for null… [\#72](https://github.com/nlohmann/json/pull/72) ([aburgh](https://github.com/aburgh))
+- support enum [\#71](https://github.com/nlohmann/json/pull/71) ([likebeta](https://github.com/likebeta))
+- Fix performance regression introduced with the parsing callback feature. [\#69](https://github.com/nlohmann/json/pull/69) ([aburgh](https://github.com/aburgh))
+- Improve the implementations of the comparission-operators [\#63](https://github.com/nlohmann/json/pull/63) ([Florianjw](https://github.com/Florianjw))
+- Feature/small float serialization [\#38](https://github.com/nlohmann/json/pull/38) ([jrandall](https://github.com/jrandall))
+- template version with re2c scanner [\#36](https://github.com/nlohmann/json/pull/36) ([nlohmann](https://github.com/nlohmann))
+- more descriptive documentation in example [\#33](https://github.com/nlohmann/json/pull/33) ([luxe](https://github.com/luxe))
+- Fix string conversion under Clang [\#26](https://github.com/nlohmann/json/pull/26) ([wancw](https://github.com/wancw))
+- Fixed dumping of strings [\#24](https://github.com/nlohmann/json/pull/24) ([Teemperor](https://github.com/Teemperor))
+- Added a remark to the readme that coverage is GCC only for now [\#23](https://github.com/nlohmann/json/pull/23) ([Teemperor](https://github.com/Teemperor))
+- Unicode escaping [\#22](https://github.com/nlohmann/json/pull/22) ([Teemperor](https://github.com/Teemperor))
+- Implemented the JSON spec for string parsing for everything but the \uXXXX escaping [\#21](https://github.com/nlohmann/json/pull/21) ([Teemperor](https://github.com/Teemperor))
+- add the std iterator typedefs to iterator and const\_iterator [\#19](https://github.com/nlohmann/json/pull/19) ([kirkshoop](https://github.com/kirkshoop))
+- Fixed escaped quotes [\#18](https://github.com/nlohmann/json/pull/18) ([Teemperor](https://github.com/Teemperor))
+- Fix double delete on std::bad\_alloc exception [\#14](https://github.com/nlohmann/json/pull/14) ([elliotgoodrich](https://github.com/elliotgoodrich))
+- Added CMake and lcov [\#6](https://github.com/nlohmann/json/pull/6) ([Teemperor](https://github.com/Teemperor))
+- Version 2.0 [\#5](https://github.com/nlohmann/json/pull/5) ([nlohmann](https://github.com/nlohmann))
+
+
+
+\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/LICENSE.MIT b/resources/3rdparty/modernjson/LICENSE.MIT
new file mode 100755
index 000000000..e2ac4891d
--- /dev/null
+++ b/resources/3rdparty/modernjson/LICENSE.MIT
@@ -0,0 +1,22 @@
+The library is licensed under the MIT License 
+<http://opensource.org/licenses/MIT>:
+
+Copyright (c) 2013-2016 Niels Lohmann
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/resources/3rdparty/modernjson/Makefile b/resources/3rdparty/modernjson/Makefile
new file mode 100755
index 000000000..6fdc06b9d
--- /dev/null
+++ b/resources/3rdparty/modernjson/Makefile
@@ -0,0 +1,98 @@
+.PHONY: pretty clean ChangeLog.md
+
+# used programs
+RE2C = re2c
+SED = sed
+
+# main target
+all: json_unit
+
+# clean up
+clean:
+	rm -fr json_unit json_benchmarks fuzz fuzz-testing *.dSYM
+
+
+##########################################################################
+# unit tests
+##########################################################################
+
+# additional flags
+FLAGS = -Wall -Wextra -pedantic -Weffc++ -Wcast-align -Wcast-qual -Wctor-dtor-privacy -Wdisabled-optimization -Wformat=2 -Winit-self -Wmissing-declarations -Wmissing-include-dirs -Wold-style-cast -Woverloaded-virtual -Wredundant-decls -Wshadow -Wsign-conversion -Wsign-promo -Wstrict-overflow=5 -Wswitch -Wundef -Wno-unused -Wnon-virtual-dtor -Wreorder -Wdeprecated -Wfloat-equal
+
+# build unit tests (TODO: Does this want its own makefile?)
+json_unit: test/src/unit.cpp src/json.hpp test/src/catch.hpp
+	$(CXX) -std=c++11 $(CXXFLAGS) $(FLAGS) $(CPPFLAGS) -I src -I test $< $(LDFLAGS) -o $@
+
+
+##########################################################################
+# documentation tests
+##########################################################################
+
+# compile example files and check output
+doctest:
+	make check_output -C doc
+
+
+##########################################################################
+# fuzzing
+##########################################################################
+
+# the overall fuzz testing target
+fuzz_testing:
+	rm -fr fuzz-testing
+	mkdir -p fuzz-testing fuzz-testing/testcases fuzz-testing/out
+	$(MAKE) fuzz CXX=afl-clang++
+	mv fuzz fuzz-testing
+	find test/data/json_tests -size -5k -name *json | xargs -I{} cp "{}" fuzz-testing/testcases
+	@echo "Execute: afl-fuzz -i fuzz-testing/testcases -o fuzz-testing/out fuzz-testing/fuzz"
+
+# the fuzzer binary
+fuzz: test/src/fuzz.cpp src/json.hpp
+	$(CXX) -std=c++11 $(CXXFLAGS) $(FLAGS) $(CPPFLAGS) -I src $< $(LDFLAGS) -o $@
+
+
+##########################################################################
+# static analyzer
+##########################################################################
+
+# call cppcheck on the main header file
+cppcheck:
+	cppcheck --enable=all --inconclusive --std=c++11 src/json.hpp
+
+
+##########################################################################
+# maintainer targets
+##########################################################################
+
+# create scanner with re2c
+re2c: src/json.hpp.re2c
+	$(RE2C) --bit-vectors --nested-ifs --no-debug-info $< | $(SED) '1d' > src/json.hpp
+
+# pretty printer
+pretty:
+	astyle --style=allman --indent=spaces=4 --indent-modifiers \
+	   --indent-switches --indent-preproc-block --indent-preproc-define \
+	   --indent-col1-comments --pad-oper --pad-header --align-pointer=type \
+	   --align-reference=type --add-brackets --convert-tabs --close-templates \
+	   --lineend=linux --preserve-date --suffix=none --formatted \
+	   src/json.hpp src/json.hpp.re2c test/src/unit.cpp test/src/fuzz.cpp benchmarks/benchmarks.cpp doc/examples/*.cpp
+
+
+##########################################################################
+# benchmarks
+##########################################################################
+
+# benchmarks
+json_benchmarks: benchmarks/benchmarks.cpp benchmarks/benchpress.hpp benchmarks/cxxopts.hpp src/json.hpp
+	$(CXX) -std=c++11 $(CXXFLAGS) -O3 -flto -I src -I benchmarks $< $(LDFLAGS) -o $@
+	./json_benchmarks
+
+
+##########################################################################
+# changelog
+##########################################################################
+
+ChangeLog.md:
+	github_changelog_generator -o ChangeLog.md --simple-list --release-url https://github.com/nlohmann/json/releases/tag/%s
+	gsed -i 's|https://github.com/nlohmann/json/releases/tag/HEAD|https://github.com/nlohmann/json/tree/HEAD|' ChangeLog.md
+	gsed -i '2i All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).' ChangeLog.md
diff --git a/resources/3rdparty/modernjson/README.md b/resources/3rdparty/modernjson/README.md
new file mode 100755
index 000000000..0d2cbf45c
--- /dev/null
+++ b/resources/3rdparty/modernjson/README.md
@@ -0,0 +1,456 @@
+![JSON for Modern C++](https://raw.githubusercontent.com/nlohmann/json/master/doc/json.gif)
+
+[![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json)
+[![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk?svg=true)](https://ci.appveyor.com/project/nlohmann/json)
+[![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json)
+[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/wuiuqYiYqRTdI3rG)
+[![Documentation Status](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json)
+[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT)
+[![Github Releases](https://img.shields.io/github/release/nlohmann/json.svg)](https://github.com/nlohmann/json/releases)
+[![Github Issues](https://img.shields.io/github/issues/nlohmann/json.svg)](http://github.com/nlohmann/json/issues)
+
+## Design goals
+
+There are myriads of [JSON](http://json.org) libraries out there, and each may even have its reason to exist. Our class had these design goals:
+
+- **Intuitive syntax**. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the [examples below](#examples) and you know, what I mean.
+
+- **Trivial integration**. Our whole code consists of a single header file `json.hpp`. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings.
+
+- **Serious testing**. Our class is heavily [unit-tested](https://github.com/nlohmann/json/blob/master/test/src/unit.cpp) and covers [100%](https://coveralls.io/r/nlohmann/json) of the code, including all exceptional behavior. Furthermore, we checked with [Valgrind](http://valgrind.org) that there are no memory leaks.
+
+Other aspects were not so important to us:
+
+- **Memory efficiency**. Each JSON object has an overhead of one pointer (the maximal size of a union) and one enumeration element (1 byte). The default generalization uses the following C++ data types: `std::string` for strings, `int64_t`, `uint64_t` or `double` for numbers, `std::map` for objects, `std::vector` for arrays, and `bool` for Booleans. However, you can template the generalized class `basic_json` to your needs.
+
+- **Speed**. We currently implement the parser as naive [recursive descent parser](http://en.wikipedia.org/wiki/Recursive_descent_parser) with hand coded string handling. It is fast enough, but a [LALR-parser](http://en.wikipedia.org/wiki/LALR_parser) with a decent regular expression processor should be even faster (but would consist of more files which makes the integration harder).
+
+See the [contribution guidelines](https://github.com/nlohmann/json/blob/master/.github/CONTRIBUTING.md#please-dont) for more information.
+
+## Integration
+
+The single required source, file `json.hpp` is in the `src` directory or [released here](https://github.com/nlohmann/json/releases). All you need to do is add
+
+```cpp
+#include "json.hpp"
+
+// for convenience
+using json = nlohmann::json;
+```
+
+to the files you want to use JSON objects. That's it. Do not forget to set the necessary switches to enable C++11 (e.g., `-std=c++11` for GCC and Clang).
+
+## Supported compilers
+
+Though it's 2016 already, the support for C++11 is still a bit sparse. Currently, the following compilers are known to work:
+
+- GCC 4.9 - 6.0 (and possibly later)
+- Clang 3.4 - 3.9 (and possibly later)
+- Microsoft Visual C++ 14.0 RC (and possibly later)
+
+The code is currently checked with Travis for GCC 4.9, GCC 
+
+I would be happy to learn about other compilers/versions.
+
+Please note:
+
+- GCC 4.8 does not work because of two bugs ([55817](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55817) and [57824](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57824)) in the C++11 support. Note there is a [pull request](https://github.com/nlohmann/json/pull/212) to fix some of the issues.
+- Android defaults to using very old compilers and C++ libraries. To fix this, add the following to your `Application.mk`. This will switch to the LLVM C++ library, the Clang compiler, and enable C++11 and other features disabled by default.
+ 
+    ```
+    APP_STL := c++_shared
+    NDK_TOOLCHAIN_VERSION := clang3.6
+    APP_CPPFLAGS += -frtti -fexceptions
+    ```
+ 
+- For GCC running on MinGW or Android SDK, the error `'to_string' is not a member of 'std'` (or similarly, for `strtod`) may occur. Note this is not an issue with the code,  but rather with the compiler itself. On Android, see above to build with a newer environment.  For MinGW, please refer to [this site](http://tehsausage.com/mingw-to-string) and [this discussion](https://github.com/nlohmann/json/issues/136) for information on how to fix this bug.
+
+The following compilers are currently used in [continuous integration](https://travis-ci.org/nlohmann/json):
+
+| Compiler        | Operating System             | Version String |
+|-----------------|------------------------------|----------------|
+| GCC 4.9.3       | Ubuntu 14.04.3 LTS           | g++-4.9 (Ubuntu 4.9.3-8ubuntu2~14.04) 4.9.3 |
+| GCC 5.3.0       | Ubuntu 14.04.3 LTS           | g++-5 (Ubuntu 5.3.0-3ubuntu1~14.04) 5.3.0 20151204 |
+| Clang 3.6.2     | Ubuntu 14.04.3 LTS           | Ubuntu clang version 3.6.2-svn240577-1~exp1 (branches/release_36) (based on LLVM 3.6.2) |
+| Clang 3.7.1     | Ubuntu 14.04.3 LTS           | Ubuntu clang version 3.7.1-svn253571-1~exp1 (branches/release_37) (based on LLVM 3.7.1) |
+| Clang 3.8.1     | Ubuntu 14.04.3 LTS           | clang version 3.8.1-svn265380-1~exp1 (branches/release_38) |
+| Clang 3.9.0     | Ubuntu 14.04.3 LTS           | clang version 3.9.0-svn267478-1~exp1 (trunk) |
+| Clang Xcode 6.1 | Darwin Kernel Version 13.4.0 | Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn) |
+| Clang Xcode 6.2 | Darwin Kernel Version 13.4.0 | Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) |
+| Clang Xcode 6.3 | Darwin Kernel Version 14.3.0 | Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn) |
+| Clang Xcode 6.4 | Darwin Kernel Version 14.3.0 | Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) |
+| Clang Xcode 7.1 | Darwin Kernel Version 14.5.0 | Apple LLVM version 7.0.0 (clang-700.1.76) |
+| Clang Xcode 7.2 | Darwin Kernel Version 15.0.0 | Apple LLVM version 7.0.2 (clang-700.1.81) |
+| Clang Xcode 7.3 | Darwin Kernel Version 14.5.0 | Apple LLVM version 7.3.0 (clang-703.0.29) |
+| Visual Studio 14 2015 | Windows Server 2012 R2 (x64) | Microsoft (R) Build Engine version 14.0.25123.0 | 
+
+## Examples
+
+Here are some examples to give you an idea how to use the class.
+
+Assume you want to create the JSON object
+
+```json
+{
+  "pi": 3.141,
+  "happy": true,
+  "name": "Niels",
+  "nothing": null,
+  "answer": {
+    "everything": 42
+  },
+  "list": [1, 0, 2],
+  "object": {
+    "currency": "USD",
+    "value": 42.99
+  }
+}
+```
+
+With the JSON class, you could write:
+
+```cpp
+// create an empty structure (null)
+json j;
+
+// add a number that is stored as double (note the implicit conversion of j to an object)
+j["pi"] = 3.141;
+
+// add a Boolean that is stored as bool
+j["happy"] = true;
+
+// add a string that is stored as std::string
+j["name"] = "Niels";
+
+// add another null object by passing nullptr
+j["nothing"] = nullptr;
+
+// add an object inside the object
+j["answer"]["everything"] = 42;
+
+// add an array that is stored as std::vector (using an initializer list)
+j["list"] = { 1, 0, 2 };
+
+// add another object (using an initializer list of pairs)
+j["object"] = { {"currency", "USD"}, {"value", 42.99} };
+
+// instead, you could also write (which looks very similar to the JSON above)
+json j2 = {
+  {"pi", 3.141},
+  {"happy", true},
+  {"name", "Niels"},
+  {"nothing", nullptr},
+  {"answer", {
+    {"everything", 42}
+  }},
+  {"list", {1, 0, 2}},
+  {"object", {
+    {"currency", "USD"},
+    {"value", 42.99}
+  }}
+};
+```
+
+Note that in all these cases, you never need to "tell" the compiler which JSON value you want to use. If you want to be explicit or express some edge cases, the functions `json::array` and `json::object` will help:
+
+```cpp
+// a way to express the empty array []
+json empty_array_explicit = json::array();
+
+// ways to express the empty object {}
+json empty_object_implicit = json({});
+json empty_object_explicit = json::object();
+
+// a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]]
+json array_not_object = { json::array({"currency", "USD"}), json::array({"value", 42.99}) };
+```
+
+### Serialization / Deserialization
+
+You can create an object (deserialization) by appending `_json` to a string literal:
+
+```cpp
+// create object from string literal
+json j = "{ \"happy\": true, \"pi\": 3.141 }"_json;
+
+// or even nicer (thanks http://isocpp.org/blog/2015/01/json-for-modern-cpp)
+auto j2 = R"(
+  {
+    "happy": true,
+    "pi": 3.141
+  }
+)"_json;
+
+// or explicitly
+auto j3 = json::parse("{ \"happy\": true, \"pi\": 3.141 }");
+```
+
+You can also get a string representation (serialize):
+
+```cpp
+// explicit conversion to string
+std::string s = j.dump();    // {\"happy\":true,\"pi\":3.141}
+
+// serialization with pretty printing
+// pass in the amount of spaces to indent
+std::cout << j.dump(4) << std::endl;
+// {
+//     "happy": true,
+//     "pi": 3.141
+// }
+```
+
+You can also use streams to serialize and deserialize:
+
+```cpp
+// deserialize from standard input
+json j;
+std::cin >> j;
+
+// serialize to standard output
+std::cout << j;
+
+// the setw manipulator was overloaded to set the indentation for pretty printing
+std::cout << std::setw(4) << j << std::endl;
+```
+
+These operators work for any subclasses of `std::istream` or `std::ostream`.
+
+Please note that setting the exception bit for `failbit` is inappropriate for this use case. It will result in program termination due to the `noexcept` specifier in use.
+
+### STL-like access
+
+We designed the JSON class to behave just like an STL container. In fact, it satisfies the [**ReversibleContainer**](http://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirement.
+
+```cpp
+// create an array using push_back
+json j;
+j.push_back("foo");
+j.push_back(1);
+j.push_back(true);
+
+// iterate the array
+for (json::iterator it = j.begin(); it != j.end(); ++it) {
+  std::cout << *it << '\n';
+}
+
+// range-based for
+for (auto& element : j) {
+  std::cout << element << '\n';
+}
+
+// getter/setter
+const std::string tmp = j[0];
+j[1] = 42;
+bool foo = j.at(2);
+
+// other stuff
+j.size();     // 3 entries
+j.empty();    // false
+j.type();     // json::value_t::array
+j.clear();    // the array is empty again
+
+// convenience type checkers
+j.is_null();
+j.is_boolean();
+j.is_number();
+j.is_object();
+j.is_array();
+j.is_string();
+
+// comparison
+j == "[\"foo\", 1, true]"_json;  // true
+
+// create an object
+json o;
+o["foo"] = 23;
+o["bar"] = false;
+o["baz"] = 3.141;
+
+// special iterator member functions for objects
+for (json::iterator it = o.begin(); it != o.end(); ++it) {
+  std::cout << it.key() << " : " << it.value() << "\n";
+}
+
+// find an entry
+if (o.find("foo") != o.end()) {
+  // there is an entry with key "foo"
+}
+
+// or simpler using count()
+int foo_present = o.count("foo"); // 1
+int fob_present = o.count("fob"); // 0
+
+// delete an entry
+o.erase("foo");
+```
+
+### Conversion from STL containers
+
+Any sequence container (`std::array`, `std::vector`, `std::deque`, `std::forward_list`, `std::list`) whose values can be used to construct JSON types (e.g., integers, floating point numbers, Booleans, string types, or again STL containers described in this section) can be used to create a JSON array. The same holds for similar associative containers (`std::set`, `std::multiset`, `std::unordered_set`, `std::unordered_multiset`), but in these cases the order of the elements of the array depends how the elements are ordered in the respective STL container.
+
+```cpp
+std::vector<int> c_vector {1, 2, 3, 4};
+json j_vec(c_vector);
+// [1, 2, 3, 4]
+
+std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};
+json j_deque(c_deque);
+// [1.2, 2.3, 3.4, 5.6]
+
+std::list<bool> c_list {true, true, false, true};
+json j_list(c_list);
+// [true, true, false, true]
+
+std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};
+json j_flist(c_flist);
+// [12345678909876, 23456789098765, 34567890987654, 45678909876543]
+
+std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};
+json j_array(c_array);
+// [1, 2, 3, 4]
+
+std::set<std::string> c_set {"one", "two", "three", "four", "one"};
+json j_set(c_set); // only one entry for "one" is used
+// ["four", "one", "three", "two"]
+
+std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"};
+json j_uset(c_uset); // only one entry for "one" is used
+// maybe ["two", "three", "four", "one"]
+
+std::multiset<std::string> c_mset {"one", "two", "one", "four"};
+json j_mset(c_mset); // only one entry for "one" is used
+// maybe ["one", "two", "four"]
+
+std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"};
+json j_umset(c_umset); // both entries for "one" are used
+// maybe ["one", "two", "one", "four"]
+```
+
+Likewise, any associative key-value containers (`std::map`, `std::multimap`, `std::unordered_map`, `std::unordered_multimap`) whose keys are can construct an `std::string` and whose values can be used to construct JSON types (see examples above) can be used to to create a JSON object. Note that in case of multimaps only one key is used in the JSON object and the value depends on the internal order of the STL container.
+
+```cpp
+std::map<std::string, int> c_map { {"one", 1}, {"two", 2}, {"three", 3} };
+json j_map(c_map);
+// {"one": 1, "three": 3, "two": 2 }
+
+std::unordered_map<const char*, double> c_umap { {"one", 1.2}, {"two", 2.3}, {"three", 3.4} };
+json j_umap(c_umap);
+// {"one": 1.2, "two": 2.3, "three": 3.4}
+
+std::multimap<std::string, bool> c_mmap { {"one", true}, {"two", true}, {"three", false}, {"three", true} };
+json j_mmap(c_mmap); // only one entry for key "three" is used
+// maybe {"one": true, "two": true, "three": true}
+
+std::unordered_multimap<std::string, bool> c_ummap { {"one", true}, {"two", true}, {"three", false}, {"three", true} };
+json j_ummap(c_ummap); // only one entry for key "three" is used
+// maybe {"one": true, "two": true, "three": true}
+```
+
+### Implicit conversions
+
+The type of the JSON object is determined automatically by the expression to store. Likewise, the stored value is implicitly converted.
+
+```cpp
+/// strings
+std::string s1 = "Hello, world!";
+json js = s1;
+std::string s2 = js;
+
+// Booleans
+bool b1 = true;
+json jb = b1;
+bool b2 = jb;
+
+// numbers
+int i = 42;
+json jn = i;
+double f = jn;
+
+// etc.
+```
+
+You can also explicitly ask for the value:
+
+```cpp
+std::string vs = js.get<std::string>();
+bool vb = jb.get<bool>();
+int vi = jn.get<int>();
+
+// etc.
+```
+
+## License
+
+<img align="right" src="http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png">
+
+The class is licensed under the [MIT License](http://opensource.org/licenses/MIT):
+
+Copyright &copy; 2013-2016 [Niels Lohmann](http://nlohmann.me)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+## Thanks
+
+I deeply appreciate the help of the following people.
+
+- [Teemperor](https://github.com/Teemperor) implemented CMake support and lcov integration, realized escape and Unicode handling in the string parser, and fixed the JSON serialization.
+- [elliotgoodrich](https://github.com/elliotgoodrich) fixed an issue with double deletion in the iterator classes.
+- [kirkshoop](https://github.com/kirkshoop) made the iterators of the class composable to other libraries.
+- [wancw](https://github.com/wanwc) fixed a bug that hindered the class to compile with Clang.
+- Tomas Åblad found a bug in the iterator implementation.
+- [Joshua C. Randall](https://github.com/jrandall) fixed a bug in the floating-point serialization.
+- [Aaron Burghardt](https://github.com/aburgh) implemented code to parse streams incrementally. Furthermore, he greatly improved the parser class by allowing the definition of a filter function to discard undesired elements while parsing.
+- [Daniel Kopeček](https://github.com/dkopecek) fixed a bug in the compilation with GCC 5.0.
+- [Florian Weber](https://github.com/Florianjw) fixed a bug in and improved the performance of the comparison operators.
+- [Eric Cornelius](https://github.com/EricMCornelius) pointed out a bug in the handling with NaN and infinity values. He also improved the performance of the string escaping.
+- [易思龙](https://github.com/likebeta) implemented a conversion from anonymous enums.
+- [kepkin](https://github.com/kepkin) patiently pushed forward the support for Microsoft Visual studio.
+- [gregmarr](https://github.com/gregmarr) simplified the implementation of reverse iterators and helped with numerous hints and improvements.
+- [Caio Luppi](https://github.com/caiovlp) fixed a bug in the Unicode handling.
+- [dariomt](https://github.com/dariomt) fixed some typos in the examples.
+- [Daniel Frey](https://github.com/d-frey) cleaned up some pointers and implemented exception-safe memory allocation.
+- [Colin Hirsch](https://github.com/ColinH) took care of a small namespace issue.
+- [Huu Nguyen](https://github.com/whoshuu) correct a variable name in the documentation.
+- [Silverweed](https://github.com/silverweed) overloaded `parse()` to accept an rvalue reference.
+- [dariomt](https://github.com/dariomt) fixed a subtlety in MSVC type support and implemented the `get_ref()` function to get a reference to stored values.
+- [ZahlGraf](https://github.com/ZahlGraf) added a workaround that allows compilation using Android NDK.
+- [whackashoe](https://github.com/whackashoe) replaced a function that was marked as unsafe by Visual Studio.
+- [406345](https://github.com/406345) fixed two small warnings.
+- [Glen Fernandes](https://github.com/glenfe) noted a potential portability problem in the `has_mapped_type` function.
+- [Corbin Hughes](https://github.com/nibroc) fixed some typos in the contribution guidelines.
+- [twelsby](https://github.com/twelsby) fixed the array subscript operator, an issue that failed the MSVC build, and floating-point parsing/dumping. He further added support for unsigned integer numbers and implemented better roundtrip support for parsed numbers.
+- [Volker Diels-Grabsch](https://github.com/vog) fixed a link in the README file.
+- [msm-](https://github.com/msm-) added support for american fuzzy lop. 
+- [Annihil](https://github.com/Annihil) fixed an example in the README file.
+- [Themercee](https://github.com/Themercee) noted a wrong URL in the README file.
+- [Lv Zheng](https://github.com/lv-zheng) fixed a namespace issue with `int64_t` and `uint64_t`.
+- [abc100m](https://github.com/abc100m) analyzed the issues with GCC 4.8 and proposed a [partial solution](https://github.com/nlohmann/json/pull/212).
+- [zewt](https://github.com/zewt) added useful notes to the README file about Android.
+- [Róbert Márki](https://github.com/robertmrk) added a fix to use move iterators and improved the integration via CMake.
+- [Chris Kitching](https://github.com/ChrisKitching) cleaned up the CMake files.
+
+Thanks a lot for helping out!
+
+## Notes
+
+- The code contains numerous debug **assertions** which can be switched off by defining the preprocessor macro `NDEBUG`, see the [documentation of `assert`](http://en.cppreference.com/w/cpp/error/assert).
+- As the exact type of a number is not defined in the [JSON specification](http://rfc7159.net/rfc7159), this library tries to choose the best fitting C++ number type automatically. As a result, the type `double` may be used to store numbers which may yield [**floating-point exceptions**](https://github.com/nlohmann/json/issues/181) in certain rare situations if floating-point exceptions have been unmasked in the calling code. These exceptions are not caused by the library and need to be fixed in the calling code, such as by re-masking the exceptions prior to calling library functions.
+
+## Execute unit tests
+
+To compile and run the tests, you need to execute
+
+```sh
+$ make
+$ ./json_unit "*"
+
+===============================================================================
+All tests passed (5568705 assertions in 31 test cases)
+```
+
+For more information, have a look at the file [.travis.yml](https://github.com/nlohmann/json/blob/master/.travis.yml).
diff --git a/resources/3rdparty/modernjson/appveyor.yml b/resources/3rdparty/modernjson/appveyor.yml
new file mode 100755
index 000000000..59b9dd15e
--- /dev/null
+++ b/resources/3rdparty/modernjson/appveyor.yml
@@ -0,0 +1,11 @@
+version: '{build}'
+os: Visual Studio 2015
+init: []
+install: []
+build_script:
+- set PATH=C:\Program Files (x86)\MSBuild\14.0\Bin;%PATH%
+- cmake . -G "Visual Studio 14 2015"
+- cmake --build . --config Release
+test_script:
+- test\Release\json_unit.exe
+- test\Release\json_unit.exe "*"
diff --git a/resources/3rdparty/modernjson/benchmarks/benchmarks.cpp b/resources/3rdparty/modernjson/benchmarks/benchmarks.cpp
new file mode 100755
index 000000000..1f5eb5e33
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/benchmarks.cpp
@@ -0,0 +1,77 @@
+#define BENCHPRESS_CONFIG_MAIN
+
+#include <fstream>
+#include <benchpress.hpp>
+#include <json.hpp>
+
+BENCHMARK("parse jeopardy.json", [](benchpress::context* ctx)
+{
+    for (size_t i = 0; i < ctx->num_iterations(); ++i)
+    {
+        std::ifstream input_file("benchmarks/files/jeopardy/jeopardy.json");
+        nlohmann::json j;
+        j << input_file;
+    }
+})
+
+BENCHMARK("parse canada.json", [](benchpress::context* ctx)
+{
+    for (size_t i = 0; i < ctx->num_iterations(); ++i)
+    {
+        std::ifstream input_file("benchmarks/files/nativejson-benchmark/canada.json");
+        nlohmann::json j;
+        j << input_file;
+    }
+})
+
+BENCHMARK("parse citm_catalog.json", [](benchpress::context* ctx)
+{
+    for (size_t i = 0; i < ctx->num_iterations(); ++i)
+    {
+        std::ifstream input_file("benchmarks/files/nativejson-benchmark/citm_catalog.json");
+        nlohmann::json j;
+        j << input_file;
+    }
+})
+
+BENCHMARK("parse twitter.json", [](benchpress::context* ctx)
+{
+    for (size_t i = 0; i < ctx->num_iterations(); ++i)
+    {
+        std::ifstream input_file("benchmarks/files/nativejson-benchmark/twitter.json");
+        nlohmann::json j;
+        j << input_file;
+    }
+})
+
+BENCHMARK("dump jeopardy.json", [](benchpress::context* ctx)
+{
+    std::ifstream input_file("benchmarks/files/jeopardy/jeopardy.json");
+    nlohmann::json j;
+    j << input_file;
+    std::ofstream output_file("jeopardy.dump.json");
+
+    ctx->reset_timer();
+    for (size_t i = 0; i < ctx->num_iterations(); ++i)
+    {
+        output_file << j;
+    }
+
+    std::remove("jeopardy.dump.json");
+})
+
+BENCHMARK("dump jeopardy.json with indent", [](benchpress::context* ctx)
+{
+    std::ifstream input_file("benchmarks/files/jeopardy/jeopardy.json");
+    nlohmann::json j;
+    j << input_file;
+    std::ofstream output_file("jeopardy.dump.json");
+
+    ctx->reset_timer();
+    for (size_t i = 0; i < ctx->num_iterations(); ++i)
+    {
+        output_file << std::setw(4) << j;
+    }
+
+    std::remove("jeopardy.dump.json");
+})
diff --git a/resources/3rdparty/modernjson/benchmarks/benchpress.hpp b/resources/3rdparty/modernjson/benchmarks/benchpress.hpp
new file mode 100755
index 000000000..d68e4aff3
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/benchpress.hpp
@@ -0,0 +1,401 @@
+/*
+* Copyright (C) 2015 Christopher Gilbert.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in all
+* copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+* SOFTWARE.
+*/
+#ifndef BENCHPRESS_HPP
+#define BENCHPRESS_HPP
+
+#include <algorithm>   // max, min
+#include <atomic>      // atomic_intmax_t
+#include <chrono>      // high_resolution_timer, duration
+#include <functional>  // function
+#include <iomanip>     // setw
+#include <iostream>    // cout
+#include <regex>       // regex, regex_match
+#include <sstream>     // stringstream
+#include <string>      // string
+#include <thread>      // thread
+#include <vector>      // vector
+
+namespace benchpress {
+
+/*
+ * The options class encapsulates all options for running benchmarks.
+ *
+ * When including benchpress, a main function can be emitted which includes a command-line parser for building an
+ * options object. However from time-to-time it may be necessary for the developer to have to build their own main
+ * stub and construct the options object manually.
+ *
+ * options opts;
+ * opts
+ *     .bench(".*")
+ *     .benchtime(1)
+ *     .cpu(4);
+ */
+class options {
+    std::string d_bench;
+    size_t      d_benchtime;
+    size_t      d_cpu;
+public:
+    options()
+        : d_bench(".*")
+        , d_benchtime(1)
+        , d_cpu(std::thread::hardware_concurrency())
+    {}
+    options& bench(const std::string& bench) {
+        d_bench = bench;
+        return *this;
+    }
+    options& benchtime(size_t benchtime) {
+        d_benchtime = benchtime;
+        return *this;
+    }
+    options& cpu(size_t cpu) {
+        d_cpu = cpu;
+        return *this;
+    }
+    std::string get_bench() const {
+        return d_bench;
+    }
+    size_t get_benchtime() const {
+        return d_benchtime;
+    }
+    size_t get_cpu() const {
+        return d_cpu;
+    }
+};
+
+class context;
+
+/*
+ * The benchmark_info class is used to store a function name / pointer pair.
+ *
+ * benchmark_info bi("example", [](benchpress::context* b) {
+ *     // benchmark function
+ * });
+ */
+class benchmark_info {
+    std::string                   d_name;
+    std::function<void(context*)> d_func;
+
+public:
+    benchmark_info(std::string name, std::function<void(context*)> func)
+        : d_name(name)
+        , d_func(func)
+    {}
+
+    std::string                   get_name() const { return d_name; }
+    std::function<void(context*)> get_func() const { return d_func; }
+};
+
+/*
+ * The registration class is responsible for providing a single global point of reference for registering
+ * benchmark functions.
+ *
+ * registration::get_ptr()->register_benchmark(info);
+ */
+class registration {
+    static registration*        d_this;
+    std::vector<benchmark_info> d_benchmarks;
+
+public:
+    static registration* get_ptr() {
+        if (nullptr == d_this) {
+            d_this = new registration();
+        }
+        return d_this;
+    }
+
+    void register_benchmark(benchmark_info& info) {
+        d_benchmarks.push_back(info);
+    }
+
+    std::vector<benchmark_info> get_benchmarks() { return d_benchmarks; }
+};
+
+/*
+ * The auto_register class is a helper used to register benchmarks.
+ */
+class auto_register {
+public:
+    auto_register(const std::string& name, std::function<void(context*)> func) {
+        benchmark_info info(name, func);
+        registration::get_ptr()->register_benchmark(info);
+    }
+};
+
+#define CONCAT(x, y) x ## y
+#define CONCAT2(x, y) CONCAT(x, y)
+
+// The BENCHMARK macro is a helper for creating benchmark functions and automatically registering them with the
+// registration class.
+#define BENCHMARK(x, f) benchpress::auto_register CONCAT2(register_, __LINE__)((x), (f));
+
+// This macro will prevent the compiler from removing a redundant code path which has no side-effects.
+#define DISABLE_REDUNDANT_CODE_OPT() { asm(""); }
+
+/*
+ * The result class is responsible for producing a printable string representation of a benchmark run.
+ */
+class result {
+    size_t                   d_num_iterations;
+    std::chrono::nanoseconds d_duration;
+    size_t                   d_num_bytes;
+
+public:
+    result(size_t num_iterations, std::chrono::nanoseconds duration, size_t num_bytes)
+        : d_num_iterations(num_iterations)
+        , d_duration(duration)
+        , d_num_bytes(num_bytes)
+    {}
+
+    size_t get_ns_per_op() const {
+        if (d_num_iterations <= 0) {
+            return 0;
+        }
+        return d_duration.count() / d_num_iterations;
+    }
+
+    double get_mb_per_s() const {
+        if (d_num_iterations <= 0 || d_duration.count() <= 0 || d_num_bytes <= 0) {
+            return 0;
+        }
+        return ((double(d_num_bytes) * double(d_num_iterations) / double(1e6)) /
+                double(std::chrono::duration_cast<std::chrono::seconds>(d_duration).count()));
+    }
+
+    std::string to_string() const {
+        std::stringstream tmp;
+        tmp << std::setw(12) << std::right << d_num_iterations;
+        size_t npo = get_ns_per_op();
+        tmp << std::setw(12) << std::right << npo << std::setw(0) << " ns/op";
+        double mbs = get_mb_per_s();
+        if (mbs > 0.0) {
+            tmp << std::setw(12) << std::right << mbs << std::setw(0) << " MB/s";
+        }
+        return std::string(tmp.str());
+    }
+};
+
+/*
+ * The parallel_context class is responsible for providing a thread-safe context for parallel benchmark code.
+ */
+class parallel_context {
+    std::atomic_intmax_t d_num_iterations;
+public:
+    parallel_context(size_t num_iterations)
+        : d_num_iterations(num_iterations)
+    {}
+
+    bool next() {
+        return (d_num_iterations.fetch_sub(1) > 0);
+    }
+};
+
+/*
+ * The context class is responsible for providing an interface for capturing benchmark metrics to benchmark functions.
+ */
+class context {
+    bool                                           d_timer_on;
+    std::chrono::high_resolution_clock::time_point d_start;
+    std::chrono::nanoseconds                       d_duration;
+    std::chrono::seconds                           d_benchtime;
+    size_t                                         d_num_iterations;
+    size_t                                         d_num_threads;
+    size_t                                         d_num_bytes;
+    benchmark_info                                 d_benchmark;
+
+public:
+    context(const benchmark_info& info, const options& opts)
+        : d_timer_on(false)
+        , d_start()
+        , d_duration()
+        , d_benchtime(std::chrono::seconds(opts.get_benchtime()))
+        , d_num_iterations(1)
+        , d_num_threads(opts.get_cpu())
+        , d_num_bytes(0)
+        , d_benchmark(info)
+    {}
+
+    size_t num_iterations() const { return d_num_iterations; }
+
+    void set_num_threads(size_t n) { d_num_threads = n; }
+    size_t num_threads() const { return d_num_threads; }
+
+    void start_timer() {
+        if (!d_timer_on) {
+            d_start = std::chrono::high_resolution_clock::now();
+            d_timer_on = true;
+        }
+    }
+    void stop_timer() {
+        if (d_timer_on) {
+            d_duration += std::chrono::high_resolution_clock::now() - d_start;
+            d_timer_on = false;
+        }
+    }
+    void reset_timer() {
+        if (d_timer_on) {
+            d_start = std::chrono::high_resolution_clock::now();
+        }
+        d_duration = std::chrono::nanoseconds::zero();
+    }
+
+    void set_bytes(int64_t bytes) { d_num_bytes = bytes; }
+
+    size_t get_ns_per_op() {
+        if (d_num_iterations <= 0) {
+            return 0;
+        }
+        return d_duration.count() / d_num_iterations;
+    }
+
+    void run_n(size_t n) {
+        d_num_iterations = n;
+        reset_timer();
+        start_timer();
+        d_benchmark.get_func()(this);
+        stop_timer();
+    }
+
+    void run_parallel(std::function<void(parallel_context*)> f) {
+        parallel_context pc(d_num_iterations);
+        std::vector<std::thread> threads;
+        for (size_t i = 0; i < d_num_threads; ++i) {
+            threads.push_back(std::thread([&pc,&f]() -> void {
+                f(&pc);
+            }));
+        }
+        for(auto& thread : threads){
+            thread.join();
+        }
+    }
+
+    result run() {
+        size_t n = 1;
+        run_n(n);
+        while (d_duration < d_benchtime && n < 1e9) {
+            size_t last = n;
+            if (get_ns_per_op() == 0) {
+                n = 1e9;
+            } else {
+                n = d_duration.count() / get_ns_per_op();
+            }
+            n = std::max(std::min(n+n/2, 100*last), last+1);
+            n = round_up(n);
+            run_n(n);
+        }
+        return result(n, d_duration, d_num_bytes);
+    }
+
+private:
+    template<typename T>
+    T round_down_10(T n) {
+        int tens = 0;
+        while (n > 10) {
+            n /= 10;
+            tens++;
+        }
+        int result = 1;
+        for (int i = 0; i < tens; ++i) {
+            result *= 10;
+        }
+        return result;
+    }
+
+    template<typename T>
+    T round_up(T n) {
+        T base = round_down_10(n);
+        if (n < (2 * base)) {
+            return 2 * base;
+        }
+        if (n < (5 * base)) {
+            return 5 * base;
+        }
+        return 10 * base;
+    }
+};
+
+/*
+ * The run_benchmarks function will run the registered benchmarks.
+ */
+void run_benchmarks(const options& opts) {
+    std::regex match_r(opts.get_bench());
+    auto benchmarks = registration::get_ptr()->get_benchmarks();
+    for (auto& info : benchmarks) {
+        if (std::regex_match(info.get_name(), match_r)) {
+            context c(info, opts);
+            auto r = c.run();
+            std::cout << std::setw(35) << std::left << info.get_name() << r.to_string() << std::endl;
+        }
+    }
+}
+
+} // namespace benchpress
+
+/*
+ * If BENCHPRESS_CONFIG_MAIN is defined when the file is included then a main function will be emitted which provides a
+ * command-line parser and then executes run_benchmarks.
+ */
+#ifdef BENCHPRESS_CONFIG_MAIN
+#include "cxxopts.hpp"
+benchpress::registration* benchpress::registration::d_this;
+int main(int argc, char** argv) {
+    std::chrono::high_resolution_clock::time_point bp_start = std::chrono::high_resolution_clock::now();
+    benchpress::options bench_opts;
+    try {
+        cxxopts::Options cmd_opts(argv[0], " - command line options");
+        cmd_opts.add_options()
+            ("bench", "run benchmarks matching the regular expression", cxxopts::value<std::string>()
+                ->default_value(".*"))
+            ("benchtime", "run enough iterations of each benchmark to take t seconds", cxxopts::value<size_t>()
+                ->default_value("1"))
+            ("cpu", "specify the number of threads to use for parallel benchmarks", cxxopts::value<size_t>()
+                ->default_value(std::to_string(std::thread::hardware_concurrency())))
+            ("help", "print help")
+        ;
+        cmd_opts.parse(argc, argv);
+        if (cmd_opts.count("help")) {
+            std::cout << cmd_opts.help({""}) << std::endl;
+            exit(0);
+        }
+        if (cmd_opts.count("bench")) {
+            bench_opts.bench(cmd_opts["bench"].as<std::string>());
+        }
+        if (cmd_opts.count("benchtime")) {
+            bench_opts.benchtime(cmd_opts["benchtime"].as<size_t>());
+        }
+        if (cmd_opts.count("cpu")) {
+            bench_opts.cpu(cmd_opts["cpu"].as<size_t>());
+        }
+    } catch (const cxxopts::OptionException& e) {
+        std::cout << "error parsing options: " << e.what() << std::endl;
+        exit(1);
+    }
+    benchpress::run_benchmarks(bench_opts);
+    float duration = std::chrono::duration_cast<std::chrono::milliseconds>(
+            std::chrono::high_resolution_clock::now() - bp_start
+    ).count() / 1000.f;
+    std::cout << argv[0] << " " << duration << "s" << std::endl;
+    return 0;
+}
+#endif
+
+#endif // BENCHPRESS_HPP
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/benchmarks/cxxopts.hpp b/resources/3rdparty/modernjson/benchmarks/cxxopts.hpp
new file mode 100755
index 000000000..94dd31cad
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/cxxopts.hpp
@@ -0,0 +1,1312 @@
+/*
+
+Copyright (c) 2014 Jarryd Beck
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+*/
+
+#ifndef CXX_OPTS_HPP
+#define CXX_OPTS_HPP
+
+#if defined(__GNUC__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
+#endif
+
+#include <exception>
+#include <iostream>
+#include <map>
+#include <memory>
+#include <regex>
+#include <sstream>
+#include <string>
+#include <vector>
+
+//when we ask cxxopts to use Unicode, help strings are processed using ICU,
+//which results in the correct lengths being computed for strings when they
+//are formatted for the help output
+//it is necessary to make sure that <unicode/unistr.h> can be found by the
+//compiler, and that icu-uc is linked in to the binary.
+
+#ifdef CXXOPTS_USE_UNICODE
+#include <unicode/unistr.h>
+
+namespace cxxopts
+{
+  typedef icu::UnicodeString String;
+
+  inline
+  String
+  toLocalString(std::string s)
+  {
+    return icu::UnicodeString::fromUTF8(s);
+  }
+
+  class UnicodeStringIterator : public
+    std::iterator<std::forward_iterator_tag, int32_t>
+  {
+    public:
+
+    UnicodeStringIterator(const icu::UnicodeString* s, int32_t pos)
+    : s(s)
+    , i(pos)
+    {
+    }
+
+    value_type
+    operator*() const
+    {
+      return s->char32At(i);
+    }
+
+    bool
+    operator==(const UnicodeStringIterator& rhs) const
+    {
+      return s == rhs.s && i == rhs.i;
+    }
+
+    bool
+    operator!=(const UnicodeStringIterator& rhs) const
+    {
+      return !(*this == rhs);
+    }
+
+    UnicodeStringIterator&
+    operator++()
+    {
+      ++i;
+      return *this;
+    }
+
+    UnicodeStringIterator
+    operator+(int32_t v)
+    {
+      return UnicodeStringIterator(s, i + v);
+    }
+
+    private:
+    const icu::UnicodeString* s;
+    int32_t i;
+  };
+
+  inline
+  String&
+  stringAppend(String&s, String a)
+  {
+    return s.append(std::move(a));
+  }
+
+  inline
+  String&
+  stringAppend(String& s, int n, UChar32 c)
+  {
+    for (int i = 0; i != n; ++i)
+    {
+      s.append(c);
+    }
+
+    return s;
+  }
+
+  template <typename Iterator>
+  String&
+  stringAppend(String& s, Iterator begin, Iterator end)
+  {
+    while (begin != end)
+    {
+      s.append(*begin);
+      ++begin;
+    }
+
+    return s;
+  }
+
+  inline
+  size_t
+  stringLength(const String& s)
+  {
+    return s.length();
+  }
+
+  inline
+  std::string
+  toUTF8String(const String& s)
+  {
+    std::string result;
+    s.toUTF8String(result);
+
+    return result;
+  }
+}
+
+namespace std
+{
+  cxxopts::UnicodeStringIterator
+  begin(const icu::UnicodeString& s)
+  {
+    return cxxopts::UnicodeStringIterator(&s, 0);
+  }
+
+  cxxopts::UnicodeStringIterator
+  end(const icu::UnicodeString& s)
+  {
+    return cxxopts::UnicodeStringIterator(&s, s.length());
+  }
+}
+
+//ifdef CXXOPTS_USE_UNICODE
+#else
+
+namespace cxxopts
+{
+  typedef std::string String;
+
+  template <typename T>
+  T
+  toLocalString(T&& t)
+  {
+    return t;
+  }
+
+  inline
+  size_t
+  stringLength(const String& s)
+  {
+    return s.length();
+  }
+
+  inline
+  String&
+  stringAppend(String&s, String a)
+  {
+    return s.append(std::move(a));
+  }
+
+  inline
+  String&
+  stringAppend(String& s, size_t n, char c)
+  {
+    return s.append(n, c);
+  }
+
+  template <typename Iterator>
+  String&
+  stringAppend(String& s, Iterator begin, Iterator end)
+  {
+    return s.append(begin, end);
+  }
+
+  template <typename T>
+  std::string
+  toUTF8String(T&& t)
+  {
+    return std::forward<T>(t);
+  }
+
+}
+
+//ifdef CXXOPTS_USE_UNICODE
+#endif
+
+namespace cxxopts
+{
+  class Value : public std::enable_shared_from_this<Value>
+  {
+    public:
+
+    virtual void
+    parse(const std::string& text) const = 0;
+
+    virtual void
+    parse() const = 0;
+
+    virtual bool
+    has_arg() const = 0;
+
+    virtual bool
+    has_default() const = 0;
+
+    virtual bool
+    has_implicit() const = 0;
+
+    virtual std::string
+    get_default_value() const = 0;
+
+    virtual std::string
+    get_implicit_value() const = 0;
+
+    virtual std::shared_ptr<Value>
+    default_value(const std::string& value) = 0;
+
+    virtual std::shared_ptr<Value>
+    implicit_value(const std::string& value) = 0;
+  };
+
+  class OptionException : public std::exception
+  {
+    public:
+    OptionException(const std::string& message)
+    : m_message(message)
+    {
+    }
+
+    virtual const char*
+    what() const noexcept
+    {
+      return m_message.c_str();
+    }
+
+    private:
+    std::string m_message;
+  };
+
+  class OptionSpecException : public OptionException
+  {
+    public:
+
+    OptionSpecException(const std::string& message)
+    : OptionException(message)
+    {
+    }
+  };
+
+  class OptionParseException : public OptionException
+  {
+    public:
+    OptionParseException(const std::string& message)
+    : OptionException(message)
+    {
+    }
+  };
+
+  class option_exists_error : public OptionSpecException
+  {
+    public:
+    option_exists_error(const std::string& option)
+    : OptionSpecException(u8"Option ‘" + option + u8"’ already exists")
+    {
+    }
+  };
+
+  class invalid_option_format_error : public OptionSpecException
+  {
+    public:
+    invalid_option_format_error(const std::string& format)
+    : OptionSpecException(u8"Invalid option format ‘" + format + u8"’")
+    {
+    }
+  };
+
+  class option_not_exists_exception : public OptionParseException
+  {
+    public:
+    option_not_exists_exception(const std::string& option)
+    : OptionParseException(u8"Option ‘" + option + u8"’ does not exist")
+    {
+    }
+  };
+
+  class missing_argument_exception : public OptionParseException
+  {
+    public:
+    missing_argument_exception(const std::string& option)
+    : OptionParseException(u8"Option ‘" + option + u8"’ is missing an argument")
+    {
+    }
+  };
+
+  class option_requires_argument_exception : public OptionParseException
+  {
+    public:
+    option_requires_argument_exception(const std::string& option)
+    : OptionParseException(u8"Option ‘" + option + u8"’ requires an argument")
+    {
+    }
+  };
+
+  class option_not_has_argument_exception : public OptionParseException
+  {
+    public:
+    option_not_has_argument_exception
+    (
+      const std::string& option,
+      const std::string& arg
+    )
+    : OptionParseException(
+        u8"Option ‘" + option + u8"’ does not take an argument, but argument‘"
+        + arg + "’ given")
+    {
+    }
+  };
+
+  class option_not_present_exception : public OptionParseException
+  {
+    public:
+    option_not_present_exception(const std::string& option)
+    : OptionParseException(u8"Option ‘" + option + u8"’ not present")
+    {
+    }
+  };
+
+  class argument_incorrect_type : public OptionParseException
+  {
+    public:
+    argument_incorrect_type
+    (
+      const std::string& arg
+    )
+    : OptionParseException(
+      u8"Argument ‘" + arg + u8"’ failed to parse"
+    )
+    {
+    }
+  };
+
+  namespace values
+  {
+    template <typename T>
+    void
+    parse_value(const std::string& text, T& value)
+    {
+      std::istringstream is(text);
+      if (!(is >> value))
+      {
+        std::cerr << "cannot parse empty value" << std::endl;
+        throw argument_incorrect_type(text);
+      }
+
+      if (is.rdbuf()->in_avail() != 0)
+      {
+        throw argument_incorrect_type(text);
+      }
+    }
+
+    template <typename T>
+    void
+    parse_value(const std::string& text, std::vector<T>& value)
+    {
+      T v;
+      parse_value(text, v);
+      value.push_back(v);
+    }
+
+    inline
+    void
+    parse_value(const std::string& /*text*/, bool& value)
+    {
+      //TODO recognise on, off, yes, no, enable, disable
+      //so that we can write --long=yes explicitly
+      value = true;
+    }
+
+    inline
+    void
+    parse_value(const std::string& text, std::string& value)
+    {
+      value = text;
+    }
+
+    template <typename T>
+    struct value_has_arg
+    {
+      static constexpr bool value = true;
+    };
+
+    template <>
+    struct value_has_arg<bool>
+    {
+      static constexpr bool value = false;
+    };
+
+    template <typename T>
+    class standard_value : public Value
+    {
+      public:
+      standard_value()
+      : m_result(std::make_shared<T>())
+      , m_store(m_result.get())
+      {
+      }
+
+      standard_value(T* t)
+      : m_store(t)
+      {
+      }
+
+      void
+      parse(const std::string& text) const
+      {
+        if (m_implicit && text.empty())
+        {
+          parse_value(m_implicit_value, *m_store);
+        }
+        else
+        {
+          parse_value(text, *m_store);
+        }
+      }
+
+      void
+      parse() const
+      {
+        parse_value(m_default_value, *m_store);
+      }
+
+      bool
+      has_arg() const
+      {
+        return value_has_arg<T>::value;
+      }
+
+      bool
+      has_default() const
+      {
+        return m_default;
+      }
+
+      bool
+      has_implicit() const
+      {
+        return m_implicit;
+      }
+
+      virtual std::shared_ptr<Value>
+      default_value(const std::string& value){
+        m_default = true;
+        m_default_value = value;
+        return shared_from_this();
+      }
+
+      virtual std::shared_ptr<Value>
+      implicit_value(const std::string& value){
+        m_implicit = true;
+        m_implicit_value = value;
+        return shared_from_this();
+      }
+
+      std::string
+      get_default_value() const
+      {
+        return m_default_value;
+      }
+
+      std::string
+      get_implicit_value() const
+      {
+        return m_implicit_value;
+      }
+
+      const T&
+      get() const
+      {
+        if (m_store == nullptr)
+        {
+          return *m_result;
+        }
+        else
+        {
+          return *m_store;
+        }
+      }
+
+      protected:
+      std::shared_ptr<T> m_result;
+      T* m_store;
+      bool m_default = false;
+      std::string m_default_value;
+      bool m_implicit = false;
+      std::string m_implicit_value;
+    };
+  }
+
+  template <typename T>
+  std::shared_ptr<Value>
+  value()
+  {
+    return std::make_shared<values::standard_value<T>>();
+  }
+
+  template <typename T>
+  std::shared_ptr<Value>
+  value(T& t)
+  {
+    return std::make_shared<values::standard_value<T>>(&t);
+  }
+
+  class OptionAdder;
+
+  class OptionDetails
+  {
+    public:
+    OptionDetails
+    (
+      const String& description,
+      std::shared_ptr<const Value> value
+    )
+    : m_desc(description)
+    , m_value(value)
+    , m_count(0)
+    {
+    }
+
+    const String&
+    description() const
+    {
+      return m_desc;
+    }
+
+    bool
+    has_arg() const
+    {
+      return m_value->has_arg();
+    }
+
+    void
+    parse(const std::string& text)
+    {
+      m_value->parse(text);
+      ++m_count;
+    }
+
+    void
+    parse_default()
+    {
+      m_value->parse();
+      ++m_count;
+    }
+
+    int
+    count() const
+    {
+      return m_count;
+    }
+
+    const Value& value() const {
+        return *m_value;
+    }
+
+    template <typename T>
+    const T&
+    as() const
+    {
+#ifdef CXXOPTS_NO_RTTI
+      return static_cast<const values::standard_value<T>&>(*m_value).get();
+#else
+      return dynamic_cast<const values::standard_value<T>&>(*m_value).get();
+#endif
+    }
+
+    private:
+    String m_desc;
+    std::shared_ptr<const Value> m_value;
+    int m_count;
+  };
+
+  struct HelpOptionDetails
+  {
+    std::string s;
+    std::string l;
+    String desc;
+    bool has_arg;
+    bool has_default;
+    std::string default_value;
+    bool has_implicit;
+    std::string implicit_value;
+    std::string arg_help;
+  };
+
+  struct HelpGroupDetails
+  {
+    std::string name;
+    std::string description;
+    std::vector<HelpOptionDetails> options;
+  };
+
+  class Options
+  {
+    public:
+
+    Options(std::string program, std::string help_string = "")
+    : m_program(std::move(program))
+    , m_help_string(toLocalString(std::move(help_string)))
+    {
+    }
+
+    inline
+    void
+    parse(int& argc, char**& argv);
+
+    inline
+    OptionAdder
+    add_options(std::string group = "");
+
+    inline
+    void
+    add_option
+    (
+      const std::string& group,
+      const std::string& s,
+      const std::string& l,
+      std::string desc,
+      std::shared_ptr<const Value> value,
+      std::string arg_help
+    );
+
+    int
+    count(const std::string& o) const
+    {
+      auto iter = m_options.find(o);
+      if (iter == m_options.end())
+      {
+        return 0;
+      }
+
+      return iter->second->count();
+    }
+
+    const OptionDetails&
+    operator[](const std::string& option) const
+    {
+      auto iter = m_options.find(option);
+
+      if (iter == m_options.end())
+      {
+        throw option_not_present_exception(option);
+      }
+
+      return *iter->second;
+    }
+
+    //parse positional arguments into the given option
+    inline
+    void
+    parse_positional(std::string option);
+
+    inline
+    std::string
+    help(const std::vector<std::string>& groups = {""}) const;
+
+    inline
+    const std::vector<std::string>
+    groups() const;
+
+    inline
+    const HelpGroupDetails&
+    group_help(const std::string& group) const;
+
+    private:
+
+    inline
+    void
+    add_one_option
+    (
+      const std::string& option,
+      std::shared_ptr<OptionDetails> details
+    );
+
+    inline
+    bool
+    consume_positional(std::string a);
+
+    inline
+    void
+    add_to_option(const std::string& option, const std::string& arg);
+
+    inline
+    void
+    parse_option
+    (
+      std::shared_ptr<OptionDetails> value,
+      const std::string& name,
+      const std::string& arg = ""
+    );
+
+    inline
+    void
+    checked_parse_arg
+    (
+      int argc,
+      char* argv[],
+      int& current,
+      std::shared_ptr<OptionDetails> value,
+      const std::string& name
+    );
+
+    inline
+    String
+    help_one_group(const std::string& group) const;
+
+    std::string m_program;
+    String m_help_string;
+
+    std::map<std::string, std::shared_ptr<OptionDetails>> m_options;
+    std::string m_positional;
+
+    //mapping from groups to help options
+    std::map<std::string, HelpGroupDetails> m_help;
+  };
+
+  class OptionAdder
+  {
+    public:
+
+    OptionAdder(Options& options, std::string group)
+    : m_options(options), m_group(std::move(group))
+    {
+    }
+
+    inline
+    OptionAdder&
+    operator()
+    (
+      const std::string& opts,
+      const std::string& desc,
+      std::shared_ptr<const Value> value
+        = ::cxxopts::value<bool>(),
+      std::string arg_help = ""
+    );
+
+    private:
+    Options& m_options;
+    std::string m_group;
+  };
+
+}
+
+namespace cxxopts
+{
+
+  namespace
+  {
+
+    constexpr int OPTION_LONGEST = 30;
+    constexpr int OPTION_DESC_GAP = 2;
+
+    std::basic_regex<char> option_matcher
+      ("--([[:alnum:]][-_[:alnum:]]+)(=(.*))?|-([a-zA-Z]+)");
+
+    std::basic_regex<char> option_specifier
+      ("(([a-zA-Z]),)?([a-zA-Z0-9][-_a-zA-Z0-9]+)");
+
+    String
+    format_option
+    (
+      const HelpOptionDetails& o
+    )
+    {
+      auto& s = o.s;
+      auto& l = o.l;
+
+      String result = "  ";
+
+      if (s.size() > 0)
+      {
+        result += "-" + toLocalString(s) + ",";
+      }
+      else
+      {
+        result += "   ";
+      }
+
+      if (l.size() > 0)
+      {
+        result += " --" + toLocalString(l);
+      }
+
+      if (o.has_arg)
+      {
+        auto arg = o.arg_help.size() > 0 ? toLocalString(o.arg_help) : "arg";
+
+        if (o.has_implicit)
+        {
+          result += " [=" + arg + "(=" + toLocalString(o.implicit_value) + ")]";
+        }
+        else
+        {
+          result += " " + arg;
+        }
+      }
+
+      return result;
+    }
+
+    String
+    format_description
+    (
+      const HelpOptionDetails& o,
+      size_t start,
+      size_t width
+    )
+    {
+      auto desc = o.desc;
+
+      if (o.has_default)
+      {
+        desc += toLocalString(" (default:" + o.default_value + ")");
+      }
+
+      String result;
+
+      auto current = std::begin(desc);
+      auto startLine = current;
+      auto lastSpace = current;
+
+      auto size = size_t{};
+
+      while (current != std::end(desc))
+      {
+        if (*current == ' ')
+        {
+          lastSpace = current;
+        }
+
+        if (size > width)
+        {
+          if (lastSpace == startLine)
+          {
+            stringAppend(result, startLine, current + 1);
+            stringAppend(result, "\n");
+            stringAppend(result, start, ' ');
+            startLine = current + 1;
+            lastSpace = startLine;
+          }
+          else
+          {
+            stringAppend(result, startLine, lastSpace);
+            stringAppend(result, "\n");
+            stringAppend(result, start, ' ');
+            startLine = lastSpace + 1;
+          }
+          size = 0;
+        }
+        else
+        {
+          ++size;
+        }
+
+        ++current;
+      }
+
+      //append whatever is left
+      stringAppend(result, startLine, current);
+
+      return result;
+    }
+  }
+
+OptionAdder
+Options::add_options(std::string group)
+{
+  return OptionAdder(*this, std::move(group));
+}
+
+OptionAdder&
+OptionAdder::operator()
+(
+  const std::string& opts,
+  const std::string& desc,
+  std::shared_ptr<const Value> value,
+  std::string arg_help
+)
+{
+  std::match_results<const char*> result;
+  std::regex_match(opts.c_str(), result, option_specifier);
+
+  if (result.empty())
+  {
+    throw invalid_option_format_error(opts);
+  }
+
+  const auto& s = result[2];
+  const auto& l = result[3];
+
+  m_options.add_option(m_group, s.str(), l.str(), desc, value,
+    std::move(arg_help));
+
+  return *this;
+}
+
+void
+Options::parse_option
+(
+  std::shared_ptr<OptionDetails> value,
+  const std::string& /*name*/,
+  const std::string& arg
+)
+{
+  value->parse(arg);
+}
+
+void
+Options::checked_parse_arg
+(
+  int argc,
+  char* argv[],
+  int& current,
+  std::shared_ptr<OptionDetails> value,
+  const std::string& name
+)
+{
+  if (current + 1 >= argc)
+  {
+    if (value->value().has_implicit())
+    {
+      parse_option(value, name, "");
+    }
+    else
+    {
+      throw missing_argument_exception(name);
+    }
+  }
+  else
+  {
+    if (argv[current + 1][0] == '-' && value->value().has_implicit())
+    {
+      parse_option(value, name, "");
+    }
+    else
+    {
+      parse_option(value, name, argv[current + 1]);
+      ++current;
+    }
+  }
+}
+
+void
+Options::add_to_option(const std::string& option, const std::string& arg)
+{
+  auto iter = m_options.find(option);
+
+  if (iter == m_options.end())
+  {
+    throw option_not_exists_exception(option);
+  }
+
+  parse_option(iter->second, option, arg);
+}
+
+bool
+Options::consume_positional(std::string a)
+{
+  if (m_positional.size() > 0)
+  {
+    add_to_option(m_positional, a);
+    return true;
+  }
+  else
+  {
+    return false;
+  }
+}
+
+void
+Options::parse_positional(std::string option)
+{
+  m_positional = std::move(option);
+}
+
+void
+Options::parse(int& argc, char**& argv)
+{
+  int current = 1;
+
+  int nextKeep = 1;
+
+  while (current != argc)
+  {
+    std::match_results<const char*> result;
+    std::regex_match(argv[current], result, option_matcher);
+
+    if (result.empty())
+    {
+      //not a flag
+
+      //if true is returned here then it was consumed, otherwise it is
+      //ignored
+      if (consume_positional(argv[current]))
+      {
+      }
+      else
+      {
+        argv[nextKeep] = argv[current];
+        ++nextKeep;
+      }
+      //if we return from here then it was parsed successfully, so continue
+    }
+    else
+    {
+      //short or long option?
+      if (result[4].length() != 0)
+      {
+        const std::string& s = result[4];
+
+        for (std::size_t i = 0; i != s.size(); ++i)
+        {
+          std::string name(1, s[i]);
+          auto iter = m_options.find(name);
+
+          if (iter == m_options.end())
+          {
+            throw option_not_exists_exception(name);
+          }
+
+          auto value = iter->second;
+
+          //if no argument then just add it
+          if (!value->has_arg())
+          {
+            parse_option(value, name);
+          }
+          else
+          {
+            //it must be the last argument
+            if (i + 1 == s.size())
+            {
+              checked_parse_arg(argc, argv, current, value, name);
+            }
+            else if (value->value().has_implicit())
+            {
+              parse_option(value, name, "");
+            }
+            else
+            {
+              //error
+              throw option_requires_argument_exception(name);
+            }
+          }
+        }
+      }
+      else if (result[1].length() != 0)
+      {
+        const std::string& name = result[1];
+
+        auto iter = m_options.find(name);
+
+        if (iter == m_options.end())
+        {
+          throw option_not_exists_exception(name);
+        }
+
+        auto opt = iter->second;
+
+        //equals provided for long option?
+        if (result[3].length() != 0)
+        {
+          //parse the option given
+
+          //but if it doesn't take an argument, this is an error
+          if (!opt->has_arg())
+          {
+            throw option_not_has_argument_exception(name, result[3]);
+          }
+
+          parse_option(opt, name, result[3]);
+        }
+        else
+        {
+          if (opt->has_arg())
+          {
+            //parse the next argument
+            checked_parse_arg(argc, argv, current, opt, name);
+          }
+          else
+          {
+            //parse with empty argument
+            parse_option(opt, name);
+          }
+        }
+      }
+
+    }
+
+    ++current;
+  }
+
+  for (auto& opt : m_options)
+  {
+    auto& detail = opt.second;
+    auto& value = detail->value();
+
+    if(!detail->count() && value.has_default()){
+      detail->parse_default();
+    }
+  }
+
+  argc = nextKeep;
+}
+
+void
+Options::add_option
+(
+  const std::string& group,
+  const std::string& s,
+  const std::string& l,
+  std::string desc,
+  std::shared_ptr<const Value> value,
+  std::string arg_help
+)
+{
+  auto stringDesc = toLocalString(std::move(desc));
+  auto option = std::make_shared<OptionDetails>(stringDesc, value);
+
+  if (s.size() > 0)
+  {
+    add_one_option(s, option);
+  }
+
+  if (l.size() > 0)
+  {
+    add_one_option(l, option);
+  }
+
+  //add the help details
+  auto& options = m_help[group];
+
+  options.options.emplace_back(HelpOptionDetails{s, l, stringDesc,
+      value->has_arg(),
+      value->has_default(), value->get_default_value(),
+      value->has_implicit(), value->get_implicit_value(),
+      std::move(arg_help)});
+}
+
+void
+Options::add_one_option
+(
+  const std::string& option,
+  std::shared_ptr<OptionDetails> details
+)
+{
+  auto in = m_options.emplace(option, details);
+
+  if (!in.second)
+  {
+    throw option_exists_error(option);
+  }
+}
+
+String
+Options::help_one_group(const std::string& g) const
+{
+  typedef std::vector<std::pair<String, String>> OptionHelp;
+
+  auto group = m_help.find(g);
+  if (group == m_help.end())
+  {
+    return "";
+  }
+
+  OptionHelp format;
+
+  size_t longest = 0;
+
+  String result;
+
+  if (!g.empty())
+  {
+    result += toLocalString(" " + g + " options:\n\n");
+  }
+
+  for (const auto& o : group->second.options)
+  {
+    auto s = format_option(o);
+    longest = std::max(longest, stringLength(s));
+    format.push_back(std::make_pair(s, String()));
+  }
+
+  longest = std::min(longest, static_cast<size_t>(OPTION_LONGEST));
+
+  //widest allowed description
+  auto allowed = size_t{76} - longest - OPTION_DESC_GAP;
+
+  auto fiter = format.begin();
+  for (const auto& o : group->second.options)
+  {
+    auto d = format_description(o, longest + OPTION_DESC_GAP, allowed);
+
+    result += fiter->first;
+    if (stringLength(fiter->first) > longest)
+    {
+      result += "\n";
+      result += toLocalString(std::string(longest + OPTION_DESC_GAP, ' '));
+    }
+    else
+    {
+      result += toLocalString(std::string(longest + OPTION_DESC_GAP -
+        stringLength(fiter->first),
+        ' '));
+    }
+    result += d;
+    result += "\n";
+
+    ++fiter;
+  }
+
+  return result;
+}
+
+std::string
+Options::help(const std::vector<std::string>& groups) const
+{
+  String result = "Usage:\n  " + toLocalString(m_program) + " [OPTION...]"
+    + m_help_string + "\n\n";
+
+  for (std::size_t i = 0; i < groups.size(); ++i)
+  {
+    result += help_one_group(groups[i]);
+    if (i < groups.size() - 1)
+    {
+      result += "\n";
+    }
+  }
+
+  return toUTF8String(result);
+}
+
+const std::vector<std::string>
+Options::groups() const
+{
+  std::vector<std::string> g;
+
+  std::transform(
+    m_help.begin(),
+    m_help.end(),
+    std::back_inserter(g),
+    [] (const std::map<std::string, HelpGroupDetails>::value_type& pair)
+    {
+      return pair.first;
+    }
+  );
+
+  return g;
+}
+
+const HelpGroupDetails&
+Options::group_help(const std::string& group) const
+{
+  return m_help.at(group);
+}
+
+}
+
+#if defined(__GNU__)
+#pragma GCC diagnostic pop
+#endif
+
+#endif //CXX_OPTS_HPP
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/benchmarks/files/jeopardy/jeopardy.json.REMOVED.git-id b/resources/3rdparty/modernjson/benchmarks/files/jeopardy/jeopardy.json.REMOVED.git-id
new file mode 100644
index 000000000..b44db16f0
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/files/jeopardy/jeopardy.json.REMOVED.git-id
@@ -0,0 +1 @@
+a533fde78ce50a11f6189907f9e0392095222fe2
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/canada.json b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/canada.json
new file mode 100755
index 000000000..04f63b405
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/canada.json
@@ -0,0 +1,9 @@
+{ "type": "FeatureCollection",
+  "features": [
+{
+    "type": "Feature",
+"properties": { "name": "Canada" },
+"geometry": {"type":"Polygon","coordinates":[[[-65.613616999999977,43.420273000000009],[-65.619720000000029,43.418052999999986],[-65.625,43.421379000000059],[-65.636123999999882,43.449714999999969],[-65.633056999999951,43.474709000000132],[-65.611389000000031,43.513054000000068],[-65.605835000000013,43.516105999999979],[-65.598343,43.515830999999935],[-65.566101000000003,43.508331000000055],[-65.561935000000005,43.504439999999988],[-65.55999799999995,43.499718000000087],[-65.573333999999988,43.476379000000065],[-65.593612999999948,43.444153000000028],[-65.613616999999977,43.420273000000009]],[[-59.816947999999911,43.928328999999962],[-59.841667000000029,43.918602000000021],[-59.866393999999957,43.909987999999998],[-59.879722999999956,43.906654000000003],[-59.895835999999974,43.904160000000047],[-59.919448999999929,43.901099999999985],[-59.953330999999991,43.898604999999975],[-60.013617999999951,43.903320000000008],[-60.028609999999958,43.905548000000124],[-60.078338999999914,43.917496000000028],[-60.103888999999981,43.926659000000029],[-60.121666000000005,43.934990000000084],[-60.129997000000003,43.941933000000063],[-60.124167999999997,43.945267000000058],[-60.095000999999968,43.939430000000129],[-60.017776000000026,43.925827000000083],[-59.975554999999986,43.921936000000017],[-59.966942000000017,43.921936000000017],[-59.915000999999961,43.925552000000096],[-59.861945999999989,43.934433000000013],[-59.841385000000002,43.938880999999981],[-59.80972300000002,43.950828999999999],[-59.793334999999956,43.959435000000099],[-59.777221999999938,43.968048000000067],[-59.755279999999971,43.979431000000091],[-59.724716000000001,43.991104000000121],[-59.727775999999949,43.986382000000049],[-59.736389000000031,43.979156000000103],[-59.753615999999965,43.964995999999985],[-59.762504999999919,43.957771000000093],[-59.782501000000025,43.944434999999999],[-59.793059999999969,43.93832400000008],[-59.816947999999911,43.928328999999962]],[[-66.282775999999956,44.289719000000105],[-66.314437999999996,44.250548999999978],[-66.322234999999978,44.252777000000094],[-66.324448000000018,44.25750000000005],[-66.323897999999986,44.263329000000113],[-66.310271999999998,44.289993000000038],[-66.303054999999915,44.300545000000056],[-66.294723999999917,44.310271999999998],[-66.228333000000021,44.385826000000009],[-66.21945199999999,44.394713999999965],[-66.214447000000007,44.397774000000027],[-66.206389999999942,44.395271000000037],[-66.204726999999934,44.384995000000004],[-66.205275999999969,44.379433000000063],[-66.208053999999947,44.372765000000072],[-66.214721999999938,44.36360900000011],[-66.249725000000012,44.327217000000132],[-66.282775999999956,44.289719000000105]],[[-66.886123999999995,44.614440999999999],[-66.900283999999999,44.61332699999997],[-66.904174999999952,44.618049999999982],[-66.904449,44.622489999999971],[-66.884734999999978,44.68332700000002],[-66.858611999999937,44.743050000000039],[-66.837783999999942,44.770827999999995],[-66.833327999999938,44.774994000000049],[-66.803329000000019,44.798881999999992],[-66.798049999999932,44.802490000000091],[-66.786666999999852,44.808044000000109],[-66.779723999999931,44.809158000000082],[-66.772507000000019,44.809158000000082],[-66.767226999999934,44.805549999999982],[-66.764724999999999,44.801102000000014],[-66.757781999999963,44.792496000000085],[-66.734726000000023,44.729156000000103],[-66.736938000000009,44.717209000000139],[-66.740279999999927,44.70777099999998],[-66.761123999999995,44.676102000000128],[-66.765015000000005,44.671378999999945],[-66.875274999999931,44.619438000000059],[-66.886123999999995,44.614440999999999]],[[-61.199996999999996,45.558327000000077],[-61.204720000000009,45.555267000000072],[-61.212775999999963,45.556656000000032],[-61.219993999999986,45.559990000000028],[-61.224167000000023,45.564156000000139],[-61.222220999999934,45.569443000000035],[-61.21416499999998,45.568886000000134],[-61.208610999999962,45.56721500000009],[-61.202498999999989,45.563324000000023],[-61.199996999999996,45.558327000000077]],[[-60.993889000000024,45.45777099999998],[-61.00028199999997,45.455826000000002],[-61.007781999999963,45.457214000000079],[-61.019446999999957,45.463882000000069],[-61.101943999999946,45.523048000000017],[-61.105835000000013,45.526939000000084],[-61.108337000000006,45.540833000000021],[-61.104445999999939,45.546387000000038],[-61.098609999999951,45.549164000000076],[-61.023612999999955,45.574997000000053],[-61.017220000000009,45.575272000000041],[-60.936942999999985,45.576659999999947],[-60.908051,45.576103000000046],[-60.900275999999906,45.575554000000125],[-60.879996999999946,45.560547000000099],[-60.878608999999869,45.555824000000143],[-60.883888000000013,45.550544999999943],[-60.889167999999984,45.548332000000016],[-60.910277999999948,45.546104000000071],[-60.936110999999983,45.539161999999976],[-60.947495000000004,45.533607000000075],[-60.952498999999932,45.529990999999995],[-60.962501999999915,45.519989000000066],[-60.96305799999999,45.514998999999989],[-60.961669999999913,45.510277000000087],[-60.958611000000019,45.505829000000119],[-60.950553999999954,45.497771999999998],[-60.993889000000024,45.45777099999998]],[[-63.246391000000017,46.435547000000042],[-63.25389100000001,46.435265000000129],[-63.26167299999986,46.436378000000047],[-63.269446999999957,46.439713000000097],[-63.285004000000015,46.450829000000056],[-63.27055399999989,46.450271999999984],[-63.245834000000002,46.442764000000125],[-63.240836999999999,46.438599000000124],[-63.246391000000017,46.435547000000042]],[[-71.111114999999984,46.850548000000003],[-71.118606999999997,46.850273000000016],[-71.127486999999917,46.851662000000033],[-71.130279999999914,46.856102000000021],[-71.128326000000015,46.862213000000111],[-71.121383999999978,46.874161000000129],[-71.098891999999978,46.898048000000017],[-71.078339000000028,46.913605000000075],[-70.936935000000005,46.992493000000024],[-70.896666999999866,47.013329000000056],[-70.87222300000002,47.024162000000047],[-70.860001000000011,47.02777100000003],[-70.845276000000013,47.029160000000047],[-70.836394999999982,47.02777100000003],[-70.818893000000003,47.02276599999999],[-70.81361400000003,47.019440000000145],[-70.809158000000025,47.01527400000009],[-70.807495000000017,47.00999500000006],[-70.809432999999956,47.004439999999988],[-70.814437999999996,46.998329000000126],[-70.877212999999983,46.931107000000111],[-70.887512000000015,46.923607000000004],[-70.904174999999952,46.913605000000075],[-71.009170999999924,46.871101000000067],[-71.033324999999934,46.862494999999967],[-71.040832999999964,46.860549999999989],[-71.082229999999925,46.853325000000098],[-71.111114999999984,46.850548000000003]],[[-60.445273999999984,46.861664000000133],[-60.436942999999985,46.861107000000061],[-60.352782999999988,46.861664000000133],[-60.345832999999857,46.862494999999967],[-60.334441999999967,46.868881000000101],[-60.326110999999969,46.868323999999973],[-60.320838999999978,46.864441000000056],[-60.309440999999936,46.851105000000132],[-60.302223000000026,46.837493999999936],[-60.301392000000021,46.831940000000145],[-60.304442999999935,46.815269000000114],[-60.322776999999917,46.736382000000049],[-60.327224999999885,46.724991000000045],[-60.478881999999942,46.389992000000063],[-60.535277999999948,46.321663000000058],[-60.589438999999857,46.25499700000006],[-60.609169000000009,46.201934999999935],[-60.590331999999933,46.207821000000081],[-60.587001999999984,46.209488000000135],[-60.57150299999995,46.228653000000122],[-60.553329000000019,46.248878000000047],[-60.551391999999964,46.25499700000006],[-60.543335000000013,46.266663000000051],[-60.528053,46.278602999999919],[-60.479720999999984,46.311104000000057],[-60.46805599999999,46.316665999999998],[-60.44388600000002,46.326942000000088],[-60.430557000000022,46.33138299999996],[-60.424171000000001,46.331665000000044],[-60.416388999999867,46.328049000000021],[-60.412216000000001,46.31888600000002],[-60.417777999999942,46.285827999999981],[-60.419997999999964,46.279991000000052],[-60.42472099999992,46.27526899999998],[-60.438048999999921,46.270828000000051],[-60.454719999999952,46.262215000000083],[-60.470550999999944,46.251105999999993],[-60.53583100000003,46.192436000000043],[-60.59027900000001,46.138603000000103],[-60.600280999999939,46.130271999999991],[-60.61611199999993,46.120827000000133],[-60.645836000000031,46.106102000000021],[-60.687774999999874,46.088326000000052],[-60.701110999999912,46.08526599999999],[-60.788895000000025,46.066666000000055],[-60.86333499999995,46.052490000000034],[-60.986114999999927,45.982491000000095],[-61.023887999999943,45.969437000000028],[-61.080283999999949,45.951660000000004],[-61.087776000000019,45.95138500000013],[-61.095832999999971,45.952217000000076],[-61.105003000000011,45.954712000000086],[-61.113059999999905,45.955268999999987],[-61.117774999999938,45.950828999999999],[-61.126944999999978,45.928329000000133],[-61.125556999999958,45.923607000000061],[-61.118332000000009,45.923049999999932],[-61.056999000000019,45.931216999999947],[-61.052834000000018,45.931881000000033],[-61.017497999999989,45.940712000000076],[-61.014835000000005,45.943382000000042],[-60.989165999999955,45.95638300000013],[-60.987777999999935,45.962494000000049],[-60.984168999999952,45.967490999999939],[-60.957221999999945,45.984992999999974],[-60.940551999999911,45.994438000000059],[-60.892776000000026,46.01527400000009],[-60.853057999999976,46.03138000000007],[-60.770835999999917,46.057495000000074],[-60.757506999999919,46.060546999999985],[-60.743056999999965,46.061661000000015],[-60.735557999999912,46.058044000000052],[-60.734169000000009,46.05332199999998],[-60.734169000000009,46.047493000000145],[-60.807502999999997,45.931107000000111],[-60.870276999999987,45.910820000000058],[-60.898055999999997,45.906654000000117],[-60.956947000000014,45.903046000000018],[-61.042888999999946,45.891327000000103],[-61.047053999999946,45.890659000000085],[-61.050555999999972,45.888991999999973],[-61.053390999999976,45.886162000000127],[-61.096663999999976,45.860275000000001],[-61.097777999999948,45.854713000000061],[-61.094718999999998,45.850273000000016],[-61.087776000000019,45.847487999999998],[-61.079726999999991,45.84693900000002],[-61.073059000000001,45.84804500000007],[-61.060829000000012,45.852776000000006],[-61.049445999999989,45.858330000000024],[-61.026107999999965,45.86971299999999],[-60.989997999999957,45.881934999999999],[-60.96805599999999,45.883331000000055],[-60.960281000000009,45.880272000000048],[-60.919448999999986,45.857498000000078],[-60.915833000000021,45.852776000000006],[-60.917777999999942,45.847487999999998],[-60.935271999999941,45.825271999999984],[-60.940551999999911,45.821663000000001],[-60.947495000000004,45.820549000000028],[-61.019446999999957,45.809989999999971],[-61.067504999999983,45.791663999999969],[-61.079169999999976,45.786110000000008],[-61.118057000000022,45.763611000000026],[-61.12777699999998,45.755271999999991],[-61.147223999999994,45.704993999999999],[-61.149170000000026,45.699715000000026],[-61.142501999999922,45.696381000000031],[-61.077498999999932,45.688880999999981],[-61.070838999999978,45.689987000000031],[-61.041945999999996,45.704162999999994],[-61.012778999999966,45.718880000000013],[-60.996391000000017,45.727767999999969],[-60.972771000000023,45.738045],[-60.954719999999952,45.745543999999938],[-60.935829000000012,45.751389000000074],[-60.92222599999991,45.75360900000004],[-60.914443999999946,45.75360900000004],[-60.890556000000004,45.751663000000008],[-60.881942999999922,45.750000000000057],[-60.864165999999898,45.744438000000116],[-60.844161999999983,45.735268000000076],[-60.816665999999998,45.722488000000112],[-60.809998000000007,45.719154000000117],[-60.800835000000006,45.71166199999999],[-60.729438999999957,45.778603000000032],[-60.719718999999998,45.788329999999974],[-60.516944999999964,45.920830000000137],[-60.491942999999878,45.929436000000067],[-60.466942000000017,45.938041999999996],[-60.409163999999976,45.979987999999935],[-60.404166999999973,45.984436000000073],[-60.395835999999974,45.99610100000001],[-60.40166499999998,45.994713000000104],[-60.555000000000007,45.946938000000102],[-60.611671000000001,45.924995000000138],[-60.629722999999899,45.917496000000142],[-60.639998999999989,45.91027100000008],[-60.644721999999945,45.905548000000124],[-60.655272999999966,45.898330999999985],[-60.661110000000008,45.895270999999923],[-60.673331999999903,45.890549000000021],[-60.686110999999926,45.886940000000038],[-60.69388600000002,45.886107999999922],[-60.708892999999875,45.887215000000026],[-60.723327999999981,45.893326000000116],[-60.788337999999953,45.929436000000067],[-60.789725999999973,45.934433000000126],[-60.788895000000025,45.939986999999974],[-60.785278000000005,45.946381000000031],[-60.78055599999999,45.950828999999999],[-60.691382999999973,46.001937999999939],[-60.679168999999945,46.006660000000011],[-60.601395000000025,46.039719000000105],[-60.541114999999991,46.065544000000102],[-60.523612999999955,46.075554000000011],[-60.490836999999942,46.094437000000084],[-60.30999799999995,46.206939999999975],[-60.30499999999995,46.210548000000074],[-60.299994999999967,46.214996000000042],[-60.295279999999934,46.226936000000137],[-60.295279999999934,46.232208000000071],[-60.304169000000002,46.233878999999945],[-60.365554999999972,46.224990999999989],[-60.372771999999998,46.223320000000115],[-60.396111000000019,46.213051000000064],[-60.401938999999913,46.21027399999997],[-60.418335000000013,46.199996999999996],[-60.428054999999915,46.192490000000078],[-60.442497000000003,46.17943600000001],[-60.463332999999921,46.163879000000122],[-60.479163999999912,46.152771000000143],[-60.528053,46.121658000000139],[-60.605835000000013,46.074715000000083],[-60.629997000000003,46.065269000000114],[-60.644164999999987,46.063049000000092],[-60.65193899999997,46.063880999999981],[-60.656104999999968,46.067772000000048],[-60.656386999999938,46.073051000000021],[-60.652495999999985,46.079436999999984],[-60.638335999999867,46.093048000000124],[-60.456107999999972,46.241379000000052],[-60.404998999999975,46.279991000000052],[-60.399726999999984,46.283882000000119],[-60.388892999999996,46.291106999999954],[-60.359725999999966,46.304993000000138],[-60.347778000000005,46.310546999999985],[-60.285278000000005,46.321381000000031],[-60.205558999999994,46.240273000000002],[-60.138054000000011,46.246658000000025],[-60.131942999999922,46.248604000000114],[-60.124167999999997,46.248604000000114],[-60.099997999999971,46.246384000000091],[-60.091666999999916,46.244713000000047],[-59.950553999999897,46.201385000000073],[-59.873054999999965,46.17582699999997],[-59.808608999999876,46.111938000000066],[-59.80972300000002,46.106384000000048],[-59.819449999999961,46.097214000000008],[-59.834166999999979,46.084717000000012],[-59.853888999999924,46.00249500000001],[-59.840553,45.938324000000023],[-59.958610999999962,45.901657000000057],[-60.130279999999971,45.867767000000129],[-60.136115999999959,45.864997999999957],[-60.155272999999966,45.846656999999993],[-60.159438999999963,45.841102999999976],[-60.160552999999936,45.835548000000074],[-60.174445999999989,45.76388500000013],[-60.229163999999969,45.705551000000128],[-60.233886999999925,45.701102999999932],[-60.245834000000002,45.69499200000007],[-60.379723000000013,45.644997000000046],[-60.392226999999991,45.641105999999979],[-60.411666999999966,45.636940000000095],[-60.49888599999997,45.620269999999948],[-60.513061999999934,45.618880999999988],[-60.55750299999994,45.618049999999982],[-60.765556000000004,45.594994000000099],[-60.960830999999928,45.599433999999917],[-61.101669000000015,45.564437999999996],[-61.14833799999991,45.555267000000072],[-61.168334999999956,45.551384000000098],[-61.196917999999982,45.583740000000091],[-61.218696999999963,45.580788000000098],[-61.237521999999956,45.581528000000048],[-61.273055999999997,45.561935000000005],[-61.336945000000014,45.573326000000009],[-61.37557599999991,45.622131000000138],[-61.430556999999965,45.665543000000071],[-61.454719999999952,45.705551000000128],[-61.457503999999972,45.71527100000003],[-61.478049999999996,45.803879000000109],[-61.494720000000029,45.846381999999949],[-61.527495999999985,45.98943300000002],[-61.455558999999994,46.137497000000053],[-61.447776999999974,46.149436999999978],[-61.438888999999961,46.159430999999984],[-61.412772999999959,46.178329000000076],[-61.390839000000028,46.191376000000105],[-61.37388599999997,46.200829000000113],[-61.343329999999924,46.212493999999992],[-61.305557000000022,46.224990999999989],[-61.293892000000028,46.230819999999994],[-61.283332999999971,46.238884000000041],[-61.09722099999999,46.44609800000012],[-61.089438999999913,46.458046000000138],[-61.035278000000005,46.555549999999982],[-61.033057999999926,46.561661000000072],[-61.031113000000005,46.572769000000051],[-61.032501000000025,46.577492000000063],[-60.996947999999918,46.634720000000073],[-60.892226999999991,46.77388000000002],[-60.873610999999869,46.793052999999929],[-60.86361699999992,46.801384000000041],[-60.84027900000001,46.813605999999993],[-60.833884999999896,46.815543999999932],[-60.805557000000022,46.820273999999984],[-60.793892000000028,46.825271999999984],[-60.724716000000001,46.874992000000134],[-60.714721999999995,46.88249200000007],[-60.704444999999907,46.891380000000026],[-60.695273999999927,46.901657],[-60.686660999999958,46.912491000000045],[-60.678336999999942,46.930824000000143],[-60.670554999999979,46.953606000000036],[-60.664444000000003,46.966103000000032],[-60.65694400000001,46.978600000000029],[-60.640282000000013,47],[-60.609169000000009,47.024437000000091],[-60.597777999999892,47.031105000000025],[-60.591942000000017,47.033333000000027],[-60.583327999999938,47.031661999999926],[-60.460830999999871,46.999161000000015],[-60.427498000000014,46.965827999999988],[-60.493889000000024,46.902214000000072],[-60.498055000000022,46.896660000000111],[-60.452224999999942,46.864441000000056],[-60.445273999999984,46.861664000000133]],[[-64.039718999999991,46.743324000000086],[-64.031677000000002,46.742767000000015],[-64.016402999999912,46.743607000000054],[-64.009170999999981,46.744156000000032],[-64.005004999999983,46.749718000000144],[-63.999999999999943,46.75360900000004],[-63.991668999999945,46.753052000000139],[-63.979163999999912,46.746383999999978],[-63.974715999999944,46.742493000000081],[-63.832503999999972,46.617210000000057],[-63.831673000000023,46.611938000000123],[-63.865004999999883,46.537498000000085],[-63.868888999999967,46.531937000000084],[-63.840836000000024,46.464438999999913],[-63.828339000000028,46.458046000000138],[-63.780281000000002,46.44499200000007],[-63.742226000000016,46.439430000000129],[-63.733054999999979,46.438881000000038],[-63.709442000000024,46.43749200000002],[-63.703888000000006,46.440544000000102],[-63.698050999999964,46.456383000000073],[-63.698607999999979,46.461662000000047],[-63.700279000000023,46.466385000000002],[-63.722771000000023,46.48054500000012],[-63.738051999999982,46.491378999999995],[-63.739998000000014,46.496101000000067],[-63.723327999999924,46.543610000000058],[-63.716110000000015,46.553879000000109],[-63.709723999999994,46.556099000000131],[-63.676391999999964,46.564156000000082],[-63.662216000000001,46.566382999999973],[-63.647223999999881,46.56721500000009],[-63.618889000000024,46.561104],[-63.497779999999977,46.527771000000143],[-63.315001999999936,46.488602000000071],[-63.271979999999928,46.426926000000094],[-63.240661999999986,46.420456000000001],[-63.216392999999982,46.412209000000132],[-62.942771999999877,46.426941000000113],[-62.862777999999935,46.434715000000097],[-62.698607999999979,46.452492000000007],[-62.692497000000003,46.456100000000106],[-62.686385999999914,46.457497000000046],[-62.665833000000021,46.461104999999975],[-62.595001000000025,46.470825000000048],[-62.477218999999991,46.477768000000026],[-62.455558999999994,46.478600000000142],[-62.182502999999997,46.485824999999977],[-62.166388999999981,46.486107000000061],[-62.133330999999941,46.482764999999915],[-62.058051999999975,46.472762999999986],[-62.014724999999942,46.46527100000003],[-61.979720999999984,46.45915999999994],[-61.970551,46.456940000000145],[-61.965003999999965,46.453323000000012],[-61.968886999999995,46.447768999999994],[-61.973609999999951,46.443047000000092],[-62.013061999999991,46.421104000000128],[-62.101112000000001,46.379715000000033],[-62.173331999999959,46.349433999999974],[-62.215552999999943,46.343605000000139],[-62.279723999999931,46.338043000000027],[-62.309166000000005,46.349998000000085],[-62.326392999999996,46.354996000000085],[-62.342773000000022,46.356102000000135],[-62.357779999999934,46.35582700000009],[-62.355834999999956,46.35083000000003],[-62.348052999999993,46.332214000000022],[-62.334723999999994,46.311935000000062],[-62.361945999999932,46.276657000000057],[-62.419448999999986,46.219986000000119],[-62.424720999999977,46.215546000000074],[-62.453888000000006,46.21443899999997],[-62.507506999999919,46.214157000000114],[-62.603888999999924,46.182495000000131],[-62.603888999999924,46.177215999999987],[-62.54222900000002,46.122490000000028],[-62.507506999999919,46.118881000000044],[-62.5,46.119156000000089],[-62.478333000000021,46.120827000000133],[-62.477218999999991,46.126380999999924],[-62.478881999999999,46.131935000000112],[-62.481667000000016,46.13638300000008],[-62.489998000000014,46.138328999999999],[-62.497222999999963,46.138046000000031],[-62.506110999999976,46.139717000000076],[-62.513892999999996,46.142220000000066],[-62.509726999999998,46.148605000000032],[-62.504448000000025,46.150825999999995],[-62.489166000000012,46.151382000000126],[-62.473052999999993,46.150269000000094],[-62.468886999999995,46.146102999999982],[-62.449164999999937,46.100548000000003],[-62.447494999999947,46.095543000000134],[-62.446945000000028,46.090546000000018],[-62.454720000000009,46.018883000000073],[-62.459166999999979,46.006386000000077],[-62.473609999999951,45.994713000000104],[-62.496947999999975,45.983879000000002],[-62.510001999999929,45.979156000000046],[-62.541671999999949,45.970543000000077],[-62.548614999999927,45.969437000000028],[-62.591667000000029,45.964996000000099],[-62.613891999999964,45.962769000000037],[-62.650276000000019,45.960274000000027],[-62.761115999999959,45.954162999999937],[-62.837776000000019,45.967490999999939],[-62.856667000000016,45.977486000000056],[-62.882773999999984,45.995544000000109],[-62.930283000000031,46.037215999999944],[-62.970832999999971,46.07416500000005],[-62.922500999999954,46.092491000000052],[-62.917220999999984,46.096382000000119],[-62.875274999999931,46.134995000000004],[-62.871940999999936,46.143607999999972],[-62.885276999999974,46.155823000000055],[-62.890839000000028,46.159430999999984],[-63.025276000000019,46.189156000000082],[-63.103614999999991,46.201934999999935],[-63.112777999999992,46.204163000000108],[-63.119445999999868,46.207214000000135],[-63.12222300000002,46.211662000000103],[-63.120276999999987,46.217766000000097],[-63.115836999999942,46.222487999999998],[-63.038895000000025,46.280273000000079],[-63.02416999999997,46.290275999999949],[-63.017776000000026,46.292496000000142],[-63.010284000000013,46.292770000000075],[-63.002228000000002,46.289992999999981],[-62.99610899999999,46.292220999999984],[-62.979438999999957,46.301658999999972],[-62.969161999999983,46.309432999999956],[-62.964721999999881,46.314156000000139],[-62.962775999999963,46.319992000000013],[-62.969443999999953,46.31888600000002],[-63.035277999999892,46.301658999999972],[-63.041388999999981,46.299721000000034],[-63.052779999999927,46.293884000000048],[-63.058608999999933,46.290833000000021],[-63.090836000000024,46.26915699999995],[-63.165001000000018,46.210548000000074],[-63.143332999999984,46.201660000000118],[-63.139167999999984,46.197769000000051],[-63.138610999999912,46.192490000000078],[-63.140556000000004,46.186378000000104],[-63.22444200000001,46.139717000000076],[-63.23860899999994,46.138046000000031],[-63.253615999999965,46.137497000000053],[-63.26167299999986,46.138046000000031],[-63.289169000000015,46.14388299999996],[-63.409163999999919,46.176940999999999],[-63.519722000000002,46.206099999999935],[-63.591942000000017,46.211937000000091],[-63.642775999999913,46.224990999999989],[-63.649726999999928,46.228043000000071],[-63.699722000000008,46.259437999999989],[-63.700553999999954,46.269989000000066],[-63.702224999999999,46.27526899999998],[-63.70666499999993,46.278602999999919],[-63.741942999999935,46.304436000000067],[-63.754447999999968,46.310822000000144],[-63.811110999999926,46.32749200000012],[-63.772223999999937,46.360825000000091],[-63.736945999999932,46.353882000000112],[-63.729163999999969,46.352776000000063],[-63.714721999999995,46.354164000000026],[-63.739166000000012,46.391106000000036],[-63.745002999999997,46.394714000000135],[-63.754447999999968,46.396385000000009],[-63.761672999999917,46.396659999999997],[-63.841109999999958,46.39888000000002],[-63.963615000000004,46.401100000000042],[-63.981941000000006,46.39388300000013],[-63.989165999999898,46.393608000000086],[-64.121933000000013,46.404709000000025],[-64.129989999999964,46.407211000000132],[-64.133057000000008,46.4116590000001],[-64.135009999999909,46.416382000000056],[-64.133057000000008,46.43332700000002],[-64.115828999999962,46.523048000000017],[-64.11332699999997,46.53472099999999],[-64.110000999999954,46.541107000000125],[-64.105559999999969,46.54583000000008],[-64.100280999999882,46.549720999999977],[-64.094161999999926,46.551659000000086],[-64.105559999999969,46.618050000000096],[-64.273894999999982,46.62332200000003],[-64.387511999999958,46.62082700000002],[-64.391952999999944,46.624709999999936],[-64.413895000000025,46.665825000000098],[-64.415558000000033,46.670546999999999],[-64.416655999999932,46.68110699999994],[-64.414718999999991,46.697769000000108],[-64.410277999999948,46.711105000000089],[-64.400283999999942,46.727486000000113],[-64.382492000000013,46.746658000000082],[-64.346953999999982,46.773605000000032],[-64.323897999999929,46.786384999999996],[-64.296386999999982,46.801659000000029],[-64.286117999999931,46.80943300000007],[-64.27305599999994,46.823607999999979],[-64.249724999999955,46.868050000000039],[-64.247771999999941,46.874161000000129],[-64.247222999999906,46.879714999999976],[-64.243880999999988,46.886108000000092],[-64.236389000000031,46.897491000000116],[-64.226943999999946,46.906097000000045],[-64.182770000000005,46.945541000000105],[-64.168610000000001,46.956657000000064],[-64.020844000000011,47.038605000000132],[-63.99500299999994,46.984161000000086],[-63.969993999999986,46.901657],[-63.967498999999862,46.891662999999994],[-64.041381999999999,46.82249500000006],[-64.066100999999946,46.804436000000123],[-64.076401000000033,46.798881999999992],[-64.091674999999952,46.778603000000032],[-64.077498999999932,46.756386000000134],[-64.074448000000018,46.752220000000023],[-64.067504999999926,46.749161000000072],[-64.039718999999991,46.743324000000086]],[[-55.876105999999993,47.260551000000021],[-55.968329999999867,47.257773999999927],[-55.946388000000013,47.273323000000062],[-55.934440999999936,47.279434000000094],[-55.895003999999972,47.290833000000021],[-55.888053999999954,47.292496000000142],[-55.881110999999976,47.293326999999977],[-55.872771999999998,47.292221000000097],[-55.865836999999885,47.287773000000129],[-55.855003000000011,47.269714000000022],[-55.876105999999993,47.260551000000021]],[[-61.380554000000018,47.620270000000119],[-61.493057000000022,47.552490000000091],[-61.498610999999926,47.550270000000069],[-61.535560999999973,47.54583000000008],[-61.54222900000002,47.545547000000113],[-61.547782999999868,47.549164000000076],[-61.549445999999989,47.553879000000109],[-61.545279999999991,47.55943300000007],[-61.520279000000016,47.569160000000011],[-61.513892999999939,47.572495000000117],[-61.477492999999924,47.60054800000006],[-61.473610000000008,47.6055530000001],[-61.471382000000006,47.611382000000106],[-61.470551,47.616936000000123],[-61.479163999999969,47.618599000000017],[-61.534447,47.618881000000101],[-61.541945999999996,47.617210000000057],[-61.559440999999993,47.609161000000029],[-61.653610000000015,47.549995000000081],[-61.855559999999969,47.417213000000061],[-61.849723999999981,47.413605000000132],[-61.841667000000029,47.410820000000115],[-61.833611000000019,47.409987999999998],[-61.789169000000015,47.425827000000083],[-61.777221999999995,47.431664000000069],[-61.766662999999937,47.439156000000025],[-61.714447000000007,47.489989999999977],[-61.691382999999973,47.515548999999965],[-61.701392999999939,47.491936000000067],[-61.740836999999942,47.44499200000007],[-61.843329999999924,47.388603000000046],[-61.90589099999994,47.354935000000012],[-61.925277999999992,47.343605000000139],[-61.93332700000002,47.333327999999938],[-61.962776000000019,47.281662000000097],[-61.965003999999965,47.275551000000007],[-61.964721999999995,47.270271000000093],[-61.961945000000014,47.266106000000093],[-61.957503999999972,47.261940000000038],[-61.938605999999993,47.257217000000026],[-61.827782000000013,47.234161000000029],[-61.819450000000018,47.233330000000024],[-61.807776999999987,47.239159000000029],[-61.799445999999989,47.250274999999931],[-61.794723999999917,47.254714999999976],[-61.783057999999869,47.260551000000021],[-61.782775999999956,47.255272000000048],[-61.789725999999916,47.242493000000024],[-61.793892000000028,47.236938000000123],[-61.799445999999989,47.232764999999972],[-61.810279999999977,47.226654000000053],[-61.816948000000025,47.224709000000075],[-61.84444400000001,47.219436999999971],[-61.859443999999883,47.218047999999953],[-61.955276000000026,47.211662000000047],[-61.979995999999971,47.213608000000136],[-61.996390999999903,47.214996000000042],[-62.004722999999956,47.217766000000097],[-62.010001999999872,47.22137500000008],[-62.013061999999991,47.225821999999994],[-62.014724999999942,47.23054500000012],[-62.015006999999912,47.235825000000034],[-62.013061999999991,47.241661000000079],[-61.948607999999979,47.379432999999949],[-61.941665999999941,47.392219999999952],[-61.937499999999943,47.39777400000014],[-61.928054999999972,47.407211000000075],[-61.922225999999966,47.409987999999998],[-61.908889999999928,47.413879000000065],[-61.736114999999984,47.507216999999969],[-61.705832999999984,47.532494000000099],[-61.684440999999936,47.547492999999974],[-61.662216000000001,47.561661000000072],[-61.616942999999992,47.588042999999914],[-61.571114000000023,47.613608999999997],[-61.553611999999987,47.623046999999985],[-61.53583500000002,47.631659999999954],[-61.529167000000029,47.633606000000043],[-61.521110999999962,47.634437999999989],[-61.425277999999992,47.642769000000044],[-61.407775999999956,47.641105999999922],[-61.388892999999996,47.637771999999984],[-61.381942999999922,47.634437999999989],[-61.377776999999924,47.631103999999993],[-61.376105999999993,47.626380999999981],[-61.380554000000018,47.620270000000119]],[[-54.261391000000003,47.39027400000009],[-54.268889999999999,47.389717000000019],[-54.293059999999969,47.391663000000051],[-54.341385000000002,47.398048000000074],[-54.358054999999979,47.403046000000074],[-54.364448999999979,47.406654000000003],[-54.365554999999915,47.411659000000043],[-54.359726000000023,47.416664000000083],[-54.326392999999996,47.436653000000035],[-54.295279999999991,47.44999700000011],[-54.278053,47.460823000000062],[-54.267220000000009,47.469437000000084],[-54.262222000000008,47.474709000000018],[-54.257781999999963,47.480820000000108],[-54.230552999999986,47.523605000000032],[-54.229996000000028,47.550270000000069],[-54.204719999999952,47.593605000000082],[-54.13527699999986,47.668053000000043],[-54.128882999999973,47.670546999999999],[-54.122771999999998,47.66693900000007],[-54.121940999999993,47.661934000000031],[-54.122222999999963,47.656937000000084],[-54.124999999999943,47.640831000000105],[-54.160827999999981,47.534996000000035],[-54.238892000000021,47.40387700000008],[-54.243331999999953,47.399437000000091],[-54.255004999999983,47.392769000000101],[-54.261391000000003,47.39027400000009]],[[-54.077498999999989,47.479431000000091],[-54.08306099999993,47.474991000000102],[-54.093055999999933,47.483046999999999],[-54.096663999999976,47.487213000000054],[-54.101112000000001,47.496384000000035],[-54.101944000000003,47.501389000000074],[-54.099723999999924,47.558883999999978],[-54.09833500000002,47.589714000000015],[-54.097220999999934,47.605270000000132],[-54.09332999999998,47.631659999999954],[-54.083610999999962,47.679717999999923],[-54.078612999999962,47.684990000000028],[-54.071388000000013,47.685546999999929],[-54.067504999999983,47.681107000000111],[-54.060555000000022,47.651099999999985],[-54.078056000000004,47.563881000000038],[-54.05972300000002,47.532211000000132],[-54.058891000000017,47.527214000000072],[-54.077498999999989,47.479431000000091]],[[-55.901938999999857,47.602493000000038],[-55.923057999999912,47.599434000000088],[-55.947220000000016,47.601936000000137],[-56.013335999999981,47.611664000000019],[-56.097778000000005,47.627487000000031],[-56.105559999999855,47.630821000000026],[-56.109169000000009,47.63499500000006],[-56.113616999999977,47.644714000000022],[-56.112220999999977,47.649719000000118],[-56.106666999999959,47.654709000000139],[-56.100280999999939,47.657211000000018],[-56.005835999999988,47.680274999999995],[-55.941108999999983,47.689156000000139],[-55.933883999999978,47.688324000000023],[-55.92861199999993,47.684432999999956],[-55.927498000000014,47.676658999999972],[-55.934440999999936,47.658882000000119],[-55.934440999999936,47.653877000000023],[-55.932502999999997,47.643883000000017],[-55.930000000000007,47.639435000000049],[-55.926392000000021,47.635268999999994],[-55.914161999999976,47.628326000000015],[-55.889442000000031,47.618881000000101],[-55.876388999999961,47.611664000000019],[-55.882499999999936,47.607773000000122],[-55.901938999999857,47.602493000000038]],[[-64.482773000000009,47.917770000000019],[-64.50167799999997,47.856384000000048],[-64.503615999999909,47.850273000000016],[-64.514724999999999,47.832497000000046],[-64.523055999999997,47.822220000000016],[-64.541106999999954,47.80332199999998],[-64.604995999999971,47.748329000000126],[-64.610549999999989,47.745270000000005],[-64.635833999999988,47.735825000000091],[-64.647507000000019,47.733879000000002],[-64.690551999999968,47.753052000000139],[-64.693328999999949,47.758049000000028],[-64.702788999999939,47.823607999999979],[-64.697768999999994,47.836104999999918],[-64.685546999999985,47.852219000000048],[-64.667496000000028,47.866936000000067],[-64.662215999999944,47.870827000000133],[-64.624160999999958,47.884719999999959],[-64.617767000000015,47.886658000000125],[-64.609160999999972,47.886939999999981],[-64.584166999999923,47.884995000000004],[-64.508057000000008,47.903877000000023],[-64.482773000000009,47.917770000000019]],[[-64.567504999999926,47.899436999999978],[-64.574448000000018,47.89804799999996],[-64.583617999999888,47.899436999999978],[-64.589447000000007,47.902771000000143],[-64.593886999999995,47.90665400000006],[-64.594451999999933,47.911933999999974],[-64.593612999999891,47.918052999999986],[-64.531677000000002,48.016105999999979],[-64.52694699999995,48.02165999999994],[-64.522780999999952,48.025551000000007],[-64.516952999999944,48.028602999999976],[-64.509734999999921,48.029991000000052],[-64.50111400000003,48.027488999999946],[-64.495543999999938,48.023880000000133],[-64.490828999999906,48.019989000000066],[-64.48582499999992,48.013054000000011],[-64.482773000000009,48.008606000000043],[-64.469726999999978,47.969711000000132],[-64.469161999999869,47.96443899999997],[-64.470550999999944,47.953323000000069],[-64.47444200000001,47.947769000000051],[-64.496383999999978,47.933875999999998],[-64.513901000000033,47.924712999999997],[-64.567504999999926,47.899436999999978]],[[-53.712775999999963,48.14888000000002],[-53.689720000000023,48.147217000000126],[-53.682502999999997,48.147774000000027],[-53.667503000000011,48.150542999999971],[-53.647781000000009,48.155265999999926],[-53.615554999999915,48.167496000000028],[-53.583327999999995,48.18082400000003],[-53.571113999999909,48.186104000000114],[-53.564162999999951,48.190543999999932],[-53.553054999999972,48.199158000000011],[-53.539444000000003,48.202217000000132],[-53.53167000000002,48.202774000000034],[-53.516395999999986,48.201935000000105],[-53.509726999999941,48.198326000000066],[-53.509170999999867,48.193321000000026],[-53.510833999999988,48.150826000000109],[-53.512504999999919,48.145271000000037],[-53.530829999999924,48.097771000000023],[-53.536391999999978,48.093323000000055],[-53.549445999999989,48.088600000000099],[-53.56361400000003,48.084991000000116],[-53.598884999999996,48.079437000000098],[-53.634170999999924,48.075272000000098],[-53.823333999999932,48.092765999999983],[-53.83943899999997,48.094437000000084],[-53.856110000000001,48.098044999999956],[-53.871940999999936,48.104713000000118],[-53.876663000000008,48.108604000000014],[-53.93250299999994,48.172767999999962],[-53.935829000000012,48.182495000000131],[-53.932776999999987,48.198326000000066],[-53.929168999999945,48.209434999999985],[-53.922225999999966,48.212493999999936],[-53.906386999999938,48.21027400000014],[-53.898887999999943,48.206657000000007],[-53.860000999999954,48.174438000000123],[-53.855559999999969,48.169991000000095],[-53.712775999999963,48.14888000000002]],[[-123.47444200000001,48.709160000000054],[-123.48277300000001,48.708328000000108],[-123.48999000000003,48.709435000000042],[-123.51306199999993,48.716385000000116],[-123.52471899999989,48.722488000000055],[-123.54943800000001,48.746658000000082],[-123.551941,48.752220000000023],[-123.59277299999991,48.898331000000098],[-123.595551,48.909714000000122],[-123.59612299999998,48.928329000000076],[-123.59665699999994,48.946938000000046],[-123.59361299999995,48.947211999999979],[-123.58056599999992,48.935547000000042],[-123.57721699999996,48.929161000000136],[-123.53611799999999,48.914993000000095],[-123.53028899999998,48.911933999999974],[-123.45749699999993,48.863052000000039],[-123.43388400000003,48.844437000000084],[-123.37027,48.768326000000002],[-123.36888099999993,48.762771999999984],[-123.37165800000002,48.75750000000005],[-123.37638900000002,48.753608999999983],[-123.43195300000002,48.721099999999979],[-123.47444200000001,48.709160000000054]],[[-58.342223999999987,49.066101000000117],[-58.349166999999966,49.064437999999996],[-58.356109999999944,49.065826000000129],[-58.351943999999889,49.071938000000102],[-58.341385000000002,49.07638500000013],[-58.333611000000019,49.077773999999977],[-58.330558999999994,49.073326000000009],[-58.335830999999928,49.068885999999964],[-58.342223999999987,49.066101000000117]],[[-123.32277699999997,48.861107000000004],[-123.3705369999999,48.856384000000048],[-123.37888299999997,48.85694100000012],[-123.38474299999996,48.859993000000031],[-123.54055799999998,48.944992000000127],[-123.66251399999999,49.03527100000008],[-123.70388800000001,49.095268000000033],[-123.70527599999997,49.100273000000072],[-123.70249899999999,49.105552999999986],[-123.695831,49.108047000000113],[-123.68639400000001,49.106659000000036],[-123.68055700000002,49.103607000000068],[-123.674713,49.093048000000067],[-123.65943900000002,49.073608000000036],[-123.60444599999994,49.014717000000132],[-123.58640300000002,49.000549000000092],[-123.52166699999998,48.96027400000014],[-123.49916099999996,48.947211999999979],[-123.487503,48.94110100000006],[-123.45973200000003,48.930549999999982],[-123.43639399999995,48.924438000000009],[-123.42027299999995,48.920547000000113],[-123.38194299999992,48.910819999999944],[-123.32833900000003,48.895827999999938],[-123.32250999999991,48.892768999999987],[-123.31777999999997,48.88888500000013],[-123.31276700000001,48.872765000000072],[-123.3125,48.868050000000039],[-123.31639100000001,48.863327000000027],[-123.32277699999997,48.861107000000004]],[[-125.816101,49.125824000000136],[-125.82028200000002,49.124709999999993],[-125.86028299999998,49.134438000000046],[-125.906387,49.160820000000115],[-125.91027800000001,49.165543000000071],[-125.92582699999991,49.190826000000015],[-125.93360899999993,49.211104999999918],[-125.93306000000001,49.218048000000124],[-125.93055700000002,49.219986000000063],[-125.92610200000001,49.223320000000058],[-125.87888299999992,49.235824999999977],[-125.86749299999997,49.233330000000137],[-125.82917800000001,49.226379000000009],[-125.81806899999987,49.220543000000134],[-125.79915599999998,49.208328000000051],[-125.78888699999993,49.172768000000133],[-125.79583699999995,49.151932000000102],[-125.79833999999994,49.146385000000009],[-125.81249999999994,49.129158000000132],[-125.816101,49.125824000000136]],[[-126.13194299999992,49.393325999999945],[-126.126938,49.390274000000034],[-126.12470999999999,49.390274000000034],[-126.12053699999996,49.388602999999989],[-126.11054999999999,49.382210000000043],[-126.10665899999992,49.378601000000003],[-126.09612300000003,49.368599000000074],[-126.08640300000002,49.358604000000128],[-126.07277699999997,49.34304800000001],[-126.0497279999999,49.265548999999965],[-126.0511019999999,49.260550999999964],[-126.05583200000001,49.256104000000107],[-126.06471299999987,49.250832000000003],[-126.07112100000001,49.248329000000012],[-126.07972699999999,49.246658000000139],[-126.08917199999991,49.246101000000067],[-126.09638999999999,49.24721500000004],[-126.18666100000002,49.263328999999999],[-126.19167299999992,49.265548999999965],[-126.22332799999992,49.279716000000121],[-126.22944599999994,49.282493999999929],[-126.23916600000001,49.289718999999991],[-126.23473399999995,49.374161000000015],[-126.22917200000001,49.378601000000003],[-126.22138999999999,49.380547000000092],[-126.14138800000001,49.39415699999995],[-126.13194299999992,49.393325999999945]],[[-123.37943999999999,49.326941999999974],[-123.39222699999999,49.326103000000046],[-123.41027799999995,49.334159999999997],[-123.42194399999994,49.339714000000015],[-123.42666600000001,49.344154000000003],[-123.42804699999999,49.348877000000016],[-123.42027299999995,49.381660000000011],[-123.41332999999997,49.386107999999979],[-123.3600009999999,49.411658999999986],[-123.35472099999998,49.413322000000107],[-123.327789,49.416664000000083],[-123.31696299999999,49.417496000000142],[-123.31220999999999,49.414992999999981],[-123.30943300000001,49.41137700000013],[-123.31027199999994,49.40526600000004],[-123.31194299999993,49.401932000000045],[-123.327789,49.363052000000096],[-123.33112299999999,49.354996000000028],[-123.34472699999998,49.341934000000037],[-123.36833199999995,49.330275999999969],[-123.37943999999999,49.326941999999974]],[[-54.705276000000026,49.400543000000084],[-54.712776000000019,49.398330999999985],[-54.730277999999998,49.403046000000018],[-54.735557999999969,49.407211000000018],[-54.759726999999941,49.432495000000017],[-54.759170999999981,49.437766999999951],[-54.754723000000013,49.443878000000041],[-54.749442999999928,49.449158000000125],[-54.73833499999995,49.457771000000093],[-54.680556999999908,49.49193600000001],[-54.673057999999912,49.492493000000081],[-54.665001000000018,49.489159000000086],[-54.644164999999987,49.473320000000001],[-54.640281999999956,49.46915400000006],[-54.640838999999971,49.463881999999955],[-54.654716000000008,49.460823000000005],[-54.684440999999993,49.420546999999999],[-54.699164999999994,49.40387700000008],[-54.705276000000026,49.400543000000084]],[[-124.179169,49.441101000000117],[-124.18554699999999,49.439986999999974],[-124.31360599999999,49.456099999999992],[-124.32668299999995,49.460823000000005],[-124.36000099999995,49.474433999999974],[-124.36609599999997,49.477486000000056],[-124.37082699999996,49.481102000000135],[-124.37165799999997,49.483047000000113],[-124.38054699999998,49.506943000000035],[-124.38110399999994,49.511940000000095],[-124.37832599999996,49.515830999999991],[-124.37165799999997,49.518326000000002],[-124.361107,49.519157000000064],[-124.35500299999995,49.517494000000113],[-124.34889199999998,49.514442000000031],[-124.30471799999992,49.512214999999969],[-124.24471999999997,49.501389000000017],[-124.23750299999995,49.498329000000126],[-124.22138999999993,49.491379000000109],[-124.1875,49.474433999999974],[-124.18167099999999,49.471375000000023],[-124.17388900000003,49.45638299999996],[-124.17194399999994,49.446655000000135],[-124.17223399999989,49.444153000000085],[-124.179169,49.441101000000117]],[[-123.33277899999996,49.441101000000117],[-123.36028299999987,49.433051999999918],[-123.37499999999994,49.433327000000133],[-123.442207,49.438599000000067],[-123.448036,49.441658000000018],[-123.45944199999997,49.467209000000082],[-123.45973200000003,49.470543000000077],[-123.45305599999995,49.495544000000109],[-123.44526699999994,49.51527400000009],[-123.43666100000002,49.522217000000069],[-123.38082899999995,49.536110000000122],[-123.37000299999994,49.536110000000122],[-123.360817,49.534995999999978],[-123.3550029999999,49.531936999999971],[-123.33833300000003,49.50610400000005],[-123.33167999999995,49.500832000000116],[-123.32805599999995,49.496383999999978],[-123.32389799999993,49.488602000000014],[-123.319458,49.474708999999962],[-123.31777999999997,49.464157],[-123.319458,49.451934999999992],[-123.32224300000001,49.448043999999925],[-123.32695000000001,49.444153000000085],[-123.33277899999996,49.441101000000117]],[[-55.695548999999971,49.506943000000035],[-55.725829999999974,49.505554000000018],[-55.732497999999964,49.509163000000001],[-55.735001000000011,49.513610999999969],[-55.736114999999984,49.518599999999935],[-55.735832000000016,49.52388000000002],[-55.730277999999942,49.545547000000056],[-55.722771000000023,49.557770000000119],[-55.716110000000015,49.560271999999998],[-55.684998000000007,49.561104000000114],[-55.676948999999979,49.561104000000114],[-55.658332999999971,49.559158000000025],[-55.653052999999886,49.555267000000129],[-55.652221999999938,49.550270000000069],[-55.653885000000002,49.544716000000051],[-55.661384999999939,49.529716000000064],[-55.664444000000003,49.52388000000002],[-55.68111399999998,49.510826000000122],[-55.687499999999943,49.508049000000028],[-55.695548999999971,49.506943000000035]],[[-124.68943799999994,49.480270000000019],[-124.69611399999997,49.477767999999969],[-124.70221700000002,49.478042999999957],[-124.74137899999994,49.488045000000113],[-124.75361599999991,49.491379000000109],[-124.82362399999994,49.539435999999966],[-124.83666999999997,49.554993000000024],[-124.84111000000001,49.562767000000008],[-124.84249899999992,49.578605999999979],[-124.84194899999989,49.58415999999994],[-124.83416699999992,49.607773000000066],[-124.83168000000001,49.610549999999989],[-124.82749899999993,49.608887000000038],[-124.81054699999993,49.589714000000129],[-124.80888400000003,49.586655000000007],[-124.80583200000001,49.585823000000062],[-124.77887699999997,49.568886000000077],[-124.68804899999986,49.483604000000014],[-124.68943799999994,49.480270000000019]],[[-55.693053999999961,49.56749700000006],[-55.709166999999979,49.566383000000087],[-55.716659999999933,49.567214999999976],[-55.720832999999971,49.571381000000088],[-55.723052999999993,49.576102999999989],[-55.722771000000023,49.581383000000073],[-55.705832999999927,49.613883999999985],[-55.684998000000007,49.624992000000134],[-55.673888999999974,49.630547000000035],[-55.659720999999934,49.635551000000021],[-55.653052999999886,49.63638300000008],[-55.572776999999974,49.603881999999999],[-55.567504999999926,49.599998000000141],[-55.573058999999944,49.595543000000134],[-55.586387999999943,49.59137700000008],[-55.608054999999979,49.586104999999975],[-55.671669000000009,49.571381000000088],[-55.693053999999961,49.56749700000006]],[[-54.576667999999984,49.558601000000124],[-54.77305599999994,49.493880999999988],[-54.809440999999993,49.488045000000113],[-54.83916499999998,49.48443600000013],[-54.855835000000013,49.48443600000013],[-54.863060000000019,49.485268000000019],[-54.871940999999936,49.487495000000081],[-54.873055000000022,49.492218000000094],[-54.893616000000009,49.580551000000128],[-54.894447000000014,49.58526599999999],[-54.891945000000021,49.590546000000074],[-54.885276999999974,49.593048000000124],[-54.805556999999965,49.595825000000048],[-54.792228999999963,49.572768999999994],[-54.793335000000013,49.566939999999988],[-54.791671999999892,49.56249200000002],[-54.78833800000001,49.557770000000119],[-54.784172000000012,49.554161000000136],[-54.768607999999972,49.546661000000029],[-54.760001999999986,49.545547000000056],[-54.743889000000024,49.544998000000135],[-54.729720999999984,49.548050000000046],[-54.708611000000019,49.554436000000123],[-54.614722999999969,49.606102000000021],[-54.574722000000008,49.635269000000108],[-54.561942999999928,49.653603000000089],[-54.548889000000031,49.659988000000055],[-54.536117999999931,49.664153999999996],[-54.529723999999987,49.633881000000031],[-54.531669999999963,49.62221500000004],[-54.538054999999986,49.587494000000106],[-54.543334999999956,49.582497000000046],[-54.570557000000008,49.562209999999936],[-54.576667999999984,49.558601000000124]],[[-54.004448000000025,49.647491000000116],[-54.257781999999963,49.566666000000055],[-54.265839000000028,49.566939999999988],[-54.274719000000005,49.569160000000011],[-54.289444000000003,49.576102999999989],[-54.293335000000013,49.580551000000128],[-54.298888999999917,49.609993000000088],[-54.297782999999981,49.651100000000099],[-54.288054999999929,49.71138000000002],[-54.282775999999956,49.716660000000104],[-54.269996999999989,49.722487999999998],[-54.141945000000021,49.75],[-54.102225999999973,49.750274999999988],[-54.093886999999938,49.748878000000047],[-54.085830999999985,49.745544000000052],[-54.081115999999952,49.736381999999935],[-54.040000999999961,49.689987000000087],[-54.003058999999951,49.659988000000055],[-54.004448000000025,49.647491000000116]],[[-124.129707,49.650825999999995],[-124.139183,49.650543000000027],[-124.15361000000001,49.655548000000067],[-124.18694299999993,49.668883999999991],[-124.196663,49.676940999999999],[-124.20195000000001,49.701934999999992],[-124.19943199999989,49.706099999999992],[-124.14750699999996,49.746658000000025],[-124.14277600000003,49.75],[-124.13722199999995,49.752219999999966],[-124.09166699999997,49.767769000000101],[-124.03611799999999,49.777214000000129],[-124.029449,49.778328000000101],[-124.021118,49.77777100000003],[-124.01611299999996,49.775551000000007],[-124.01862299999999,49.77165999999994],[-124.02555799999993,49.767769000000101],[-124.04611199999999,49.756386000000077],[-124.06054699999999,49.744995000000131],[-124.07472200000001,49.733330000000024],[-124.09084300000001,49.715546000000131],[-124.10109699999992,49.700272000000041],[-124.10555999999991,49.689430000000016],[-124.10722399999992,49.677215999999987],[-124.11081699999994,49.664992999999924],[-124.11361699999998,49.659713999999951],[-124.12304699999993,49.651931999999988],[-124.129707,49.650825999999995]],[[-56.80361199999993,49.763329000000056],[-56.827498999999989,49.761107999999979],[-56.83555599999994,49.762771999999984],[-56.83805099999995,49.767494000000056],[-56.832779000000016,49.771934999999985],[-56.826667999999984,49.77526899999998],[-56.792503000000011,49.785552999999993],[-56.782218999999998,49.78694200000001],[-56.78194400000001,49.780822999999941],[-56.790840000000003,49.768326000000002],[-56.796669000000009,49.764999000000046],[-56.80361199999993,49.763329000000056]],[[-124.44611399999991,49.723320000000115],[-124.43749999999994,49.723045000000127],[-124.42887899999994,49.723877000000016],[-124.41000400000001,49.723045000000127],[-124.38137799999998,49.713326000000109],[-124.35138699999999,49.698044000000095],[-124.33277900000002,49.683327000000077],[-124.13474300000001,49.525269000000037],[-124.13221699999991,49.520271000000037],[-124.12416100000002,49.499161000000072],[-124.122772,49.493607000000054],[-124.12748699999997,49.489715999999987],[-124.13417099999992,49.487495000000081],[-124.14167799999996,49.485825000000091],[-124.14916999999997,49.486107000000004],[-124.15527299999985,49.488602000000014],[-124.281387,49.546661000000029],[-124.40583800000002,49.605826999999977],[-124.43804899999998,49.628875999999991],[-124.44220699999994,49.638046000000031],[-124.47666900000002,49.67193600000013],[-124.5396649999999,49.692768000000001],[-124.55249799999996,49.697105000000022],[-124.56167599999998,49.699935999999923],[-124.61416600000001,49.713607999999965],[-124.62721299999993,49.71915400000006],[-124.65416699999997,49.736107000000118],[-124.66082799999992,49.742767000000129],[-124.65666199999993,49.796943999999939],[-124.65110800000002,49.799995000000138],[-124.61945300000002,49.797218000000044],[-124.604446,49.789436000000137],[-124.59944199999995,49.78443900000002],[-124.59028599999999,49.77165999999994],[-124.56234000000001,49.753326000000015],[-124.55933399999998,49.751495000000034],[-124.49472000000003,49.733330000000024],[-124.44611399999991,49.723320000000115]],[[-126.67610199999996,49.583603000000039],[-126.68138099999993,49.583054000000118],[-126.68888899999996,49.583878000000084],[-126.69722000000002,49.585548000000074],[-126.78971899999999,49.612213000000111],[-126.80803699999996,49.61971299999999],[-126.81416299999995,49.622765000000072],[-126.90556300000003,49.685547000000099],[-126.96528599999999,49.726935999999966],[-126.96945199999999,49.731102000000078],[-126.97416699999991,49.740273000000002],[-126.97556299999997,49.75],[-126.94055200000003,49.831383000000017],[-126.890556,49.84777100000008],[-126.79915599999993,49.876099000000011],[-126.77749599999993,49.87971500000009],[-126.76872299999997,49.878616000000079],[-126.74944299999999,49.85694100000012],[-126.73416099999997,49.848045000000013],[-126.67804699999994,49.825272000000098],[-126.64472999999992,49.774162000000047],[-126.636124,49.759437999999989],[-126.63445300000001,49.753883000000087],[-126.61332699999997,49.648330999999985],[-126.61609599999997,49.624435000000062],[-126.62053699999996,49.606102000000021],[-126.62416099999996,49.601386999999988],[-126.63305700000001,49.596100000000035],[-126.66861,49.585548000000074],[-126.67610199999996,49.583603000000039]],[[-62.089721999999881,49.386383000000137],[-62.081389999999999,49.385551000000078],[-62.051665999999955,49.390274000000034],[-62.043616999999927,49.390549000000078],[-62.025276000000019,49.38749700000011],[-61.892226999999934,49.351387000000045],[-61.875557000000015,49.344994000000042],[-61.825835999999924,49.312209999999993],[-61.821114000000023,49.308883999999978],[-61.663329999999917,49.149162000000047],[-61.661666999999966,49.144439999999975],[-61.670837000000006,49.134163000000001],[-61.702224999999942,49.111107000000004],[-61.735557999999969,49.096099999999979],[-61.796111999999937,49.078048999999965],[-62.019996999999989,49.069443000000035],[-62.029167000000029,49.069443000000035],[-62.195549000000028,49.074997000000053],[-62.368057000000022,49.0991590000001],[-62.726105000000018,49.154709000000025],[-62.782218999999884,49.165824999999984],[-62.946662999999944,49.198874999999987],[-63.089995999999985,49.228043000000014],[-63.097778000000005,49.23054500000012],[-63.209442000000024,49.270827999999995],[-63.23082699999992,49.280273000000022],[-63.242774999999938,49.287498000000085],[-63.253059000000007,49.294997999999964],[-63.269996999999989,49.311104],[-63.275832999999977,49.314712999999983],[-63.283332999999914,49.317771999999934],[-63.387221999999952,49.34388000000007],[-63.416945999999882,49.350829999999974],[-63.501296999999965,49.370384000000115],[-63.537223999999867,49.379714999999976],[-63.573058999999944,49.396660000000111],[-63.61611199999993,49.446938000000102],[-63.621940999999879,49.455551000000071],[-63.620833999999945,49.461105000000089],[-63.616660999999908,49.46665999999999],[-63.61333499999995,49.473044999999956],[-63.612502999999947,49.478873999999962],[-63.61611199999993,49.488327000000027],[-63.619720000000029,49.492767000000015],[-63.662772999999959,49.533051],[-63.67888599999992,49.544716000000051],[-63.714446999999893,49.566383000000087],[-63.84194199999996,49.639160000000004],[-63.881942999999978,49.65915700000005],[-63.918334999999956,49.674438000000009],[-64.01556399999987,49.702492000000063],[-64.306945999999925,49.777489000000003],[-64.382216999999969,49.789436000000137],[-64.389998999999932,49.789719000000105],[-64.418335000000013,49.801658999999972],[-64.511123999999995,49.858604000000014],[-64.513901000000033,49.863609000000054],[-64.510283999999956,49.868599000000131],[-64.50111400000003,49.878043999999989],[-64.496108999999876,49.883049000000085],[-64.490828999999906,49.886939999999925],[-64.472778000000005,49.895828000000108],[-64.458618000000001,49.900826000000109],[-64.445540999999992,49.904434000000037],[-64.226943999999946,49.948326000000066],[-64.203613000000018,49.950271999999984],[-64.142775999999969,49.948044000000039],[-64.133057000000008,49.947212000000093],[-64.12388599999997,49.945267000000115],[-64.029175000000009,49.924438000000123],[-63.958892999999932,49.898048000000131],[-63.615836999999942,49.849158999999986],[-63.545006000000001,49.843323000000112],[-63.49222599999996,49.840828000000045],[-63.475272999999959,49.840546000000018],[-63.346946999999943,49.820274000000097],[-63.309722999999963,49.813880999999981],[-63.136115999999959,49.780822999999941],[-63.074447999999961,49.764160000000061],[-62.99610899999999,49.736656000000096],[-62.786667000000023,49.676384000000098],[-62.71055599999994,49.660820000000001],[-62.545554999999979,49.599998000000141],[-62.443610999999919,49.5472180000001],[-62.340553,49.486938000000009],[-62.212218999999948,49.41443600000008],[-62.205832999999984,49.41137700000013],[-62.188889000000017,49.405823000000112],[-62.169166999999959,49.401099999999985],[-62.099167000000023,49.387771999999984],[-62.089721999999881,49.386383000000137]],[[-124.92415599999998,50.05860100000001],[-124.96861299999995,50.035827999999981],[-125.00055699999996,50.056656000000032],[-125.06304899999998,50.103324999999984],[-125.06696299999999,50.107498000000135],[-125.066101,50.113884000000041],[-125.0625,50.118324000000086],[-125.03971899999999,50.130546999999922],[-124.991669,50.168327000000033],[-124.98222399999992,50.176102000000128],[-124.98055999999991,50.18221299999999],[-124.98332199999999,50.225548000000003],[-124.93138099999993,50.171104000000128],[-124.92859599999997,50.166100000000142],[-124.91528299999999,50.141380000000083],[-124.89778100000001,50.077492000000063],[-124.92415599999998,50.05860100000001]],[[-63.859443999999996,50.197768999999937],[-63.873610999999983,50.194434999999999],[-63.890282000000013,50.194709999999986],[-63.899993999999936,50.196098000000063],[-63.908607000000018,50.198601000000053],[-63.916107000000011,50.201660000000004],[-63.920837000000006,50.205551000000071],[-63.930557000000022,50.218597000000045],[-63.931389000000024,50.223877000000073],[-63.930557000000022,50.229431000000091],[-63.926948999999922,50.236107000000004],[-63.922774999999888,50.241661000000022],[-63.916663999999969,50.244713000000104],[-63.909995999999921,50.246658000000139],[-63.90193899999997,50.24721500000004],[-63.889724999999999,50.242218000000094],[-63.865554999999915,50.228325000000041],[-63.859443999999996,50.224709000000018],[-63.854720999999927,50.220824999999991],[-63.852782999999988,50.216103000000089],[-63.853614999999991,50.210548000000017],[-63.855835000000013,50.204437000000098],[-63.859443999999996,50.197768999999937]],[[-125.16777000000002,49.980819999999937],[-125.16999800000002,49.980819999999937],[-125.17111199999994,49.981659000000093],[-125.18582199999997,50.004165999999998],[-125.20722999999998,50.044998000000021],[-125.21417199999996,50.069992000000013],[-125.28167699999989,50.11332700000014],[-125.31777999999986,50.136107999999979],[-125.32362399999994,50.143326000000002],[-125.33999599999993,50.203049000000021],[-125.34916699999997,50.242493000000138],[-125.34973100000002,50.25777400000004],[-125.348343,50.261665000000107],[-125.34554299999996,50.263901000000033],[-125.33999599999993,50.26888300000013],[-125.31082200000003,50.281380000000127],[-125.26334400000002,50.293883999999991],[-125.25472999999988,50.293610000000058],[-125.24638399999998,50.290549999999996],[-125.24333199999995,50.288329999999974],[-125.16722099999987,50.213608000000079],[-125.16111799999999,50.200272000000098],[-125.16000400000001,50.190544000000102],[-125.18666100000002,50.141663000000051],[-125.1536099999999,50.006103999999937],[-125.15416699999997,50.000832000000003],[-125.16416900000002,49.985268000000133],[-125.16777000000002,49.980819999999937]],[[-124.8125,50.111381999999992],[-124.82112100000001,50.111107000000118],[-124.82749899999993,50.111937999999952],[-124.83361799999989,50.114441000000113],[-124.86110699999989,50.136383000000023],[-124.93916299999995,50.207771000000093],[-124.96305799999999,50.236382000000049],[-124.96610999999996,50.246941000000106],[-124.96556099999992,50.251663000000008],[-124.92304999999993,50.296386999999982],[-124.91832699999986,50.29972099999992],[-124.91082799999998,50.299995000000081],[-124.90249599999999,50.29833200000013],[-124.89862099999999,50.293883999999991],[-124.87581599999993,50.28472099999999],[-124.82167099999992,50.239716000000044],[-124.75666799999999,50.178328999999962],[-124.75250199999999,50.167770000000132],[-124.752228,50.161376999999959],[-124.75499699999995,50.156097000000102],[-124.80695300000002,50.113884000000041],[-124.8125,50.111381999999992]],[[-124.73082699999992,50.302215999999987],[-124.72693599999997,50.299164000000019],[-124.72471599999994,50.299164000000019],[-124.69554099999999,50.289436000000023],[-124.68331899999993,50.283333000000084],[-124.67250100000001,50.276100000000042],[-124.66860999999994,50.272491000000059],[-124.66111799999993,50.263054000000125],[-124.65943900000002,50.258330999999941],[-124.65750099999997,50.247772000000111],[-124.65611299999989,50.231377000000009],[-124.65834000000001,50.212212000000022],[-124.66000399999996,50.207496999999989],[-124.66251399999999,50.203323000000125],[-124.695831,50.157494000000042],[-124.70195000000001,50.158600000000092],[-124.70805399999995,50.161376999999959],[-124.79222099999993,50.22526600000009],[-124.79499800000002,50.228874000000019],[-124.78083800000002,50.269440000000031],[-124.77778599999999,50.27748900000006],[-124.74500299999994,50.299437999999952],[-124.74054699999994,50.30193300000002],[-124.73082699999992,50.302215999999987]],[[-125.54387700000001,50.393883000000017],[-125.63583399999999,50.379714999999976],[-125.69360399999999,50.383330999999998],[-125.70333899999991,50.384163000000115],[-125.75527999999997,50.391662999999994],[-125.762787,50.394157000000121],[-125.76363400000002,50.397491000000116],[-125.75527999999997,50.405548000000067],[-125.74416399999996,50.40776800000009],[-125.59528399999999,50.433052000000089],[-125.58640300000002,50.434158000000139],[-125.52390300000002,50.434433000000126],[-125.51889,50.431381000000044],[-125.51806599999998,50.428604000000121],[-125.51777600000003,50.409431000000041],[-125.520554,50.403320000000122],[-125.52500899999995,50.400825999999995],[-125.53639199999998,50.395827999999995],[-125.54387700000001,50.393883000000017]],[[-125.16555800000003,50.374435000000062],[-125.06139400000001,50.240547000000049],[-125.05194099999989,50.226653999999996],[-125.05027799999993,50.221657000000107],[-125.048607,50.207771000000093],[-125.04915599999993,50.193320999999969],[-125.05166599999995,50.190826000000129],[-125.11638599999998,50.136658000000011],[-125.12917299999998,50.126098999999954],[-125.13390400000003,50.122764999999958],[-125.14028899999994,50.121658000000025],[-125.14472999999987,50.12193300000007],[-125.15083299999998,50.12499200000002],[-125.15416699999997,50.133331000000055],[-125.13971699999996,50.159431000000097],[-125.15611299999995,50.239158999999972],[-125.21083099999993,50.313048999999921],[-125.21362299999993,50.316666000000055],[-125.22000099999991,50.318329000000006],[-125.26363400000002,50.323607999999979],[-125.27194199999997,50.323883000000023],[-125.31555199999997,50.318054000000018],[-125.32112099999989,50.316939999999988],[-125.32695000000001,50.313881000000038],[-125.33306900000002,50.304435999999953],[-125.33473200000003,50.29972099999992],[-125.33944699999989,50.29583000000008],[-125.35610999999994,50.290276000000063],[-125.37222300000002,50.289436000000023],[-125.38527699999997,50.289993000000095],[-125.390289,50.29222100000004],[-125.39306599999998,50.29583000000008],[-125.39917000000003,50.311104000000114],[-125.400284,50.320831000000055],[-125.39943699999998,50.331108000000086],[-125.39806399999998,50.333878000000084],[-125.391953,50.340546000000074],[-125.291946,50.433876000000055],[-125.28443899999996,50.435822000000144],[-125.27500900000001,50.433327000000133],[-125.27306399999992,50.431107000000111],[-125.23665599999993,50.415825000000098],[-125.21640000000002,50.404709000000139],[-125.16555800000003,50.374435000000062]],[[-125.42610200000001,50.3555530000001],[-125.45777899999996,50.349434000000088],[-125.46749899999998,50.350273000000016],[-125.52610800000002,50.378875999999991],[-125.52806099999998,50.381660000000124],[-125.51862299999993,50.390274000000034],[-125.47749299999998,50.424164000000133],[-125.47165699999999,50.427489999999977],[-125.465012,50.429993000000138],[-125.37998999999996,50.460823000000005],[-125.37165799999997,50.457771000000037],[-125.37082699999996,50.455826000000059],[-125.36665299999993,50.454162999999937],[-125.34306300000003,50.441658000000018],[-125.33194700000001,50.435547000000099],[-125.33000199999998,50.430824000000143],[-125.33056599999986,50.425270000000125],[-125.33693700000003,50.416664000000026],[-125.38583399999999,50.36971299999999],[-125.39835399999998,50.364159000000029],[-125.42610200000001,50.3555530000001]],[[-125.80721999999997,50.413605000000075],[-125.90695199999993,50.409714000000008],[-125.92194399999988,50.41027100000008],[-125.92804699999999,50.411658999999986],[-125.93110699999988,50.413879000000009],[-125.95111099999997,50.433876000000055],[-125.93943799999988,50.443047000000035],[-125.90583799999996,50.45638300000013],[-125.81416299999995,50.46804800000001],[-125.80777,50.467765999999983],[-125.80359599999997,50.465546000000131],[-125.79055799999998,50.456940000000031],[-125.74109599999997,50.431664000000012],[-125.73805199999998,50.428047000000049],[-125.73805199999998,50.426658999999972],[-125.74276700000001,50.424164000000133],[-125.75834700000001,50.419990999999982],[-125.79110700000001,50.414992999999981],[-125.80721999999997,50.413605000000075]],[[-126.22582999999997,50.555267000000129],[-126.30888399999998,50.528327999999988],[-126.33640299999996,50.521659999999997],[-126.35056299999997,50.52027099999998],[-126.486107,50.515549000000078],[-126.58805799999999,50.521378000000084],[-126.60417199999995,50.52526899999998],[-126.62389400000001,50.533881999999949],[-126.60417199999995,50.539719000000105],[-126.57444800000002,50.546387000000095],[-126.55695300000002,50.548607000000118],[-126.54194599999994,50.549438000000123],[-126.52667200000002,50.548882000000106],[-126.48860200000001,50.553321999999923],[-126.38110399999999,50.574715000000026],[-126.28611799999999,50.598327999999981],[-126.28278399999999,50.597488000000112],[-126.22609699999998,50.564156000000025],[-126.22305299999999,50.560546999999985],[-126.224716,50.556655999999919],[-126.22582999999997,50.555267000000129]],[[-126.46639999999996,50.575829000000056],[-126.47501399999993,50.575554000000011],[-126.47917199999995,50.576385000000016],[-126.53555299999999,50.590546000000018],[-126.54915599999998,50.596382000000062],[-126.55222300000003,50.598602000000085],[-126.554169,50.602776000000119],[-126.55248999999998,50.607498000000021],[-126.55027799999999,50.608604000000071],[-126.54360999999994,50.611382000000049],[-126.52916699999997,50.614998000000128],[-126.45361299999996,50.626937999999996],[-126.40499899999992,50.626099000000067],[-126.385559,50.625549000000035],[-126.37721299999993,50.623877999999934],[-126.364441,50.619438000000116],[-126.36138900000003,50.615829000000133],[-126.36165599999998,50.613052000000039],[-126.36971999999992,50.605826999999977],[-126.38027999999997,50.598602000000085],[-126.38474300000001,50.596100000000035],[-126.39138799999995,50.59276600000004],[-126.39806399999998,50.591103000000089],[-126.46639999999996,50.575829000000056]],[[-59.345832999999971,50.533881999999949],[-59.353888999999924,50.533881999999949],[-59.358337000000006,50.537773000000016],[-59.384170999999924,50.633049000000085],[-59.384170999999924,50.638328999999999],[-59.382773999999984,50.64388300000013],[-59.378051999999911,50.649161999999933],[-59.371940999999993,50.652771000000143],[-59.364448999999979,50.653876999999966],[-59.355003000000011,50.652214000000072],[-59.337775999999906,50.640831000000048],[-59.333610999999905,50.636108000000036],[-59.321670999999981,50.618881000000044],[-59.305556999999965,50.59165999999999],[-59.300277999999992,50.581940000000088],[-59.298339999999939,50.57249500000006],[-59.298339999999939,50.561935000000119],[-59.308891000000017,50.553047000000106],[-59.320557000000008,50.545830000000024],[-59.333060999999873,50.539436000000137],[-59.345832999999971,50.533881999999949]],[[-126.87332200000003,50.663322000000051],[-126.83416699999998,50.634163000000058],[-126.83112299999999,50.629158000000018],[-126.83583099999998,50.625267000000122],[-126.90249599999993,50.613883999999928],[-126.91251399999999,50.61360900000011],[-127.01666299999999,50.638328999999999],[-127.025284,50.639992000000063],[-127.04276999999996,50.637497000000053],[-127.05832700000002,50.632492000000013],[-127.10193600000002,50.627486999999974],[-127.12249800000001,50.62721300000004],[-127.13221699999991,50.628326000000129],[-127.14055599999995,50.62971500000009],[-127.14472999999998,50.633881000000031],[-127.14334100000002,50.63888500000013],[-127.13166799999999,50.652214000000072],[-127.12721299999998,50.656096999999988],[-127.10916099999997,50.665267999999969],[-127.093887,50.669159000000036],[-127.08640300000002,50.669716000000108],[-126.89028899999994,50.667213000000118],[-126.87970699999994,50.666100000000029],[-126.87332200000003,50.663322000000051]],[[-126.64388999999994,50.691933000000006],[-126.65249599999999,50.691376000000105],[-126.65888999999993,50.694435000000055],[-126.662781,50.69860099999994],[-126.66583300000002,50.703323000000012],[-126.69027699999998,50.75499700000006],[-126.68554699999993,50.758888000000127],[-126.66832699999998,50.759163000000115],[-126.60221899999999,50.770828000000051],[-126.58277900000002,50.769714000000022],[-126.54387700000001,50.765831000000105],[-126.53639199999992,50.763611000000083],[-126.53582799999998,50.758606000000043],[-126.63806199999993,50.694992000000127],[-126.64388999999994,50.691933000000006]],[[-55.564720000000023,50.699714999999912],[-55.580001999999922,50.698326000000122],[-55.588889999999992,50.699431999999945],[-55.64527899999996,50.71888000000007],[-55.65166499999998,50.72304500000007],[-55.653052999999886,50.727211000000011],[-55.629439999999931,50.780823000000112],[-55.62471800000003,50.787216000000058],[-55.619163999999955,50.791381999999999],[-55.462775999999963,50.805824000000143],[-55.454444999999964,50.802489999999977],[-55.450554000000011,50.798332000000016],[-55.449722000000008,50.792770000000075],[-55.454720000000009,50.788048000000003],[-55.46694199999996,50.784163999999976],[-55.512504999999976,50.722763000000043],[-55.525001999999972,50.715827999999988],[-55.551392000000021,50.703323000000012],[-55.557502999999997,50.701385000000073],[-55.564720000000023,50.699714999999912]],[[-126.27306399999998,50.652771000000143],[-126.46333300000003,50.641662999999937],[-126.56806899999998,50.648331000000098],[-126.58416699999992,50.650269000000037],[-126.59889199999998,50.654159999999933],[-126.60637699999995,50.657211000000132],[-126.612503,50.659988000000055],[-126.61749299999997,50.664993000000095],[-126.61749299999997,50.667770000000019],[-126.54583700000001,50.726096999999982],[-126.43720999999999,50.783882000000119],[-126.38971699999996,50.806381000000044],[-126.38221699999997,50.808043999999995],[-126.28056299999997,50.828331000000048],[-126.26640299999997,50.827773999999977],[-126.25805699999995,50.824715000000026],[-126.2538909999999,50.821938000000102],[-126.25171699999987,50.818932000000075],[-126.23832699999997,50.811104000000057],[-126.22944599999994,50.803322000000094],[-126.17832900000002,50.750832000000059],[-126.17722299999997,50.748604000000114],[-126.17666600000001,50.743881000000101],[-126.25305200000003,50.699646000000087],[-126.25611900000001,50.661377000000073],[-126.26083399999999,50.657211000000132],[-126.26640299999997,50.654709000000082],[-126.27306399999998,50.652771000000143]],[[-126.73137700000001,50.771934999999985],[-126.79778299999992,50.768883000000017],[-126.807503,50.769989000000066],[-126.85333300000002,50.782767999999919],[-126.86472299999997,50.78943600000008],[-126.90583799999996,50.822769000000108],[-126.90139799999992,50.825272000000098],[-126.88806199999999,50.829162999999994],[-126.88137799999993,50.830276000000026],[-126.64862099999999,50.847214000000122],[-126.64334100000002,50.846939000000134],[-126.63583399999999,50.845268000000033],[-126.62943999999993,50.842490999999995],[-126.58860800000002,50.821381000000031],[-126.56806899999998,50.807770000000062],[-126.56304899999992,50.799995000000138],[-126.56861900000001,50.797493000000088],[-126.73137700000001,50.771934999999985]],[[-127.22693599999991,50.636108000000036],[-126.975281,50.576942000000088],[-126.85472099999993,50.554436000000123],[-126.77639799999997,50.546104000000128],[-126.76806599999998,50.544441000000006],[-126.72138999999999,50.531936999999971],[-126.70527600000003,50.527489000000003],[-126.63999899999999,50.507773999999984],[-126.62332199999992,50.498329000000126],[-126.56388899999996,50.483604000000014],[-126.49388099999993,50.481934000000024],[-126.39472999999998,50.481658999999979],[-126.38694800000002,50.482765000000029],[-126.35582699999998,50.48333000000008],[-126.327789,50.480820000000051],[-126.22112299999998,50.468596999999988],[-126.20500199999992,50.466660000000104],[-126.15471600000001,50.459435000000042],[-126.06916799999999,50.438599000000067],[-126.04611199999994,50.432495000000017],[-126.031387,50.427773000000116],[-126.01889,50.42193600000013],[-125.97609699999992,50.394996999999989],[-125.96250900000001,50.388885000000016],[-125.94776899999994,50.38499500000006],[-125.92859599999997,50.382209999999986],[-125.81696299999999,50.378044000000102],[-125.58000199999987,50.365828999999962],[-125.56416300000001,50.363883999999985],[-125.54860699999989,50.359161000000029],[-125.46305799999993,50.329719999999952],[-125.44972200000001,50.323607999999979],[-125.44055200000003,50.318329000000006],[-125.43554699999999,50.314712999999983],[-125.43167099999999,50.310547000000042],[-125.42887899999994,50.305549999999982],[-125.42722300000003,50.299995000000081],[-125.42666599999995,50.293883999999991],[-125.42722300000003,50.287498000000085],[-125.41500899999994,50.261665000000107],[-125.39362299999999,50.215546000000018],[-125.37777699999998,50.17971799999998],[-125.36277799999993,50.138046000000088],[-125.33084099999996,50.113884000000041],[-125.28694199999995,50.08138300000013],[-125.229446,50.026657],[-125.22165699999999,50.018051000000071],[-125.21611000000001,50.001389000000074],[-125.21417199999996,49.976379000000065],[-125.212784,49.970825000000048],[-125.20722999999998,49.961662000000047],[-125.16860999999994,49.912766000000033],[-125.11221299999994,49.868324000000086],[-124.99305699999991,49.788330000000087],[-124.89806399999998,49.731658999999979],[-124.89138799999989,49.664711000000068],[-124.91639700000002,49.631660000000124],[-124.86028299999992,49.541663999999969],[-124.85305800000003,49.532494000000099],[-124.83306900000002,49.510826000000122],[-124.78943599999991,49.464157],[-124.579453,49.38749700000011],[-124.55110200000001,49.378044000000102],[-124.53555299999999,49.373878000000047],[-124.51917300000002,49.370270000000119],[-124.26083399999993,49.315269000000001],[-124.12193299999996,49.270271000000093],[-123.94304699999992,49.211104999999918],[-123.85637699999995,49.149162000000047],[-123.86028299999992,49.153046000000074],[-123.86638599999998,49.160820000000115],[-123.86805700000002,49.164436000000137],[-123.87110899999988,49.173607000000118],[-123.87138399999998,49.181106999999997],[-123.86638599999998,49.186378000000047],[-123.86165599999993,49.188880999999981],[-123.84999099999999,49.191658000000075],[-123.82444800000002,49.192764000000125],[-123.82055699999995,49.190544000000102],[-123.80722000000003,49.180275000000051],[-123.79444899999993,49.173325000000034],[-123.78859699999998,49.170273000000122],[-123.76944700000001,49.16304800000006],[-123.73805199999993,49.154433999999981],[-123.71112099999999,49.149993999999992],[-123.70417800000001,49.147491000000002],[-123.699432,49.143883000000073],[-123.696663,49.14027400000009],[-123.69638099999997,49.135551000000078],[-123.69915799999995,49.130272000000105],[-123.70388800000001,49.126381000000038],[-123.73137700000001,49.117493000000081],[-123.74166899999989,49.118049999999982],[-123.83750899999995,49.14138000000014],[-123.85056299999997,49.145546000000024],[-123.81027199999994,49.115829000000076],[-123.75195300000001,49.040833000000021],[-123.74944299999999,49.03527100000008],[-123.75028999999989,49.02915999999999],[-123.75695799999994,48.986938000000123],[-123.75862099999989,48.980819999999994],[-123.76334399999996,48.976936000000137],[-123.69193999999993,48.908325000000104],[-123.68222000000003,48.902214000000072],[-123.5911099999999,48.839989000000116],[-123.58277900000002,48.831940000000088],[-123.56555199999997,48.789719000000105],[-123.56304899999998,48.778327999999988],[-123.56471299999993,48.749718000000087],[-123.50945300000001,48.587493999999992],[-123.47666899999996,48.631660000000124],[-123.47083999999995,48.673324999999977],[-123.46916199999993,48.67943600000001],[-123.46444700000001,48.683327000000077],[-123.45973200000003,48.685822000000144],[-123.45140100000003,48.686652999999978],[-123.44193999999999,48.686652999999978],[-123.41639699999996,48.684433000000126],[-123.40110800000002,48.681381000000044],[-123.39639299999999,48.677773000000116],[-123.34973099999996,48.547775000000058],[-123.34834299999994,48.535828000000095],[-123.29527300000001,48.484718000000044],[-123.29167200000001,48.480820000000108],[-123.27861000000001,48.456100000000049],[-123.27610800000002,48.451103000000103],[-123.27694700000001,48.445540999999992],[-123.28694200000001,48.418602000000021],[-123.28971899999999,48.413321999999937],[-123.29444899999993,48.409714000000065],[-123.30082699999997,48.406654000000003],[-123.32055699999989,48.399437000000034],[-123.33640299999996,48.396942000000024],[-123.36028299999987,48.397217000000069],[-123.41665599999999,48.423882000000106],[-123.42138699999992,48.427490000000034],[-123.425003,48.431938000000002],[-123.45973200000003,48.411934000000031],[-123.51334400000002,48.374709999999993],[-123.53694200000001,48.338326000000109],[-123.54250300000001,48.312492000000077],[-123.54611199999999,48.307770000000005],[-123.55166600000001,48.304710000000114],[-123.55915800000002,48.303047000000049],[-123.58332799999994,48.301102000000014],[-123.598343,48.311661000000072],[-123.71444699999995,48.348045000000127],[-123.76251199999996,48.361664000000019],[-123.77166699999998,48.361664000000019],[-123.77999899999998,48.360550000000046],[-123.79499799999996,48.357498000000135],[-123.80888400000003,48.353324999999984],[-123.817497,48.352493000000095],[-123.823624,48.352776000000063],[-123.91610699999995,48.364159000000029],[-123.92415599999998,48.366104000000064],[-123.97609699999998,48.381934999999999],[-124.26363399999997,48.468880000000013],[-124.423607,48.516937000000041],[-124.609444,48.560547000000042],[-124.6885989999999,48.578330999999991],[-124.72083999999995,48.586655000000007],[-124.75917099999998,48.6055530000001],[-124.77111799999994,48.611663999999962],[-124.79499800000002,48.629989999999964],[-124.81777999999997,48.648880000000133],[-124.82277699999997,48.652489000000116],[-124.9225009999999,48.679993000000138],[-125.02887699999997,48.708885000000009],[-125.0625,48.714996000000099],[-125.09500100000002,48.721930999999984],[-125.10221899999993,48.724433999999917],[-125.11389199999996,48.731102000000078],[-125.18443299999996,48.796104000000128],[-125.18499800000001,48.800827000000083],[-125.01722699999999,48.920547000000113],[-124.90862300000003,48.969154000000003],[-124.90306099999998,48.97137500000008],[-124.84750399999996,49.011664999999994],[-124.84277299999985,49.015549000000021],[-124.83556399999998,49.02416199999999],[-124.78083800000002,49.131377999999984],[-124.77944899999994,49.144439999999975],[-124.78083800000002,49.150542999999914],[-124.79695099999998,49.215828000000101],[-124.79972799999996,49.22693600000008],[-124.80499299999997,49.236938000000066],[-124.80776999999995,49.240547000000049],[-124.81555199999997,49.238045],[-124.818893,49.234718000000044],[-124.82444800000002,49.224158999999986],[-124.82501199999996,49.217209000000139],[-124.82333399999993,49.205551000000128],[-124.81723,49.18332700000002],[-124.81610099999995,49.164711000000011],[-124.81806899999998,49.146103000000096],[-124.82611099999997,49.122489999999971],[-124.83139,49.112495000000081],[-124.87832599999996,49.025268999999923],[-124.88194299999998,49.020546000000138],[-124.89472999999998,49.008888000000127],[-124.90055799999993,49.00499700000006],[-124.906113,49.001938000000052],[-124.93694299999999,48.988045000000056],[-124.94999699999994,48.983330000000024],[-124.96278399999994,48.981102000000021],[-125.06916799999999,48.984436000000017],[-125.126938,48.991104000000007],[-125.19888300000002,48.96276899999998],[-125.21000699999996,48.955826000000002],[-125.21665999999988,48.953323000000012],[-125.22416699999991,48.951660000000118],[-125.23137699999995,48.951103000000046],[-125.24194299999988,48.951660000000118],[-125.318893,48.96443899999997],[-125.32721699999996,48.966102999999976],[-125.45722999999992,48.918052999999986],[-125.46472199999988,48.916382000000112],[-125.48361199999999,48.915825000000041],[-125.502228,48.917770000000019],[-125.50723299999999,48.920273000000009],[-125.75110599999994,49.055267000000072],[-125.76806599999998,49.098602000000028],[-125.73805199999998,49.105552999999986],[-125.69304699999992,49.12860100000006],[-125.64167800000001,49.16304800000006],[-125.63722200000001,49.166939000000127],[-125.60888699999998,49.198043999999982],[-125.60582699999992,49.210274000000084],[-125.60749800000002,49.215828000000101],[-125.611107,49.220267999999919],[-125.61638599999998,49.219711000000018],[-125.66443599999991,49.189987000000031],[-125.72083999999995,49.157767999999976],[-125.74694799999997,49.148604999999975],[-125.75334199999998,49.147491000000002],[-125.75611899999996,49.151657000000114],[-125.779449,49.241661000000022],[-125.79666099999992,49.310272000000055],[-125.86609599999991,49.274436999999978],[-125.952789,49.230270000000075],[-125.96501199999989,49.22526599999992],[-125.97028399999999,49.224709000000018],[-125.97444199999995,49.224991000000102],[-125.98137700000001,49.227211000000125],[-125.98750299999989,49.230270000000075],[-126.020554,49.263054000000125],[-126.02333099999993,49.268051000000071],[-126.02223200000003,49.280823000000055],[-126.01862299999993,49.285553000000107],[-126.01306199999999,49.288887000000102],[-126.00666799999993,49.290549999999996],[-125.98029300000002,49.292496000000085],[-125.97361799999999,49.294997999999964],[-125.96916199999998,49.297493000000031],[-125.950287,49.311935000000005],[-125.94554099999999,49.316666000000112],[-125.89750699999996,49.41027100000008],[-125.89584399999995,49.416381999999999],[-125.89695699999993,49.428047000000049],[-125.89972699999998,49.433601000000067],[-125.90471599999995,49.435822000000144],[-125.90915699999988,49.431938000000116],[-125.94722000000002,49.395546000000138],[-125.96250900000001,49.377487000000031],[-125.96501199999989,49.373604000000114],[-125.96528599999999,49.367493000000024],[-125.962219,49.3555530000001],[-125.962784,49.350273000000072],[-125.96610999999996,49.345543000000021],[-125.99527,49.324440000000095],[-126.00195300000001,49.321938000000046],[-126.00945299999989,49.321663000000001],[-126.03916900000002,49.330275999999969],[-126.04638699999987,49.333328000000108],[-126.06111099999998,49.344154000000003],[-126.06500199999999,49.348328000000038],[-126.07556199999999,49.386383000000137],[-126.07389799999999,49.392494000000056],[-126.120003,49.423049999999989],[-126.22556299999991,49.41027100000008],[-126.26390099999998,49.389435000000049],[-126.36527999999998,49.401657000000057],[-126.45916699999998,49.401932000000045],[-126.46167000000003,49.382767000000115],[-126.46611000000001,49.380272000000048],[-126.52667200000002,49.371933000000013],[-126.54222099999993,49.374435000000119],[-126.54723399999995,49.378044000000102],[-126.57778899999988,49.407767999999919],[-126.579453,49.413322000000107],[-126.57917799999996,49.419440999999949],[-126.56973299999999,49.576385000000073],[-126.56610099999995,49.584434999999985],[-126.47028399999999,49.635551000000021],[-126.46167000000003,49.636658000000125],[-126.40416699999997,49.637772000000098],[-126.38417099999992,49.63638300000008],[-126.36749299999997,49.633049000000085],[-126.36028299999998,49.630820999999969],[-126.34137699999997,49.628875999999991],[-126.28472899999997,49.634438000000102],[-126.22389199999998,49.640549000000021],[-126.13417099999998,49.649994000000049],[-126.09445199999988,49.655548000000067],[-126.08693699999998,49.657211000000018],[-126.08750899999995,49.662209000000018],[-126.09028599999999,49.666382000000112],[-126.09416199999993,49.671104000000014],[-126.10305799999998,49.679161000000022],[-126.11028299999992,49.681380999999988],[-126.11972000000003,49.681107000000054],[-126.20944199999991,49.673881999999992],[-126.23444399999994,49.669159000000036],[-126.24638400000003,49.664711000000068],[-126.283073,49.654990999999995],[-126.29833999999994,49.652214000000072],[-126.34084300000001,49.648605000000089],[-126.43110699999994,49.662491000000045],[-126.43831599999993,49.664153999999996],[-126.58500699999996,49.701103000000046],[-126.59028599999994,49.704437000000041],[-126.63027999999997,49.794998000000078],[-126.67971799999998,49.878876000000105],[-126.80444299999988,49.909156999999993],[-126.83917200000002,49.884720000000129],[-126.84555099999989,49.8822100000001],[-126.85221899999993,49.87971500000009],[-126.87609899999995,49.873322000000087],[-126.93943799999994,49.862770000000125],[-126.99416399999996,49.855270000000019],[-127.12111699999997,49.85228699999999],[-127.13249200000001,49.85694100000012],[-127.17749000000003,49.88888500000013],[-127.18554699999999,49.897491000000059],[-127.22444199999995,49.940269000000114],[-127.24137899999999,49.961937000000034],[-127.23889199999996,49.967208999999968],[-127.234444,49.97137500000008],[-127.17999299999991,50.021378000000027],[-127.18277,50.03166200000004],[-127.18360899999999,50.051102000000014],[-127.17666599999995,50.061104],[-127.172234,50.064995000000067],[-127.13027999999997,50.084717000000126],[-127.15833999999995,50.096382000000006],[-127.27055399999995,50.0991590000001],[-127.27500899999995,50.059990000000028],[-127.27749599999993,50.055267000000015],[-127.28388999999999,50.052216000000044],[-127.33000199999998,50.033882000000062],[-127.34500100000002,50.030273000000079],[-127.38054699999998,50.026100000000099],[-127.38999899999993,50.028603000000089],[-127.42331699999994,50.042221000000097],[-127.45195000000001,50.069716999999969],[-127.46916199999993,50.088042999999971],[-127.47193900000002,50.092765999999983],[-127.54804999999993,50.130272000000105],[-127.63276699999994,50.129990000000021],[-127.78028899999993,50.084160000000054],[-127.781387,50.084160000000054],[-127.78362299999998,50.084160000000054],[-127.890556,50.106941000000063],[-127.89584400000001,50.108886999999925],[-127.90083299999998,50.112495000000024],[-127.90695199999999,50.12082700000002],[-127.90666199999998,50.127769000000114],[-127.90334300000001,50.132492000000127],[-127.89222699999988,50.139160000000061],[-127.87917299999998,50.144440000000145],[-127.86805700000002,50.151099999999985],[-127.83721899999995,50.172493000000088],[-127.82833900000003,50.180550000000096],[-127.78888699999999,50.222214000000008],[-127.79915599999993,50.317772000000105],[-127.80444299999994,50.321380999999917],[-127.86389200000002,50.336937000000091],[-127.87138399999998,50.33776899999998],[-127.88110399999999,50.337212000000079],[-127.895554,50.326385000000073],[-127.90778399999999,50.319717000000082],[-127.92166099999997,50.316666000000055],[-127.93138099999993,50.31610100000006],[-127.94833399999993,50.321937999999989],[-127.95249899999993,50.324715000000083],[-127.97860700000001,50.342491000000052],[-127.97944599999994,50.347214000000065],[-127.92610199999996,50.459991000000059],[-127.92388900000003,50.462769000000037],[-127.91722099999993,50.464156999999943],[-127.75666799999993,50.486381999999992],[-127.708054,50.491661000000136],[-127.70028699999995,50.492218000000037],[-127.58416699999998,50.486938000000009],[-127.576683,50.484717999999987],[-127.57140400000003,50.481934000000024],[-127.56331599999999,50.4741590000001],[-127.53278399999999,50.439986999999974],[-127.50750700000003,50.409157000000107],[-127.49527,50.395827999999995],[-127.47444200000001,50.381660000000124],[-127.46193699999998,50.37582400000008],[-127.454453,50.373604000000057],[-127.44695300000001,50.372765000000129],[-127.446663,50.379714999999976],[-127.45249899999988,50.388885000000016],[-127.48665599999993,50.437492000000134],[-127.50583599999999,50.458602999999982],[-127.52027899999996,50.469711000000132],[-127.53083800000002,50.476936000000023],[-127.54750100000001,50.486938000000009],[-127.56388899999996,50.502220000000023],[-127.57000699999998,50.512214999999912],[-127.56749699999995,50.516105999999979],[-127.55027799999999,50.538329999999917],[-127.54472399999997,50.541664000000083],[-127.50361599999997,50.562210000000107],[-127.49694799999992,50.565269000000058],[-127.49027999999993,50.568054000000132],[-127.47501399999999,50.571663000000115],[-127.44360399999999,50.571663000000115],[-127.41972399999992,50.573883000000137],[-127.41416900000002,50.575829000000056],[-127.41166699999997,50.581383000000017],[-127.41139199999992,50.587494000000106],[-127.41944899999999,50.596657000000107],[-127.58168000000001,50.593880000000013],[-127.69138299999997,50.606659000000093],[-127.87332200000003,50.623877999999934],[-127.87666299999995,50.621658000000139],[-127.87361099999993,50.616936000000067],[-127.854446,50.608330000000137],[-127.80055199999998,50.587494000000106],[-127.78666699999997,50.582214000000022],[-127.76834099999996,50.579994000000056],[-127.75110599999999,50.581108000000029],[-127.72501399999993,50.584434999999928],[-127.708618,50.584991000000116],[-127.66251399999999,50.581383000000017],[-127.63445300000001,50.578049000000021],[-127.61028299999998,50.565825999999959],[-127.595551,50.55582400000003],[-127.59166699999997,50.551659000000029],[-127.58972199999999,50.546104000000128],[-127.595551,50.536659000000043],[-127.60109699999998,50.533333000000027],[-127.60888699999987,50.53138000000007],[-128.05142199999995,50.446693000000039],[-128.13363599999997,50.474709000000132],[-128.224152,50.531105000000082],[-128.319458,50.608604000000071],[-128.37527499999993,50.678604000000064],[-128.40695199999999,50.738883999999985],[-128.41473399999995,50.762771999999984],[-128.41665599999999,50.76915699999995],[-128.41305499999993,50.773880000000133],[-128.40863000000002,50.77777100000003],[-128.35583499999996,50.799721000000034],[-128.349152,50.801658999999972],[-128.10693400000002,50.860550000000103],[-128.05306999999999,50.87193300000007],[-127.91832699999998,50.872214999999983],[-127.90972899999991,50.871375999999998],[-127.882767,50.865546999999992],[-127.83332799999999,50.854163999999969],[-127.67749000000003,50.817497000000003],[-127.51471700000002,50.774437000000034],[-127.50723299999993,50.772217000000012],[-127.49582699999996,50.765831000000105],[-127.48750299999995,50.757217000000082],[-127.45916699999992,50.718322999999998],[-127.354446,50.676102000000014],[-127.22693599999991,50.636108000000036]],[[-127.65471599999995,50.837769000000094],[-127.66139199999998,50.834991000000059],[-127.67027300000001,50.835266000000104],[-127.75306699999999,50.852776000000063],[-127.83332799999999,50.879715000000033],[-127.83860799999997,50.881660000000068],[-127.83306899999997,50.884995000000117],[-127.73500100000001,50.909987999999998],[-127.72638699999993,50.908600000000092],[-127.71665999999999,50.90554800000001],[-127.71028099999995,50.901932000000102],[-127.69138299999997,50.887214999999969],[-127.67083699999995,50.86693600000001],[-127.65833999999995,50.854163999999969],[-127.65527299999997,50.849433999999974],[-127.65334299999995,50.843880000000127],[-127.65471599999995,50.837769000000094]],[[-55.555557000000022,50.886383000000023],[-55.563888999999961,50.884995000000117],[-55.571670999999924,50.885826000000122],[-55.581116000000009,50.888046000000145],[-55.604720999999984,50.898048000000074],[-55.615554999999972,50.906097000000102],[-55.619720000000029,50.910271000000137],[-55.636115999999959,50.950829000000056],[-55.635276999999917,50.961380000000133],[-55.629439999999931,50.965546000000018],[-55.565552000000025,50.983046999999999],[-55.558334000000002,50.984436000000017],[-55.550551999999925,50.985268000000076],[-55.54222900000002,50.984993000000088],[-55.535277999999948,50.981377000000009],[-55.531386999999995,50.977211000000125],[-55.529723999999987,50.968323000000112],[-55.549995000000024,50.890830999999991],[-55.555557000000022,50.886383000000023]],[[-55.993889000000024,51.200272000000098],[-55.999999999999943,51.196655000000135],[-56.00111400000003,51.201660000000004],[-55.998055000000022,51.207496999999989],[-55.992774999999995,51.212769000000094],[-55.981383999999935,51.22165700000005],[-55.975554999999986,51.225822000000051],[-55.967772999999966,51.226653999999996],[-55.968329999999867,51.221375000000023],[-55.970550999999944,51.218323000000055],[-55.982498000000021,51.208885000000066],[-55.993889000000024,51.200272000000098]],[[-58.413329999999917,51.238884000000098],[-58.462219000000005,51.216103000000089],[-58.563613999999973,51.228325000000041],[-58.565001999999993,51.23333000000008],[-58.561942999999928,51.239159000000086],[-58.555831999999953,51.242767000000015],[-58.513335999999924,51.264999000000103],[-58.506392999999946,51.268326000000059],[-58.419448999999986,51.274712000000136],[-58.412773000000016,51.267212000000029],[-58.409163999999919,51.256943000000035],[-58.413329999999917,51.238884000000098]],[[-53.756366999999955,48.50326200000012],[-53.997498000000007,48.425552000000039],[-54.011116000000015,48.421660999999972],[-54.025001999999915,48.418602000000021],[-54.048889000000031,48.420546999999999],[-54.057220000000029,48.421936000000017],[-54.072776999999917,48.428604000000007],[-54.081115999999952,48.429992999999968],[-54.094443999999953,48.425827000000083],[-54.100554999999929,48.422493000000088],[-54.147223999999994,48.391380000000083],[-54.138054000000011,48.359161000000029],[-54.134726999999998,48.354438999999957],[-54.12749500000001,48.353324999999984],[-54.118606999999997,48.364998000000014],[-54.088607999999965,48.395545999999968],[-54.075561999999934,48.401932000000102],[-54.069449999999961,48.40387700000008],[-54.054442999999935,48.404160000000047],[-54.045554999999979,48.401932000000102],[-54.029167000000029,48.399437000000034],[-54.021111000000019,48.399162000000047],[-53.998885999999914,48.400826000000052],[-53.99222599999996,48.402489000000003],[-53.97972099999987,48.408042999999964],[-53.913054999999929,48.444153000000085],[-53.756366999999955,48.50326200000012],[-53.674445999999932,48.534164000000089],[-53.647223999999994,48.541107000000068],[-53.631942999999978,48.541382000000056],[-53.623054999999965,48.53916200000009],[-53.586387999999999,48.525269000000037],[-53.574722000000008,48.507216999999969],[-53.558051999999975,48.474709000000018],[-53.588051000000007,48.428047000000106],[-53.562217999999973,48.439155999999969],[-53.533889999999985,48.451935000000049],[-53.48860899999994,48.507216999999969],[-53.461945000000014,48.555266999999958],[-53.46527900000001,48.568603999999993],[-53.465835999999967,48.57416500000005],[-53.465003999999965,48.579436999999984],[-53.437217999999973,48.619987000000094],[-53.424445999999989,48.625549000000035],[-53.345832999999914,48.615828999999962],[-53.33805099999995,48.612494999999967],[-53.313056999999958,48.595267999999976],[-53.305832000000009,48.586655000000007],[-53.303329000000019,48.581940000000145],[-53.226386999999932,48.555549999999926],[-53.216392999999925,48.566939999999988],[-53.153884999999946,48.628601000000003],[-53.079726999999991,48.6988750000001],[-53.072776999999917,48.700272000000041],[-53.067779999999914,48.696380999999974],[-53.02305599999994,48.660820000000001],[-53.018889999999942,48.656380000000013],[-52.978049999999996,48.604439000000127],[-52.976386999999988,48.599159000000043],[-52.976944000000003,48.59388000000007],[-52.987220999999977,48.548050000000046],[-53.053885999999977,48.442764000000068],[-53.075561999999991,48.422493000000088],[-53.097495999999978,48.405266000000097],[-53.1875,48.350829999999974],[-53.194159999999954,48.348602000000028],[-53.201941999999974,48.347488000000055],[-53.209723999999937,48.347771000000023],[-53.218055999999933,48.3491590000001],[-53.24888599999997,48.362770000000069],[-53.261391000000003,48.37082700000002],[-53.266395999999986,48.37499200000002],[-53.345001000000025,48.360275000000058],[-53.388892999999882,48.303879000000109],[-53.615279999999984,48.178046999999935],[-53.621383999999921,48.174712999999997],[-53.634170999999924,48.169991000000095],[-53.662216000000001,48.163321999999994],[-53.668609999999944,48.162490999999989],[-53.676948999999979,48.163879000000065],[-53.694716999999912,48.169158999999979],[-53.71055599999994,48.17582700000014],[-53.892501999999979,48.226936000000137],[-53.901389999999935,48.229156000000103],[-53.934165999999948,48.233330000000137],[-53.940551999999968,48.230819999999937],[-53.945273999999984,48.178879000000052],[-53.944159999999897,48.163879000000065],[-53.917777999999998,48.088043000000027],[-53.912498000000028,48.084160000000054],[-53.904167000000029,48.081940000000088],[-53.823616000000015,48.074439999999981],[-53.793335000000013,48.073608000000092],[-53.77027899999996,48.073326000000009],[-53.733611999999994,48.076103000000103],[-53.718604999999968,48.078049000000021],[-53.696944999999971,48.079162999999994],[-53.689163000000008,48.078880000000026],[-53.692885999999874,48.067993000000001],[-53.688389000000029,48.065989999999999],[-53.685219000000018,48.063660000000141],[-53.683887000000027,48.060822000000144],[-53.684222999999918,48.057822999999985],[-53.687888999999927,48.054825000000108],[-53.691055000000006,48.052658000000065],[-53.698883000000023,48.049328000000003],[-53.736945999999989,48.032767999999976],[-53.763335999999981,48.026382000000012],[-53.799445999999989,48.02165999999994],[-53.836661999999933,48.022217000000012],[-53.852225999999973,48.023048000000074],[-53.876389000000017,48.025826000000052],[-53.893889999999942,48.029991000000052],[-53.90166499999998,48.033607000000075],[-53.909438999999963,48.033882000000119],[-53.916663999999912,48.033332999999971],[-53.923614999999984,48.031662000000097],[-53.924170999999944,48.026657000000057],[-53.919167000000016,48.022490999999945],[-53.911384999999939,48.019157000000007],[-53.893058999999937,48.014442000000145],[-53.794448999999986,47.996384000000091],[-53.779166999999973,47.996658000000025],[-53.695388999999921,48.018218999999988],[-53.69138700000002,48.019215000000145],[-53.668723999999997,48.029880999999989],[-53.650218999999993,48.037884000000133],[-53.607779999999991,48.051102000000071],[-53.605835000000013,48.046387000000038],[-53.619164000000012,47.998878000000047],[-53.622498000000007,47.993050000000096],[-53.723610000000008,47.843880000000013],[-53.737777999999992,47.826660000000061],[-53.787506000000008,47.773048000000074],[-53.793335000000013,47.768599999999935],[-53.801391999999964,47.769989000000123],[-53.807502999999997,47.773604999999975],[-53.825561999999991,47.794998000000078],[-53.852500999999961,47.785271000000137],[-53.850554999999986,47.760551000000135],[-53.837501999999915,47.699432000000058],[-53.760283999999956,47.609993000000145],[-53.631110999999976,47.54332700000009],[-53.550551999999982,47.529159999999933],[-53.545279999999991,47.534439000000134],[-53.542502999999954,47.550270000000069],[-53.541114999999991,47.585266000000047],[-53.497779999999977,47.734717999999987],[-53.495834000000002,47.740273000000059],[-53.461113000000012,47.806655999999975],[-53.434998000000007,47.83776899999998],[-53.30610699999994,47.984161000000029],[-53.290840000000003,47.999435000000119],[-53.274445000000014,48.013329000000056],[-53.170554999999979,48.05360399999995],[-53.110001000000011,48.03943600000008],[-53.101943999999946,48.038048000000003],[-53.095001000000025,48.03943600000008],[-53.053329000000019,48.049721000000034],[-53.041945999999996,48.055824000000143],[-52.996947999999975,48.086380000000077],[-52.974716000000001,48.116385999999977],[-52.959723999999994,48.143051000000014],[-52.956389999999999,48.148605000000032],[-52.926948999999979,48.169991000000095],[-52.919998000000021,48.171379000000002],[-52.902221999999995,48.16304800000006],[-52.886115999999959,48.151100000000042],[-52.881942999999922,48.147491000000059],[-52.83555599999994,48.106383999999991],[-52.831389999999942,48.101661999999919],[-52.832779000000016,48.096939000000134],[-52.838889999999935,48.093605000000139],[-52.871940999999993,48.082214000000022],[-52.880279999999914,48.083327999999995],[-52.898055999999997,48.090546000000018],[-52.904167000000029,48.089714000000072],[-52.911384999999996,48.088043000000027],[-52.917503000000011,48.084716999999955],[-52.928336999999999,48.075553999999954],[-53.058051999999975,47.922493000000031],[-53.05999799999995,47.916939000000013],[-53.059440999999993,47.886658000000125],[-53.075835999999981,47.850830000000087],[-53.158607000000018,47.683052000000089],[-53.178336999999999,47.651382000000012],[-53.183608999999933,47.646385000000123],[-53.201667999999984,47.636383000000137],[-53.221106999999961,47.628601000000003],[-53.240836999999942,47.622489999999914],[-53.259726999999998,47.615829000000019],[-53.265006999999969,47.611664000000019],[-53.267220000000009,47.606102000000078],[-53.261672999999973,47.546386999999982],[-53.175560000000019,47.431381000000101],[-53.128333999999995,47.411102000000142],[-53.121940999999993,47.413321999999994],[-53.111945999999989,47.423607000000118],[-53.083060999999987,47.458327999999995],[-53.065833999999938,47.469986000000063],[-53.013061999999934,47.501389000000074],[-52.995002999999997,47.51138300000008],[-52.951667999999927,47.530823000000055],[-52.919167000000016,47.541663999999969],[-52.907218999999998,47.54833200000013],[-52.896949999999947,47.55860100000001],[-52.849167000000023,47.621101000000124],[-52.842498999999918,47.632767000000115],[-52.840552999999943,47.638329000000056],[-52.837501999999915,47.65415999999999],[-52.838889999999935,47.663879000000009],[-52.841110000000015,47.668602000000021],[-52.841667000000029,47.673324999999977],[-52.840552999999943,47.683876000000055],[-52.798889000000031,47.784164000000033],[-52.791388999999981,47.795547000000056],[-52.78556100000003,47.79972100000009],[-52.779442000000017,47.803047000000106],[-52.770554000000004,47.79972100000009],[-52.704169999999976,47.753882999999973],[-52.700554000000011,47.749435000000005],[-52.657776000000013,47.657493999999986],[-52.614448999999979,47.516662999999937],[-52.620276999999987,47.500275000000101],[-52.625832000000003,47.489158999999972],[-52.653327999999988,47.437767000000008],[-52.718055999999933,47.364998000000014],[-52.787506000000008,47.308043999999938],[-52.818610999999976,47.224159000000043],[-52.849723999999981,47.1616590000001],[-52.845276000000013,47.142493999999942],[-52.843613000000005,47.063880999999981],[-52.844161999999983,47.058601000000067],[-52.852782999999988,47.022491000000002],[-52.884170999999981,46.9741590000001],[-52.909995999999978,46.911658999999986],[-52.92972599999996,46.851662000000033],[-52.932776999999987,46.825554000000068],[-52.934998000000007,46.804993000000024],[-52.938332000000003,46.78916200000009],[-53.090836000000024,46.643326000000002],[-53.102501000000018,46.636658000000011],[-53.161110000000008,46.619986999999981],[-53.169166999999959,46.619713000000047],[-53.192497000000003,46.62332200000003],[-53.207221999999888,46.630272000000105],[-53.213332999999977,46.633881000000088],[-53.315552000000025,46.694709999999986],[-53.354171999999949,46.736938000000009],[-53.361945999999932,46.737495000000081],[-53.384170999999981,46.721375000000023],[-53.410552999999936,46.700828999999999],[-53.426391999999964,46.687210000000107],[-53.451392999999996,46.66137700000013],[-53.463614999999947,46.654160000000047],[-53.521111000000019,46.62082700000002],[-53.532776000000013,46.614159000000029],[-53.561667999999941,46.612770000000069],[-53.569449999999961,46.614159000000029],[-53.577224999999999,46.617493000000024],[-53.607779999999991,46.636107999999979],[-53.613891999999964,46.640274000000034],[-53.617774999999995,46.644157000000007],[-53.635001999999929,46.680823999999973],[-53.643058999999994,46.704437000000098],[-53.64416499999993,46.709160000000111],[-53.648055999999997,46.796661000000029],[-53.647781000000009,46.801932999999963],[-53.645279000000016,46.81249200000002],[-53.639724999999999,46.829163000000051],[-53.636391000000003,46.834717000000069],[-53.594718999999998,46.9447100000001],[-53.64166999999992,46.983879000000002],[-53.633614000000023,47.001105999999993],[-53.577781999999956,47.085265999999933],[-53.55083499999995,47.106659000000036],[-53.539444000000003,47.114158999999972],[-53.591385000000002,47.156096999999988],[-53.646392999999989,47.105270000000075],[-53.703612999999962,47.053047000000106],[-53.823059000000001,46.956657000000064],[-53.894164999999987,46.899994000000106],[-53.945830999999941,46.858887000000038],[-54.053328999999962,46.794998000000135],[-54.097220999999934,46.799438000000123],[-54.17888599999992,46.81610100000006],[-54.187774999999988,46.819160000000011],[-54.18999500000001,46.823607999999979],[-54.190833999999995,46.828605999999979],[-54.196387999999956,46.862494999999967],[-54.196663000000001,46.883330999999998],[-54.193329000000006,46.893607999999972],[-54.160827999999981,46.981934000000024],[-54.131942999999978,47.012496999999996],[-54.11500499999994,47.039719000000105],[-54.092498999999975,47.079437000000098],[-54.066665999999998,47.131104000000107],[-53.993889000000024,47.265274000000034],[-53.964721999999995,47.299721000000034],[-53.928611999999987,47.302773000000116],[-53.921943999999996,47.304161000000022],[-53.879997000000003,47.348045000000127],[-53.875557000000015,47.354163999999969],[-53.867500000000007,47.402771000000087],[-53.879439999999931,47.43082400000003],[-53.900275999999963,47.486107000000061],[-53.891669999999976,47.524711999999965],[-53.885558999999944,47.576941999999974],[-53.894721999999945,47.6055530000001],[-53.896950000000004,47.609993000000145],[-53.983886999999925,47.75777400000004],[-54.003333999999995,47.778877000000136],[-54.033332999999914,47.796661000000029],[-54.195273999999984,47.857498000000021],[-54.194999999999993,47.843048000000124],[-54.197219999999902,47.832214000000079],[-54.212776000000019,47.777771000000087],[-54.219161999999926,47.766106000000036],[-54.223884999999939,47.759995000000117],[-54.259170999999981,47.715271000000143],[-54.337776000000019,47.621658000000025],[-54.435271999999998,47.505554000000075],[-54.468605000000025,47.441658000000075],[-54.477492999999981,47.404991000000052],[-54.472495999999978,47.401099999999985],[-54.477492999999981,47.395828000000051],[-54.482772999999952,47.391663000000051],[-54.511116000000015,47.372765000000015],[-54.517219999999952,47.369438000000059],[-54.601394999999968,47.345268000000033],[-54.611388999999974,47.353049999999996],[-54.613060000000019,47.35833000000008],[-54.61333499999995,47.362770000000069],[-54.606948999999986,47.374434999999949],[-54.601944000000003,47.379715000000033],[-54.596663999999862,47.383880999999917],[-54.559998000000007,47.413879000000065],[-54.529166999999973,47.442214999999976],[-54.489998000000014,47.486382000000049],[-54.417220999999984,47.583603000000096],[-54.410827999999867,47.594994000000042],[-54.413329999999917,47.599715999999944],[-54.418334999999956,47.603607000000011],[-54.430557000000022,47.597771000000137],[-54.440833999999938,47.586937000000091],[-54.508614000000023,47.513328999999999],[-54.53194400000001,47.479987999999992],[-54.539444000000003,47.468048000000124],[-54.563613999999973,47.439987000000031],[-54.578887999999893,47.423882000000106],[-54.604720999999984,47.401932000000102],[-54.621383999999978,47.389992000000007],[-54.700279000000023,47.357773000000009],[-54.719993999999929,47.352218999999991],[-54.727218999999991,47.351387000000045],[-54.818610999999862,47.363609000000054],[-54.819450000000018,47.368599000000074],[-54.803054999999972,47.380546999999979],[-54.793616999999983,47.391936999999984],[-54.786667000000023,47.413879000000065],[-54.787506000000008,47.418884000000105],[-54.796111999999994,47.420830000000024],[-54.856392000000028,47.390549000000078],[-54.980552999999929,47.285552999999936],[-55.039169000000015,47.225821999999994],[-55.043892000000028,47.220825000000048],[-55.045554999999979,47.215271000000087],[-55.043335000000013,47.210548000000074],[-55.05361199999993,47.150826000000109],[-55.065833999999995,47.093323000000112],[-55.069450000000018,47.082214000000022],[-55.100280999999995,47.05471],[-55.149444999999957,47.012215000000083],[-55.154716000000008,47.008049000000028],[-55.193329000000006,46.984993000000145],[-55.225829999999974,46.934433000000126],[-55.230277999999942,46.928329000000076],[-55.236945999999932,46.923607000000004],[-55.246947999999975,46.916939000000013],[-55.258613999999966,46.91027100000008],[-55.358337000000006,46.874161000000129],[-55.384170999999924,46.865829000000133],[-55.399993999999936,46.865829000000133],[-55.456664999999987,46.874710000000107],[-55.463615000000004,46.877486999999974],[-55.468604999999968,46.881660000000124],[-55.471938999999963,46.886383000000137],[-55.626944999999921,46.868881000000101],[-55.634170999999981,46.866661000000079],[-55.689719999999966,46.858329999999967],[-55.803328999999962,46.860549999999989],[-55.845832999999971,46.86971299999999],[-55.915000999999961,46.88749700000011],[-55.923614999999927,46.889717000000076],[-55.931389000000024,46.892769000000044],[-55.946663000000001,46.899436999999978],[-55.966110000000015,46.909988000000112],[-55.98082699999992,46.932213000000104],[-55.982773000000009,46.936652999999978],[-55.984168999999952,46.941658000000018],[-55.983054999999979,46.952492000000063],[-55.980552999999986,46.957771000000037],[-55.96665999999999,46.981377000000123],[-55.952498999999989,46.996383999999921],[-55.886948000000018,47.056099000000017],[-55.87110899999999,47.069160000000124],[-55.865554999999972,47.072768999999937],[-55.775276000000019,47.10193600000008],[-55.768607999999972,47.103325000000041],[-55.745551999999918,47.10443900000007],[-55.738892000000021,47.10443900000007],[-55.723609999999951,47.104164000000026],[-55.715553,47.103050000000053],[-55.698050999999964,47.098045000000013],[-55.68250299999994,47.091377000000023],[-55.674445999999989,47.090270999999973],[-55.586945000000014,47.110275000000115],[-55.573616000000015,47.11360900000011],[-55.493331999999896,47.133880999999974],[-55.487777999999992,47.137214999999969],[-55.329445000000021,47.242493000000024],[-55.298339999999939,47.267211999999972],[-55.290557999999976,47.278328000000101],[-55.285278000000005,47.294998000000021],[-55.28583500000002,47.310272000000111],[-55.286948999999993,47.314995000000067],[-55.286117999999988,47.325554000000125],[-55.269721999999945,47.390830999999991],[-55.266662999999994,47.396659999999997],[-55.262221999999895,47.402771000000087],[-55.256949999999961,47.407211000000075],[-55.202224999999999,47.44609800000012],[-55.179169000000002,47.460548000000017],[-55.172501000000011,47.463882000000012],[-55.107779999999991,47.483604000000071],[-55.100554999999986,47.484160999999972],[-55.083611000000019,47.481101999999964],[-55.075835999999867,47.480820000000108],[-55.040282999999931,47.484993000000031],[-54.951392999999882,47.504997000000003],[-54.868057000000022,47.543883999999991],[-54.845832999999971,47.556938000000059],[-54.841666999999973,47.563324000000136],[-54.841385000000002,47.583603000000096],[-54.845551,47.633881000000088],[-54.949439999999925,47.599715999999944],[-54.956389999999999,47.59804500000007],[-54.970832999999971,47.596656999999993],[-55.019278999999926,47.621101000000124],[-55.028277999999887,47.620766000000117],[-55.033278999999936,47.621601000000112],[-55.036109999999894,47.623936000000015],[-55.037612999999908,47.626601999999991],[-55.037440999999887,47.62977200000006],[-55.03561000000002,47.633269999999982],[-55.029612999999927,47.639598999999976],[-55.013779,47.65310299999993],[-55.00777800000003,47.65943500000003],[-54.956389999999999,47.741379000000109],[-54.947494999999947,47.75360900000004],[-54.938048999999978,47.771103000000096],[-54.936110999999926,47.781661999999983],[-54.943054000000018,47.781105000000082],[-54.948607999999922,47.776657000000114],[-55.011391000000003,47.721374999999966],[-55.021942000000024,47.711661999999933],[-55.025276000000019,47.705268999999987],[-55.027221999999995,47.695267000000058],[-55.03055599999999,47.684158000000139],[-55.033614999999941,47.678329000000133],[-55.119114000000025,47.616936000000123],[-55.122443999999916,47.614269000000093],[-55.126281999999946,47.612774000000002],[-55.130774999999915,47.611938000000123],[-55.135777000000019,47.613605000000007],[-55.262778999999966,47.650543000000084],[-55.349167000000023,47.704437000000098],[-55.34833500000002,47.710274000000027],[-55.357506000000001,47.726097000000095],[-55.365004999999996,47.726379000000122],[-55.379722999999956,47.724991000000045],[-55.427497999999957,47.711661999999933],[-55.432502999999997,47.70638299999996],[-55.461944999999957,47.646103000000039],[-55.464721999999938,47.640274000000034],[-55.467498999999975,47.619155999999919],[-55.46665999999999,47.614159000000029],[-55.461387999999943,47.610275000000001],[-55.454444999999964,47.611107000000118],[-55.446663000000001,47.623046999999985],[-55.436110999999926,47.631659999999954],[-55.430000000000007,47.634163000000115],[-55.423057999999969,47.635826000000066],[-55.415276000000006,47.63249200000007],[-55.407776000000013,47.624161000000015],[-55.400276000000019,47.615547000000106],[-55.398337999999967,47.610275000000001],[-55.389724999999999,47.58638000000002],[-55.400276000000019,47.514717000000076],[-55.406661999999926,47.493050000000039],[-55.40972099999999,47.487213000000054],[-55.414161999999919,47.481101999999964],[-55.429726000000016,47.467209000000139],[-55.43638599999997,47.465546000000018],[-55.498610999999983,47.453880000000026],[-55.505835999999931,47.453322999999955],[-55.526108000000022,47.454436999999928],[-55.555274999999938,47.440269000000058],[-55.560555000000022,47.436104000000057],[-55.565001999999993,47.429993000000024],[-55.587776000000019,47.398604999999975],[-55.625,47.463608000000079],[-55.654167000000029,47.495270000000062],[-55.795279999999991,47.492767000000072],[-55.914443999999946,47.437767000000008],[-55.920279999999934,47.435265000000129],[-55.925560000000019,47.439156000000025],[-55.923889000000031,47.444709999999986],[-55.91972399999986,47.450829000000056],[-55.831673000000023,47.517212000000086],[-55.788895000000025,47.551102000000014],[-55.745834000000002,47.585266000000047],[-55.77305599999994,47.579720000000009],[-55.824172999999973,47.566382999999973],[-55.892226999999991,47.5366590000001],[-55.987777999999992,47.500549000000035],[-56.104172000000005,47.463608000000079],[-56.110557999999855,47.462494000000106],[-56.11860699999994,47.463608000000079],[-56.158889999999928,47.484718000000044],[-56.169167000000016,47.492493000000138],[-56.172500999999897,47.49721500000004],[-56.172500999999897,47.501663000000008],[-56.168059999999969,47.507216999999969],[-56.162498000000028,47.51138300000008],[-56.12027699999993,47.519157000000064],[-56.044448999999986,47.535271000000023],[-55.941939999999931,47.561661000000072],[-55.889998999999932,47.578330999999991],[-55.639998999999989,47.668053000000043],[-55.633330999999998,47.671104000000071],[-55.628333999999995,47.674713000000054],[-55.635001999999986,47.678329000000133],[-55.642501999999979,47.678604000000121],[-55.649993999999992,47.677773000000116],[-55.663886999999932,47.675552000000039],[-55.704169999999976,47.664992999999981],[-55.75,47.649437000000034],[-55.756110999999976,47.646942000000024],[-55.774718999999948,47.638329000000056],[-55.80471799999998,47.624435000000119],[-55.824447999999961,47.618599000000017],[-55.838889999999935,47.617210000000057],[-55.855835000000013,47.620270000000119],[-55.903327999999931,47.645270999999923],[-55.913611999999944,47.653046000000018],[-55.917503000000011,47.657493999999986],[-55.919448999999929,47.667213000000004],[-55.918609999999944,47.673049999999989],[-55.916388999999981,47.678329000000133],[-55.91194200000001,47.684432999999956],[-55.901389999999992,47.693047000000035],[-55.895554000000004,47.696655000000135],[-55.866393999999957,47.713882000000126],[-55.83277899999996,47.742493000000081],[-55.815001999999993,47.772491000000002],[-55.799445999999875,47.799164000000019],[-55.742226000000016,47.923325000000091],[-55.746947999999975,47.93249499999996],[-55.754447999999968,47.94110100000006],[-55.767219999999952,47.953323000000069],[-55.773613000000012,47.956940000000031],[-55.78055599999999,47.95526899999993],[-55.817504999999983,47.886939999999981],[-55.835273999999913,47.850830000000087],[-55.835555999999997,47.845543000000134],[-55.847220999999934,47.806938000000002],[-55.849998000000028,47.801102000000128],[-55.854445999999996,47.794716000000051],[-55.865279999999984,47.786110000000122],[-55.877219999999966,47.778602999999976],[-55.888892999999996,47.773048000000074],[-56.049727999999959,47.699432000000058],[-56.087501999999972,47.736938000000009],[-56.081116000000009,47.739715999999987],[-56.053611999999987,47.77388000000002],[-56.057502999999997,47.778327999999988],[-56.064163000000008,47.776657000000114],[-56.111671000000001,47.763610999999969],[-56.125,47.757216999999969],[-56.185271999999998,47.680274999999995],[-56.160278000000005,47.642220000000123],[-56.154998999999862,47.638329000000056],[-56.161384999999939,47.634163000000115],[-56.173332000000016,47.629714999999976],[-56.187499999999943,47.627213000000097],[-56.358336999999892,47.603324999999984],[-56.394722000000002,47.601105000000132],[-56.410277999999948,47.601387000000045],[-56.418892000000028,47.601936000000137],[-56.443053999999904,47.605827000000033],[-56.546950999999979,47.613883999999985],[-56.615554999999915,47.613327000000083],[-56.644164999999987,47.596100000000092],[-56.641113000000018,47.592216000000064],[-56.639998999999989,47.587212000000079],[-56.644164999999987,47.581108000000086],[-56.65055099999995,47.578330999999991],[-56.774719000000005,47.531937000000028],[-56.840836000000024,47.52137799999997],[-56.902221999999995,47.552490000000091],[-56.924445999999989,47.562209999999993],[-56.956107999999972,47.574996999999996],[-56.96527900000001,47.57777400000009],[-56.992500000000007,47.583878000000141],[-56.999725000000012,47.584717000000069],[-57.014724999999942,47.583878000000141],[-57.096663999999976,47.56610100000006],[-57.118332000000009,47.563881000000038],[-57.126105999999993,47.563881000000038],[-57.134445000000028,47.566382999999973],[-57.150276000000019,47.572769000000051],[-57.163329999999917,47.579720000000009],[-57.204720000000009,47.59304800000001],[-57.530829999999867,47.630821000000026],[-57.657776000000013,47.60305000000011],[-57.779441999999904,47.627487000000031],[-57.882499999999993,47.651382000000012],[-58.027495999999928,47.694153000000028],[-58.036391999999978,47.696098000000063],[-58.359443999999939,47.647217000000012],[-58.690552000000025,47.598877000000016],[-58.771110999999962,47.59137700000008],[-58.861945999999932,47.589157000000114],[-58.885001999999872,47.592766000000097],[-58.894164999999873,47.59388000000007],[-58.937499999999943,47.589989000000003],[-59.076667999999984,47.571663000000001],[-59.102130999999929,47.564251000000127],[-59.11361699999992,47.558327000000077],[-59.118889000000024,47.554710000000114],[-59.135559000000001,47.556380999999988],[-59.161941999999954,47.561661000000072],[-59.297782999999868,47.606658999999979],[-59.304442999999992,47.609993000000145],[-59.305831999999953,47.614998000000014],[-59.309440999999993,47.661102000000085],[-59.309440999999993,47.671379000000059],[-59.30499999999995,47.724991000000045],[-59.3024979999999,47.736107000000004],[-59.325561999999991,47.807213000000047],[-59.329726999999991,47.816383000000087],[-59.369164000000012,47.852775999999949],[-59.40193899999997,47.880271999999991],[-59.40694400000001,47.889717000000076],[-59.404715999999951,47.900269000000094],[-59.400832999999921,47.90665400000006],[-59.39166999999992,47.916664000000026],[-59.378051999999911,47.922493000000031],[-59.365554999999915,47.924995000000081],[-59.328612999999905,47.928879000000109],[-59.321945000000028,47.930549999999982],[-59.31639100000001,47.934158000000082],[-59.31138599999997,47.938881000000094],[-59.267775999999969,47.982208000000071],[-59.265006999999912,47.988045000000056],[-59.262778999999966,47.999435000000119],[-59.246947999999975,48.011940000000038],[-59.230277999999942,48.02276599999999],[-59.218605000000025,48.029160000000047],[-59.091384999999946,48.090271000000143],[-59.053885999999864,48.105552999999986],[-59.041114999999934,48.110275000000058],[-59.020554000000004,48.116385999999977],[-58.958054000000004,48.149993999999992],[-58.75,48.287498000000085],[-58.701392999999996,48.319716999999969],[-58.691108999999983,48.32888000000014],[-58.686385999999914,48.334160000000054],[-58.682502999999997,48.340546000000131],[-58.678336999999999,48.351936000000023],[-58.675835000000006,48.363051999999925],[-58.670279999999991,48.37499200000002],[-58.598884999999939,48.423325000000034],[-58.587775999999963,48.430550000000039],[-58.568892999999889,48.438599000000067],[-58.555831999999953,48.443047000000035],[-58.514724999999999,48.452773999999977],[-58.500556999999958,48.455551000000071],[-58.492774999999995,48.455551000000071],[-58.492774999999995,48.450272000000098],[-58.497779999999977,48.44582400000013],[-58.518889999999999,48.441375999999991],[-58.526108000000022,48.440544000000102],[-58.546394000000021,48.434990000000084],[-58.558891000000017,48.42971799999998],[-58.588889999999935,48.412765999999976],[-58.599998000000028,48.405822999999998],[-58.601112000000001,48.400826000000052],[-58.59194199999996,48.398879999999963],[-58.483611999999994,48.427773000000002],[-58.470832999999971,48.43221299999999],[-58.464721999999995,48.436377999999991],[-58.449439999999925,48.449158000000125],[-58.4183349999999,48.486655999999982],[-58.420279999999991,48.508049000000085],[-58.569449999999961,48.538605000000018],[-58.673614999999984,48.554710000000057],[-58.682502999999997,48.554993000000024],[-58.697219999999959,48.553046999999992],[-58.732215999999994,48.545830000000024],[-58.765556000000004,48.535828000000095],[-58.778052999999886,48.531937000000028],[-58.812499999999943,48.52388000000002],[-58.857506000000001,48.518599999999992],[-58.931389000000024,48.511939999999981],[-58.954720000000009,48.510825999999952],[-58.979163999999969,48.512497000000053],[-58.988335000000006,48.514442000000031],[-59.004722999999956,48.520271000000037],[-59.013335999999924,48.522217000000126],[-59.091667000000029,48.508331000000112],[-59.105559999999969,48.50471500000009],[-59.118889000000024,48.50110600000005],[-59.146392999999875,48.493049999999982],[-59.192771999999991,48.477767999999969],[-59.232497999999964,48.468597000000045],[-59.246947999999975,48.46665999999999],[-59.255279999999971,48.467490999999995],[-59.260558999999944,48.471931000000041],[-59.261115999999959,48.476653999999996],[-59.232773000000009,48.523048000000131],[-59.228881999999999,48.529160000000104],[-59.215003999999965,48.545547000000056],[-59.209998999999925,48.549995000000024],[-59.137504999999976,48.598876999999959],[-59.084166999999866,48.626380999999981],[-59.077782000000013,48.629158000000075],[-59.050277999999935,48.635551000000021],[-59.03055599999999,48.641937000000098],[-59.02416999999997,48.644714000000022],[-58.908889999999985,48.701934999999992],[-58.828888000000006,48.750832000000116],[-58.811667999999941,48.76166500000005],[-58.799727999999959,48.768050999999957],[-58.774719000000005,48.77887700000008],[-58.767775999999969,48.775551000000064],[-58.772498999999982,48.769989000000123],[-58.815001999999936,48.735825000000091],[-58.849723999999867,48.714996000000099],[-58.873885999999914,48.701659999999947],[-58.891113000000018,48.690826000000072],[-58.912773000000016,48.674713000000054],[-58.938605999999879,48.653603000000089],[-58.947776999999917,48.642769000000044],[-58.955832999999984,48.630272000000048],[-58.958610999999962,48.624161000000129],[-58.958610999999962,48.613883999999985],[-58.955832999999984,48.609436000000017],[-58.947494999999947,48.601105000000132],[-58.896950000000004,48.55193300000002],[-58.888335999999924,48.551101999999958],[-58.743057000000022,48.560822000000087],[-58.728332999999964,48.56249200000002],[-58.721381999999949,48.564438000000109],[-58.715003999999965,48.567215000000033],[-58.709442000000024,48.570831000000055],[-58.704445000000021,48.575271999999984],[-58.695549000000028,48.586937000000091],[-58.68332700000002,48.605827000000033],[-58.676666000000012,48.618050000000096],[-58.672501000000011,48.629433000000063],[-58.669998000000021,48.640831000000105],[-58.671386999999925,48.650825999999995],[-58.674171000000001,48.65526600000004],[-58.679442999999992,48.66944100000012],[-58.680832000000009,48.68471500000004],[-58.658051,48.743049999999982],[-58.618331999999896,48.779716000000064],[-58.543892000000028,48.860824999999977],[-58.535834999999963,48.878601000000117],[-58.506667999999934,48.949431999999945],[-58.506667999999934,48.98054499999995],[-58.503333999999995,48.997490000000084],[-58.500838999999928,49.003608999999926],[-58.400832999999864,49.127487000000087],[-58.396110999999962,49.131377999999984],[-58.351943999999889,49.15026899999998],[-58.348884999999996,49.145828000000108],[-58.342967999999985,49.100201000000027],[-58.365634999999997,49.079922000000067],[-58.368019000000004,49.061428000000035],[-58.353702999999939,49.056656000000032],[-58.31075299999992,49.068584000000044],[-58.292857999999967,49.072762000000068],[-58.240554999999972,49.070274000000097],[-58.17832199999998,49.063217000000066],[-58.143726000000015,49.041740000000118],[-58.09833500000002,48.99221799999998],[-58.084723999999937,48.985268000000133],[-58.077781999999956,48.981934000000138],[-58.060279999999921,48.976096999999982],[-58.050551999999982,48.973320000000115],[-57.99610899999999,48.96138000000002],[-57.961387999999999,48.956657000000007],[-57.938605999999993,48.958328000000051],[-57.90166499999998,48.96276899999998],[-57.888054000000011,48.966102999999976],[-57.881667999999991,48.96888000000007],[-57.892226999999934,48.981658999999922],[-57.900551000000007,48.9847180000001],[-57.929442999999992,48.978874000000076],[-57.958611000000019,48.976096999999982],[-57.974716000000001,48.976096999999982],[-58.009223999999961,48.98041500000005],[-58.02777900000001,48.985549999999989],[-58.035834999999963,48.988602000000128],[-58.050551999999982,48.99582700000002],[-58.09332999999998,49.025825999999995],[-58.103888999999924,49.033607000000075],[-58.108054999999922,49.037772999999959],[-58.135276999999974,49.082771000000037],[-58.144447000000014,49.12193300000007],[-58.122612000000004,49.124931000000004],[-58.119281999999998,49.127102000000036],[-58.115608000000009,49.129105000000038],[-58.111110999999994,49.129771999999946],[-58.094775999999968,49.124603000000036],[-58.078776999999945,49.121769000000029],[-58.049445999999932,49.120270000000005],[-57.925559999999962,49.123047000000042],[-57.918610000000001,49.124709999999993],[-57.913329999999974,49.129158000000132],[-57.882773999999927,49.157767999999976],[-57.878882999999973,49.170273000000122],[-57.89805599999994,49.158600000000092],[-57.912215999999944,49.152771000000087],[-57.925834999999893,49.148331000000042],[-57.939437999999996,49.144997000000046],[-57.947494999999947,49.144997000000046],[-58.057220000000029,49.144997000000046],[-58.075558000000001,49.153271000000075],[-58.081054999999992,49.154438000000141],[-58.086055999999928,49.156269000000123],[-58.092555999999945,49.160934000000111],[-58.09589399999993,49.166271000000108],[-58.064055999999994,49.183350000000132],[-58.063057000000015,49.185451999999941],[-58.065455999999983,49.190414000000033],[-58.060622999999964,49.188583000000051],[-58.05495499999995,49.187583999999958],[-58.034957999999904,49.185749000000044],[-58.025459000000012,49.185749000000044],[-58.011292000000026,49.186252999999965],[-58.002456999999993,49.188251000000093],[-57.995621000000028,49.192078000000038],[-57.988785000000007,49.197247000000118],[-57.932219999999973,49.234160999999972],[-57.928054999999972,49.240273000000116],[-57.93638599999997,49.239716000000044],[-57.995162999999991,49.236885000000086],[-58.003330000000005,49.234215000000006],[-58.011662000000001,49.23071299999998],[-58.031001999999944,49.224548000000027],[-58.03566399999994,49.223713000000032],[-58.049331999999936,49.222717000000046],[-58.058829999999944,49.223049000000003],[-58.191939999999931,49.236382000000049],[-58.200835999999867,49.239716000000044],[-58.211945000000014,49.24721500000004],[-58.233886999999982,49.27304799999996],[-58.236663999999905,49.27748900000006],[-58.240836999999942,49.286942000000067],[-58.241942999999992,49.291663999999969],[-58.241942999999992,49.302215999999987],[-58.223327999999924,49.390274000000034],[-58.216392999999982,49.402488999999946],[-58.192497000000003,49.429436000000067],[-58.157776000000013,49.464439000000027],[-58.152221999999995,49.468879999999956],[-58.043892000000028,49.541382000000056],[-58.032218999999941,49.548332000000073],[-58.019164999999873,49.553879000000052],[-57.998336999999992,49.559158000000025],[-57.971107000000018,49.554993000000024],[-57.915112000000022,49.532047000000034],[-57.910609999999963,49.530216000000053],[-57.903445999999974,49.525551000000064],[-57.861445999999944,49.505885999999975],[-57.746947999999918,49.453606000000093],[-57.715004000000022,49.454712000000086],[-57.707503999999915,49.455551000000071],[-57.701110999999969,49.458327999999995],[-57.696388000000013,49.463608000000022],[-57.698883000000023,49.468323000000055],[-57.705832999999984,49.47165700000005],[-57.788895000000025,49.500832000000116],[-57.864222999999981,49.534939000000065],[-57.869389000000012,49.535439000000054],[-57.872719000000018,49.537773000000072],[-57.942223000000013,49.60305000000011],[-57.944716999999969,49.607498000000078],[-57.951110999999912,49.652771000000143],[-57.951110999999912,49.65776800000009],[-57.948333999999932,49.674164000000076],[-57.935271999999998,49.708602999999925],[-57.926391999999964,49.726379000000065],[-57.899993999999992,49.762215000000083],[-57.82916999999992,49.845543000000077],[-57.671111999999937,50.084160000000054],[-57.631667999999934,50.144714000000079],[-57.543334999999956,50.29833200000013],[-57.524445000000014,50.334159999999997],[-57.521384999999952,50.345267999999976],[-57.521111000000019,50.35054800000006],[-57.515555999999947,50.373604000000057],[-57.507224999999949,50.390831000000105],[-57.498336999999992,50.408600000000035],[-57.490836999999999,50.420830000000137],[-57.448607999999979,50.486106999999947],[-57.377220000000023,50.584434999999928],[-57.37249799999995,50.590828000000101],[-57.361114999999927,50.598602000000085],[-57.341667000000029,50.607498000000021],[-57.310059000000024,50.608940000000132],[-57.300220000000024,50.609776000000068],[-57.295559000000026,50.60927200000009],[-57.291224999999997,50.607105000000047],[-57.276222000000018,50.601440000000082],[-57.245276999999987,50.596382000000062],[-57.228049999999939,50.594437000000084],[-57.204444999999964,50.596100000000035],[-57.173614999999927,50.60083000000003],[-57.166945999999996,50.603325000000098],[-57.161384999999996,50.606384000000048],[-57.150832999999921,50.616104000000121],[-57.148055999999997,50.621933000000126],[-57.154715999999951,50.625549000000035],[-57.171943999999996,50.624992000000134],[-57.276442999999915,50.640717000000052],[-57.378608999999926,50.687767000000065],[-57.334166999999923,50.711937000000091],[-57.325004999999919,50.711662000000047],[-57.236945999999989,50.727211000000011],[-57.162498000000028,50.751105999999993],[-57.14833799999991,50.756103999999993],[-57.089438999999913,50.780548000000124],[-57.072501999999986,50.793884000000048],[-56.983054999999979,50.868324000000086],[-56.927498000000014,50.915824999999984],[-56.898055999999997,51.019440000000088],[-56.899170000000026,51.024436999999978],[-56.903327999999988,51.028603000000089],[-56.909995999999978,51.03276800000009],[-56.927223000000026,51.038605000000018],[-56.964721999999995,51.04332700000009],[-56.921669000000009,51.051384000000098],[-56.892226999999991,51.060272000000055],[-56.879996999999946,51.065543999999989],[-56.784446999999943,51.137771999999984],[-56.781386999999995,51.143608000000029],[-56.78194400000001,51.149162000000047],[-56.785278000000005,51.153046000000074],[-56.793334999999956,51.16137700000013],[-56.80972300000002,51.183601000000067],[-56.793892000000028,51.239989999999921],[-56.744164000000012,51.293052999999929],[-56.738608999999997,51.298881999999935],[-56.733330000000024,51.302773000000002],[-56.68250299999994,51.339432000000102],[-56.623885999999914,51.366386000000034],[-56.616942999999935,51.368881000000044],[-56.512504999999976,51.402214000000072],[-56.476661999999919,51.411658999999986],[-56.461945000000014,51.414992999999981],[-56.45416999999992,51.415543000000014],[-56.271384999999952,51.471656999999993],[-56.110557999999855,51.523879999999963],[-56.011391000000003,51.56638300000003],[-55.998336999999992,51.572220000000016],[-55.960281000000009,51.593880000000013],[-55.943329000000006,51.606384000000048],[-55.918609999999944,51.62110100000001],[-55.90555599999999,51.626937999999996],[-55.898055999999997,51.628601000000117],[-55.890282000000013,51.629433000000006],[-55.837775999999963,51.621376000000055],[-55.846389999999928,51.60193600000008],[-55.857779999999991,51.593323000000112],[-55.885001999999929,51.562492000000134],[-55.886664999999937,51.556938000000002],[-55.886948000000018,51.551933000000133],[-55.887222000000008,51.500274999999988],[-55.886116000000015,51.495270000000119],[-55.87777699999998,51.492218000000037],[-55.694442999999978,51.481102000000078],[-55.639998999999989,51.481934000000024],[-55.648612999999955,51.485267999999962],[-55.68360899999999,51.5],[-55.729720999999984,51.543327000000033],[-55.737503000000004,51.552490000000034],[-55.739166000000012,51.556656000000089],[-55.73860899999994,51.567214999999976],[-55.735274999999945,51.573051000000021],[-55.724716000000001,51.583603000000039],[-55.718605000000025,51.587212000000022],[-55.653327999999988,51.590546000000018],[-55.631667999999991,51.569717000000026],[-55.625,51.565544000000102],[-55.598610000000008,51.561377999999991],[-55.589721999999995,51.560271999999941],[-55.581389999999942,51.560271999999941],[-55.574448000000018,51.562767000000008],[-55.547501000000011,51.584991000000116],[-55.515838999999971,51.602219000000048],[-55.458610999999962,51.592216000000008],[-55.411110000000008,51.580826000000116],[-55.40555599999999,51.576942000000088],[-55.404442000000017,51.571938000000102],[-55.405273000000022,51.561661000000129],[-55.40694400000001,51.556099000000017],[-55.454444999999964,51.455268999999987],[-55.492226000000016,51.377769000000058],[-55.508057000000008,51.363327000000083],[-55.597778000000005,51.303604000000064],[-55.612777999999935,51.301102000000128],[-55.62222300000002,51.30332199999998],[-55.702782000000013,51.328049000000078],[-55.820557000000008,51.350830000000087],[-56.030555999999876,51.378600999999946],[-56.078338999999971,51.36971299999999],[-56.085555999999997,51.368323999999973],[-56.096389999999985,51.318329000000006],[-56.025557999999876,51.238327000000027],[-56.012252999999987,51.212337000000048],[-55.992561000000023,51.176575000000128],[-55.959441999999967,51.197487000000081],[-55.851394999999968,51.226936000000023],[-55.837775999999963,51.230545000000063],[-55.769164999999987,51.216934000000094],[-55.760833999999988,51.213881999999955],[-55.726105000000018,51.190544000000045],[-55.712776000000019,51.178047000000049],[-55.709998999999982,51.173607000000061],[-55.719161999999983,51.123047000000042],[-55.732497999999964,51.079994000000113],[-55.735557999999912,51.074165000000107],[-55.751113999999973,51.058327000000077],[-55.756950000000018,51.053879000000109],[-55.796111999999994,51.03916200000009],[-55.805557000000022,51.009163000000058],[-55.859169000000009,50.942490000000021],[-55.999442999999872,50.788605000000075],[-56.068893000000003,50.724434000000088],[-56.092278000000022,50.725716000000091],[-56.097279000000015,50.725880000000018],[-56.101279999999917,50.728045999999949],[-56.125832000000003,50.754166000000055],[-56.130829000000006,50.763329000000056],[-56.133330999999998,50.773048000000017],[-56.128052000000025,50.846382000000062],[-56.12222300000002,50.863884000000098],[-56.119720000000029,50.869156000000032],[-56.116394000000014,50.874992000000077],[-56.107223999999974,50.887214999999969],[-56.103888999999981,50.893326000000002],[-56.103888999999981,50.898331000000042],[-56.107779999999934,50.902771000000087],[-56.12222300000002,50.899437000000091],[-56.143058999999937,50.892494000000113],[-56.155272999999966,50.885551000000135],[-56.172500999999897,50.85582700000009],[-56.157218999999941,50.690826000000072],[-56.141272999999956,50.671047000000101],[-56.135776999999962,50.669884000000138],[-56.163329999999917,50.617767000000072],[-56.258614000000023,50.502777000000094],[-56.323615999999959,50.446380999999974],[-56.423057999999912,50.352776000000006],[-56.421943999999939,50.347771000000137],[-56.422226000000023,50.342491000000052],[-56.423614999999984,50.336937000000091],[-56.426666000000012,50.331108000000086],[-56.462501999999915,50.272217000000126],[-56.501944999999921,50.214439000000084],[-56.511947999999961,50.203606000000093],[-56.555832000000009,50.167496000000028],[-56.635276999999974,50.106383999999991],[-56.743056999999965,50.022766000000104],[-56.767501999999922,49.962212000000079],[-56.778610000000015,49.933875999999998],[-56.78194400000001,49.917496000000028],[-56.775001999999972,49.919158999999979],[-56.726661999999976,49.916100000000029],[-56.759845999999982,49.837275999999974],[-56.82790399999999,49.785000000000082],[-56.866863000000023,49.777602999999999],[-56.90533099999999,49.747520000000122],[-56.820999000000029,49.74209600000006],[-56.784007999999972,49.731243000000006],[-56.782776000000013,49.690826000000072],[-56.815552000000025,49.594994000000042],[-56.818610999999976,49.588882000000012],[-56.848884999999939,49.544441000000006],[-56.843055999999933,49.548050000000046],[-56.826667999999984,49.562767000000008],[-56.782776000000013,49.609993000000088],[-56.763061999999991,49.631378000000041],[-56.749167999999884,49.64916199999999],[-56.735557999999969,49.666939000000013],[-56.712501999999972,49.696380999999974],[-56.677779999999927,49.733604000000128],[-56.598609999999894,49.811935000000062],[-56.56138599999997,49.842215999999951],[-56.477776000000006,49.892220000000009],[-56.464164999999923,49.896385000000009],[-56.431945999999982,49.890549000000135],[-56.412216000000001,49.909714000000122],[-56.388054000000011,49.943047000000092],[-56.385001999999929,49.949158000000011],[-56.330284000000006,50.024994000000106],[-56.324172999999973,50.029990999999995],[-56.237777999999992,50.100273000000072],[-56.220832999999971,50.112495000000024],[-56.208892999999989,50.120270000000119],[-56.160278000000005,50.148048000000074],[-56.153884999999946,50.150543000000084],[-56.132499999999993,50.155548000000124],[-56.12471800000003,50.15638000000007],[-56.116660999999965,50.153046000000074],[-56.067222999999956,50.096382000000006],[-56.065001999999936,50.091377000000136],[-56.005004999999983,50.031380000000013],[-55.938605999999936,50.036385000000053],[-55.905273000000022,50.033882000000062],[-55.896111000000019,50.031937000000084],[-55.881110999999976,50.024994000000106],[-55.853888999999924,50.005554000000075],[-55.846106999999961,49.996940999999936],[-55.845275999999956,49.99221799999998],[-55.845551,49.986938000000066],[-55.844161999999983,49.981934000000138],[-55.840836000000024,49.977211000000125],[-55.830001999999979,49.969154000000003],[-55.755004999999869,49.924164000000019],[-55.746108999999933,49.923050000000046],[-55.587218999999948,49.964157000000057],[-55.55610699999994,49.980270000000132],[-55.543892000000028,49.987213000000111],[-55.527221999999995,50.000275000000101],[-55.491698999999983,50.007309000000021],[-55.463332999999977,49.966933999999981],[-55.460830999999985,49.962212000000079],[-55.459723999999937,49.957497000000046],[-55.460281000000009,49.952216999999962],[-55.465004000000022,49.940826000000015],[-55.475272999999959,49.930275000000108],[-55.492226000000016,49.917213000000061],[-55.511391000000003,49.908882000000006],[-55.659163999999976,49.84777100000008],[-55.843055999999933,49.788330000000087],[-55.98611499999987,49.746940999999993],[-56.115279999999927,49.63999200000012],[-56.124167999999997,49.613327000000083],[-56.050551999999925,49.666382000000112],[-56.044448999999986,49.669990999999925],[-55.963889999999935,49.698600999999996],[-55.957779000000016,49.700272000000041],[-55.893889999999999,49.714157000000114],[-55.833327999999995,49.686652999999922],[-55.880279999999971,49.584990999999945],[-55.935443999999961,49.543991000000119],[-55.945441999999957,49.536159999999995],[-55.953444999999988,49.533660999999995],[-55.971607000000006,49.531826000000024],[-55.980277999999998,49.53049500000003],[-56.035277999999948,49.506660000000068],[-56.080001999999922,49.486938000000009],[-56.12749500000001,49.431107000000111],[-56.129165999999998,49.425552000000039],[-56.122771999999941,49.421379000000115],[-56.073891000000003,49.434432999999956],[-56.06221800000003,49.440544000000045],[-56.025275999999963,49.461105000000089],[-56.02027899999996,49.464995999999928],[-56.005279999999914,49.480820000000051],[-55.999725000000012,49.485268000000019],[-55.96305499999994,49.496155000000044],[-55.91705300000001,49.507496000000117],[-55.874717999999973,49.517212000000029],[-55.827781999999956,49.524162000000103],[-55.783332999999914,49.511940000000095],[-55.775001999999915,49.508605999999929],[-55.724997999999971,49.479431000000091],[-55.720832999999971,49.475822000000051],[-55.725554999999986,49.470543000000077],[-55.722771000000023,49.453880000000026],[-55.678336999999942,49.386940000000038],[-55.673057999999969,49.383049000000142],[-55.664444000000003,49.381934999999999],[-55.656386999999938,49.382210000000043],[-55.650275999999963,49.384162999999944],[-55.639167999999984,49.392769000000044],[-55.636115999999959,49.398604999999918],[-55.637778999999966,49.409157000000107],[-55.637778999999966,49.413605000000075],[-55.636115999999959,49.419159000000093],[-55.589164999999923,49.462494000000049],[-55.560279999999977,49.482490999999925],[-55.55388599999992,49.484993000000031],[-55.546950999999979,49.486381999999992],[-55.53167000000002,49.487770000000125],[-55.523055999999997,49.486655999999925],[-55.522223999999994,49.481934000000024],[-55.566390999999953,49.409157000000107],[-55.572776999999974,49.376656000000025],[-55.573058999999944,49.371658000000025],[-55.570556999999951,49.366936000000123],[-55.566665999999998,49.362770000000012],[-55.559998000000007,49.365273000000002],[-55.554717999999923,49.369713000000047],[-55.539443999999946,49.385551000000078],[-55.529723999999987,49.396942000000024],[-55.528053,49.402488999999946],[-55.528885000000002,49.408043000000134],[-55.529166999999973,49.423324999999977],[-55.526389999999992,49.42860399999995],[-55.49610899999999,49.453880000000026],[-55.441665999999998,49.491104000000064],[-55.430282999999974,49.498878000000104],[-55.37749500000001,49.50360900000004],[-55.369445999999982,49.503326000000072],[-55.349276999999972,49.468159000000014],[-55.332946999999933,49.416489000000126],[-55.33577699999995,49.388161000000025],[-55.333610999999905,49.359161000000029],[-55.338608000000022,49.355270000000132],[-55.336112999999955,49.350829999999974],[-55.315276999999924,49.314437999999939],[-55.310996999999929,49.355937999999981],[-55.306830999999931,49.356772999999976],[-55.274833999999998,49.385605000000055],[-55.267501999999979,49.396603000000027],[-55.264499999999998,49.403435000000059],[-55.264336000000014,49.406441000000086],[-55.266669999999863,49.409103000000073],[-55.269833000000006,49.411438000000032],[-55.280838000000017,49.41443600000008],[-55.28317299999992,49.41693500000008],[-55.310000999999943,49.484772000000021],[-55.310832999999946,49.487770000000125],[-55.305557000000022,49.534439000000077],[-55.261390999999946,49.541107000000068],[-55.149726999999928,49.546387000000095],[-55.141112999999962,49.545273000000122],[-55.137222000000008,49.540833000000134],[-55.123328999999956,49.496941000000049],[-55.124717999999973,49.465271000000143],[-55.221107000000018,49.261939999999981],[-55.231109999999944,49.251389000000074],[-55.237220999999977,49.248046999999929],[-55.296394000000021,49.226379000000009],[-55.315001999999936,49.216933999999924],[-55.365836999999999,49.165268000000083],[-55.369164000000012,49.159431000000097],[-55.369445999999982,49.154160000000047],[-55.360001000000011,49.151382000000069],[-55.347495999999978,49.157211000000075],[-55.339721999999995,49.158600000000092],[-55.331673000000023,49.156654000000003],[-55.323615999999959,49.153602999999976],[-55.319449999999904,49.149162000000047],[-55.307219999999973,49.104996000000085],[-55.307776999999987,49.0991590000001],[-55.317504999999983,49.087769000000037],[-55.323059000000001,49.083327999999938],[-55.383330999999998,49.040833000000021],[-55.345551,49.057770000000062],[-55.272223999999937,49.099998000000085],[-55.277495999999985,49.103882000000112],[-55.282501000000025,49.113051999999982],[-55.283332999999914,49.118049999999982],[-55.288054999999986,49.182495000000074],[-55.288054999999986,49.187210000000107],[-55.285004000000015,49.193047000000092],[-55.280555999999933,49.199157999999954],[-55.275275999999963,49.204436999999984],[-55.148055999999997,49.259995000000004],[-55.081116000000009,49.283882000000062],[-55.081673000000023,49.345825000000104],[-55.081389999999942,49.351105000000132],[-55.078055999999947,49.356941000000006],[-55.069450000000018,49.3555530000001],[-55.010284000000013,49.323883000000023],[-54.989998000000014,49.286942000000067],[-54.990554999999972,49.28166200000004],[-54.824448000000018,49.269157000000064],[-54.817779999999914,49.271660000000054],[-54.787506000000008,49.288605000000018],[-54.78194400000001,49.292770000000019],[-54.67972599999996,49.379990000000021],[-54.658332999999971,49.399162000000047],[-54.648055999999997,49.409431000000041],[-54.641388000000006,49.421104000000071],[-54.643889999999999,49.425827000000083],[-54.579726999999934,49.494713000000104],[-54.541114999999934,49.526657000000114],[-54.528885000000002,49.533333000000027],[-54.521111000000019,49.533882000000006],[-54.474716000000001,49.534995999999978],[-54.431945999999925,49.470824999999991],[-54.430831999999953,49.465828000000045],[-54.450554000000011,49.427773000000116],[-54.483330000000024,49.361938000000123],[-54.49361399999998,49.268051000000071],[-54.492500000000007,49.263611000000026],[-54.486945999999989,49.259719999999959],[-54.480552999999929,49.262215000000026],[-54.474716000000001,49.266662999999994],[-54.406386999999938,49.320831000000112],[-54.400832999999921,49.325272000000041],[-54.399170000000026,49.330551000000014],[-54.410278000000005,49.343605000000082],[-54.412773000000016,49.34804500000007],[-54.413612000000001,49.353049999999939],[-54.407501000000025,49.374710000000107],[-54.404167000000029,49.380547000000092],[-54.395003999999915,49.392769000000044],[-54.380279999999971,49.408882000000119],[-54.36999499999996,49.419159000000093],[-54.364166000000012,49.423607000000061],[-54.358054999999979,49.426941000000056],[-54.325279000000023,49.423882000000049],[-54.24888599999997,49.397490999999945],[-54.186661000000015,49.371101000000124],[-54.17888599999992,49.37082700000002],[-54.166106999999897,49.378044000000102],[-54.161941999999897,49.383606000000043],[-54.15582999999998,49.40526600000004],[-54.153327999999931,49.416100000000085],[-54.151938999999913,49.427216000000044],[-54.148337999999967,49.437492000000134],[-54.145279000000016,49.443320999999969],[-54.139998999999932,49.448601000000053],[-54.133888000000013,49.451934999999992],[-54.048889000000031,49.479431000000091],[-54.041671999999949,49.480820000000051],[-53.919998000000021,49.447769000000108],[-53.775001999999972,49.396103000000039],[-53.673331999999959,49.34304800000001],[-53.511116000000015,49.277214000000072],[-53.48860899999994,49.220543000000134],[-53.588332999999977,49.040833000000021],[-53.593886999999995,49.035552999999993],[-53.66194200000001,49.032211000000018],[-53.714721999999938,49.02915999999999],[-53.804442999999992,49.022217000000012],[-53.785277999999948,49.011107999999922],[-53.731667000000016,49.013329000000056],[-53.725273000000016,49.009720000000016],[-53.736664000000019,49.001105999999993],[-53.742774999999995,48.997771999999998],[-53.749167999999941,48.995270000000119],[-53.77027899999996,48.989433000000133],[-53.803611999999987,48.978043000000071],[-53.813056999999958,48.938881000000038],[-53.974441999999954,48.84777100000008],[-54.021384999999952,48.833327999999995],[-54.096106999999961,48.812210000000107],[-53.920279999999991,48.834991000000116],[-53.899170000000026,48.838043000000027],[-53.875557000000015,48.836937000000034],[-53.829445000000021,48.831383000000017],[-53.820556999999951,48.829436999999928],[-53.800835000000006,48.812767000000008],[-53.802223000000026,48.807770000000062],[-53.845276000000013,48.766936999999984],[-53.867774999999938,48.75],[-53.89055599999989,48.733604000000014],[-53.897223999999937,48.731377000000123],[-53.932219999999973,48.71393599999999],[-53.950554000000011,48.670830000000137],[-53.93250299999994,48.624710000000107],[-53.924445999999989,48.624435000000062],[-53.917220999999927,48.624991999999963],[-53.888610999999969,48.631660000000124],[-53.882773999999927,48.633606000000043],[-53.869163999999955,48.638885000000016],[-53.857223999999974,48.644157000000121],[-53.795554999999922,48.675827000000027],[-53.790001000000018,48.679993000000138],[-53.798889000000031,48.682213000000104],[-53.817779999999971,48.673882000000049],[-53.831389999999999,48.669990999999982],[-53.852782999999931,48.666381999999942],[-53.896950000000004,48.662209000000018],[-53.913054999999929,48.663605000000075],[-53.920836999999949,48.667213000000004],[-53.924445999999989,48.671379000000059],[-53.892058999999904,48.682938000000092],[-53.887225999999941,48.690102000000024],[-53.884051999999997,48.693100000000129],[-53.880554000000018,48.695099000000141],[-53.857558999999981,48.704937000000029],[-53.759170999999981,48.714156999999943],[-53.618056999999965,48.694435000000112],[-53.610001000000011,48.693046999999979],[-53.601943999999946,48.68971300000004],[-53.599723999999924,48.684990000000028],[-53.603888999999924,48.674164000000076],[-53.610001000000011,48.668602000000135],[-53.645835999999974,48.648330999999985],[-53.658607000000018,48.641937000000098],[-53.671943999999939,48.638602999999932],[-53.728881999999942,48.629433000000063],[-53.779998999999975,48.623604000000057],[-53.787780999999995,48.622490000000084],[-53.928336999999942,48.575829000000056],[-53.93332700000002,48.572220000000073],[-53.951392999999996,48.549995000000024],[-53.956107999999915,48.543883999999991],[-53.952498999999932,48.539436000000023],[-53.944159999999897,48.539718999999991],[-53.932219999999973,48.544998000000135],[-53.919998000000021,48.551659000000086],[-53.914444000000003,48.555824000000086],[-53.908332999999914,48.559158000000025],[-53.901389999999935,48.562209999999993],[-53.895003999999858,48.563048999999921],[-53.804169000000002,48.568053999999961],[-53.788054999999929,48.566383000000087],[-53.746391000000017,48.558600999999953],[-53.746947999999918,48.523322999999948],[-53.74888599999997,48.513329000000113],[-53.750838999999985,48.50777400000004],[-53.756366999999955,48.50326200000012]],[[-127.91443599999991,51.410820000000001],[-127.92443799999995,51.41027100000008],[-128.06527700000004,51.464157000000114],[-128.07583599999998,51.470543000000021],[-128.08111599999995,51.474709000000132],[-128.15307599999988,51.601661999999976],[-128.15417499999995,51.605826999999977],[-128.15280199999995,51.638046000000145],[-128.15249600000004,51.641937000000041],[-128.15029899999996,51.647491000000059],[-128.14556900000002,51.653603000000032],[-128.136414,51.6616590000001],[-128.01306199999993,51.72137500000008],[-128.00527999999997,51.723320000000058],[-128,51.720542999999964],[-127.99694799999997,51.714157000000057],[-127.99804699999999,51.711662000000047],[-127.995003,51.705269000000101],[-127.98388699999998,51.682495000000131],[-127.96749899999992,51.651931999999988],[-127.951683,51.633880999999974],[-127.93776699999995,51.621933000000126],[-127.92639199999996,51.608886999999982],[-127.91999800000002,51.600547999999947],[-127.90556300000003,51.55971500000004],[-127.87361099999993,51.464439000000027],[-127.87193300000001,51.451934999999992],[-127.87332200000003,51.447769000000051],[-127.87666299999995,51.443046999999979],[-127.90444899999994,51.414711000000068],[-127.91443599999991,51.410820000000001]],[[-55.367500000000007,51.874161000000015],[-55.37471800000003,51.873878000000047],[-55.382216999999912,51.875267000000065],[-55.428885999999977,51.884163000000001],[-55.430000000000007,51.885826000000122],[-55.431113999999923,51.887771999999984],[-55.430557000000022,51.896659999999997],[-55.42610899999994,51.905822999999998],[-55.423331999999959,51.909431000000097],[-55.387779000000023,51.942764000000125],[-55.353614999999991,51.963608000000079],[-55.301392000000021,51.993050000000039],[-55.283889999999985,52.001389000000074],[-55.277221999999938,52.002495000000067],[-55.269996999999989,52.000549000000035],[-55.268889999999942,51.998604],[-55.267501999999979,51.993881000000044],[-55.274170000000026,51.97693600000008],[-55.274170000000026,51.975548000000003],[-55.28194400000001,51.961937000000034],[-55.295005999999944,51.943321000000026],[-55.302222999999969,51.933326999999963],[-55.332503999999972,51.896384999999952],[-55.342223999999874,51.886383000000023],[-55.354720999999927,51.878043999999989],[-55.360001000000011,51.875824000000136],[-55.367500000000007,51.874161000000015]],[[-128.05389400000001,51.753609000000097],[-128.11972000000003,51.741661000000079],[-128.13192699999996,51.743881000000101],[-128.13613899999996,51.746657999999968],[-128.25445599999995,51.865829000000019],[-128.25308199999995,51.872214999999983],[-128.22222899999997,51.953323000000125],[-128.21749899999998,51.962769000000094],[-128.177795,52.008330999999941],[-128.150848,52.035271000000023],[-128.14529400000004,52.038605000000018],[-128.10775799999999,52.051659000000086],[-128.06082200000003,52.056380999999988],[-127.99582699999996,52.062767000000065],[-127.98332199999993,52.061934999999949],[-127.96028100000001,52.055549999999982],[-127.95472699999999,52.05332199999998],[-127.95121799999998,52.046913000000131],[-127.95140100000003,52.03054800000001],[-127.95472699999999,51.981101999999964],[-128.00723299999993,51.782493999999986],[-128.00945999999999,51.778328000000101],[-128.01306199999993,51.773605000000089],[-128.01861600000001,51.770271000000093],[-128.03582800000004,51.760826000000066],[-128.05389400000001,51.753609000000097]],[[-79.252791999999999,52.071380999999917],[-79.319732999999985,51.969986000000063],[-79.364440999999943,51.942214999999976],[-79.370543999999995,51.938599000000124],[-79.376663000000008,51.936104000000057],[-79.385833999999988,51.935546999999985],[-79.42361499999987,51.936935000000062],[-79.433318999999869,51.93832400000008],[-79.450561999999877,51.942214999999976],[-79.50111400000003,51.942489999999964],[-79.568344000000025,51.935546999999985],[-79.576675000000023,51.934158000000025],[-79.591949,51.922768000000133],[-79.604445999999996,51.916664000000083],[-79.611664000000019,51.914436000000137],[-79.617767000000015,51.917770000000132],[-79.621383999999978,51.9222180000001],[-79.652785999999992,51.981101999999964],[-79.654175000000009,51.986655999999982],[-79.650832999999977,51.991936000000067],[-79.633895999999993,52.017493999999942],[-79.629439999999988,52.022217000000126],[-79.62332200000003,52.025269000000037],[-79.61471599999993,52.023048000000131],[-79.608611999999994,52.01998900000001],[-79.603881999999942,52.016106000000036],[-79.596114999999998,52.013611000000026],[-79.585281000000009,52.012772000000041],[-79.567779999999971,52.014999000000103],[-79.538329999999974,52.023323000000005],[-79.408889999999985,52.071938000000046],[-79.396666999999866,52.077217000000019],[-79.383895999999936,52.090827999999988],[-79.345551,52.108604000000128],[-79.338332999999977,52.110275000000001],[-79.297225999999966,52.091933999999981],[-79.277221999999881,52.090546000000074],[-79.269729999999925,52.08776899999998],[-79.263625999999988,52.083878000000084],[-79.252791999999999,52.071380999999917]],[[-131.01889,51.946098000000063],[-131.02166699999998,51.940825999999959],[-131.02917500000001,51.941375999999991],[-131.03695700000003,51.944434999999999],[-131.04861499999998,51.951385000000016],[-131.07415800000001,51.970543000000134],[-131.09500099999997,51.989989999999977],[-131.10165399999994,52.00277699999998],[-131.120544,52.055549999999982],[-131.12719699999997,52.095543000000021],[-131.126373,52.106941000000006],[-131.12249800000001,52.124710000000107],[-131.11639400000001,52.148048000000017],[-131.11026000000004,52.151099999999929],[-131.10192899999998,52.151932000000045],[-131.08361799999989,52.151382000000012],[-131.07720900000004,52.150268999999923],[-131.00945999999999,52.102776000000006],[-130.99249299999991,52.060822000000087],[-131.00473,52.005829000000062],[-131.01889,51.946098000000063]],[[-127.96278399999989,52.074714999999912],[-128.05111699999992,52.07416500000005],[-128.06222500000001,52.074996999999996],[-128.07638499999996,52.079994000000113],[-128.09387199999998,52.090546000000074],[-128.10583500000001,52.100273000000016],[-128.10888699999992,52.105270000000132],[-128.12081899999998,52.141936999999928],[-128.11471599999987,52.14916199999999],[-128.10693400000002,52.152489000000116],[-128.03167699999995,52.163292000000126],[-128.01583900000003,52.164711000000125],[-127.89111299999996,52.171660999999972],[-127.88110399999999,52.172218000000044],[-127.87917299999998,52.166664000000026],[-127.88971700000002,52.131103999999993],[-127.89334100000002,52.126938000000052],[-127.94360399999999,52.079163000000051],[-127.94721999999996,52.075829000000113],[-127.96278399999989,52.074714999999912]],[[-128.21194499999996,52.015549000000135],[-128.22082499999999,52.014442000000031],[-128.23858599999994,52.014717000000076],[-128.2463679999999,52.016662999999937],[-128.25308199999995,52.019714000000135],[-128.29110699999995,52.101936000000137],[-128.29415899999998,52.113608999999997],[-128.29168700000002,52.118881000000101],[-128.25280799999996,52.171379000000059],[-128.24444600000004,52.179993000000138],[-128.23971599999993,52.184158000000139],[-128.23193399999997,52.187492000000134],[-128.18804899999998,52.193604000000107],[-128.16223100000002,52.196655000000135],[-128.15307599999988,52.195267000000001],[-128.14779699999997,52.191658000000018],[-128.14584399999995,52.186104],[-128.1480709999999,52.183327000000133],[-128.15472399999999,52.159431000000041],[-128.15612799999997,52.153320000000122],[-128.15862999999996,52.11971299999999],[-128.154449,52.108604000000128],[-128.15139799999997,52.103882000000056],[-128.14752199999998,52.092766000000097],[-128.15112299999993,52.081108000000086],[-128.20611600000001,52.01888300000013],[-128.21194499999996,52.015549000000135]],[[-128.42834499999992,52.13749700000011],[-128.44415300000003,52.134163000000115],[-128.44638099999997,52.13499500000006],[-128.50472999999994,52.16027100000008],[-128.50918599999994,52.16443600000008],[-128.51113899999996,52.169990999999982],[-128.50863600000002,52.175552000000039],[-128.50527999999997,52.180274999999995],[-128.50058000000001,52.184158000000139],[-128.45138499999996,52.217209000000082],[-128.448059,52.21915400000006],[-128.43331899999998,52.223320000000001],[-128.41641200000004,52.226379000000122],[-128.40972899999997,52.224991000000045],[-128.40640299999995,52.2227630000001],[-128.40527299999997,52.218596999999988],[-128.4100039999999,52.214714000000072],[-128.40777599999996,52.15277100000003],[-128.408905,52.149437000000034],[-128.41363499999994,52.145270999999923],[-128.42834499999992,52.13749700000011]],[[-128.29998799999998,52.133606000000043],[-128.308044,52.128875999999991],[-128.31362899999999,52.129714999999976],[-128.36499000000003,52.162491000000102],[-128.37304699999999,52.185265000000072],[-128.378601,52.213608000000022],[-128.37832599999996,52.220268000000033],[-128.37719699999991,52.223877000000073],[-128.37027,52.228600000000029],[-128.35665900000004,52.235825000000091],[-128.34527600000001,52.238602000000014],[-128.29724099999999,52.237212999999997],[-128.23721299999994,52.222488000000055],[-128.22943099999998,52.220268000000033],[-128.22720300000003,52.218880000000127],[-128.22610499999996,52.216934000000037],[-128.22747799999996,52.212769000000037],[-128.22997999999995,52.209435000000099],[-128.29998799999998,52.133606000000043]],[[-81.476944000000003,52.249161000000072],[-81.48582499999992,52.248329000000126],[-81.646118000000001,52.251389000000017],[-81.687499999999943,52.254997000000117],[-81.706115999999952,52.258049000000028],[-81.710007000000019,52.262496999999996],[-81.695830999999941,52.267212000000029],[-81.578063999999983,52.294716000000051],[-81.551666000000012,52.298050000000046],[-81.541672000000005,52.296661000000029],[-81.493057000000022,52.283881999999949],[-81.480559999999969,52.277489000000003],[-81.475280999999995,52.27388000000002],[-81.471664000000033,52.268051000000014],[-81.468063000000029,52.263054000000068],[-81.467772999999966,52.256942999999978],[-81.470839999999953,52.252220000000023],[-81.476944000000003,52.249161000000072]],[[-127.924713,52.174164000000133],[-127.93360899999999,52.173049999999932],[-128.036407,52.177489999999977],[-128.05416899999994,52.180550000000039],[-128.07971199999997,52.186377999999934],[-128.08639500000004,52.188599000000067],[-128.09277299999991,52.19221500000009],[-128.16696199999996,52.244713000000104],[-128.17001299999998,52.249718000000144],[-128.15862999999996,52.256386000000077],[-128.06945799999994,52.294716000000051],[-128.0477909999999,52.300545000000056],[-128.04000899999994,52.301659000000029],[-127.97944599999994,52.296661000000029],[-127.97277800000001,52.295273000000122],[-127.96193700000003,52.289436000000137],[-127.95861799999989,52.287498000000028],[-127.95111099999997,52.279716000000064],[-127.90943899999996,52.210274000000027],[-127.90750100000002,52.204712000000086],[-127.90666199999998,52.198600999999996],[-127.91055299999988,52.186377999999934],[-127.91776999999996,52.176940999999999],[-127.924713,52.174164000000133]],[[-128.18444799999992,52.278602999999976],[-128.20361299999996,52.277489000000003],[-128.21026599999993,52.278327999999988],[-128.21362299999998,52.279716000000064],[-128.18917799999986,52.330826000000116],[-128.18307499999997,52.339714000000129],[-128.11471599999987,52.41832700000009],[-128.11111499999998,52.421661000000086],[-128.10443099999992,52.421379000000002],[-128.09997599999991,52.418602000000135],[-128.09359699999999,52.411658999999929],[-128.09249899999998,52.408324999999934],[-128.08526599999999,52.396385000000066],[-128.05917399999998,52.352219000000048],[-128.05694600000004,52.346100000000035],[-128.05526699999996,52.334991000000116],[-128.05667099999994,52.328880000000083],[-128.06140099999999,52.324715000000083],[-128.15194700000001,52.282211000000075],[-128.18444799999992,52.278602999999976]],[[-127.72444199999995,51.97693600000008],[-127.87082699999991,51.944709999999986],[-127.87970699999994,51.94499200000007],[-127.886124,51.947768999999994],[-127.89167800000001,51.951385000000016],[-127.89472999999992,51.956100000000049],[-127.89943700000003,51.973320000000001],[-127.90110799999991,51.985824999999977],[-127.90055799999988,51.999435000000005],[-127.88110399999999,52.078880000000083],[-127.87361099999993,52.094994000000042],[-127.85138699999999,52.141380000000026],[-127.82833900000003,52.175827000000027],[-127.817497,52.191375999999934],[-127.79750100000001,52.213882000000126],[-127.78916899999996,52.221930999999984],[-127.75334199999998,52.245827000000077],[-127.74527,52.247772000000055],[-127.699997,52.257216999999912],[-127.68083199999995,52.258888000000013],[-127.65943900000002,52.259163000000001],[-127.65055799999999,52.260276999999974],[-127.58640300000002,52.281105000000082],[-127.51666299999999,52.304436000000123],[-127.51000999999985,52.306938000000002],[-127.46056399999998,52.345824999999991],[-127.45694700000001,52.350548000000003],[-127.45612299999988,52.362213000000054],[-127.45694700000001,52.368324000000143],[-127.45333900000003,52.373046999999929],[-127.4177699999999,52.385269000000108],[-127.36277799999999,52.403876999999966],[-127.26390100000003,52.436653000000092],[-127.25945300000001,52.435265000000015],[-127.23473399999995,52.416939000000013],[-127.20777899999996,52.344711000000018],[-127.21056399999992,52.33526599999999],[-127.218887,52.325829000000056],[-127.23222399999992,52.313049000000092],[-127.24749800000001,52.301933000000133],[-127.27084399999995,52.288605000000132],[-127.28916899999996,52.279433999999981],[-127.30304699999999,52.274162000000047],[-127.30999800000001,52.271659999999997],[-127.32584400000002,52.268051000000014],[-127.36193800000001,52.264717000000019],[-127.42582699999997,52.24610100000001],[-127.43971299999993,52.240829000000076],[-127.44526699999994,52.23832699999997],[-127.57972699999999,52.177216000000044],[-127.58444199999991,52.173324999999977],[-127.58805799999999,52.167770000000075],[-127.59631300000001,52.151793999999995],[-127.65416700000003,52.123877999999991],[-127.68694299999993,52.074440000000095],[-127.69193999999993,52.06360600000005],[-127.70111099999991,52.041107000000068],[-127.70388800000001,52.028877000000136],[-127.699997,52.017768999999987],[-127.69915799999995,52.01138300000008],[-127.699432,52.00471500000009],[-127.70194999999995,51.998604],[-127.708054,51.988327000000027],[-127.71749899999998,51.980270000000075],[-127.72444199999995,51.97693600000008]],[[-128.66860999999994,52.266388000000063],[-128.67556799999994,52.266388000000063],[-128.72055099999994,52.306938000000002],[-128.724152,52.311378000000047],[-128.72637899999995,52.316101000000003],[-128.74832200000003,52.369156000000089],[-128.76196299999998,52.41832700000009],[-128.76251200000002,52.423325000000091],[-128.76196299999998,52.429160999999965],[-128.759186,52.449432000000002],[-128.75280799999996,52.467766000000097],[-128.74722299999996,52.471656999999993],[-128.68139599999989,52.482208000000071],[-128.67443800000001,52.482208000000071],[-128.65029899999996,52.474434000000088],[-128.63696299999992,52.468597000000102],[-128.624146,52.461662000000103],[-128.61914099999996,52.457771000000037],[-128.615814,52.453606000000036],[-128.61608899999993,52.44860099999994],[-128.61331199999995,52.364441000000056],[-128.61471599999993,52.353325000000098],[-128.61776699999996,52.329994000000056],[-128.61999500000002,52.323883000000137],[-128.62554899999992,52.311378000000047],[-128.62997399999995,52.305550000000096],[-128.66860999999994,52.266388000000063]],[[-128.471924,52.492767000000129],[-128.46777299999991,52.483047000000056],[-128.46499599999993,52.47304500000007],[-128.46417199999996,52.46804800000001],[-128.46499599999993,52.462212000000136],[-128.46722399999999,52.456099999999935],[-128.47082499999993,52.449714999999969],[-128.48055999999991,52.440269000000001],[-128.4869379999999,52.437209999999993],[-128.49414100000001,52.434989999999971],[-128.50945999999999,52.432213000000104],[-128.51806599999998,52.431938000000059],[-128.59553499999998,52.460140000000081],[-128.66314699999987,52.491927999999973],[-128.75500499999998,52.487770000000012],[-128.77557399999995,52.49332400000003],[-128.78472899999991,52.496101000000124],[-128.80944799999997,52.515549000000078],[-128.81304899999992,52.519989000000066],[-128.81390399999998,52.524994000000106],[-128.811127,52.536941999999954],[-128.808899,52.543053000000043],[-128.73889199999996,52.587494000000049],[-128.732483,52.590545999999961],[-128.72470099999998,52.59165999999999],[-128.5781859999999,52.5936430000001],[-128.56750499999998,52.622490000000028],[-128.53527800000001,52.647217000000069],[-128.53167699999995,52.62110100000001],[-128.52890000000002,52.611107000000004],[-128.52194199999997,52.591377000000023],[-128.50085399999995,52.543610000000115],[-128.48889199999991,52.52027099999998],[-128.48526000000004,52.515831000000105],[-128.47970599999996,52.506660000000011],[-128.471924,52.492767000000129]],[[-131.46444700000001,52.627487000000087],[-131.58554099999998,52.585266000000104],[-131.59359699999999,52.585823000000005],[-131.60137900000001,52.588600000000099],[-131.6119379999999,52.596099999999979],[-131.62359600000002,52.608886999999982],[-131.70971700000001,52.705269000000044],[-131.691101,52.724991000000102],[-131.68499799999995,52.728043000000014],[-131.65945399999993,52.730270000000075],[-131.48471099999995,52.736938000000066],[-131.475281,52.736655999999982],[-131.46859699999999,52.733330000000137],[-131.46887200000003,52.73054500000012],[-131.44943199999994,52.714996000000042],[-131.44027699999998,52.706940000000145],[-131.43917799999991,52.701660000000061],[-131.44137599999999,52.684158000000025],[-131.45443699999998,52.636383000000023],[-131.45834399999995,52.630821000000083],[-131.46444700000001,52.627487000000087]],[[-128.43029799999994,52.368050000000039],[-128.44168099999996,52.368050000000039],[-128.45611599999989,52.373046999999929],[-128.46026599999999,52.37721300000004],[-128.46664399999986,52.386939999999981],[-128.46777299999991,52.393051000000071],[-128.43777499999999,52.543610000000115],[-128.44973800000002,52.620827000000077],[-128.45056199999999,52.626937999999996],[-128.44168099999996,52.746941000000106],[-128.43917799999997,52.752220000000079],[-128.43582200000003,52.756943000000092],[-128.39001500000001,52.797493000000031],[-128.383331,52.797493000000031],[-128.37332200000003,52.791107000000125],[-128.36276199999998,52.740272999999945],[-128.35861199999988,52.729156000000103],[-128.32138099999992,52.634720000000129],[-128.275848,52.496101000000124],[-128.27502400000003,52.489990000000034],[-128.28640699999994,52.457771000000037],[-128.31140099999999,52.423881999999992],[-128.365814,52.38220999999993],[-128.37164300000001,52.378875999999991],[-128.386414,52.374992000000134],[-128.40335099999993,52.371658000000139],[-128.43029799999994,52.368050000000039]],[[-128.97442599999999,52.453323000000069],[-128.98275799999999,52.453049000000135],[-129.11471599999993,52.556656000000089],[-129.21081499999997,52.64888000000002],[-129.26333599999998,52.710548000000074],[-129.27056899999997,52.719153999999946],[-129.29196200000001,52.761664999999994],[-129.29278599999998,52.766937000000098],[-129.28140299999995,52.81721500000009],[-129.27722199999988,52.823051000000135],[-129.27084400000001,52.826103000000046],[-129.26223799999997,52.826660000000118],[-129.252228,52.825272000000041],[-129.23111,52.81610100000006],[-129.218323,52.809158000000082],[-129.10415599999999,52.74110399999995],[-129.066101,52.714714000000129],[-128.94695999999993,52.626381000000094],[-128.926941,52.610825000000091],[-128.92333999999994,52.606659000000036],[-128.91973899999999,52.602218999999991],[-128.91861,52.527488999999946],[-128.92251599999997,52.515274000000034],[-128.93640099999999,52.480545000000006],[-128.94360399999999,52.469711000000075],[-128.9491579999999,52.465546000000074],[-128.96166999999997,52.459435000000042],[-128.97442599999999,52.453323000000069]],[[-128.26974499999994,52.596939000000134],[-128.27416999999997,52.595543000000077],[-128.27890000000002,52.595824999999991],[-128.28445399999998,52.598602000000028],[-128.28750600000001,52.602776000000063],[-128.28973399999995,52.60833000000008],[-128.29269399999993,52.661549000000036],[-128.32305899999994,52.74110399999995],[-128.32638499999996,52.771378000000027],[-128.32501199999996,52.776100000000099],[-128.26322900000002,52.784645000000125],[-128.21063200000003,52.798515000000009],[-128.18582199999992,52.826942000000031],[-128.177795,52.826103000000046],[-128.17334,52.823326000000122],[-128.17028799999997,52.817771999999991],[-128.17584199999999,52.787773000000129],[-128.17861899999997,52.776100000000099],[-128.20776399999994,52.704436999999984],[-128.21026599999993,52.698875000000044],[-128.24722299999996,52.620544000000109],[-128.24972500000001,52.616660999999965],[-128.26141399999995,52.604439000000013],[-128.26974499999994,52.596939000000134]],[[-131.63973999999996,52.828049000000135],[-131.64666699999992,52.825829000000113],[-131.64889499999998,52.826103000000046],[-131.66973899999999,52.819160000000068],[-131.70834400000001,52.811378000000104],[-131.72387700000002,52.808327000000077],[-131.73306299999996,52.80860100000001],[-131.81332399999997,52.82027400000004],[-131.82388300000002,52.82777400000009],[-131.83138999999994,52.841934000000037],[-131.83029199999999,52.846656999999993],[-131.82250999999991,52.848045000000127],[-131.74859599999996,52.853324999999984],[-131.72860699999995,52.851387000000045],[-131.644745,52.835548000000131],[-131.636414,52.832497000000103],[-131.63973999999996,52.828049000000135]],[[-128.50527999999997,52.641106000000036],[-128.5125119999999,52.641106000000036],[-128.51611300000002,52.645271000000037],[-128.52029400000004,52.654991000000109],[-128.54000899999994,52.703323000000012],[-128.53500399999996,52.758049000000085],[-128.53362999999996,52.769157000000121],[-128.51391599999999,52.860825000000034],[-128.51028400000001,52.867493000000024],[-128.50613399999992,52.873047000000042],[-128.49887100000001,52.87082700000002],[-128.49194299999994,52.868599000000074],[-128.48553499999997,52.865273000000002],[-128.471924,52.853049999999996],[-128.46832299999994,52.848602000000028],[-128.45083599999992,52.805267000000015],[-128.45361300000002,52.782493999999986],[-128.45443699999998,52.776939000000084],[-128.50167799999991,52.647491000000002],[-128.50527999999997,52.641106000000036]],[[-129.61053500000003,52.954993999999999],[-129.61831699999999,52.953606000000093],[-129.62222299999996,52.958046000000081],[-129.65139799999992,53.013329000000113],[-129.650848,53.01888300000013],[-129.62441999999993,53.02388000000002],[-129.615814,53.024436999999921],[-129.60720800000001,53.022766000000047],[-129.57055699999989,53.013611000000026],[-129.5625,53.010551000000135],[-129.55749499999996,53.006660000000068],[-129.55667099999999,53.001389000000017],[-129.55862400000001,52.997490000000028],[-129.55334500000004,52.984993000000031],[-129.561127,52.970543000000077],[-129.59637499999991,52.959435000000099],[-129.61053500000003,52.954993999999999]],[[-129.531677,53.010551000000135],[-129.53890999999993,53.008049000000085],[-129.546967,53.008888000000013],[-129.58859299999995,53.024162000000103],[-129.64001500000001,53.044158999999979],[-129.63391099999996,53.056099000000074],[-129.56277499999993,53.053046999999992],[-129.52444500000001,53.033606999999961],[-129.51779199999993,53.029991000000109],[-129.51724200000001,53.024993999999992],[-129.52056900000002,53.018326000000059],[-129.531677,53.010551000000135]],[[-55.763061999999991,53.029434000000037],[-55.853333000000021,53.01527399999992],[-55.861945999999989,53.015549000000135],[-55.870834000000002,53.018599999999992],[-55.876388999999961,53.02748900000006],[-55.876105999999993,53.032768000000033],[-55.872771999999998,53.043883999999991],[-55.869719999999973,53.04972100000009],[-55.857779999999991,53.06749700000006],[-55.854445999999996,53.071663000000001],[-55.848609999999951,53.076102999999989],[-55.808333999999945,53.09137700000008],[-55.800551999999982,53.093605000000025],[-55.79222900000002,53.093048000000124],[-55.788612000000001,53.089714000000129],[-55.788337999999953,53.086655000000007],[-55.749167999999997,53.069160000000011],[-55.748885999999914,53.064712999999927],[-55.755004999999869,53.038604999999961],[-55.756667999999991,53.033051],[-55.763061999999991,53.029434000000037]],[[-129.60247799999996,53.057213000000047],[-129.61080899999996,53.056655999999975],[-129.69250499999993,53.075829000000056],[-129.70193499999999,53.078330999999935],[-129.70834399999995,53.08166499999993],[-129.72305299999999,53.099159000000043],[-129.73611500000004,53.12221500000004],[-129.73831200000001,53.12721300000004],[-129.73275799999999,53.131103999999937],[-129.716949,53.133881000000031],[-129.69973800000002,53.134995000000004],[-129.66805999999991,53.136108000000092],[-129.66250600000001,53.135551000000021],[-129.65444899999994,53.132767000000058],[-129.650848,53.130547000000035],[-129.64416499999999,53.12721300000004],[-129.62081899999998,53.112494999999967],[-129.615814,53.108604000000071],[-129.58804299999991,53.084717000000069],[-129.58416699999998,53.08027600000014],[-129.58193999999997,53.075554000000068],[-129.58612099999999,53.069992000000127],[-129.59664900000001,53.061104000000114],[-129.60247799999996,53.057213000000047]],[[-79.909164000000033,53.081940000000145],[-79.919723999999974,53.081940000000145],[-79.926102000000014,53.084991000000002],[-79.92971799999998,53.089432000000102],[-79.932220000000029,53.094436999999971],[-79.938599000000011,53.122490000000084],[-79.938599000000011,53.134995000000004],[-79.93499799999995,53.147774000000084],[-79.930557000000022,53.152489000000116],[-79.906386999999995,53.172768000000076],[-79.897781000000009,53.174438000000009],[-79.887511999999958,53.174438000000009],[-79.877486999999974,53.173050000000103],[-79.866393999999957,53.16944100000012],[-79.858886999999868,53.166939000000013],[-79.846114999999941,53.160545000000013],[-79.795836999999892,53.116386000000034],[-79.789444000000003,53.106941000000006],[-79.787215999999944,53.101936000000137],[-79.789444000000003,53.095825000000048],[-79.796951000000035,53.093605000000025],[-79.835555999999997,53.083878000000084],[-79.843886999999995,53.082214000000079],[-79.909164000000033,53.081940000000145]],[[-129.4324949999999,53.151382000000012],[-129.35278299999993,53.072220000000073],[-129.29000899999988,52.993607000000054],[-129.28750600000001,52.978043000000014],[-129.28945899999985,52.971930999999984],[-129.29583700000001,52.968880000000013],[-129.31222499999996,52.966934000000094],[-129.341095,52.973320000000001],[-129.41418499999997,53.010551000000135],[-129.41915900000004,53.014442000000031],[-129.42138699999998,53.019157000000064],[-129.42471299999994,53.040276000000063],[-129.42916899999994,53.04972100000009],[-129.475281,53.101936000000137],[-129.50527999999997,53.126380999999981],[-129.51196300000004,53.129714999999976],[-129.52194199999985,53.131103999999937],[-129.53750600000001,53.128326000000129],[-129.54473899999994,53.128326000000129],[-129.54724099999993,53.133049000000142],[-129.54806500000001,53.14916199999999],[-129.546967,53.16027100000008],[-129.5386049999999,53.171660999999915],[-129.52166699999992,53.18360100000001],[-129.51446499999997,53.185822000000144],[-129.49859599999996,53.188599000000011],[-129.49026499999997,53.188881000000094],[-129.47997999999995,53.187767000000122],[-129.470551,53.185265000000015],[-129.46276899999992,53.179993000000081],[-129.4324949999999,53.151382000000012]],[[-81.106109999999887,53.199714999999969],[-81.087783999999886,53.17943600000001],[-81.045272999999952,53.148605000000089],[-80.978881999999942,53.113052000000039],[-80.973617999999988,53.109436000000017],[-80.809433000000013,52.97693600000008],[-80.775008999999955,52.944434999999942],[-80.763335999999924,52.931381000000044],[-80.669158999999979,52.776939000000084],[-80.667769999999962,52.771935000000099],[-80.667496000000028,52.759438000000102],[-80.670836999999892,52.745827000000133],[-80.673049999999932,52.740547000000049],[-80.699722000000008,52.69609800000012],[-80.705001999999979,52.692214999999976],[-80.712509000000011,52.689156000000025],[-80.720551,52.688324000000136],[-80.731673999999998,52.688881000000038],[-80.739166000000012,52.691376000000048],[-80.749161000000015,52.698875000000044],[-80.753066999999987,52.703323000000012],[-80.765839000000028,52.709717000000012],[-80.797500999999954,52.719153999999946],[-80.815001999999993,52.723045000000013],[-80.861388999999917,52.731102000000021],[-80.898894999999982,52.737495000000138],[-80.918883999999991,52.740272999999945],[-80.995543999999938,52.746101000000067],[-81.015563999999927,52.748604000000057],[-81.024444999999957,52.750549000000035],[-81.138061999999934,52.788048000000117],[-81.15306099999998,52.793052999999986],[-81.198882999999967,52.814156000000082],[-81.212783999999942,52.819991999999957],[-81.251953000000015,52.832497000000103],[-81.287216000000001,52.83998900000006],[-81.369155999999862,52.856102000000078],[-81.41722099999987,52.863052000000096],[-81.58444199999991,52.889160000000061],[-81.649170000000026,52.907211000000075],[-81.763625999999931,52.937767000000008],[-81.781386999999995,52.941658000000075],[-81.811660999999958,52.945267000000058],[-81.834166999999866,52.946381000000031],[-81.881377999999984,52.954162999999994],[-81.916655999999989,52.96166199999999],[-81.933318999999983,52.965828000000045],[-81.949721999999952,52.971375000000023],[-81.962783999999886,52.97693600000008],[-82.049987999999985,53.014442000000031],[-82.056655999999862,53.017494000000113],[-82.061661000000015,53.021102999999925],[-82.063323999999909,53.026657000000114],[-82.060271999999998,53.031937000000028],[-82.053329000000019,53.041938999999957],[-82.049164000000019,53.046661000000029],[-81.974716000000001,53.113883999999985],[-81.965285999999935,53.12221500000004],[-81.954177999999956,53.129990000000134],[-81.910827999999981,53.158882000000062],[-81.892226999999991,53.168326999999977],[-81.864440999999999,53.178604000000121],[-81.848052999999936,53.181664000000012],[-81.826110999999969,53.181381000000044],[-81.714721999999881,53.188599000000011],[-81.543059999999969,53.209160000000054],[-81.385283999999899,53.224990999999989],[-81.374999999999943,53.224990999999989],[-81.295546999999999,53.217765999999983],[-81.116394000000014,53.200829000000113],[-81.106109999999887,53.199714999999969]],[[-131.76223800000002,53.196655000000078],[-131.6305539999999,53.084159999999997],[-131.595551,53.046103999999957],[-131.59304800000001,53.041382000000056],[-131.59472700000003,53.035271000000023],[-131.60165399999994,53.033051],[-131.61026000000004,53.032211000000132],[-131.62887599999999,53.032494000000099],[-131.63973999999996,53.034439000000077],[-131.73666400000002,53.053879000000052],[-131.75558499999994,53.058601000000124],[-131.77444500000001,53.068886000000077],[-131.78390499999989,53.071381000000088],[-131.79473899999994,53.073051000000078],[-131.81362899999999,53.073607999999979],[-131.82971199999992,53.071381000000088],[-131.94332900000001,53.054993000000024],[-131.96472199999999,53.046386999999925],[-131.91195700000003,53.005271999999991],[-131.90835599999991,53.011108000000036],[-131.89944499999996,53.019714000000135],[-131.88806199999999,53.026939000000027],[-131.87027,53.037498000000028],[-131.85611,53.04222100000004],[-131.84777800000001,53.043052999999929],[-131.83111600000001,53.043052999999929],[-131.81167600000003,53.039718999999991],[-131.662781,53.00777400000004],[-131.644745,53.003882999999973],[-131.62860099999995,52.998328999999956],[-131.61498999999998,52.991661000000022],[-131.609711,52.988045000000113],[-131.59805299999999,52.97526600000009],[-131.59582499999993,52.964714000000072],[-131.59750399999996,52.958602999999982],[-131.61554000000001,52.920273000000066],[-131.662781,52.882210000000043],[-131.66805999999997,52.878043999999932],[-131.68057299999992,52.871658000000025],[-131.68749999999994,52.869155999999975],[-131.70443699999993,52.867767000000129],[-131.80221599999999,52.86471599999993],[-131.80862400000001,52.865829000000019],[-131.833618,52.88499500000006],[-131.849152,52.901932000000102],[-131.87027,52.922768000000076],[-131.88473499999992,52.934433000000013],[-131.89001500000001,52.93832400000008],[-131.898346,52.941100999999946],[-131.906677,52.940269000000058],[-131.93859899999995,52.934990000000084],[-131.94473299999999,52.931664000000012],[-131.982483,52.879715000000033],[-131.97860700000001,52.875549000000092],[-131.96859699999999,52.874435000000119],[-131.95278899999988,52.875267000000065],[-131.94528200000002,52.876938000000109],[-131.93139599999995,52.881660000000011],[-131.85638399999993,52.856102000000078],[-131.77557399999989,52.716660000000047],[-131.767517,52.713882000000012],[-131.73361199999999,52.69860100000011],[-131.72692900000004,52.695541000000048],[-131.72305299999988,52.691101000000003],[-131.683899,52.642220000000009],[-131.68139600000001,52.637496999999996],[-131.65945399999993,52.581665000000044],[-131.57278400000001,52.529991000000052],[-131.56527700000004,52.531662000000097],[-131.55667099999994,52.532211000000018],[-131.54583700000001,52.530273000000079],[-131.48193400000002,52.507773999999984],[-131.46749899999992,52.501389000000131],[-131.42361499999998,52.460823000000119],[-131.42748999999998,52.414993000000095],[-131.39849899999996,52.377827000000025],[-131.39533999999998,52.375492000000122],[-131.39016699999996,52.374660000000006],[-131.36749299999991,52.381827999999985],[-131.36549400000001,52.384491000000025],[-131.36599699999988,52.390986999999996],[-131.36715700000002,52.397160000000042],[-131.357483,52.403320000000065],[-131.35833699999989,52.414153999999996],[-131.35305799999998,52.41832700000009],[-131.32833900000003,52.431107000000054],[-131.31304899999998,52.434158000000082],[-131.27252199999998,52.438881000000038],[-131.25558499999988,52.440269000000001],[-131.23638900000003,52.439156000000082],[-131.23248299999995,52.434714999999983],[-131.24749800000001,52.365829000000133],[-131.25085399999995,52.359160999999972],[-131.25836200000003,52.34777100000008],[-131.26306199999999,52.34276600000004],[-131.30311599999993,52.332100000000025],[-131.31977799999993,52.335106000000053],[-131.33059700000001,52.332770999999923],[-131.33248899999995,52.293610000000001],[-131.32833900000003,52.284995999999978],[-131.32443199999989,52.280822999999998],[-131.27139299999999,52.277771000000087],[-131.259186,52.284164000000033],[-131.25613399999992,52.290833000000077],[-131.24832199999997,52.302216000000101],[-131.17971799999998,52.317772000000048],[-131.17193599999996,52.319442999999922],[-131.136414,52.311378000000047],[-131.09500099999997,52.286110000000122],[-131.01501500000001,52.225548000000117],[-131.00750699999998,52.217209000000082],[-131.00527999999991,52.206657000000064],[-131.01168799999988,52.193604000000107],[-131.01556400000004,52.187767000000122],[-131.024719,52.178047000000049],[-131.030304,52.173882000000049],[-131.036407,52.170830000000137],[-131.04305999999991,52.168326999999977],[-131.11512799999997,52.168289000000016],[-131.16610700000001,52.125549000000092],[-131.18057299999987,52.121658000000025],[-131.26473999999985,52.11971299999999],[-131.29888900000003,52.150268999999923],[-131.36025999999993,52.189156000000139],[-131.36694299999999,52.192490000000134],[-131.38946499999997,52.205826000000059],[-131.41168200000004,52.220543000000077],[-131.55111699999998,52.333878000000084],[-131.57333399999993,52.360824999999977],[-131.58194000000003,52.379990000000134],[-131.582764,52.385269000000108],[-131.58056599999986,52.390548999999965],[-131.57778899999994,52.393607999999972],[-131.57083099999994,52.396102999999982],[-131.54806500000001,52.400543000000027],[-131.53973399999995,52.401100000000099],[-131.52972399999993,52.400269000000094],[-131.52029400000004,52.397774000000027],[-131.56140099999999,52.431664000000126],[-131.66168199999998,52.478324999999984],[-131.67916899999994,52.483604000000128],[-131.70944199999991,52.491104000000007],[-131.76223800000002,52.50499700000006],[-131.77529899999996,52.51166500000005],[-131.89279199999999,52.582771000000093],[-132.01751699999994,52.677490000000034],[-132.08194000000003,52.727485999999942],[-132.08471700000001,52.732208000000014],[-132.060272,52.755272000000048],[-132.01028399999996,52.775269000000094],[-132.00250199999999,52.776939000000084],[-131.993042,52.774436999999978],[-131.97305299999999,52.764717000000076],[-131.96389799999997,52.756660000000124],[-131.94445799999988,52.735549999999989],[-131.93362400000001,52.728043000000014],[-131.92694099999994,52.724709000000075],[-131.91751099999988,52.722487999999942],[-131.91723599999995,52.725822000000107],[-131.93722499999996,52.763611000000083],[-131.93972799999995,52.768326000000116],[-131.95166,52.781105000000139],[-131.96221899999995,52.788605000000018],[-131.96887200000003,52.791939000000013],[-132.03417999999994,52.812767000000122],[-132.06167599999998,52.813881000000094],[-132.05804399999994,52.804161000000022],[-132.05557299999987,52.793610000000058],[-132.10247800000002,52.749435000000062],[-132.11026000000004,52.748046999999985],[-132.12026999999995,52.748877999999991],[-132.12747199999995,52.750832000000003],[-132.21417199999991,52.804710000000114],[-132.21945199999999,52.808327000000077],[-132.22888199999994,52.816382999999973],[-132.31640599999997,52.902214000000129],[-132.34414700000002,52.931664000000012],[-132.34695399999993,52.936377999999991],[-132.34304799999995,52.942214999999976],[-132.32971199999992,52.94582400000013],[-132.31362899999999,52.948043999999982],[-132.25558499999994,52.954711999999915],[-132.24527,52.953880000000026],[-132.23803699999991,52.951935000000049],[-132.16778599999992,52.928047000000106],[-132.15640300000001,52.958885000000066],[-132.11248799999998,52.987770000000125],[-132.11026000000004,52.993049999999982],[-132.11276199999992,52.997772000000055],[-132.11944599999998,53.00110600000005],[-132.25613399999997,53.028877000000136],[-132.26696799999996,53.030823000000055],[-132.29501300000004,53.031105000000082],[-132.41195700000003,53.031937000000028],[-132.47970599999996,53.027214000000015],[-132.49609399999991,53.032768000000033],[-132.50778199999996,53.040549999999996],[-132.51196300000004,53.044716000000051],[-132.55279499999995,53.089714000000129],[-132.55557299999992,53.094436999999971],[-132.56362899999999,53.139160000000004],[-132.56222500000001,53.145271000000093],[-132.55667099999994,53.149436999999978],[-132.54916399999991,53.151100000000099],[-132.53945899999991,53.148880000000077],[-132.52584799999994,53.142220000000066],[-132.50140399999998,53.133881000000031],[-132.48165899999998,53.130820999999969],[-132.45111099999986,53.128044000000102],[-132.41363499999989,53.127486999999974],[-132.378601,53.129433000000063],[-132.21081499999997,53.141662999999994],[-132.07083099999994,53.153877000000023],[-132.06390399999987,53.156380000000013],[-132.05777,53.159714000000008],[-132.03057899999999,53.179993000000081],[-132.00750700000003,53.1947100000001],[-131.92834500000004,53.230545000000006],[-131.92138699999992,53.233047000000056],[-131.811127,53.253608999999983],[-131.80194099999994,53.253326000000015],[-131.794464,53.251388999999961],[-131.79055800000003,53.247214999999926],[-131.76223800000002,53.196655000000078]],[[-55.778052999999943,53.289719000000105],[-55.786667000000023,53.288330000000087],[-55.794448999999929,53.291107000000011],[-55.797226000000023,53.295546999999999],[-55.793334999999956,53.300545],[-55.785003999999958,53.303604000000007],[-55.776108000000022,53.300270000000012],[-55.776389999999992,53.295273000000066],[-55.778052999999943,53.289719000000105]],[[-128.68945299999996,53.16443600000008],[-128.67944299999994,53.163047999999947],[-128.67083700000001,53.163605000000075],[-128.65222199999999,53.16276600000009],[-128.64196799999996,53.161377000000073],[-128.62469499999997,53.155548000000067],[-128.60555999999997,53.145271000000093],[-128.57611099999991,53.105270000000132],[-128.53167699999995,53.021102999999925],[-128.52890000000002,53.011108000000036],[-128.52056900000002,52.959435000000099],[-128.51834099999991,52.943604000000107],[-128.51779199999987,52.927489999999977],[-128.51834099999991,52.911102000000142],[-128.52001999999999,52.899719000000118],[-128.52279699999991,52.888046000000088],[-128.57028199999996,52.691376000000048],[-128.57223499999992,52.685265000000129],[-128.57528699999995,52.679993000000024],[-128.59359699999993,52.659156999999993],[-128.58526599999988,52.659431000000097],[-128.57748400000003,52.65638000000007],[-128.58581499999991,52.6322100000001],[-128.59222399999993,52.613884000000098],[-128.59722899999991,52.609161000000086],[-128.60497999999995,52.607773000000009],[-128.74887099999995,52.597214000000122],[-128.75167799999997,52.60083000000003],[-128.74859600000002,52.748604000000057],[-128.74804699999999,52.754165999999998],[-128.74444600000004,52.760826000000009],[-128.69250499999998,52.856102000000078],[-128.65335099999999,52.892769000000101],[-128.648346,52.89777400000014],[-128.64474499999994,52.904160000000047],[-128.64334099999996,52.915543000000071],[-128.64196799999996,52.948601000000053],[-128.64334099999996,52.958885000000066],[-128.646973,52.963325999999995],[-128.65335099999999,52.96665999999999],[-128.663635,52.968048000000067],[-128.67138699999998,52.96665999999999],[-128.67694099999994,52.962769000000094],[-128.67999299999997,52.957771000000093],[-128.75112899999999,52.835823000000119],[-128.75390600000003,52.830826000000059],[-128.76223800000002,52.810822000000087],[-128.76446499999997,52.804710000000114],[-128.78057899999999,52.739989999999977],[-128.78140299999995,52.734160999999972],[-128.77999899999998,52.72387700000013],[-128.77780200000001,52.718880000000013],[-128.77111799999994,52.704711999999972],[-128.76556400000004,52.695541000000048],[-128.77889999999991,52.66415400000011],[-128.84637499999997,52.653320000000065],[-128.88445999999999,52.648048000000131],[-128.89251699999994,52.64888000000002],[-129,52.697212000000093],[-129.03277600000001,52.719711000000075],[-129.04779099999996,52.731377000000009],[-129.08029199999999,52.772491000000116],[-129.10861199999999,52.812767000000122],[-129.11080899999996,52.817497000000117],[-129.114441,52.821938000000046],[-129.11886600000003,52.83138300000013],[-129.12191799999994,52.852218999999934],[-129.12191799999994,52.863052000000096],[-129.11999500000002,52.869155999999975],[-129.11080899999996,52.877487000000031],[-129.10360699999995,52.879715000000033],[-129.09500100000002,52.880272000000105],[-129.08444199999997,52.878043999999932],[-129.0763849999999,52.87499200000002],[-129.02224699999988,52.905548000000124],[-128.95178199999992,52.973660000000052],[-128.86999499999996,53.021935000000042],[-128.85498000000001,53.025269000000037],[-128.84082000000001,53.029716000000121],[-128.83639499999998,53.03555300000005],[-128.84359699999999,53.044158999999979],[-128.89556899999997,53.08277099999998],[-128.96389799999992,53.121657999999968],[-128.970551,53.124992000000134],[-129.00222799999995,53.136940000000038],[-129.01168799999999,53.139717000000076],[-129.01583900000003,53.133881000000031],[-129.01501499999995,53.128875999999991],[-129.00473,53.109993000000088],[-128.99386599999997,53.097214000000065],[-128.98748799999998,53.095825000000048],[-128.98110999999994,53.09887700000013],[-128.97387700000002,53.101105000000132],[-128.96444699999995,53.100548000000003],[-128.95666499999999,53.097771000000137],[-128.912781,53.073051000000078],[-128.86444099999989,53.038887000000045],[-128.862213,53.034164000000089],[-129.05584699999997,52.909156999999936],[-129.06915299999991,52.90387700000008],[-129.09500100000002,52.902489000000003],[-129.10583500000001,52.904708999999968],[-129.15945399999998,52.919715999999994],[-129.16583299999996,52.923049999999989],[-129.169464,52.927489999999977],[-129.17529300000001,52.936377999999991],[-129.18554700000004,52.955269000000044],[-129.18722499999996,52.965546000000018],[-129.191956,53.00777400000004],[-129.19137599999999,53.013329000000113],[-129.18804899999992,53.024162000000103],[-129.16665599999993,53.06610100000006],[-129.16168200000004,53.0711060000001],[-129.15472399999999,53.073326000000066],[-129.13165300000003,53.078049000000078],[-129.11804199999989,53.079163000000051],[-129.11749299999991,53.073882999999967],[-129.11804199999989,53.068329000000006],[-129.11499000000003,53.064712999999927],[-129.10861199999999,53.067772000000105],[-129.08248899999995,53.089989000000003],[-129.075287,53.10305000000011],[-129.07333399999999,53.109160999999972],[-129.07055700000001,53.131660000000124],[-129.05889899999988,53.231377000000123],[-129.06027199999988,53.241661000000136],[-129.064728,53.251105999999993],[-129.07193000000001,53.25999500000006],[-129.08221400000002,53.267769000000101],[-129.08972199999994,53.287216000000114],[-129.08612099999999,53.293610000000001],[-129.07971199999997,53.296661000000029],[-129.06664999999992,53.300827000000083],[-129.04305999999997,53.30471],[-129.025848,53.305550000000096],[-129.01861600000001,53.305550000000096],[-128.90084799999994,53.290276000000006],[-128.89138799999989,53.287773000000016],[-128.88137800000004,53.279991000000052],[-128.87777699999992,53.275826000000052],[-128.86389199999991,53.263610999999969],[-128.84359699999999,53.248047000000042],[-128.83221399999996,53.240546999999992],[-128.77529900000002,53.208885000000009],[-128.71167000000003,53.173882000000049],[-128.70526099999989,53.170546999999942],[-128.68945299999996,53.16443600000008]],[[-129.15307599999994,53.098328000000038],[-129.16168200000004,53.097771000000137],[-129.25945999999999,53.09804500000007],[-129.28945899999985,53.101936000000137],[-129.31140099999999,53.116936000000067],[-129.32665999999989,53.128601000000003],[-129.33248900000001,53.13749700000011],[-129.33471699999996,53.142493999999999],[-129.33639500000004,53.152770999999973],[-129.33889799999986,53.179161000000022],[-129.3383179999999,53.184990000000028],[-129.33639500000004,53.191101000000117],[-129.32528699999989,53.216103000000032],[-129.27389500000004,53.328049000000021],[-129.26806599999992,53.331940000000088],[-129.26028399999996,53.333327999999995],[-129.250854,53.333054000000061],[-129.22915599999988,53.328880000000026],[-129.22692899999998,53.326102999999932],[-129.20889299999999,53.321937999999932],[-129.19415299999997,53.315544000000102],[-129.18112199999996,53.308601000000067],[-129.17611699999998,53.30471],[-129.16860999999994,53.296104000000128],[-129.14529399999998,53.22165700000005],[-129.13247699999999,53.118599000000017],[-129.13192699999996,53.11360899999994],[-129.1339109999999,53.107498000000078],[-129.13891599999994,53.102493000000038],[-129.15307599999994,53.098328000000038]],[[-79.942764000000011,53.266936999999984],[-80.009170999999924,53.263885000000073],[-80.018065999999862,53.265830999999991],[-80.024445000000014,53.268883000000073],[-80.081679999999949,53.316101000000003],[-80.083892999999989,53.321106000000043],[-80.085281000000009,53.326942000000088],[-80.073333999999988,53.348877000000073],[-80.068892999999946,53.353325000000041],[-80.061385999999914,53.355553000000043],[-79.999724999999955,53.364716000000044],[-79.944716999999969,53.368050000000039],[-79.950561999999934,53.349716000000058],[-79.951949999999954,53.348327999999981],[-79.913054999999986,53.296104000000128],[-79.91194200000001,53.29055000000011],[-79.913329999999917,53.283051000000114],[-79.920836999999949,53.273048000000074],[-79.927215999999987,53.27027099999998],[-79.942764000000011,53.266936999999984]],[[-129.35833700000001,53.304161000000079],[-129.37441999999999,53.301383999999985],[-129.38363600000002,53.301933000000133],[-129.3875119999999,53.306099000000017],[-129.43499799999995,53.378876000000105],[-129.43307500000003,53.384720000000129],[-129.39501999999999,53.410819999999944],[-129.386414,53.40915700000005],[-129.37970000000001,53.40554800000001],[-129.37387100000001,53.400826000000109],[-129.36663799999991,53.398880000000077],[-129.32861300000002,53.377769000000001],[-129.30557299999998,53.335823000000005],[-129.30334499999992,53.331107999999972],[-129.30749500000002,53.31888600000002],[-129.31249999999989,53.313880999999981],[-129.32693499999999,53.309715000000097],[-129.35833700000001,53.304161000000079]],[[-55.787505999999951,53.394157000000064],[-55.793059999999969,53.391663000000108],[-55.801392000000021,53.392493999999942],[-55.949439999999981,53.430275000000108],[-55.958053999999947,53.434158000000082],[-55.971663999999919,53.445824000000016],[-55.978881999999942,53.454712000000029],[-55.979163999999912,53.459159999999997],[-55.976386999999988,53.463051000000064],[-55.958892999999932,53.472487999999998],[-55.945549000000028,53.478600000000142],[-55.931670999999994,53.483879000000115],[-55.923889000000031,53.485549999999989],[-55.916388999999981,53.485825000000034],[-55.883057000000008,53.486382000000106],[-55.878051999999968,53.486656000000039],[-55.811942999999928,53.483879000000115],[-55.757224999999949,53.468322999999998],[-55.740554999999915,53.462212000000079],[-55.729163999999969,53.455269000000101],[-55.729439000000013,53.450271999999984],[-55.787505999999951,53.394157000000064]],[[-128.94250499999998,53.317497000000003],[-129.11138899999997,53.315826000000129],[-129.12222299999996,53.318054000000132],[-129.12582399999991,53.322495000000004],[-129.13891599999994,53.339989000000116],[-129.14334099999996,53.349716000000058],[-129.14416499999993,53.354996000000142],[-129.14306599999986,53.366104000000121],[-129.14083899999997,53.37221500000004],[-129.13445999999993,53.383880999999974],[-129.08270299999998,53.429259999999999],[-129.05406199999999,53.453601999999989],[-129.05883799999998,53.487965000000145],[-129.051941,53.50499700000006],[-129.04779099999996,53.510551000000021],[-129.03778099999988,53.520271000000093],[-129.02194199999997,53.533882000000062],[-129.015289,53.536658999999986],[-128.99941999999987,53.53943600000008],[-128.988586,53.537216000000058],[-128.984711,53.533051000000057],[-128.98416099999997,53.52777100000003],[-128.98553499999997,53.523048000000017],[-128.98611499999998,53.513054000000011],[-128.98611499999998,53.502220000000136],[-128.9844359999999,53.491661000000079],[-128.97555499999987,53.472762999999986],[-128.95361300000002,53.446655000000021],[-128.94137599999993,53.434158000000082],[-128.93612699999994,53.430275000000108],[-128.90335099999993,53.39138000000014],[-128.90112299999998,53.386658000000068],[-128.90029900000002,53.381378000000041],[-128.91805999999997,53.331383000000017],[-128.92251599999997,53.325828999999999],[-128.92806999999999,53.321663000000115],[-128.94250499999998,53.317497000000003]],[[-79.709732000000031,53.508049000000142],[-79.720276000000013,53.507499999999993],[-79.730559999999969,53.508888000000127],[-79.746947999999918,53.513328999999999],[-79.764724999999942,53.523605000000089],[-79.769729999999925,53.527214000000129],[-79.773620999999991,53.531662000000097],[-79.77027899999996,53.536942000000124],[-79.761397999999929,53.546104000000071],[-79.755004999999983,53.543053000000043],[-79.70695499999988,53.515549000000021],[-79.703338999999914,53.511108000000092],[-79.709732000000031,53.508049000000142]],[[-129.93472299999985,53.484161000000029],[-129.94277999999991,53.482764999999972],[-129.95220899999998,53.483047000000056],[-130.01446499999997,53.501938000000052],[-130.02111799999994,53.505272000000048],[-129.98858599999988,53.528603000000089],[-129.94195599999995,53.551102000000071],[-129.93417399999998,53.552489999999977],[-129.92611699999992,53.551658999999972],[-129.89334099999991,53.545546999999999],[-129.88668799999999,53.542221000000097],[-129.88418599999994,53.537216000000058],[-129.88696300000004,53.534163999999976],[-129.894745,53.521934999999928],[-129.89889499999998,53.516388000000006],[-129.913635,53.501938000000052],[-129.92916899999994,53.488327000000083],[-129.93472299999985,53.484161000000029]],[[-129.87942499999991,53.392768999999987],[-129.72915599999993,53.215271000000087],[-129.73028599999992,53.204163000000108],[-129.73220799999996,53.198044000000095],[-129.74249299999997,53.178329000000076],[-129.75085399999989,53.166939000000013],[-129.75585899999993,53.162209000000018],[-129.76223799999997,53.158882000000062],[-129.86416600000001,53.153046000000018],[-129.91223100000002,53.156380000000013],[-129.93167099999999,53.158043000000077],[-129.93695099999997,53.161933999999974],[-130.08804299999991,53.289436000000137],[-130.11111500000004,53.328049000000021],[-130.16500899999988,53.358330000000137],[-130.20333899999997,53.378876000000105],[-130.24249299999997,53.384163000000058],[-130.261414,53.384720000000129],[-130.28695700000003,53.381378000000041],[-130.29638699999998,53.381660000000068],[-130.30584699999997,53.384163000000058],[-130.31640600000003,53.391937000000041],[-130.40194700000001,53.479988000000048],[-130.52722199999999,53.552216000000044],[-130.52999899999998,53.567771999999991],[-130.52944899999994,53.573326000000009],[-130.52224699999994,53.618599000000074],[-130.52029399999998,53.624709999999993],[-130.50836200000003,53.631935000000055],[-130.459991,53.637496999999996],[-130.450287,53.634995000000117],[-130.39584399999995,53.619438000000059],[-130.39111300000002,53.61693600000001],[-130.37554899999992,53.612212999999997],[-130.27529900000002,53.580276000000026],[-130.20220900000004,53.553878999999938],[-130.14083900000003,53.528877000000023],[-129.97720300000003,53.455550999999957],[-129.94415299999991,53.438598999999954],[-129.93222000000003,53.431380999999988],[-129.92056300000002,53.424164000000019],[-129.88418599999994,53.397217000000126],[-129.87942499999991,53.392768999999987]],[[-129.08639500000004,53.446097999999949],[-129.15750099999997,53.392768999999987],[-129.16778599999998,53.593880000000127],[-129.16583299999996,53.610825000000091],[-129.16305499999999,53.622489999999971],[-129.16082799999998,53.62860100000006],[-129.15307599999994,53.638603000000046],[-129.14724699999994,53.642494000000113],[-129.14083899999997,53.645546000000024],[-129.05249000000003,53.681106999999997],[-129.03860499999985,53.686377999999991],[-129.00805699999995,53.693321000000026],[-128.98330699999991,53.696655000000021],[-128.87554899999998,53.709434999999928],[-128.832764,53.712494000000106],[-128.82388299999997,53.713051000000007],[-128.81887800000004,53.709160000000111],[-128.82110599999999,53.703049000000021],[-128.82360799999998,53.700546000000088],[-128.87222299999991,53.661102000000142],[-128.97970599999996,53.58387799999997],[-128.98638900000003,53.580826000000059],[-128.99221799999992,53.576942000000031],[-129.07556199999993,53.514717000000132],[-129.08554100000003,53.50499700000006],[-129.08999599999999,53.499435000000062],[-129.09359699999993,53.492767000000129],[-129.09414699999996,53.487213000000111],[-129.093323,53.481934000000138],[-129.08889799999997,53.472487999999998],[-129.08526599999993,53.468047999999953],[-129.08306899999997,53.463326000000052],[-129.08221400000002,53.458328000000051],[-129.08276399999988,53.452492000000007],[-129.08639500000004,53.446097999999949]],[[-130.09109499999994,53.569443000000035],[-130.09832800000004,53.566940000000102],[-130.10775799999999,53.567497000000003],[-130.14862099999999,53.571938000000102],[-130.21887199999992,53.587212000000136],[-130.22833299999996,53.589431999999988],[-130.32916299999994,53.618049999999982],[-130.34249899999998,53.624709999999993],[-130.39028899999988,53.669991000000039],[-130.40335099999999,53.682495000000074],[-130.39111300000002,53.699432000000058],[-130.29888899999997,53.796944000000053],[-130.2836299999999,53.79833200000013],[-130.27194199999997,53.797775000000058],[-130.26168799999994,53.796386999999982],[-130.24664299999989,53.790276000000063],[-130.23330699999985,53.783607000000018],[-130.11944600000004,53.686653000000035],[-130.11721799999998,53.681938000000002],[-130.09109499999994,53.569443000000035]],[[-56.86721799999998,53.764998999999932],[-56.948607999999979,53.750000000000057],[-56.982773000000009,53.755271999999991],[-57.01139099999989,53.781105000000139],[-57.014450000000011,53.785553000000107],[-57.012222000000008,53.790276000000063],[-57.006667999999991,53.794716000000108],[-57,53.79833200000013],[-56.984726000000023,53.803879000000109],[-56.966942000000017,53.803879000000109],[-56.863060000000019,53.798050000000103],[-56.84444400000001,53.792496000000085],[-56.847518999999977,53.786644000000138],[-56.86721799999998,53.764998999999932]],[[-129.82611099999991,53.724158999999986],[-129.59722899999997,53.550270000000125],[-129.51611300000002,53.488045000000056],[-129.42471299999994,53.411377000000016],[-129.43472299999996,53.401656999999943],[-129.45165999999995,53.379158000000018],[-129.45498699999996,53.372490000000028],[-129.47415199999995,53.289162000000033],[-129.47387700000002,53.239990000000091],[-129.50668299999995,53.216660000000104],[-129.56390399999998,53.207497000000103],[-129.72582999999992,53.340546000000018],[-129.800568,53.380546999999979],[-129.80721999999997,53.384163000000058],[-129.82223499999986,53.401382000000126],[-129.85833700000001,53.456383000000073],[-129.87719699999997,53.50499700000006],[-129.87026999999995,53.518051000000128],[-129.86999500000002,53.534721000000047],[-129.87026999999995,53.545546999999999],[-129.88391100000001,53.579720000000009],[-129.91607699999992,53.601715000000013],[-129.9192349999999,53.604050000000143],[-129.92489599999999,53.605545000000006],[-129.93022199999996,53.605213000000106],[-129.939728,53.603549999999984],[-129.94305399999985,53.601215000000025],[-129.94605999999987,53.598216999999977],[-129.94555700000001,53.59521500000011],[-129.96139500000004,53.594711000000132],[-129.96554600000002,53.589156999999943],[-129.99941999999993,53.574714999999969],[-130.00750699999998,53.573326000000009],[-130.01611300000002,53.572769000000108],[-130.02694699999989,53.574714999999969],[-130.04028299999993,53.58138300000013],[-130.05166600000001,53.594437000000028],[-130.05639599999995,53.603882000000112],[-130.05584699999991,53.609436000000073],[-130.05166600000001,53.615273000000059],[-130.03085299999987,53.622765000000015],[-129.98288000000002,53.641605000000084],[-129.97805799999992,53.642436999999973],[-129.96240199999994,53.643436000000065],[-129.95622300000002,53.642769000000101],[-129.94955400000003,53.641434000000118],[-129.93505900000002,53.636272000000076],[-129.92938199999998,53.634765999999956],[-129.926895,53.636772000000065],[-129.92820699999993,53.639602999999966],[-129.93440199999992,53.644268000000125],[-129.94956999999994,53.646805000000086],[-129.95996100000002,53.649501999999927],[-129.96726999999993,53.650299000000018],[-129.98693799999995,53.658600000000092],[-130.01889,53.653046000000074],[-130.091949,53.677216000000101],[-130.15695199999999,53.721375000000023],[-130.283905,53.83277099999998],[-130.286407,53.837493999999992],[-130.27917499999995,53.856384000000105],[-130.27029400000004,53.875549000000092],[-130.26641799999999,53.881378000000097],[-130.25472999999994,53.889160000000061],[-130.20166,53.912491000000102],[-130.19445799999994,53.914711000000125],[-130.18640099999999,53.916100000000085],[-130.10916099999992,53.885551000000021],[-129.96444699999995,53.805824000000086],[-129.83139,53.728043000000014],[-129.82611099999991,53.724158999999986]],[[-79.864166000000012,53.906380000000013],[-79.873885999999914,53.90415999999999],[-79.906113000000005,53.913879000000009],[-79.918883999999991,53.920273000000066],[-79.922775000000001,53.924713000000054],[-79.925277999999878,53.929717999999923],[-79.926392000000021,53.935265000000072],[-79.915008999999998,53.933876000000055],[-79.867492999999968,53.919715999999994],[-79.862212999999997,53.915825000000098],[-79.860001000000011,53.910820000000058],[-79.864166000000012,53.906380000000013]],[[-130.14974999999998,53.989159000000086],[-130.16805999999997,53.988884000000098],[-130.179169,53.990829000000076],[-130.19415300000003,53.997214999999983],[-130.20306400000004,54.005271999999934],[-130.21499600000004,54.029160000000104],[-130.21694899999994,54.039436000000137],[-130.21640000000002,54.044998000000078],[-130.21304299999997,54.051659000000029],[-130.20278899999994,54.069160000000011],[-130.19360399999999,54.079720000000123],[-130.18640099999999,54.081940000000145],[-130.17834500000004,54.083328000000051],[-130.16861,54.083054000000118],[-130.15917999999994,54.080551000000128],[-130.15557899999999,54.075554000000011],[-130.14889500000004,54.072220000000016],[-130.14361599999995,54.068328999999949],[-130.13973999999996,54.064156000000025],[-130.13247699999999,54.049995000000024],[-130.12249799999995,54.024993999999992],[-130.1213679999999,54.019989000000123],[-130.12249799999995,54.0086060000001],[-130.12441999999999,54.002495000000067],[-130.13528399999996,53.993607000000054],[-130.14974999999998,53.989159000000086]],[[-130.25918599999994,54.004715000000033],[-130.237213,53.984161000000086],[-130.23330699999985,53.979987999999935],[-130.23083499999996,53.975266000000033],[-130.228882,53.964714000000072],[-130.22998000000001,53.953606000000093],[-130.23330699999985,53.946938000000102],[-130.24249299999997,53.936377999999991],[-130.338593,53.839157000000114],[-130.34445199999999,53.835266000000047],[-130.35220299999997,53.833878000000141],[-130.37860099999995,53.831939999999975],[-130.38723800000002,53.831383000000073],[-130.45016499999997,53.864326000000005],[-130.45433000000003,53.866325000000018],[-130.45849599999997,53.882159999999942],[-130.41278099999994,53.958602999999982],[-130.40777600000001,53.963325999999995],[-130.400848,53.965828000000045],[-130.38165300000003,53.965271000000143],[-130.35055499999993,53.961661999999933],[-130.341095,53.961380000000077],[-130.33306899999991,53.962769000000094],[-130.32748400000003,53.966934000000094],[-130.34359699999987,53.984993000000031],[-130.35497999999995,53.993324000000086],[-130.42944299999994,53.983047000000113],[-130.4375,53.981659000000036],[-130.44387800000004,53.978600000000029],[-130.452789,53.968048000000067],[-130.47517400000004,53.944213999999931],[-130.47550999999993,53.940712000000076],[-130.47917199999995,53.926379999999995],[-130.48266599999988,53.915379000000144],[-130.48516799999993,53.912048000000027],[-130.4895019999999,53.910549000000003],[-130.49465900000001,53.910217000000046],[-130.500854,53.910881000000131],[-130.524338,53.914711000000125],[-130.54724099999999,53.903877000000023],[-130.55248999999998,53.907767999999919],[-130.55639599999995,53.911934000000031],[-130.56527699999998,53.925827000000027],[-130.57748400000003,53.93721000000005],[-130.591949,53.949158000000125],[-130.59722899999997,53.953048999999965],[-130.60278299999993,53.956657000000064],[-130.61080900000002,53.959717000000126],[-130.62191799999999,53.961661999999933],[-130.65805099999989,53.964439000000027],[-130.66696200000001,53.963882000000126],[-130.67251599999997,53.959991000000059],[-130.67666600000001,53.954162999999994],[-130.69528200000002,53.91944100000012],[-130.698059,53.914154000000053],[-130.69555700000001,53.909431000000041],[-130.68499799999989,53.901932000000045],[-130.66305499999993,53.892220000000123],[-130.64666699999998,53.886657999999954],[-130.633331,53.879990000000021],[-130.62777700000004,53.876099000000124],[-130.62249799999995,53.872215000000097],[-130.6177669999999,53.862770000000012],[-130.61804199999995,53.857216000000051],[-130.62136799999996,53.85054800000006],[-130.62554899999998,53.844711000000075],[-130.6305539999999,53.839989000000003],[-130.64251699999994,53.83277099999998],[-130.65139799999997,53.834435000000042],[-130.69583099999994,53.844436999999971],[-130.70639,53.851936000000137],[-130.71026599999999,53.856384000000105],[-130.71276899999998,53.861107000000118],[-130.72305299999999,53.917213000000004],[-130.72277799999995,53.922768000000076],[-130.7202759999999,53.93471500000004],[-130.71777299999991,53.939986999999974],[-130.667236,53.986938000000009],[-130.66168200000004,53.990829000000076],[-130.59527600000001,54.026382000000069],[-130.523346,54.059989999999914],[-130.41113300000001,54.100830000000087],[-130.40249600000004,54.101386999999988],[-130.37081899999998,54.087212000000079],[-130.33612099999999,54.06749700000006],[-130.30499299999991,54.045273000000122],[-130.25918599999994,54.004715000000033]],[[-58.518332999999927,54.051659000000029],[-58.526664999999923,54.050545000000056],[-58.536666999999966,54.05082700000014],[-58.545554999999979,54.052216000000101],[-58.556389000000024,54.054710000000057],[-58.56138599999997,54.058044000000052],[-58.56138599999997,54.063880999999981],[-58.55777699999993,54.069160000000011],[-58.552779999999927,54.074440000000038],[-58.53556100000003,54.086654999999951],[-58.503058999999951,54.103050000000053],[-58.468605000000025,54.114716000000044],[-58.450554000000011,54.11721],[-58.437774999999988,54.115547000000049],[-58.378608999999926,54.106659000000093],[-58.373885999999914,54.104164000000083],[-58.378052000000025,54.099998000000141],[-58.407172999999943,54.090561000000037],[-58.426108999999997,54.070831000000055],[-58.43250299999994,54.067214999999976],[-58.440551999999968,54.064713000000097],[-58.456389999999999,54.061661000000015],[-58.518332999999927,54.051659000000029]],[[-132.808044,54.120270000000062],[-132.78890999999999,54.119987000000094],[-132.77999899999998,54.120827000000133],[-132.75723300000004,54.126380999999924],[-132.73580899999996,54.133881000000031],[-132.70306399999993,54.139160000000004],[-132.65835600000003,54.142220000000066],[-132.6480709999999,54.141380000000026],[-132.63946499999997,54.138603000000103],[-132.57528699999995,54.115547000000049],[-132.56973300000004,54.111938000000066],[-132.55777,54.088043000000084],[-132.558899,54.048332000000073],[-132.56054699999999,54.04222100000004],[-132.56664999999992,54.029160000000104],[-132.57583599999998,54.019157000000007],[-132.58139,54.014999000000103],[-132.59387199999998,54.0086060000001],[-132.62554899999992,54.002220000000023],[-132.63275099999993,53.999718000000144],[-132.66418499999997,53.98333000000008],[-132.67999299999997,53.958885000000066],[-132.68167099999999,53.952773999999977],[-132.68029799999999,53.947769000000108],[-132.65890499999989,53.939430000000073],[-132.57223499999992,53.976653999999996],[-132.55584699999997,53.989159000000086],[-132.55029299999995,53.993880999999988],[-132.5477909999999,53.999161000000072],[-132.54888899999997,54.004166000000112],[-132.55306999999999,54.008331000000112],[-132.54833999999994,54.02693899999997],[-132.54528800000003,54.033607000000131],[-132.54055799999998,54.038329999999974],[-132.41665599999999,54.096100000000035],[-132.40972899999997,54.098602000000085],[-132.40167199999985,54.099998000000141],[-132.30111699999998,54.111664000000133],[-132.29055800000003,54.110549999999989],[-132.28582799999998,54.107773000000066],[-132.25280799999996,54.08526599999999],[-132.22833300000002,54.065826000000015],[-132.15029899999996,53.992767000000015],[-132.142517,53.978600000000029],[-132.11111499999998,53.878326000000015],[-132.11721799999992,53.864998000000014],[-132.125,53.853324999999984],[-132.13445999999988,53.843605000000082],[-132.22500600000001,53.780273000000022],[-132.23111,53.776939000000027],[-132.24527,53.772217000000126],[-132.47442599999999,53.707496999999989],[-132.50500499999998,53.700271999999927],[-132.52084399999995,53.697212000000093],[-132.53805499999999,53.695823999999959],[-132.55721999999997,53.695823999999959],[-132.56832899999995,53.697768999999994],[-132.58889799999992,53.699715000000026],[-132.60693399999991,53.698874999999987],[-132.62441999999993,53.697487000000081],[-132.64724699999994,53.69193300000012],[-132.65890499999989,53.684433000000013],[-132.66332999999997,53.679436000000123],[-132.665009,53.673325000000034],[-132.46362299999993,53.612770000000069],[-132.41805999999997,53.606102000000078],[-132.32138099999992,53.663605000000132],[-132.31527699999998,53.666939000000127],[-132.308044,53.669158999999922],[-132.29943799999995,53.669991000000039],[-132.290009,53.669716000000051],[-132.27890000000002,53.6680530000001],[-132.24554399999994,53.662490999999989],[-132.15640300000001,53.716385000000002],[-132.15249600000004,53.812492000000077],[-132.08450299999998,53.872738000000027],[-132.106201,53.917881000000023],[-132.126373,53.979431000000034],[-132.07250999999997,54.022766000000047],[-132.01501499999989,54.021935000000042],[-131.98803699999996,54.023048000000074],[-131.97109999999998,54.025269000000037],[-131.87499999999994,54.052773000000002],[-131.86053500000003,54.057495000000074],[-131.81777999999997,54.071937999999989],[-131.75473,54.094993999999986],[-131.72778299999999,54.106102000000021],[-131.71499599999999,54.112495000000138],[-131.70361299999996,54.120543999999995],[-131.67193599999996,54.146660000000054],[-131.66305499999999,54.152214000000072],[-131.66000399999996,54.131104000000107],[-131.66665599999999,54.079436999999984],[-131.67279099999996,54.044158999999979],[-131.67971799999998,54.019714000000135],[-131.70498699999996,53.966934000000094],[-131.72082499999999,53.943878000000041],[-131.73889199999996,53.923324999999977],[-131.78640699999994,53.874435000000119],[-131.79666099999997,53.865273000000002],[-131.82971199999992,53.841102999999976],[-131.85333300000002,53.816382999999973],[-131.86886600000003,53.79332700000009],[-131.87222299999996,53.786942000000067],[-131.93331899999998,53.615273000000059],[-131.93499800000001,53.609161000000086],[-131.94000199999988,53.519714000000022],[-131.93917799999991,53.508888000000127],[-131.91778599999998,53.399162000000103],[-131.90863000000002,53.357498000000021],[-131.95916699999992,53.276382000000069],[-131.96832299999988,53.266388000000063],[-131.98220799999996,53.251663000000121],[-131.988586,53.248604000000114],[-132.00585899999993,53.247214999999926],[-132.036407,53.25],[-132.0561219999999,53.253326000000015],[-132.08331299999992,53.253052000000082],[-132.17138699999998,53.23832700000014],[-132.19500700000003,53.233879000000002],[-132.21054100000003,53.230545000000006],[-132.21749899999998,53.228324999999984],[-132.27279699999997,53.210274000000027],[-132.27029399999998,53.205551000000014],[-132.26611300000002,53.20138500000013],[-132.25558499999994,53.193877999999984],[-132.23776199999998,53.188881000000094],[-132.22997999999995,53.190544000000045],[-132.21581999999995,53.195267000000001],[-132.20361299999996,53.201659999999947],[-132.19415299999991,53.201659999999947],[-132.14501999999999,53.198325999999952],[-132.13391100000001,53.196655000000078],[-132.12441999999987,53.194153000000028],[-132.12191799999999,53.189430000000016],[-132.158905,53.169990999999982],[-132.18695099999997,53.160545000000013],[-132.19473300000004,53.158882000000062],[-132.390289,53.142769000000044],[-132.40835599999997,53.142220000000066],[-132.44665499999991,53.143607999999972],[-132.45748900000001,53.145271000000093],[-132.506958,53.161102000000085],[-132.53668199999998,53.178879000000109],[-132.56527700000004,53.212769000000037],[-132.57638499999996,53.232208000000128],[-132.58581500000003,53.240273000000059],[-132.59664899999996,53.247489999999971],[-132.61471599999993,53.252777000000094],[-132.64529399999992,53.255553999999961],[-132.66473400000001,53.256386000000077],[-132.68362400000001,53.256660000000011],[-132.67584199999999,53.281661999999926],[-132.61944599999998,53.300270000000012],[-132.55221599999999,53.308043999999995],[-132.54446399999995,53.309433000000013],[-132.53973400000001,53.314438000000052],[-132.53695700000003,53.321106000000043],[-132.53918499999997,53.326385000000016],[-132.54333499999996,53.330551000000071],[-132.54998799999987,53.333878000000027],[-132.55835000000002,53.336655000000121],[-132.56860399999999,53.337494000000106],[-132.67001300000004,53.326942000000088],[-132.72000100000002,53.320830999999998],[-132.73388699999998,53.337212000000022],[-132.709991,53.370270000000005],[-132.70443699999993,53.374435000000005],[-132.69750999999991,53.376937999999996],[-132.52076699999998,53.340160000000026],[-132.51744099999996,53.337990000000104],[-132.41641200000004,53.2972180000001],[-132.41055299999994,53.294715999999994],[-132.406677,53.300545],[-132.40362500000003,53.30721299999999],[-132.40057399999995,53.319443000000092],[-132.40029900000002,53.330826000000116],[-132.40280200000001,53.335548000000017],[-132.406677,53.339714000000072],[-132.41223099999996,53.343604999999968],[-132.52084399999995,53.412209000000132],[-132.54138199999994,53.416382000000112],[-132.73580899999996,53.453323000000012],[-132.85775799999999,53.461104999999975],[-132.86749299999997,53.463608000000136],[-132.87277199999988,53.467209000000025],[-132.97250399999996,53.555824000000143],[-132.991669,53.583054000000004],[-132.9941409999999,53.587769000000037],[-132.98889199999991,53.591934000000037],[-132.96139500000004,53.600273000000072],[-132.95361300000002,53.601936000000023],[-132.94415300000003,53.601936000000023],[-132.93444799999986,53.599716000000001],[-132.91805999999997,53.588600000000042],[-132.90972899999997,53.585823000000005],[-132.89862099999999,53.584160000000054],[-132.89083900000003,53.585548000000131],[-132.88445999999999,53.588882000000126],[-132.88082900000001,53.594711000000132],[-132.8805539999999,53.600273000000072],[-132.88192700000002,53.605552999999986],[-132.8861389999999,53.609717999999987],[-132.92028800000003,53.637214999999912],[-132.935272,53.648604999999975],[-132.95056199999999,53.654709000000025],[-133.00778200000002,53.676383999999985],[-132.95361300000002,53.682770000000119],[-132.95443699999998,53.702774000000034],[-132.9844359999999,53.742767000000072],[-133.02471899999995,53.751389000000074],[-133.03362999999996,53.75277699999998],[-133.09387200000003,53.775551000000121],[-133.10082999999997,53.778603000000032],[-133.10638399999993,53.782494000000099],[-133.10916099999997,53.786942000000067],[-133.13751199999996,53.87499200000002],[-133.13891599999994,53.880272000000048],[-133.14001500000001,53.908043000000134],[-133.13833599999992,53.914154000000053],[-133.13391100000001,53.919159000000093],[-133.11639399999996,53.934158000000139],[-133.09527599999996,53.949432000000058],[-133.09081999999995,53.954162999999994],[-133.04110700000001,54.031661999999983],[-133.03973400000001,54.037773000000072],[-133.04083299999996,54.0430530000001],[-133.05862399999995,54.076102999999989],[-133.07916299999999,54.09777100000008],[-133.08193999999992,54.102492999999981],[-133.07165499999996,54.168883999999991],[-133.06722999999988,54.173881999999992],[-133.04083299999996,54.176102000000014],[-133.03112799999991,54.176102000000014],[-132.94027700000004,54.161377000000073],[-132.93029799999994,54.15915700000005],[-132.92001299999993,54.15248900000006],[-132.90335099999993,54.135826000000009],[-132.82748400000003,54.122490000000084],[-132.808044,54.120270000000062]],[[-130.19555699999995,54.118050000000039],[-130.21166999999997,54.115273000000116],[-130.22109999999998,54.115547000000049],[-130.23220799999996,54.117493000000138],[-130.24581899999993,54.124161000000129],[-130.25112899999999,54.128044000000045],[-130.25500499999998,54.132209999999986],[-130.261414,54.141380000000026],[-130.26364099999995,54.146102999999982],[-130.26473999999996,54.151381999999955],[-130.26306199999993,54.16832700000009],[-130.2611389999999,54.174164000000076],[-130.25778199999996,54.180824000000086],[-130.2528079999999,54.185547000000099],[-130.23971599999999,54.189712999999983],[-130.23083499999996,54.190269000000001],[-130.20944199999985,54.187209999999993],[-130.20999099999989,54.18360100000001],[-130.20166,54.183052000000032],[-130.19223,54.180549999999982],[-130.17861900000003,54.173607000000004],[-130.16113300000001,54.16276600000009],[-130.15585299999992,54.158882000000062],[-130.15194699999995,54.154434000000094],[-130.15112299999998,54.149436999999978],[-130.153076,54.143326000000059],[-130.158051,54.138328999999999],[-130.169464,54.130547000000035],[-130.19555699999995,54.118050000000039]],[[-79.469727000000034,54.167496000000085],[-79.477218999999877,54.165825000000041],[-79.483611999999994,54.169159000000036],[-79.485001000000011,54.174712999999997],[-79.481109999999944,54.187492000000077],[-79.475554999999929,54.191376000000105],[-79.43472300000002,54.200272000000041],[-79.413054999999986,54.191657999999961],[-79.418610000000001,54.187209999999993],[-79.426392000000021,54.183052000000032],[-79.469727000000034,54.167496000000085]],[[-130.64862099999999,54.114441000000056],[-130.67138699999992,54.107773000000066],[-130.69055199999997,54.108330000000137],[-130.69888299999997,54.111107000000061],[-130.77417000000003,54.142220000000066],[-130.78500399999996,54.149994000000049],[-130.79806500000001,54.162208999999962],[-130.800568,54.166939000000013],[-130.79861500000004,54.173050000000103],[-130.78167699999995,54.211662000000103],[-130.77444500000001,54.213882000000069],[-130.76391599999999,54.212769000000037],[-130.75613399999992,54.209159999999997],[-130.74636799999996,54.206657000000064],[-130.72582999999997,54.196655000000078],[-130.64889500000004,54.149719000000061],[-130.64501999999993,54.145271000000093],[-130.64001500000001,54.135826000000009],[-130.63919099999993,54.130820999999969],[-130.63946499999997,54.124992000000134],[-130.64279199999999,54.118599000000017],[-130.64862099999999,54.114441000000056]],[[-130.35555999999991,54.257773999999984],[-130.36663799999991,54.241104000000007],[-130.375,54.244155999999975],[-130.38861099999997,54.250832000000059],[-130.40057400000001,54.258048999999971],[-130.45556599999998,54.295830000000137],[-130.46639999999996,54.303322000000094],[-130.46722399999993,54.308601000000067],[-130.44750999999991,54.325828999999999],[-130.44000199999999,54.328049000000021],[-130.43112199999996,54.328606000000093],[-130.41778599999992,54.326385000000016],[-130.39196799999996,54.312492000000134],[-130.38528400000001,54.308884000000035],[-130.37997399999995,54.305267000000072],[-130.37582399999997,54.300827000000083],[-130.35470599999996,54.269157000000007],[-130.35220299999997,54.264442000000145],[-130.35555999999991,54.257773999999984]],[[-130.26641799999999,54.260551000000078],[-130.32528699999995,54.243050000000096],[-130.33416699999998,54.244713000000047],[-130.33804299999997,54.248878000000047],[-130.355255,54.282211000000075],[-130.35415599999999,54.293326999999977],[-130.350281,54.305550000000039],[-130.34445199999999,54.30971500000004],[-130.29000899999994,54.332214000000022],[-130.27279699999991,54.329720000000066],[-130.26751699999994,54.325828999999999],[-130.25973499999998,54.317497000000003],[-130.25250199999999,54.303047000000049],[-130.25058000000001,54.292770000000075],[-130.25167799999991,54.281380000000013],[-130.255585,54.269440000000145],[-130.25973499999998,54.263610999999912],[-130.26641799999999,54.260551000000078]],[[-130.70416299999994,54.356659000000036],[-130.745544,54.354713000000118],[-130.754456,54.356102000000135],[-130.76391599999999,54.364159000000086],[-130.76724200000001,54.374161000000072],[-130.76834099999991,54.379433000000006],[-130.76779199999987,54.384995000000117],[-130.76446499999992,54.389434999999992],[-130.75805699999995,54.392494000000113],[-130.72943099999986,54.402771000000087],[-130.72222899999991,54.404991000000109],[-130.71417199999996,54.406380000000127],[-130.699432,54.40665400000006],[-130.68890399999998,54.393326000000059],[-130.68331899999998,54.373047000000099],[-130.685272,54.36693600000001],[-130.6894529999999,54.361381999999992],[-130.69610599999999,54.358047000000113],[-130.70416299999994,54.356659000000036]],[[-57.324721999999952,54.498877999999991],[-57.342498999999918,54.498604000000057],[-57.351668999999958,54.500275000000101],[-57.356666999999959,54.502220000000079],[-57.362777999999992,54.506104000000107],[-57.365004999999996,54.511664999999994],[-57.365554999999972,54.516387999999949],[-57.362502999999947,54.527489000000116],[-57.359443999999996,54.533332999999914],[-57.333327999999995,54.565543999999989],[-57.327782000000013,54.570831000000112],[-57.321114000000023,54.574997000000053],[-57.267220000000009,54.585548000000131],[-57.265556000000004,54.580551000000014],[-57.269722000000002,54.574997000000053],[-57.272728000000029,54.572495000000117],[-57.239440999999999,54.522217000000012],[-57.240279999999984,54.517769000000044],[-57.255004999999926,54.513328999999999],[-57.293059999999912,54.503609000000097],[-57.307776999999987,54.500549000000035],[-57.324721999999952,54.498877999999991]],[[-130.95166,54.454711999999972],[-130.95944199999997,54.453323000000012],[-130.96499600000004,54.456940000000145],[-130.96749899999992,54.461662000000047],[-130.96609499999994,54.510826000000009],[-130.96472199999994,54.527771000000143],[-130.96112099999999,54.539992999999981],[-130.93057299999998,54.61471599999993],[-130.92556799999994,54.619438000000059],[-130.88891599999994,54.628876000000048],[-130.88137800000004,54.629158000000132],[-130.754456,54.62943300000012],[-130.74777199999994,54.626099000000124],[-130.74664299999995,54.62082700000002],[-130.74694799999997,54.615273000000059],[-130.7441409999999,54.60166200000009],[-130.745544,54.584717000000126],[-130.74914599999994,54.572769000000051],[-130.75250199999999,54.566101000000117],[-130.75613399999992,54.559433000000126],[-130.76083399999999,54.554710000000114],[-130.76666299999999,54.550545000000113],[-130.84915199999995,54.496941000000106],[-130.85583500000001,54.493881000000044],[-130.93695099999997,54.459434999999985],[-130.95166,54.454711999999972]],[[-79.667220999999927,54.76388500000013],[-79.726944000000003,54.752495000000067],[-79.710281000000009,54.76388500000013],[-79.703613000000018,54.766937000000041],[-79.611114999999984,54.79332700000009],[-79.587218999999948,54.799164000000019],[-79.624435000000005,54.779716000000121],[-79.631103999999993,54.776657000000114],[-79.637786999999946,54.773605000000032],[-79.659728999999913,54.766106000000036],[-79.667220999999927,54.76388500000013]],[[-130.26834099999991,54.714995999999985],[-130.370544,54.692214999999976],[-130.37887599999988,54.695267000000058],[-130.37609899999995,54.700546000000031],[-130.37109399999991,54.705269000000044],[-130.32693499999999,54.739716000000044],[-130.32110599999987,54.743881000000044],[-130.22415199999989,54.803046999999992],[-130.21749899999998,54.806380999999988],[-130.20944199999985,54.807770000000119],[-130.20694000000003,54.803046999999992],[-130.19860800000004,54.783607000000018],[-130.20056199999999,54.77748900000006],[-130.20971699999996,54.760551000000135],[-130.21362299999993,54.748329000000012],[-130.21722399999999,54.741661000000022],[-130.22222899999986,54.736938000000009],[-130.23388699999998,54.728874000000019],[-130.2611389999999,54.717209000000139],[-130.26834099999991,54.714995999999985]],[[-130.51834099999996,54.70249200000012],[-130.52722199999999,54.701935000000049],[-130.5386049999999,54.703880000000026],[-130.56750499999993,54.716934000000094],[-130.57443199999994,54.72026800000009],[-130.58526599999999,54.727767999999969],[-130.60803199999992,54.748329000000012],[-130.61053499999991,54.753052000000139],[-130.61166399999996,54.758049000000085],[-130.60665900000004,54.763054000000125],[-130.48803699999991,54.807495000000131],[-130.47998000000001,54.808883999999921],[-130.46945199999999,54.807770000000119],[-130.458618,54.800270000000069],[-130.44665499999996,54.787216000000001],[-130.44027699999992,54.778327999999988],[-130.43777499999993,54.773605000000032],[-130.43582199999997,54.763329000000113],[-130.43972799999989,54.75110600000005],[-130.45388799999989,54.719154000000117],[-130.45748900000001,54.712769000000094],[-130.46331799999996,54.708603000000039],[-130.51834099999996,54.70249200000012]],[[-57.940833999999938,54.911933999999974],[-57.985832000000016,54.870826999999963],[-57.98860899999994,54.86721],[-57.991942999999935,54.833878000000084],[-57.983886999999868,54.802215999999987],[-57.980277999999942,54.798607000000118],[-57.971663999999976,54.798050000000046],[-57.965553,54.799437999999952],[-57.958892999999989,54.803046999999992],[-57.955558999999994,54.805824000000086],[-57.923888999999974,54.823326000000122],[-57.871666000000005,54.83166499999993],[-57.864723000000026,54.832214000000079],[-57.859726000000023,54.83027600000014],[-57.843613000000005,54.820549000000028],[-57.841110000000015,54.816939999999988],[-57.841667000000029,54.81249200000002],[-57.848334999999963,54.806938000000059],[-57.875,54.79332700000009],[-57.881942999999922,54.790549999999996],[-58.022774000000027,54.755554000000018],[-58.031386999999995,54.753882999999973],[-58.040000999999961,54.75277699999998],[-58.04999499999991,54.753052000000139],[-58.119995000000017,54.755554000000018],[-58.139167999999927,54.757216999999969],[-58.15943900000002,54.76138300000008],[-58.174171000000001,54.767768999999987],[-58.176948999999979,54.770828000000108],[-58.172378999999978,54.797314000000085],[-58.184173999999985,54.808471999999938],[-58.219718999999941,54.825829000000056],[-58.222771000000023,54.83027600000014],[-58.224715999999944,54.83526599999999],[-58.225554999999986,54.850273000000016],[-58.225554999999986,54.862770000000012],[-58.224998000000028,54.866936000000067],[-58.218886999999938,54.875267000000008],[-58.215836000000024,54.878044000000102],[-58.209723999999937,54.877487000000031],[-58.049445999999932,54.893326000000116],[-57.967773000000022,54.919159000000036],[-57.942771999999991,54.924995000000138],[-57.94027699999998,54.923607000000004],[-57.938605999999993,54.918602000000135],[-57.940833999999938,54.911933999999974]],[[-79.125823999999909,54.897217000000012],[-79.134445000000028,54.895827999999995],[-79.235000999999954,54.896660000000111],[-79.515288999999939,54.840546000000074],[-79.660277999999948,54.805549999999926],[-79.763625999999988,54.771660000000054],[-79.774170000000026,54.773048000000131],[-79.776947000000007,54.778046000000131],[-79.773330999999985,54.783333000000084],[-79.768889999999942,54.787773000000072],[-79.725554999999986,54.818886000000077],[-79.714721999999995,54.826385000000073],[-79.686934999999949,54.838326000000052],[-79.656661999999983,54.846656999999993],[-79.467223999999931,54.888328999999999],[-79.458617999999944,54.88999200000012],[-79.430557000000022,54.892769000000044],[-79.419448999999872,54.892769000000044],[-79.339446999999893,54.896941999999967],[-79.164169000000015,54.925552000000039],[-79.053878999999995,54.946655000000078],[-79.041945999999882,54.945824000000073],[-79.015014999999948,54.938324000000023],[-79.015014999999948,54.932213000000104],[-79.027221999999995,54.925270000000125],[-79.05749499999996,54.917770000000075],[-79.102782999999988,54.903877000000023],[-79.125823999999909,54.897217000000012]],[[-58.675277999999992,54.914153999999996],[-58.68360899999999,54.913048000000003],[-58.752501999999993,54.915825000000041],[-58.757225000000005,54.916100000000085],[-58.760558999999887,54.920546999999942],[-58.759170999999981,54.926102000000071],[-58.754723000000013,54.932495000000017],[-58.701667999999927,54.999161000000015],[-58.697495000000004,55.003326000000015],[-58.691108999999983,55.006942999999978],[-58.684722999999906,55.008331000000055],[-58.676391999999908,55.009437999999989],[-58.660277999999948,55.0086060000001],[-58.653609999999901,55.005554000000018],[-58.652778999999953,55.00110600000005],[-58.657500999999968,54.996100999999953],[-58.662772999999902,54.992218000000037],[-58.658332999999971,54.962494000000049],[-58.656661999999983,54.94221500000009],[-58.658607000000018,54.932495000000017],[-58.663054999999986,54.922493000000031],[-58.668892000000028,54.917770000000075],[-58.675277999999992,54.914153999999996]],[[-130.38528400000001,54.769988999999953],[-130.39916999999997,54.764717000000019],[-130.40917999999999,54.767212000000086],[-130.41445899999997,54.770828000000108],[-130.45556599999998,54.813324000000136],[-130.45944199999997,54.81749700000006],[-130.46194499999996,54.822220000000073],[-130.459991,54.828330999999991],[-130.41833499999996,54.853324999999927],[-130.38528400000001,54.868881000000101],[-130.34304800000001,54.894996999999989],[-130.27029400000004,54.950272000000041],[-130.25,54.969711000000132],[-130.22778299999993,54.997214999999983],[-130.2133179999999,55.012496999999996],[-130.20083599999992,55.019714000000079],[-130.18499800000001,55.023323000000119],[-130.17529300000001,55.023048000000074],[-130.16833500000001,55.019714000000079],[-130.16500899999988,55.014160000000118],[-130.16027799999995,55.004439999999988],[-130.146973,54.975822000000051],[-130.14529399999998,54.965271000000143],[-130.14556899999997,54.959717000000126],[-130.14611799999994,54.954163000000108],[-130.14974999999998,54.947487000000024],[-130.16332999999997,54.931381000000044],[-130.27029400000004,54.830826000000002],[-130.38528400000001,54.769988999999953]],[[-82.964721999999995,55.263611000000083],[-82.970000999999968,55.259720000000016],[-83.014450000000011,55.269714000000022],[-83.031951999999876,55.273880000000133],[-83.035278000000005,55.278877000000023],[-83.027495999999928,55.281380000000013],[-83.016953000000001,55.281662000000097],[-82.990279999999984,55.280548000000124],[-82.980835000000013,55.278877000000023],[-82.963332999999977,55.273880000000133],[-82.96166999999997,55.269157000000121],[-82.964721999999995,55.263611000000083]],[[-77.592772999999909,55.435265000000129],[-77.633330999999998,55.424438000000123],[-77.644164999999873,55.425827000000083],[-77.449431999999945,55.533882000000062],[-77.336120999999991,55.604439000000127],[-77.323058999999944,55.610550000000046],[-77.221389999999928,55.653602999999919],[-77.213897999999915,55.65526600000004],[-77.205276000000026,55.65387700000008],[-77.199996999999939,55.65026899999998],[-77.201110999999912,55.64415699999995],[-77.210555999999997,55.639717000000132],[-77.252227999999945,55.618050000000096],[-77.389174999999966,55.546386999999982],[-77.452224999999942,55.512772000000098],[-77.474166999999966,55.498046999999929],[-77.484160999999915,55.489158999999972],[-77.49499499999996,55.481377000000009],[-77.500564999999938,55.478325000000098],[-77.55221599999993,55.453049000000021],[-77.592772999999909,55.435265000000129]],[[-60.970832999999914,55.869437999999946],[-60.98833499999995,55.86721],[-60.998336999999992,55.867767000000072],[-61.008895999999936,55.869156000000089],[-61.016944999999964,55.873046999999985],[-61.051666000000012,55.901100000000099],[-61.056664000000012,55.905823000000055],[-61.059165999999948,55.909988000000055],[-61.070557000000008,55.938599000000011],[-61.065551999999968,55.944153000000028],[-61.047782999999981,55.945541000000105],[-61.036948999999993,55.9447100000001],[-60.96805599999999,55.936652999999922],[-60.948607999999979,55.930549999999982],[-60.908332999999971,55.898330999999985],[-60.906386999999995,55.893326000000116],[-60.911109999999951,55.887772000000098],[-60.917503000000011,55.884163000000115],[-60.970832999999914,55.869437999999946]],[[-60.858611999999994,55.864716000000044],[-60.876105999999993,55.863883999999985],[-60.892501999999979,55.864441000000056],[-60.898612999999955,55.86721],[-60.902221999999995,55.871376000000112],[-60.900551000000007,55.876380999999981],[-60.873610999999869,55.94360400000005],[-60.869995000000017,55.949432000000002],[-60.86500499999994,55.95277400000009],[-60.851944000000003,55.95526899999993],[-60.748336999999935,55.944153000000028],[-60.74138599999992,55.942764000000011],[-60.742500000000007,55.939156000000082],[-60.747498000000007,55.931663999999955],[-60.691939999999875,55.925270000000125],[-60.68638599999997,55.92193600000013],[-60.688048999999978,55.917213000000118],[-60.692771999999991,55.911658999999986],[-60.705001999999979,55.903046000000018],[-60.718604999999911,55.896385000000066],[-60.756393000000003,55.880272000000048],[-60.778610000000015,55.876099000000067],[-60.840836000000024,55.86610399999995],[-60.858611999999994,55.864716000000044]],[[-79.123046999999929,55.789993000000038],[-79.130553999999961,55.788887000000045],[-79.135559000000001,55.789162000000033],[-79.137786999999946,55.790549999999939],[-79.136123999999938,55.794158999999979],[-79.131667999999934,55.799995000000024],[-79.126099000000011,55.803879000000052],[-79.121932999999956,55.808601000000124],[-79.108886999999925,55.823883000000137],[-79.102782999999988,55.833054000000118],[-79.039168999999958,55.952492000000063],[-79.03083799999996,55.968596999999932],[-79.027221999999995,55.976935999999966],[-79.022232000000031,55.996384000000091],[-79.009353999999973,56.063614000000086],[-78.960007000000019,56.083054000000061],[-78.957503999999972,56.083602999999982],[-78.952788999999939,56.080826000000116],[-78.949157999999898,56.071663000000115],[-78.939712999999983,56.02526899999998],[-79.054442999999935,55.865547000000049],[-79.089995999999985,55.816939999999988],[-79.104445999999996,55.80082700000014],[-79.116652999999985,55.792496000000028],[-79.123046999999929,55.789993000000038]],[[-60.943329000000006,56.006660000000011],[-61.040557999999976,56.005272000000105],[-61.0819469999999,56.011382999999967],[-61.141387999999949,56.020545999999968],[-61.17111199999988,56.028602999999976],[-61.18721800000003,56.033882000000119],[-61.215836000000024,56.046387000000038],[-61.220832999999971,56.050827000000083],[-61.228333000000021,56.06332400000008],[-61.232772999999952,56.072769000000108],[-61.233611999999994,56.085548000000017],[-61.232772999999952,56.091103000000089],[-61.226944000000003,56.098045000000013],[-61.217498999999975,56.100547999999947],[-61.211670000000026,56.101387000000102],[-61.08916499999998,56.169991000000095],[-61.059165999999948,56.159714000000122],[-61.045836999999892,56.153877000000136],[-60.944442999999978,56.094993999999986],[-60.943610999999976,56.090271000000143],[-60.934440999999993,56.015830999999935],[-60.934722999999963,56.011382999999967],[-60.943329000000006,56.006660000000011]],[[-61.623610999999983,56.399993999999992],[-61.546668999999952,56.390830999999991],[-61.493057000000022,56.404991000000052],[-61.482773000000009,56.406654000000003],[-61.474716000000001,56.406654000000003],[-61.468329999999924,56.404433999999981],[-61.415275999999949,56.376656000000025],[-61.411667000000023,56.372214999999926],[-61.411109999999951,56.367210000000057],[-61.412216000000001,56.326659999999947],[-61.416106999999954,56.322220000000129],[-61.424171000000001,56.32027400000004],[-61.482773000000009,56.309990000000028],[-61.569449999999904,56.320549000000085],[-61.579726999999991,56.322494999999947],[-61.599723999999924,56.32777399999992],[-61.686385999999857,56.352776000000063],[-61.719993999999986,56.365829000000019],[-61.788895000000025,56.405822999999998],[-61.793335000000013,56.408882000000119],[-61.796111999999937,56.41304800000006],[-61.790557999999919,56.415824999999927],[-61.783889999999872,56.415824999999927],[-61.677779999999927,56.405548000000124],[-61.623610999999983,56.399993999999992]],[[-78.839995999999928,56.129990000000078],[-78.927490000000034,56.113884000000098],[-78.933318999999983,56.115547000000049],[-78.930556999999965,56.128601000000117],[-78.916945999999996,56.172493000000145],[-78.908339999999896,56.182495000000131],[-78.903884999999946,56.187209999999993],[-78.883330999999998,56.201935000000105],[-78.846389999999985,56.2347180000001],[-78.830291999999929,56.253326000000129],[-78.825287000000003,56.262772000000098],[-78.813323999999966,56.304709999999943],[-78.809432999999956,56.338882000000126],[-78.813888999999961,56.343323000000055],[-78.834732000000031,56.345543000000021],[-78.832503999999915,56.350829999999974],[-78.762512000000015,56.424713000000111],[-78.751403999999923,56.432495000000074],[-78.731673999999941,56.440544000000102],[-78.694992000000013,56.443878000000097],[-78.686385999999914,56.443320999999969],[-78.667220999999984,56.439713000000097],[-78.661666999999966,56.436104000000057],[-78.660003999999958,56.430550000000096],[-78.650832999999921,56.289161999999976],[-78.652785999999935,56.241936000000067],[-78.655563000000029,56.223602000000142],[-78.676392000000021,56.181106999999997],[-78.688599000000011,56.172767999999962],[-78.839995999999928,56.129990000000078]],[[-79.626937999999996,56.265273999999977],[-79.635833999999988,56.264998999999989],[-79.636672999999973,56.266388000000006],[-79.636397999999872,56.269157000000121],[-79.609436000000017,56.319716999999969],[-79.538605000000018,56.433051999999975],[-79.53443900000002,56.437491999999963],[-79.523894999999982,56.442764000000068],[-79.511123999999938,56.446381000000031],[-79.496947999999975,56.448601000000053],[-79.492217999999923,56.446937999999932],[-79.490554999999915,56.440826000000129],[-79.510833999999932,56.397491000000002],[-79.557769999999891,56.305267000000015],[-79.561110999999926,56.299164000000076],[-79.565552000000025,56.293884000000048],[-79.569457999999997,56.289992999999981],[-79.619445999999868,56.267211999999972],[-79.626937999999996,56.265273999999977]],[[-79.619995000000017,56.385268999999994],[-79.638061999999991,56.360550000000046],[-79.649444999999957,56.346382000000006],[-79.663329999999974,56.333878000000141],[-79.682495000000017,56.317496999999946],[-79.701110999999969,56.306381000000044],[-79.714447000000007,56.299995000000081],[-79.906661999999926,56.227211000000125],[-79.928328999999962,56.219711000000075],[-79.986114999999984,56.199715000000083],[-80.01916499999993,56.191376000000048],[-80.060546999999985,56.18443300000007],[-80.082503999999915,56.186653000000092],[-80.092223999999987,56.188324000000136],[-80.100554999999986,56.191376000000048],[-80.107497999999907,56.194992000000127],[-80.109726000000023,56.197768999999994],[-80.110275000000001,56.203323000000012],[-80.100280999999995,56.239158999999972],[-80.098617999999874,56.244156000000089],[-80.055267000000015,56.303604000000121],[-80.044448999999929,56.310822000000144],[-80.040558000000033,56.312767000000122],[-80.022506999999962,56.319716999999969],[-79.867492999999968,56.357498000000135],[-79.795546999999942,56.366661000000136],[-79.756667999999991,56.361937999999952],[-79.72444200000001,56.362770000000069],[-79.69888299999991,56.368880999999988],[-79.679169000000002,56.378326000000015],[-79.656386999999995,56.392769000000101],[-79.642501999999979,56.404433999999981],[-79.618880999999931,56.426941000000056],[-79.614440999999999,56.431664000000069],[-79.604171999999949,56.444153000000085],[-79.598052999999936,56.454437000000098],[-79.591384999999946,56.469154000000117],[-79.588333000000034,56.493881000000044],[-79.585281000000009,56.499161000000072],[-79.582503999999915,56.501663000000008],[-79.549728000000016,56.525269000000037],[-79.543334999999956,56.527771000000143],[-79.542770000000019,56.522217000000126],[-79.549438000000009,56.508049000000085],[-79.613891999999964,56.39527099999998],[-79.619995000000017,56.385268999999994]],[[-61.435829000000012,56.541382000000112],[-61.168059999999969,56.474709000000018],[-61.149993999999992,56.445540999999992],[-61.148887999999943,56.441101000000003],[-61.154442000000017,56.438599000000067],[-61.163612000000001,56.436653000000035],[-61.181945999999925,56.435265000000129],[-61.200278999999966,56.435265000000129],[-61.220832999999971,56.435546999999985],[-61.517501999999865,56.446937999999932],[-61.609169000000009,56.46166199999999],[-61.630553999999961,56.465270999999973],[-61.642226999999991,56.486382000000049],[-61.637221999999952,56.489716000000044],[-61.629997000000003,56.490547000000049],[-61.546394000000021,56.488044999999943],[-61.538612000000001,56.485824999999977],[-61.525832999999864,56.478874000000019],[-61.512778999999966,56.474991000000102],[-61.438048999999921,56.476379000000009],[-61.423057999999969,56.479156000000103],[-61.417777999999998,56.483330000000137],[-61.418335000000013,56.488327000000027],[-61.422501000000011,56.490547000000049],[-61.455276000000026,56.496383999999978],[-61.496666000000005,56.500000000000057],[-61.527221999999938,56.501663000000008],[-61.624167999999997,56.503882999999973],[-61.633330999999998,56.506386000000134],[-61.634445000000028,56.512497000000053],[-61.631942999999978,56.51638800000012],[-61.602225999999916,56.552773000000059],[-61.595832999999971,56.556380999999988],[-61.588332999999977,56.558044000000052],[-61.576667999999984,56.557769999999948],[-61.561667999999941,56.554161000000136],[-61.558051999999975,56.55193300000002],[-61.525947999999971,56.550212999999985],[-61.459166999999923,56.54583000000008],[-61.435829000000012,56.541382000000112]],[[-79.021666999999923,56.426941000000056],[-79.009445000000028,56.426383999999985],[-78.98832699999997,56.426941000000056],[-78.949157999999898,56.43082400000003],[-78.943054000000018,56.430550000000096],[-78.93582200000003,56.428878999999995],[-78.928878999999938,56.425827000000083],[-78.92471299999994,56.419441000000006],[-78.922775000000001,56.415268000000026],[-78.921111999999994,56.409714000000065],[-78.920546999999942,56.403320000000008],[-78.923049999999932,56.386940000000095],[-78.93638599999997,56.317496999999946],[-78.943328999999949,56.284996000000035],[-78.949996999999939,56.282493999999986],[-78.955276000000026,56.27915999999999],[-78.961394999999868,56.271378000000027],[-79.029174999999952,56.172493000000145],[-79.06138599999997,56.124435000000005],[-79.071670999999981,56.104996000000085],[-79.085007000000019,56.07749200000012],[-79.094161999999983,56.054993000000138],[-79.129990000000021,55.989432999999963],[-79.175277999999935,55.92332499999992],[-79.195266999999944,55.891937000000098],[-79.203613000000018,55.894157000000121],[-79.166267000000005,55.973881000000006],[-79.122116000000005,56.046715000000006],[-79.061935000000005,56.148605000000032],[-79.022781000000009,56.202492000000007],[-79.008895999999993,56.221656999999936],[-78.990829000000019,56.261664999999994],[-78.985824999999977,56.273605000000089],[-78.972777999999948,56.306656000000032],[-78.970275999999956,56.314156000000082],[-78.967772999999909,56.323608000000036],[-78.966109999999901,56.336105000000032],[-78.970275999999956,56.378043999999989],[-78.97084000000001,56.3836060000001],[-78.977218999999991,56.388602999999989],[-78.983321999999987,56.389716999999962],[-78.998885999999914,56.384163000000001],[-79.043334999999956,56.360550000000046],[-79.055267000000015,56.344437000000028],[-79.062209999999993,56.329720000000009],[-79.089172000000019,56.267769000000044],[-79.091109999999958,56.263054000000011],[-79.093062999999972,56.256943000000092],[-79.092948999999976,56.231716000000006],[-79.095443999999986,56.2190480000001],[-79.093948000000012,56.213717999999972],[-79.092781000000002,56.211551999999983],[-79.089110999999946,56.211884000000111],[-79.083327999999995,56.174164000000019],[-79.212783999999999,55.954163000000108],[-79.236114999999927,55.917496000000085],[-79.259444999999914,55.886108000000092],[-79.275283999999999,55.870270000000062],[-79.283324999999991,55.864441000000056],[-79.286666999999852,55.866661000000079],[-79.286117999999988,55.869987000000094],[-79.278060999999923,55.885551000000021],[-79.267226999999934,55.903046000000018],[-79.226668999999958,55.962493999999992],[-79.183608999999933,56.037497999999971],[-79.139998999999932,56.115273000000116],[-79.133895999999993,56.126656000000082],[-79.132721000000004,56.175770000000057],[-79.138564999999858,56.205269000000101],[-79.139724999999999,56.20776699999999],[-79.143561999999974,56.211266000000137],[-79.15055799999999,56.233046999999999],[-79.160552999999993,56.231377000000066],[-79.170272999999952,56.225548000000003],[-79.205565999999976,56.190826000000015],[-79.243880999999988,56.151100000000042],[-79.256393000000003,56.13110400000005],[-79.270844000000011,56.104712999999947],[-79.277495999999985,56.090828000000045],[-79.284164000000033,56.078049000000021],[-79.299727999999959,56.051658999999972],[-79.309158000000025,56.036385000000109],[-79.323623999999938,56.016936999999984],[-79.358611999999937,55.974434000000088],[-79.452498999999989,55.879990000000134],[-79.479996000000028,55.863883999999985],[-79.493056999999965,55.858887000000038],[-79.500564999999995,55.856659000000093],[-79.510559000000001,55.855553000000043],[-79.520279000000016,55.854713000000004],[-79.532500999999968,55.854996000000142],[-79.567779999999971,55.864716000000044],[-79.593886999999938,55.874435000000062],[-79.604996000000028,55.881660000000124],[-79.78195199999999,55.78804800000006],[-79.763061999999934,55.814156000000025],[-79.598052999999936,55.981658999999979],[-79.486937999999952,56.087212000000022],[-79.474716000000001,56.098327999999981],[-79.470275999999956,56.104439000000013],[-79.470551,56.112770000000125],[-79.472504000000015,56.11693600000001],[-79.478881999999999,56.123322000000087],[-79.497222999999963,56.133605999999986],[-79.513061999999991,56.134995000000117],[-79.523055999999997,56.133880999999974],[-79.537216000000001,56.12971500000009],[-79.550277999999935,56.123322000000087],[-79.567504999999983,56.112770000000125],[-79.59722899999997,56.091377000000023],[-79.645003999999972,56.050545],[-79.819457999999941,55.901100000000099],[-79.831680000000006,55.88999200000012],[-79.846663999999976,55.874161000000129],[-79.858046999999999,55.859993000000088],[-79.863892000000021,55.850830000000087],[-79.865829000000019,55.847214000000008],[-79.909164000000033,55.840546000000074],[-79.985824999999977,55.898048000000017],[-79.961944999999957,55.960274000000027],[-79.774444999999957,56.112213000000054],[-79.668059999999912,56.189987000000031],[-79.648620999999991,56.198326000000066],[-79.642226999999991,56.201385000000073],[-79.587783999999999,56.230270000000132],[-79.536330999999961,56.295052000000055],[-79.526839999999993,56.304214000000115],[-79.516173999999978,56.319881000000066],[-79.494666999999993,56.367214000000047],[-79.48733500000003,56.402714000000117],[-79.458892999999875,56.464157],[-79.458617999999944,56.468323000000112],[-79.458617999999944,56.478600000000085],[-79.466109999999958,56.498878000000104],[-79.474441999999954,56.521102999999982],[-79.471389999999928,56.544441000000063],[-79.466109999999958,56.54833200000013],[-79.456664999999987,56.55332199999998],[-79.448883000000023,56.554435999999953],[-79.445267000000001,56.553604000000064],[-79.441939999999875,56.551384000000041],[-79.438599000000011,56.547775000000058],[-79.418334999999956,56.490829000000076],[-79.419448999999872,56.443603999999937],[-79.443000999999981,56.393436000000008],[-79.474998000000028,56.320438000000138],[-79.531386999999995,56.206940000000145],[-79.514450000000011,56.186378000000047],[-79.461670000000026,56.193321000000026],[-79.438889000000017,56.197212000000093],[-79.427215999999987,56.203049000000078],[-79.416397000000018,56.212212000000079],[-79.413054999999986,56.216660000000047],[-79.309998000000007,56.424163999999962],[-79.301101999999958,56.447212000000036],[-79.298049999999932,56.459435000000099],[-79.293335000000013,56.488044999999943],[-79.291672000000005,56.498878000000104],[-79.286391999999921,56.570273999999984],[-79.139998999999932,56.546386999999982],[-79.133057000000008,56.542770000000019],[-79.129990000000021,56.537773000000072],[-79.125548999999978,56.514159999999947],[-79.121932999999956,56.495543999999938],[-79.119995000000017,56.489989999999977],[-79.111938000000009,56.47526600000009],[-79.099990999999989,56.463051000000007],[-79.091384999999889,56.454437000000098],[-79.075561999999934,56.444153000000085],[-79.055557000000022,56.433876000000112],[-79.038895000000025,56.428878999999995],[-79.021666999999923,56.426941000000056]],[[-79.141952999999944,56.616661000000079],[-79.15194699999995,56.616386000000091],[-79.260009999999966,56.628044000000102],[-79.268889999999999,56.629158000000075],[-79.274719000000005,56.632209999999986],[-79.277495999999985,56.637215000000026],[-79.279998999999975,56.648880000000133],[-79.280288999999982,56.654990999999995],[-79.275009000000011,56.667213000000004],[-79.271941999999967,56.67193600000013],[-79.254729999999881,56.679993000000138],[-79.244155999999919,56.682495000000017],[-79.218886999999938,56.684990000000028],[-79.208892999999989,56.683876000000055],[-79.193603999999937,56.678329000000133],[-79.160004000000015,56.65776800000009],[-79.151108000000022,56.649994000000106],[-79.141678000000013,56.635826000000066],[-79.138061999999991,56.626099000000124],[-79.138901000000033,56.619986999999924],[-79.141952999999944,56.616661000000079]],[[-61.1875,56.586104999999975],[-61.211670000000026,56.581664999999987],[-61.217498999999975,56.58277099999998],[-61.222770999999966,56.588882000000069],[-61.231667000000016,56.611663999999962],[-61.231941000000006,56.61971299999999],[-61.226104999999961,56.626656000000025],[-61.165832999999964,56.684433000000126],[-61.159163999999919,56.688324000000023],[-61.150276000000019,56.689430000000073],[-61.131942999999978,56.68721000000005],[-61.0819469999999,56.678878999999938],[-61.0777819999999,56.674995000000138],[-61.057776999999987,56.628875999999991],[-61.059440999999993,56.626380999999981],[-61.06361400000003,56.624160999999958],[-61.103888999999867,56.606658999999922],[-61.1875,56.586104999999975]],[[-79.560821999999973,56.617767000000129],[-79.567504999999983,56.615273000000002],[-79.573333999999988,56.618881000000101],[-79.583618000000001,56.648048000000017],[-79.583892999999932,56.65277100000003],[-79.589995999999985,56.768326000000002],[-79.587508999999898,56.788886999999988],[-79.581679999999949,56.80721299999999],[-79.578339000000028,56.81249200000002],[-79.57417299999986,56.815825999999959],[-79.567504999999983,56.817772000000048],[-79.516662999999937,56.78555300000005],[-79.496384000000035,56.766936999999984],[-79.476943999999946,56.72165700000005],[-79.474716000000001,56.689156000000139],[-79.486114999999984,56.658043000000134],[-79.488891999999964,56.655548000000067],[-79.560821999999973,56.617767000000129]],[[-79.881942999999978,56.743607000000054],[-79.888610999999969,56.741104000000064],[-79.904723999999987,56.741661000000136],[-79.923889000000031,56.751389000000017],[-79.930831999999953,56.754997000000117],[-79.941101000000003,56.763610999999969],[-79.944442999999922,56.767769000000101],[-79.947494999999947,56.773323000000119],[-79.957229999999925,56.799164000000019],[-79.958892999999932,56.805267000000129],[-79.958618000000001,56.811377999999991],[-79.954726999999934,56.823607999999922],[-79.945830999999998,56.833603000000039],[-79.919158999999922,56.858330000000137],[-79.915008999999998,56.861382000000049],[-79.865829000000019,56.866104000000121],[-79.858046999999999,56.865829000000133],[-79.843886999999995,56.858330000000137],[-79.83444199999991,56.852492999999981],[-79.819457999999941,56.84027100000003],[-79.81639100000001,56.835548000000017],[-79.814712999999927,56.829162999999994],[-79.81361400000003,56.816939999999988],[-79.833892999999989,56.793610000000001],[-79.83805799999999,56.788886999999988],[-79.872222999999906,56.752220000000023],[-79.876663000000008,56.747772000000055],[-79.881942999999978,56.743607000000054]],[[-79.750564999999938,56.905823000000055],[-79.717498999999918,56.813605999999993],[-79.71833799999996,56.80721299999999],[-79.721114999999884,56.802773000000002],[-79.725554999999986,56.798049999999989],[-79.730834999999956,56.794158999999922],[-79.749725000000012,56.783607000000131],[-79.757507000000032,56.781936999999971],[-79.781113000000005,56.784721000000104],[-79.78832999999986,56.785828000000038],[-79.793555999999967,56.795792000000063],[-79.794373000000007,56.832947000000104],[-79.793143999999984,56.859890000000064],[-79.82376899999997,56.895003999999972],[-79.852753000000007,56.885204000000044],[-79.894164999999873,56.881935000000112],[-79.897506999999962,56.884995000000004],[-79.89805599999994,56.891106000000036],[-79.896118000000001,56.897217000000126],[-79.892776000000026,56.90248900000006],[-79.858611999999937,56.938599000000011],[-79.851943999999946,56.940268999999944],[-79.808333999999945,56.948326000000122],[-79.799438000000009,56.949431999999945],[-79.790833000000021,56.947769000000051],[-79.784164000000033,56.940826000000072],[-79.753615999999965,56.910820000000001],[-79.750564999999938,56.905823000000055]],[[-61.429211000000009,56.929707000000008],[-61.397204999999985,56.927715000000035],[-61.37261199999989,56.930972999999994],[-61.354888999999957,56.93639799999994],[-61.343319000000008,56.934227000000078],[-61.340785999999866,56.930248000000006],[-61.355277999999998,56.910820000000001],[-61.400275999999963,56.884720000000129],[-61.404716000000008,56.87971500000009],[-61.399444999999957,56.875824000000023],[-61.378052000000025,56.871658000000139],[-61.360282999999924,56.866104000000121],[-61.352225999999973,56.857773000000066],[-61.355834999999956,56.852776000000119],[-61.361670999999944,56.848045000000013],[-61.375831999999946,56.840546000000018],[-61.443168999999898,56.817719000000125],[-61.48966999999999,56.807549000000108],[-61.563331999999946,56.784721000000104],[-61.570281999999906,56.781661999999983],[-61.576949999999954,56.778046000000074],[-61.585555999999997,56.766388000000063],[-61.584998999999982,56.761383000000023],[-61.58277899999996,56.756660000000011],[-61.575561999999991,56.753052000000082],[-61.564720000000023,56.751663000000121],[-61.555831999999953,56.752777000000094],[-61.540839999999946,56.757773999999984],[-61.526664999999866,56.76527400000009],[-61.515282000000013,56.774712000000079],[-61.497653999999955,56.78694200000001],[-61.488975999999923,56.789295000000038],[-61.476315,56.79019900000003],[-61.434002000000021,56.783688000000097],[-61.393313999999918,56.778988000000027],[-61.386626999999976,56.775913000000003],[-61.382107000000019,56.771393000000103],[-61.373965999999996,56.74390800000009],[-61.368724999999984,56.695988],[-61.368632999999988,56.6857720000001],[-61.370804000000021,56.675282000000038],[-61.378399000000002,56.632607000000007],[-61.379119999999944,56.626820000000066],[-61.39358900000002,56.617779000000041],[-61.409137999999928,56.615608000000009],[-61.444217999999978,56.619587000000081],[-61.484000999999978,56.641647000000091],[-61.521975999999938,56.669857000000093],[-61.561034999999947,56.682513999999969],[-61.588157999999964,56.703853999999978],[-61.605334999999968,56.713798999999995],[-61.635353000000009,56.731518000000051],[-61.644393999999977,56.734775999999954],[-61.644031999999868,56.73802900000004],[-61.634991000000014,56.770938999999998],[-61.624865999999997,56.82591200000013],[-61.632098999999982,56.859547000000077],[-61.588698999999963,56.893539000000089],[-61.534812999999986,56.901859000000002],[-61.522517999999934,56.914879000000099],[-61.5261339999999,56.933323000000087],[-61.523963999999921,56.940193000000079],[-61.499370999999996,56.952849999999955],[-61.473694000000023,56.95900000000006],[-61.460673999999983,56.955021000000045],[-61.446571000000006,56.935131000000126],[-61.429211000000009,56.929707000000008]],[[-76.621108999999933,57.075554000000125],[-76.646956999999986,57.073050999999964],[-76.660278000000005,57.075828999999999],[-76.671386999999925,57.083327999999995],[-76.675551999999925,57.087769000000094],[-76.681106999999997,57.097771000000023],[-76.709732000000031,57.182213000000047],[-76.708617999999944,57.18832400000008],[-76.678329000000019,57.205269000000044],[-76.669998000000021,57.20249199999995],[-76.667496000000028,57.195541000000048],[-76.626099000000011,57.142769000000101],[-76.618880999999988,57.080276000000026],[-76.621108999999933,57.075554000000125]],[[-61.621666000000005,57.335548000000131],[-61.611114999999984,57.334991000000002],[-61.605559999999912,57.335548000000131],[-61.594443999999953,57.334159999999997],[-61.589995999999985,57.330275999999969],[-61.589438999999913,57.325272000000041],[-61.59194199999996,57.321380999999974],[-61.608337000000006,57.308327000000077],[-61.652221999999995,57.290549999999996],[-61.658051,57.290276000000063],[-61.734725999999966,57.290276000000063],[-61.739998000000014,57.291939000000013],[-61.753333999999938,57.302490000000091],[-61.763617999999951,57.311661000000072],[-61.766662999999937,57.315269000000001],[-61.767776000000026,57.319716999999969],[-61.768607999999915,57.324996999999996],[-61.767501999999979,57.328330999999991],[-61.752228000000002,57.360275000000001],[-61.74888599999997,57.365546999999935],[-61.74500299999994,57.369155999999975],[-61.726944000000003,57.374435000000119],[-61.702498999999989,57.372765000000129],[-61.693329000000006,57.368050000000096],[-61.677497999999957,57.357216000000051],[-61.632216999999912,57.337769000000037],[-61.621666000000005,57.335548000000131]],[[-76.715012000000002,57.292770000000019],[-76.72972099999987,57.289718999999991],[-76.734726000000023,57.291382000000112],[-76.740279999999984,57.294441000000063],[-76.744445999999982,57.299438000000009],[-76.793059999999969,57.374709999999936],[-76.821944999999914,57.419715999999994],[-76.823623999999995,57.424713000000111],[-76.821670999999981,57.429436000000067],[-76.812774999999931,57.428329000000133],[-76.78443900000002,57.41693900000007],[-76.761397999999986,57.40387700000008],[-76.735549999999989,57.386383000000137],[-76.731109999999944,57.381934999999999],[-76.725554999999986,57.372765000000129],[-76.721114999999941,57.356658999999979],[-76.708054000000004,57.29583000000008],[-76.715012000000002,57.292770000000019]],[[-61.655273000000022,57.391380000000083],[-61.675003000000004,57.389992000000007],[-61.839721999999995,57.408043000000134],[-61.860000999999954,57.412491000000102],[-61.877494999999954,57.418602000000021],[-61.889998999999989,57.426102000000071],[-61.894446999999957,57.42971799999998],[-61.897780999999952,57.433327000000133],[-61.900275999999963,57.437492000000134],[-61.897498999999982,57.444153000000085],[-61.813003999999921,57.473709000000042],[-61.772738999999945,57.495097999999984],[-61.742774999999995,57.534995999999978],[-61.737220999999977,57.536942000000067],[-61.719993999999986,57.536384999999996],[-61.648055999999997,57.530272999999966],[-61.643889999999999,57.522766000000047],[-61.634726999999998,57.509438000000046],[-61.613616999999977,57.416100000000142],[-61.615279999999984,57.409157000000107],[-61.634170999999924,57.398880000000133],[-61.648337999999967,57.393608000000029],[-61.655273000000022,57.391380000000083]],[[-61.878333999999995,57.46305099999995],[-61.926948999999979,57.45249200000012],[-61.937499999999943,57.453049000000021],[-61.946945000000028,57.454993999999999],[-61.955832999999927,57.458046000000081],[-61.962776000000019,57.462212000000022],[-62.012504999999919,57.508331000000112],[-62.021942000000024,57.521102999999925],[-62.02305599999994,57.534164000000033],[-62.020279000000016,57.540276000000063],[-62.014450000000011,57.549438000000123],[-61.992500000000007,57.569160000000011],[-61.974997999999971,57.581383000000073],[-61.968886999999995,57.584434999999985],[-61.953056000000004,57.59027100000003],[-61.944442999999978,57.590828000000101],[-61.878052000000025,57.584991000000002],[-61.855002999999954,57.580551000000128],[-61.833327999999995,57.574440000000038],[-61.817504999999926,57.567215000000033],[-61.783614999999941,57.550545000000056],[-61.781386999999995,57.548050000000046],[-61.778885000000002,57.543883999999935],[-61.77694699999995,57.52388000000002],[-61.777778999999953,57.518326000000059],[-61.779441999999904,57.513611000000026],[-61.783057999999869,57.508331000000112],[-61.864165999999955,57.466385000000116],[-61.878333999999995,57.46305099999995]],[[-79.797501000000011,57.418884000000048],[-79.801666000000012,57.415825000000098],[-79.805556999999965,57.418053000000043],[-79.835830999999985,57.460274000000084],[-79.826949999999897,57.53804800000006],[-79.808883999999978,57.561661000000015],[-79.792769999999962,57.578880000000083],[-79.749160999999958,57.609718000000044],[-79.740828999999962,57.615547000000106],[-79.734160999999915,57.618881000000044],[-79.727782999999931,57.61721],[-79.723052999999993,57.612770000000012],[-79.706116000000009,57.585548000000074],[-79.70666499999993,57.580826000000002],[-79.704726999999991,57.576660000000061],[-79.698607999999979,57.563324000000136],[-79.695830999999998,57.531661999999983],[-79.698607999999979,57.519989000000123],[-79.705001999999922,57.508605999999929],[-79.712508999999955,57.500548999999978],[-79.797501000000011,57.418884000000048]],[[-61.688605999999936,57.713051000000121],[-61.696105999999929,57.712212000000136],[-61.757506999999976,57.715546000000131],[-61.768889999999999,57.716934000000037],[-61.894164999999987,57.754166000000055],[-61.896950000000004,57.758331000000055],[-61.896110999999962,57.769714000000079],[-61.891669999999976,57.779160000000047],[-61.865836999999999,57.799721000000034],[-61.853614999999934,57.808327000000133],[-61.80889099999996,57.836936999999978],[-61.800551999999925,57.841377000000023],[-61.778885000000002,57.84526800000009],[-61.773055999999997,57.845543000000077],[-61.711113000000012,57.834160000000111],[-61.698607999999922,57.830276000000083],[-61.653610000000015,57.784721000000104],[-61.652221999999995,57.782494000000042],[-61.651664999999923,57.779433999999981],[-61.652495999999928,57.775826000000052],[-61.654166999999916,57.771103000000096],[-61.668609999999887,57.738884000000041],[-61.674171000000001,57.726936000000023],[-61.684440999999936,57.714996000000099],[-61.688605999999936,57.713051000000121]],[[-61.947494999999947,57.787216000000114],[-61.957222000000002,57.78694200000001],[-62.08916499999998,57.808043999999995],[-62.100280999999995,57.816101000000003],[-62.108337000000006,57.824715000000026],[-62.109443999999996,57.829437000000098],[-62.108054999999922,57.837769000000094],[-62.099723999999924,57.846382000000062],[-62.094443999999953,57.850547999999947],[-62.065276999999924,57.870544000000109],[-62.028884999999946,57.892768999999987],[-62.009170999999924,57.904434000000037],[-61.995002999999997,57.90915700000005],[-61.986114999999984,57.910271000000023],[-61.971663999999976,57.911377000000016],[-61.941108999999983,57.909988000000055],[-61.928336999999942,57.908599999999922],[-61.923332000000016,57.906096999999988],[-61.918891999999971,57.90248900000006],[-61.884444999999971,57.86693600000001],[-61.867774999999881,57.84276600000004],[-61.867774999999881,57.838600000000099],[-61.879439999999931,57.816665999999998],[-61.881942999999922,57.812767000000008],[-61.885558999999887,57.809157999999968],[-61.889998999999989,57.806381000000101],[-61.940833999999938,57.788886999999988],[-61.947494999999947,57.787216000000114]],[[-77.678328999999962,58.235549999999932],[-77.687774999999931,58.235268000000076],[-77.702788999999996,58.238884000000098],[-77.761123999999938,58.257499999999936],[-77.946380999999917,58.3211060000001],[-77.950835999999924,58.32416500000005],[-77.947495000000004,58.328605999999979],[-77.940551999999968,58.330551000000014],[-77.932495000000017,58.331383000000073],[-77.917312999999922,58.329369000000042],[-77.829726999999934,58.311378000000047],[-77.80749499999996,58.305267000000015],[-77.801392000000021,58.303046999999992],[-77.702788999999996,58.260277000000031],[-77.689437999999996,58.253882999999973],[-77.670273000000009,58.244156000000032],[-77.668334999999956,58.241936000000067],[-77.668334999999956,58.240547000000049],[-77.678328999999962,58.235549999999932]],[[-67.596114999999998,58.284164000000089],[-67.616394000000014,58.284164000000089],[-67.637786999999946,58.28472099999999],[-67.666106999999954,58.292770000000019],[-67.673888999999917,58.296104000000014],[-67.676666000000012,58.301384000000041],[-67.675827000000027,58.306099000000074],[-67.672775000000001,58.312209999999993],[-67.624435000000005,58.368050000000096],[-67.61999499999996,58.372215000000097],[-67.61082499999992,58.373877999999991],[-67.599166999999909,58.373046999999985],[-67.580565999999976,58.369986999999924],[-67.527221999999995,58.343605000000082],[-67.520844000000011,58.339989000000003],[-67.517501999999979,58.335266000000047],[-67.51916499999993,58.329719999999952],[-67.524445000000014,58.32416500000005],[-67.551102000000014,58.302215999999987],[-67.557220000000029,58.298050000000046],[-67.571670999999867,58.290833000000134],[-67.596114999999998,58.284164000000089]],[[-78.453888000000006,58.539993000000038],[-78.455565999999862,58.537215999999944],[-78.463332999999977,58.537498000000028],[-78.474716000000001,58.541382000000056],[-78.649993999999936,58.601386999999988],[-78.672501000000011,58.610549999999989],[-78.683884000000035,58.620827000000133],[-78.697495000000004,58.678329000000076],[-78.698607999999979,58.688599000000011],[-78.696944999999971,58.690543999999989],[-78.692764000000011,58.691933000000006],[-78.665008999999998,58.674995000000081],[-78.659163999999976,58.669991000000095],[-78.635284000000013,58.618598999999961],[-78.631942999999978,58.616386000000034],[-78.628051999999968,58.614158999999972],[-78.56639100000001,58.586104999999918],[-78.513061999999934,58.563880999999981],[-78.457229999999981,58.542770000000132],[-78.453888000000006,58.539993000000038]],[[-69.194442999999922,59.064712999999983],[-69.18638599999997,59.064437999999996],[-69.180831999999953,59.06721500000009],[-69.178328999999906,59.029715999999951],[-69.227218999999934,58.971931000000041],[-69.320281999999963,58.946381000000088],[-69.327498999999989,58.94499200000007],[-69.338897999999972,58.944434999999999],[-69.350280999999995,58.946381000000088],[-69.355559999999969,58.949715000000083],[-69.360000999999954,58.958603000000039],[-69.357223999999974,58.964714000000129],[-69.318344000000025,59.02555099999995],[-69.319457999999997,59.098045000000127],[-69.353057999999976,59.127213000000097],[-69.357773000000009,59.13499500000006],[-69.357223999999974,59.139717000000132],[-69.345550999999944,59.144714000000079],[-69.339447000000007,59.146103000000039],[-69.282227000000034,59.154433999999981],[-69.275283999999942,59.154991000000052],[-69.198607999999922,59.14527099999998],[-69.18638599999997,59.138329000000056],[-69.18249499999996,59.128601000000003],[-69.194991999999957,59.09415400000006],[-69.199996999999996,59.077217000000019],[-69.200561999999877,59.072495000000117],[-69.198607999999922,59.06721500000009],[-69.194442999999922,59.064712999999983]],[[-80.53443900000002,59.369438000000002],[-80.544158999999979,59.365547000000106],[-80.552215999999873,59.365829000000133],[-80.555832000000009,59.369438000000002],[-80.549437999999952,59.446938000000046],[-80.537506000000008,59.455268999999987],[-80.488051999999982,59.477486000000056],[-80.475554999999929,59.481102000000078],[-80.465011999999945,59.463882000000126],[-80.471389999999928,59.454994000000113],[-80.477218999999934,59.451103000000046],[-80.520844000000011,59.382767000000058],[-80.525283999999942,59.377486999999974],[-80.53443900000002,59.369438000000002]],[[-80.277495999999985,59.618599000000131],[-80.319167999999991,59.612213000000054],[-80.329726999999991,59.612495000000138],[-80.340560999999923,59.614158999999972],[-80.343886999999995,59.619156000000032],[-80.340835999999967,59.625267000000122],[-80.295273000000009,59.678329000000019],[-80.232773000000009,59.725265999999976],[-80.222228999999857,59.723602000000142],[-80.171386999999925,59.715271000000087],[-80.154175000000009,59.709991000000002],[-80.14527899999996,59.705550999999957],[-80.154723999999931,59.682495000000131],[-80.156661999999983,59.678329000000019],[-80.170546999999999,59.673881999999992],[-80.205840999999964,59.665267999999912],[-80.222777999999892,59.660271000000023],[-80.229720999999984,59.656380000000127],[-80.233063000000016,59.651100000000042],[-80.237212999999997,59.639434999999992],[-80.240554999999858,59.634163000000058],[-80.246384000000035,59.629990000000078],[-80.260833999999988,59.623604],[-80.277495999999985,59.618599000000131]],[[-64.019729999999925,59.714713999999958],[-64.124160999999958,59.695267000000115],[-64.134170999999981,59.695541000000048],[-64.146118000000001,59.696655000000021],[-64.157226999999978,59.699715000000083],[-64.16332999999986,59.703605999999979],[-64.204452999999944,59.734436000000017],[-64.192490000000021,59.765549000000021],[-64.121933000000013,59.849433999999974],[-64.115828999999962,59.852776000000063],[-64.107223999999974,59.854996000000085],[-64.067504999999926,59.863884000000041],[-64.061385999999914,59.864440999999943],[-64.052779999999984,59.859992999999974],[-64.049727999999959,59.855270000000019],[-64.047774999999945,59.849433999999974],[-64.055266999999958,59.835266000000104],[-64.054442999999992,59.829437000000041],[-64.042769999999905,59.783882000000062],[-64.020278999999903,59.781104999999968],[-64.002791999999943,59.774712000000022],[-63.959723999999937,59.75638600000002],[-63.959441999999967,59.752220000000136],[-63.99722300000002,59.723602000000142],[-64.011397999999872,59.716385000000059],[-64.019729999999925,59.714713999999958]],[[-80.089721999999938,59.751938000000052],[-80.166945999999996,59.742493000000024],[-80.177779999999984,59.744156000000089],[-80.184158000000025,59.747771999999998],[-80.184722999999963,59.752777000000037],[-80.128875999999991,59.82388300000008],[-80.11500499999994,59.837769000000037],[-80.103057999999976,59.844994000000099],[-80.015015000000005,59.884995000000117],[-80.00778200000002,59.886107999999979],[-79.946944999999914,59.880272000000105],[-79.937774999999931,59.877768999999944],[-79.929992999999911,59.873603999999943],[-79.884170999999924,59.85833000000008],[-79.878875999999991,59.854713000000118],[-79.883621000000005,59.849998000000085],[-79.906661999999926,59.828049000000135],[-79.922226000000023,59.815544000000045],[-79.928054999999972,59.811661000000072],[-80.025283999999942,59.764442000000088],[-80.089721999999938,59.751938000000052]],[[-64.427673000000027,60.372932000000048],[-64.452788999999996,60.357215999999994],[-64.442763999999897,60.309715000000097],[-64.438323999999966,60.305550000000096],[-64.423614999999984,60.282494000000042],[-64.429442999999935,60.281936999999971],[-64.438048999999864,60.282494000000042],[-64.448607999999979,60.284164000000033],[-64.50111400000003,60.301933000000133],[-64.521712999999977,60.310730000000035],[-64.541106999999954,60.324440000000038],[-64.557219999999916,60.331383000000017],[-64.601943999999889,60.350273000000016],[-64.610001000000011,60.353606999999954],[-64.632216999999912,60.357498000000021],[-64.643889999999942,60.357773000000066],[-64.655562999999972,60.357498000000021],[-64.666107000000011,60.356940999999949],[-64.675551999999982,60.355270000000075],[-64.710007000000019,60.358330000000137],[-64.728881999999999,60.363327000000083],[-64.790282999999931,60.391106000000093],[-64.815552000000025,60.406096999999988],[-64.831116000000009,60.419159000000036],[-64.867492999999911,60.450272000000041],[-64.868606999999997,60.453323000000069],[-64.868056999999965,60.458885000000009],[-64.856110000000001,60.473877000000016],[-64.84722899999997,60.478874000000133],[-64.837783999999999,60.482491000000039],[-64.823058999999944,60.485268000000133],[-64.639998999999989,60.4847180000001],[-64.61860699999994,60.477211000000011],[-64.426940999999943,60.401381999999955],[-64.423889000000031,60.397216999999955],[-64.422501000000011,60.391937000000098],[-64.423889000000031,60.383049000000085],[-64.427673000000027,60.372932000000048]],[[-68.25140399999998,60.230820000000051],[-68.310546999999985,60.223045000000127],[-68.340285999999992,60.223320000000001],[-68.361937999999952,60.225822000000051],[-68.376937999999996,60.232491000000095],[-68.387222000000008,60.240829000000076],[-68.393065999999976,60.249161000000072],[-68.394729999999981,60.254440000000045],[-68.395003999999972,60.259995000000117],[-68.393065999999976,60.276100000000042],[-68.384170999999924,60.29972100000009],[-68.37777699999998,60.310271999999998],[-68.314437999999996,60.390273999999977],[-68.175277999999992,60.53443900000002],[-68.129439999999931,60.570549000000085],[-68.119155999999919,60.577217000000076],[-68.092223999999987,60.581665000000044],[-68.081679999999949,60.582496999999989],[-68.035277999999948,60.581107999999972],[-67.999435000000005,60.57749200000012],[-67.956664999999987,60.566100999999946],[-67.948607999999922,60.561377999999991],[-67.887221999999952,60.503883000000087],[-67.862212999999997,60.488045000000056],[-67.839721999999995,60.478043000000071],[-67.831389999999999,60.474990999999989],[-67.821395999999993,60.472487999999998],[-67.808043999999938,60.467209000000025],[-67.803054999999972,60.463051000000064],[-67.79861499999987,60.457497000000103],[-67.794998000000021,60.447769000000051],[-67.795546999999942,60.443877999999984],[-67.79861499999987,60.432213000000104],[-67.806106999999997,60.417496000000085],[-67.815276999999924,60.408043000000077],[-67.836394999999925,60.388603000000103],[-67.841385000000002,60.384438000000102],[-67.853333000000021,60.375266999999951],[-67.885559000000001,60.353606999999954],[-67.898055999999997,60.345267999999919],[-67.934433000000013,60.321662999999944],[-67.965285999999992,60.30832700000002],[-67.97222899999997,60.30582400000003],[-68.167496000000028,60.245544000000109],[-68.17721599999993,60.243049999999982],[-68.205276000000026,60.238045000000113],[-68.25140399999998,60.230820000000051]],[[-64.689986999999917,60.584435000000099],[-64.697220000000016,60.582214000000022],[-64.704452999999944,60.582496999999989],[-64.712783999999942,60.590271000000143],[-64.713897999999915,60.59526800000009],[-64.713057999999876,60.598877000000073],[-64.710830999999985,60.602776000000119],[-64.615554999999858,60.681664000000069],[-64.610274999999945,60.685265000000129],[-64.599166999999966,60.689430000000129],[-64.592772999999909,60.685547000000042],[-64.590835999999967,60.676659000000029],[-64.592498999999975,60.666939000000127],[-64.593886999999995,60.648331000000098],[-64.59584000000001,60.645271000000037],[-64.620543999999995,60.616661000000022],[-64.631667999999991,60.60833000000008],[-64.638061999999934,60.604996000000085],[-64.689986999999917,60.584435000000099]],[[-78.656386999999995,60.702774000000034],[-78.664718999999991,60.702217000000132],[-78.674163999999962,60.704711999999972],[-78.689986999999974,60.712212000000079],[-78.694716999999912,60.716660000000047],[-78.698333999999988,60.721656999999936],[-78.697768999999937,60.724159000000043],[-78.616393999999957,60.771935000000099],[-78.573623999999995,60.784163999999919],[-78.399993999999992,60.809990000000028],[-78.223891999999978,60.830826000000059],[-78.21945199999999,60.823883000000023],[-78.219161999999983,60.817497000000117],[-78.221114999999998,60.814156000000082],[-78.226669000000015,60.808883999999978],[-78.277221999999995,60.769157000000121],[-78.285004000000015,60.766106000000093],[-78.397231999999917,60.743881000000044],[-78.62332200000003,60.705551000000128],[-78.656386999999995,60.702774000000034]],[[-69.977218999999991,60.933051999999975],[-69.983886999999982,60.93110699999994],[-69.995269999999948,60.931381000000101],[-70.003615999999965,60.935265000000072],[-70.007781999999963,60.939155999999969],[-70.026107999999965,60.995827000000077],[-70.025008999999955,61.001937999999996],[-70.021666999999866,61.008605999999986],[-70.016662999999994,61.013611000000026],[-70.009170999999867,61.017768999999987],[-70.003341999999918,61.020828000000108],[-69.982772999999895,61.028327999999988],[-69.964721999999995,61.032768000000033],[-69.954177999999956,61.033882000000006],[-69.943603999999993,61.031380000000127],[-69.931380999999931,61.020271000000037],[-69.929992999999854,61.016663000000108],[-69.929717999999923,61.010825999999952],[-69.930832000000009,61.00471500000009],[-69.933883999999921,60.998047000000099],[-69.977218999999991,60.933051999999975]],[[-64.723891999999921,61.53833000000003],[-64.71665999999999,61.535827999999981],[-64.706954999999994,61.536658999999986],[-64.688323999999909,61.535552999999993],[-64.683318999999869,61.531105000000025],[-64.675277999999992,61.508606000000043],[-64.674164000000019,61.503325999999959],[-64.686935000000005,61.465827999999988],[-64.705276000000026,61.444153000000142],[-64.715012000000002,61.433327000000077],[-64.820557000000008,61.355270000000075],[-64.866942999999992,61.324164999999994],[-64.870833999999945,61.32249500000006],[-64.875274999999988,61.32249500000006],[-64.887222000000008,61.324715000000026],[-64.972503999999958,61.344154000000117],[-64.977492999999924,61.34777100000008],[-64.985000999999954,61.367493000000138],[-65.179168999999945,61.466933999999981],[-65.18582200000003,61.47554800000006],[-65.187499999999943,61.480270000000132],[-65.190552000000025,61.494995000000074],[-65.195267000000001,61.499160999999958],[-65.295272999999895,61.528877000000023],[-65.329453000000001,61.531937000000084],[-65.353333000000021,61.534721000000047],[-65.37249799999995,61.537216000000058],[-65.381103999999993,61.540550000000053],[-65.47444200000001,61.586936999999978],[-65.481109999999887,61.590828000000045],[-65.487777999999935,61.599433999999974],[-65.486938000000009,61.610825000000091],[-65.485000999999954,61.62193300000007],[-65.482223999999974,61.62860100000006],[-65.472228999999857,61.64027400000009],[-65.466400000000021,61.644997000000046],[-65.459441999999854,61.649162000000047],[-65.453063999999983,61.651932000000102],[-65.449158000000011,61.653602999999976],[-65.441375999999934,61.656654000000003],[-65.43582200000003,61.658043000000021],[-65.339721999999938,61.670547000000056],[-65.247498000000007,61.68082400000003],[-65.174438000000009,61.686935000000119],[-65.068343999999968,61.693047000000092],[-65.036391999999921,61.693603999999993],[-65.018889999999885,61.692490000000021],[-65.016112999999962,61.692214999999976],[-64.99499499999996,61.689987000000031],[-64.733062999999959,61.659987999999998],[-64.719161999999983,61.658043000000021],[-64.646392999999932,61.603882000000112],[-64.646118000000001,61.599716000000001],[-64.650833000000034,61.594437000000028],[-64.65972899999997,61.588042999999971],[-64.662780999999995,61.587769000000037],[-64.714172000000019,61.556381000000044],[-64.720275999999956,61.551383999999928],[-64.726104999999961,61.542220999999927],[-64.723891999999921,61.53833000000003]],[[-65.695266999999888,61.776657],[-65.71945199999999,61.754165999999998],[-65.803054999999915,61.755554000000075],[-65.827224999999942,61.758049000000085],[-65.891388000000006,61.76638800000012],[-65.903885000000002,61.768326000000059],[-65.931106999999997,61.778328000000045],[-65.939163000000008,61.782210999999961],[-65.944442999999978,61.785828000000095],[-65.948043999999925,61.790276000000063],[-65.94749499999989,61.796104000000014],[-65.943877999999927,61.799720999999977],[-65.818344000000025,61.860825000000034],[-65.809432999999956,61.86332700000014],[-65.789992999999981,61.865547000000106],[-65.778060999999866,61.865547000000106],[-65.767501999999979,61.862770000000012],[-65.718613000000005,61.841102999999976],[-65.714721999999938,61.836937000000091],[-65.713622999999984,61.824165000000107],[-65.695266999999888,61.776657]],[[-92.963897999999972,61.879158000000075],[-92.995270000000005,61.851105000000132],[-93.00167799999997,61.847214000000065],[-93.051940999999943,61.829437000000041],[-93.07028200000002,61.825272000000041],[-93.079726999999991,61.826941999999974],[-93.086669999999913,61.829437000000041],[-93.115828999999962,61.860275000000001],[-93.120270000000005,61.864441000000113],[-93.126937999999882,61.868599000000074],[-93.135833999999988,61.872489999999914],[-93.14805599999994,61.87582400000008],[-93.179717999999923,61.875549000000092],[-93.189437999999996,61.874161000000015],[-93.211120999999935,61.875267000000008],[-93.218886999999995,61.87943300000012],[-93.223327999999981,61.888329000000056],[-93.226105000000018,61.908325000000048],[-93.223617999999931,61.913048000000003],[-93.218886999999995,61.918884000000048],[-93.20944199999991,61.921104000000071],[-93.072509999999909,61.929993000000138],[-93.062209999999993,61.930550000000039],[-92.96945199999999,61.888329000000056],[-92.962783999999999,61.884162999999944],[-92.963897999999972,61.879158000000075]],[[-64.916106999999954,61.719437000000084],[-64.926940999999943,61.718880000000013],[-64.951950000000011,61.722488000000112],[-65.14805599999994,61.780548000000067],[-65.156661999999926,61.783882000000062],[-65.210555999999883,61.816940000000045],[-65.214721999999881,61.821938000000046],[-65.251953000000015,61.869713000000047],[-65.255843999999968,61.885551000000078],[-65.255004999999926,61.901657000000057],[-65.249435000000005,61.91027100000008],[-65.245270000000005,61.914711000000125],[-65.189712999999983,61.945540999999992],[-65.170273000000009,61.947769000000108],[-65.156951999999876,61.946938000000102],[-65.080291999999929,61.931107000000111],[-65.074448000000018,61.928329000000133],[-65.06806899999998,61.923882000000049],[-65.039169000000015,61.899719000000118],[-64.980834999999956,61.885826000000066],[-64.893341000000021,61.829994000000113],[-64.886948000000018,61.825554000000068],[-64.828887999999893,61.766662999999994],[-64.825835999999981,61.761939999999981],[-64.825287000000003,61.758330999999998],[-64.828887999999893,61.752220000000079],[-64.83555599999994,61.748877999999991],[-64.858046999999942,61.739158999999972],[-64.889449999999954,61.725822000000107],[-64.906112999999948,61.721100000000035],[-64.916106999999954,61.719437000000084]],[[-65.852492999999924,62.084717000000012],[-65.869155999999919,62.079720000000123],[-65.889998999999989,62.080551000000128],[-65.913329999999974,62.084990999999945],[-66.009734999999978,62.116661000000079],[-66.016662999999994,62.120543999999995],[-66.020279000000016,62.124435000000062],[-66.021118000000001,62.128326000000129],[-66.020843999999954,62.131660000000124],[-66.014724999999942,62.136658000000125],[-65.991942999999935,62.141380000000026],[-65.928054999999972,62.151657],[-65.904449,62.152771000000143],[-65.853607000000011,62.131104000000107],[-65.845000999999911,62.124992000000134],[-65.83555599999994,62.115272999999945],[-65.835830999999928,62.099716000000114],[-65.843886999999995,62.088599999999985],[-65.852492999999924,62.084717000000012]],[[-92.223617999999931,62.355552999999986],[-92.306106999999997,62.351661999999919],[-92.339721999999995,62.354712999999947],[-92.34973100000002,62.356659000000036],[-92.371932999999956,62.386939999999925],[-92.372498000000007,62.391937000000041],[-92.354445999999939,62.410820000000115],[-92.347777999999948,62.414436000000023],[-92.319457999999941,62.415268000000083],[-92.308333999999945,62.414436000000023],[-92.162216000000001,62.402214000000015],[-92.139724999999999,62.399719000000005],[-92.141112999999905,62.394714000000135],[-92.15834000000001,62.390549000000135],[-92.223617999999931,62.355552999999986]],[[-79.540558000000033,62.411102000000028],[-79.449996999999939,62.382767000000001],[-79.442764000000011,62.379990000000078],[-79.433883999999978,62.371376000000055],[-79.429168999999945,62.361664000000076],[-79.427215999999987,62.356102000000135],[-79.424438000000009,62.344154000000117],[-79.420546999999942,62.339989000000116],[-79.359160999999972,62.296104000000071],[-79.347228999999913,62.288886999999988],[-79.328613000000018,62.283332999999971],[-79.272780999999952,62.262215000000083],[-79.266112999999962,62.258048999999971],[-79.260833999999988,62.253608999999983],[-79.256393000000003,62.244438000000002],[-79.255568999999923,62.23971599999993],[-79.261397999999929,62.163605000000018],[-79.262222000000008,62.158882000000062],[-79.329726999999991,62.01527400000009],[-79.353881999999999,61.999718000000144],[-79.396392999999932,61.968879999999956],[-79.457229999999925,61.893883000000017],[-79.461944999999957,61.881660000000011],[-79.465560999999923,61.876099000000124],[-79.524445000000014,61.811378000000104],[-79.541320999999925,61.799789000000089],[-79.552779999999927,61.796386999999982],[-79.568344000000025,61.790276000000063],[-79.583618000000001,61.783051],[-79.596664000000033,61.774436999999978],[-79.605269999999962,61.765273999999977],[-79.611114999999984,61.754440000000102],[-79.612777999999992,61.742767000000072],[-79.611938000000009,61.738045],[-79.608336999999949,61.732208000000014],[-79.606110000000001,61.726654000000053],[-79.605559999999969,61.721100000000035],[-79.607498000000021,61.708885000000123],[-79.628875999999934,61.669158999999979],[-79.632216999999969,61.664993000000038],[-79.642226999999991,61.655822999999998],[-79.65695199999999,61.642494000000113],[-79.740828999999962,61.588600000000099],[-79.75389100000001,61.580276000000026],[-79.761397999999929,61.576942000000031],[-79.779449,61.571938000000102],[-79.805831999999896,61.568054000000075],[-79.827788999999939,61.566665999999998],[-79.846114999999941,61.569992000000013],[-79.87110899999999,61.609717999999987],[-79.954178000000013,61.683601000000124],[-80.06806899999998,61.745270000000062],[-80.079453000000001,61.747772000000111],[-80.092223999999987,61.748046999999929],[-80.138610999999912,61.748604000000057],[-80.161941999999954,61.748604000000057],[-80.173324999999977,61.750275000000101],[-80.191665999999884,61.755554000000075],[-80.205276000000026,61.762772000000098],[-80.275283999999999,61.806656000000032],[-80.27806099999998,61.810272000000055],[-80.278884999999946,61.816382999999973],[-80.291381999999942,61.929993000000138],[-80.295273000000009,61.983604000000014],[-80.268616000000009,62.107215999999994],[-80.266662999999994,62.111382000000049],[-80.198607999999979,62.1988750000001],[-80.180283000000031,62.217491000000109],[-80.017501999999979,62.358604000000014],[-80.009445000000028,62.362495000000081],[-79.981383999999935,62.374161000000072],[-79.947220000000016,62.386108000000036],[-79.938048999999978,62.388603000000046],[-79.919723999999974,62.393051000000014],[-79.900283999999999,62.395828000000108],[-79.842772999999909,62.403603000000032],[-79.833617999999944,62.404160000000104],[-79.730834999999956,62.399162000000103],[-79.605559999999969,62.41304800000006],[-79.584166999999979,62.417213000000061],[-79.561934999999892,62.417213000000061],[-79.540558000000033,62.411102000000028]],[[-92.411117999999931,62.39388300000013],[-92.420546999999942,62.391663000000108],[-92.431380999999988,62.391663000000108],[-92.440825999999959,62.393608000000086],[-92.529175000000009,62.378326000000072],[-92.539443999999946,62.377212999999983],[-92.561385999999914,62.377486999999917],[-92.583892999999989,62.379990000000078],[-92.595839999999953,62.382491999999957],[-92.600554999999986,62.386939999999925],[-92.600280999999995,62.392494000000113],[-92.596953999999926,62.397774000000027],[-92.592772999999966,62.40248900000006],[-92.539992999999981,62.428329000000019],[-92.531112999999948,62.431380999999931],[-92.410278000000005,62.408882000000006],[-92.403884999999946,62.404709000000025],[-92.405563000000029,62.399436999999921],[-92.411117999999931,62.39388300000013]],[[-64.653884999999946,62.540833000000021],[-64.580840999999964,62.538605000000075],[-64.559722999999963,62.554161000000022],[-64.559998000000007,62.55860100000001],[-64.555556999999965,62.560822000000144],[-64.549727999999959,62.56221000000005],[-64.397506999999962,62.536385000000053],[-64.389724999999999,62.533882000000062],[-64.385284000000013,62.531105000000139],[-64.382767000000001,62.525825999999995],[-64.382767000000001,62.511383000000137],[-64.39416499999993,62.461379999999963],[-64.477218999999991,62.408043000000021],[-64.528609999999958,62.386658000000068],[-64.59056099999998,62.367210000000114],[-64.598891999999978,62.366385999999977],[-64.653610000000015,62.372490000000028],[-64.772781000000009,62.386383000000023],[-64.87110899999999,62.406380000000127],[-64.926666000000012,62.41832700000009],[-64.937209999999993,62.421103999999957],[-64.945830999999998,62.424438000000123],[-64.952498999999875,62.428329000000019],[-64.953887999999949,62.431380999999931],[-64.965835999999911,62.465827999999931],[-64.846114999999998,62.555267000000015],[-64.815552000000025,62.559714999999983],[-64.797500999999954,62.561378000000104],[-64.766953000000001,62.562767000000122],[-64.753066999999987,62.562492000000077],[-64.741669000000002,62.560822000000144],[-64.653884999999946,62.540833000000021]],[[-78.008347000000015,62.593605000000082],[-77.86721799999998,62.589157000000114],[-77.850554999999986,62.582771000000037],[-77.841674999999952,62.568054000000018],[-77.837783999999999,62.556938000000116],[-77.840835999999911,62.549995000000081],[-77.844726999999978,62.544716000000108],[-77.852782999999988,62.541664000000026],[-77.86221299999994,62.53943600000008],[-77.873046999999985,62.537773000000129],[-77.885009999999966,62.537498000000141],[-77.913054999999929,62.53943600000008],[-78.103333000000021,62.559158000000082],[-78.113051999999925,62.56221000000005],[-78.114440999999943,62.570549000000085],[-78.111664000000019,62.578049000000135],[-78.107772999999952,62.582771000000037],[-78.105835000000013,62.583328000000108],[-78.047500999999897,62.591934000000037],[-78.030838000000017,62.593323000000055],[-78.019164999999987,62.591934000000037],[-78.008347000000015,62.593605000000082]],[[-77.805267000000015,62.592491000000109],[-77.727218999999934,62.585822999999948],[-77.665832999999907,62.586655000000064],[-77.628052000000025,62.588326000000109],[-77.621384000000035,62.584435000000042],[-77.637787000000003,62.570831000000112],[-77.651108000000022,62.563881000000094],[-77.659164000000033,62.560822000000144],[-77.734725999999966,62.535827999999981],[-77.745270000000005,62.534163999999976],[-77.758620999999891,62.535553000000107],[-77.780288999999925,62.539161999999976],[-77.808608999999933,62.546660999999915],[-77.813613999999973,62.551102000000014],[-77.831116000000009,62.590271000000087],[-77.831679999999949,62.595825000000104],[-77.821121000000005,62.596099999999922],[-77.809433000000013,62.59415400000006],[-77.805267000000015,62.592491000000109]],[[-64.983063000000016,62.528046000000018],[-65.007232999999928,62.526382000000012],[-65.096389999999985,62.534996000000035],[-65.119720000000029,62.537498000000141],[-65.131942999999978,62.539719000000048],[-65.138061999999991,62.542770000000075],[-65.141677999999956,62.54694400000011],[-65.137787000000003,62.550544999999943],[-65.022507000000019,62.594994000000099],[-65.00306699999993,62.598877000000016],[-64.972503999999958,62.602493000000095],[-64.909163999999976,62.604438999999957],[-64.892501999999979,62.598877000000016],[-64.884734999999921,62.59415400000006],[-64.843886999999938,62.582771000000037],[-64.839447000000007,62.57777399999992],[-64.860824999999863,62.561378000000104],[-64.866104000000007,62.558044000000109],[-64.874435000000005,62.554709999999943],[-64.965285999999878,62.531380000000013],[-64.972778000000005,62.529716000000008],[-64.983063000000016,62.528046000000018]],[[-91.572783999999956,62.627487000000087],[-91.578612999999962,62.62193300000007],[-91.668059999999912,62.649162000000047],[-91.683059999999955,62.662209000000075],[-91.685546999999985,62.666939000000127],[-91.67582699999997,62.669159000000093],[-91.663329999999974,62.665543000000071],[-91.655272999999909,62.662209000000075],[-91.581954999999994,62.641380000000083],[-91.575561999999934,62.637215000000083],[-91.571121000000005,62.632767000000115],[-91.572783999999956,62.627487000000087]],[[-90.979995999999971,62.657767999999976],[-90.990279999999984,62.656654000000003],[-91.003341999999918,62.657211000000075],[-91.098891999999921,62.654433999999981],[-91.244719999999973,62.669991000000039],[-91.256393000000003,62.671936000000017],[-91.266952999999944,62.675552000000096],[-91.271117999999944,62.679992999999968],[-91.267226999999991,62.685546999999985],[-91.226944000000003,62.691658000000075],[-91.173049999999989,62.691375999999991],[-91.080291999999986,62.686935000000062],[-91.056106999999997,62.681664000000069],[-90.981673999999998,62.661376999999959],[-90.979995999999971,62.657767999999976]],[[-74.347778000000005,62.679436000000067],[-74.309998000000007,62.679161000000079],[-74.285552999999993,62.679992999999968],[-74.25028999999995,62.682495000000074],[-74.216109999999958,62.684990000000084],[-74.181670999999994,62.688880999999981],[-74.158889999999985,62.688880999999981],[-74.145843999999954,62.687767000000008],[-74.015839000000028,62.664993000000038],[-74.009170999999981,62.662490999999932],[-73.959732000000031,62.62082700000002],[-73.958054000000004,62.616661000000136],[-73.958054000000004,62.612495000000024],[-73.962508999999955,62.607772999999952],[-73.969727000000034,62.604163999999969],[-73.988602000000014,62.602218999999991],[-74.128875999999877,62.600829999999974],[-74.154448999999886,62.601105000000018],[-74.169158999999922,62.602218999999991],[-74.183608999999933,62.603882000000056],[-74.333618000000001,62.62943300000012],[-74.541381999999942,62.668327000000033],[-74.551102000000014,62.670829999999967],[-74.586394999999925,62.683051999999975],[-74.617217999999923,62.696098000000063],[-74.639724999999999,62.706383000000017],[-74.64973399999991,62.712769000000094],[-74.651397999999858,62.716934000000094],[-74.645844000000011,62.720824999999991],[-74.537215999999944,62.748878000000104],[-74.526671999999905,62.748878000000104],[-74.519164999999873,62.747772000000111],[-74.482772999999952,62.739716000000044],[-74.392226999999934,62.687210000000107],[-74.379989999999964,62.682495000000074],[-74.374160999999958,62.681381000000101],[-74.347778000000005,62.679436000000067]],[[-70.711670000000026,62.81499500000001],[-70.659728999999913,62.79833200000013],[-70.587783999999999,62.774162000000103],[-70.547500999999954,62.765273999999977],[-70.415557999999976,62.729156000000103],[-70.396956999999986,62.723045000000013],[-70.226104999999961,62.603049999999996],[-70.217772999999966,62.594437000000028],[-70.212218999999948,62.584160000000054],[-70.211120999999991,62.579163000000108],[-70.211945000000014,62.57777399999992],[-70.264724999999999,62.559158000000082],[-70.283324999999991,62.55443600000001],[-70.373610999999926,62.533332999999914],[-70.393065999999976,62.530273000000079],[-70.414444000000003,62.529434000000094],[-70.466659999999933,62.53166200000004],[-70.501113999999973,62.533607000000075],[-70.686385999999914,62.546104000000014],[-70.723891999999978,62.550270000000125],[-70.746383999999978,62.554709999999943],[-70.765015000000005,62.560547000000099],[-70.770844000000011,62.564712999999983],[-70.819732999999985,62.604713000000118],[-70.825011999999958,62.614441000000113],[-70.854445999999939,62.713608000000079],[-70.846663999999976,62.766106000000036],[-70.945540999999935,62.798050000000046],[-71.01916499999993,62.811934999999949],[-71.032500999999968,62.81249200000002],[-71.043334999999956,62.811934999999949],[-71.051665999999955,62.810547000000042],[-71.106383999999935,62.80082700000014],[-71.141113000000018,62.794998000000135],[-71.148620999999935,62.794998000000135],[-71.15834000000001,62.797217999999987],[-71.176101999999958,62.809158000000082],[-71.240554999999972,62.876380999999981],[-71.241378999999995,62.881378000000097],[-71.236389000000031,62.886658000000125],[-71.229445999999882,62.888046000000031],[-71.191100999999946,62.884720000000016],[-71.073897999999929,62.871933000000013],[-70.788054999999929,62.836104999999975],[-70.760283999999956,62.829994000000056],[-70.711670000000026,62.81499500000001]],[[-66.368331999999953,62.83526599999999],[-66.373885999999857,62.833603000000096],[-66.386123999999995,62.834434999999985],[-66.490279999999984,62.855270000000132],[-66.505279999999971,62.861382000000106],[-66.601669000000015,62.906654000000117],[-66.593886999999938,62.911934000000031],[-66.574172999999973,62.913048000000003],[-66.547775000000001,62.910545000000013],[-66.540282999999931,62.907493999999986],[-66.441939999999988,62.871101000000124],[-66.377776999999924,62.843322999999998],[-66.370270000000005,62.839713999999958],[-66.368331999999953,62.83526599999999]],[[-81.87110899999999,62.928329000000133],[-81.865554999999972,62.923324999999977],[-81.864165999999955,62.919990999999982],[-81.90695199999999,62.866386000000091],[-81.926101999999958,62.744156000000032],[-81.924712999999997,62.739158999999972],[-81.923889000000031,62.733046999999942],[-81.924164000000019,62.728325000000041],[-81.926101999999958,62.723602000000085],[-81.929169000000002,62.719437000000084],[-81.938598999999954,62.709991000000116],[-81.958892999999989,62.697768999999937],[-81.973052999999993,62.689713000000097],[-82.102218999999991,62.629158000000132],[-82.1875,62.599433999999917],[-82.277785999999935,62.584160000000054],[-82.286941999999897,62.581664999999987],[-82.315552000000025,62.571663000000058],[-82.369155999999919,62.547493000000031],[-82.381667999999991,62.53943600000008],[-82.387786999999946,62.534721000000047],[-82.40194699999995,62.520546000000138],[-82.40834000000001,62.509720000000016],[-82.408889999999928,62.496657999999968],[-82.414444000000003,62.478043000000071],[-82.425811999999951,62.469986000000063],[-82.442214999999919,62.458603000000096],[-82.449722000000008,62.455269000000101],[-82.499434999999949,62.438599000000124],[-82.533889999999985,62.428604000000064],[-82.551940999999999,62.423881999999992],[-82.583617999999944,62.412766000000033],[-82.621384000000035,62.395271000000037],[-82.641113000000018,62.385269000000051],[-82.647232000000031,62.38110400000005],[-82.670273000000009,62.35943600000013],[-82.688599000000011,62.341103000000089],[-82.713057999999933,62.321381000000031],[-82.731383999999935,62.309990000000084],[-82.743606999999997,62.302489999999977],[-82.769164999999987,62.290276000000006],[-82.985549999999989,62.209717000000126],[-83.001953000000015,62.204437000000041],[-83.087783999999999,62.178879000000109],[-83.121932999999956,62.173050000000103],[-83.136397999999986,62.173050000000103],[-83.143889999999999,62.176659000000086],[-83.150832999999977,62.182770000000005],[-83.15943900000002,62.198600999999996],[-83.168059999999912,62.207497000000103],[-83.176392000000021,62.213051000000064],[-83.198607999999979,62.222214000000065],[-83.249435000000005,62.240829000000019],[-83.275832999999977,62.248604000000114],[-83.308043999999882,62.252777000000037],[-83.322784000000013,62.253052000000082],[-83.337783999999942,62.252219999999966],[-83.359726000000023,62.249718000000087],[-83.405562999999972,62.238884000000041],[-83.471938999999907,62.222763000000043],[-83.480835000000013,62.219986000000119],[-83.498885999999914,62.213326000000109],[-83.513335999999924,62.20638300000013],[-83.539992999999924,62.191933000000006],[-83.57417299999986,62.176384000000098],[-83.639174999999966,62.151100000000099],[-83.653885000000002,62.145827999999995],[-83.672774999999945,62.141106000000093],[-83.683318999999983,62.139717000000076],[-83.703887999999949,62.141662999999994],[-83.709441999999967,62.144440000000088],[-83.713897999999972,62.147216999999955],[-83.71833799999996,62.152214000000072],[-83.722778000000005,62.160271000000023],[-83.722778000000005,62.167213000000118],[-83.718063000000029,62.17943600000001],[-83.711945000000014,62.217209000000025],[-83.711669999999913,62.235825000000034],[-83.721389999999985,62.281662000000097],[-83.722778000000005,62.286385000000109],[-83.725829999999917,62.295273000000066],[-83.731673999999998,62.303604000000007],[-83.738892000000021,62.306937999999946],[-83.756667999999991,62.312492000000134],[-83.783324999999991,62.31888600000002],[-83.806655999999975,62.326385000000016],[-83.824448000000018,62.337212000000022],[-83.902495999999871,62.387497000000053],[-83.918610000000001,62.399162000000103],[-83.933608999999876,62.412209000000132],[-83.942489999999964,62.421661000000029],[-83.945267000000001,62.42721599999993],[-83.946654999999964,62.434158000000025],[-83.946654999999964,62.440269000000114],[-83.945267000000001,62.447212000000093],[-83.939162999999951,62.457497000000046],[-83.914168999999958,62.478600000000142],[-83.908339999999953,62.482764999999972],[-83.869445999999982,62.501105999999936],[-83.853058000000033,62.508049000000142],[-83.814437999999996,62.523880000000077],[-83.741378999999995,62.551658999999916],[-83.704177999999956,62.569443000000035],[-83.698043999999925,62.573051000000135],[-83.570007000000032,62.675270000000012],[-83.559433000000013,62.684157999999968],[-83.550277999999935,62.69999700000011],[-83.545546999999999,62.712212000000022],[-83.545546999999999,62.71776600000004],[-83.551392000000021,62.726653999999996],[-83.555831999999953,62.731659000000036],[-83.558884000000035,62.743881000000044],[-83.533614999999884,62.810272000000055],[-83.527495999999928,62.8211060000001],[-83.523055999999997,62.825271999999984],[-83.516953000000001,62.829994000000056],[-83.400283999999999,62.897491000000116],[-83.374160999999958,62.906937000000084],[-83.31082200000003,62.924438000000066],[-83.298614999999984,62.925827000000027],[-83.211670000000026,62.913605000000075],[-83.204177999999956,62.91027100000008],[-83.198333999999988,62.906654000000117],[-83.193877999999984,62.901932000000045],[-83.182495000000017,62.881378000000097],[-83.178054999999915,62.876380999999981],[-83.156112999999948,62.860549999999989],[-83.142501999999979,62.854439000000127],[-83.124709999999936,62.84804500000007],[-83.108337000000006,62.843322999999998],[-83.087509000000011,62.840271000000087],[-83.061935000000005,62.837493999999992],[-83.041107000000011,62.837212000000079],[-83.021392999999989,62.838599999999985],[-83.001677999999913,62.842491000000052],[-82.982223999999917,62.847771000000137],[-82.857497999999964,62.88999200000012],[-82.825561999999991,62.90277100000003],[-82.793335000000013,62.915543000000014],[-82.759734999999921,62.926940999999999],[-82.751952999999901,62.928878999999938],[-82.694442999999978,62.939430000000073],[-82.652221999999995,62.943878000000041],[-82.62470999999988,62.945540999999935],[-82.606658999999979,62.945540999999935],[-82.573623999999995,62.943878000000041],[-82.540833000000021,62.939430000000073],[-82.507781999999963,62.933601000000067],[-82.461394999999982,62.927489999999977],[-82.436110999999983,62.925270000000125],[-82.420837000000006,62.924995000000138],[-82.398055999999883,62.927489999999977],[-82.381377999999984,62.932770000000005],[-82.378052000000025,62.936377999999934],[-82.376389000000017,62.941101000000117],[-82.379165999999998,62.946655000000135],[-82.383620999999948,62.95138500000013],[-82.379989999999964,62.957497000000103],[-82.37222300000002,62.960274000000027],[-82.292770000000019,62.98333000000008],[-82.266662999999937,62.989159000000086],[-82.239440999999999,62.990273000000059],[-82.185821999999916,62.979988000000105],[-82.121932999999956,62.966660000000104],[-82.008057000000008,62.954993999999942],[-81.94027699999998,62.95387999999997],[-81.911666999999966,62.952217000000076],[-81.905838000000017,62.949997000000053],[-81.87110899999999,62.928329000000133]],[[-66.825561999999991,62.984161000000086],[-66.831389999999999,62.982765000000029],[-66.871384000000035,62.988884000000041],[-66.881942999999978,62.991661000000136],[-66.889450000000011,62.995269999999948],[-67.069457999999997,63.107498000000021],[-67.032776000000013,63.103881999999999],[-66.965285999999992,63.082496999999989],[-66.952224999999999,63.078049000000021],[-66.946105999999872,63.07499700000011],[-66.944442999999922,63.072768999999994],[-66.930557000000022,63.066939999999988],[-66.917496000000028,63.059715000000097],[-66.907501000000025,63.052773000000002],[-66.830001999999922,62.992493000000081],[-66.826950000000011,62.989990000000091],[-66.825011999999958,62.985550000000046],[-66.825561999999991,62.984161000000086]],[[-67.764450000000011,63.162491000000045],[-67.775833000000034,63.1616590000001],[-67.787505999999951,63.163048000000117],[-67.79861499999987,63.165543000000127],[-67.806380999999988,63.168602000000135],[-67.851943999999946,63.191376000000105],[-67.863327000000027,63.199158000000011],[-67.876388999999961,63.211937000000091],[-67.876937999999996,63.216933999999981],[-67.875,63.22304500000007],[-67.866393999999957,63.232491000000039],[-67.852218999999877,63.244438000000002],[-67.84445199999999,63.247215000000097],[-67.839721999999995,63.247215000000097],[-67.831954999999994,63.244155999999919],[-67.821945000000028,63.236656000000039],[-67.822234999999921,63.233330000000024],[-67.816101000000003,63.23054499999995],[-67.791671999999949,63.214996000000042],[-67.769454999999994,63.198326000000122],[-67.746108999999933,63.178879000000109],[-67.744720000000029,63.173050000000103],[-67.746384000000035,63.166939000000013],[-67.764450000000011,63.162491000000045]],[[-67.925003000000004,63.183327000000077],[-67.956116000000009,63.181107000000054],[-67.966949,63.183875999999998],[-68.000838999999985,63.208046000000024],[-68.017226999999991,63.220543000000021],[-68.061385999999914,63.257773999999984],[-68.105834999999956,63.299438000000066],[-68.111663999999962,63.309158000000139],[-68.112212999999997,63.313606000000107],[-68.106383999999991,63.318604000000107],[-68.096953999999926,63.318885999999964],[-68.085555999999997,63.316101000000117],[-68.069167999999877,63.309432999999956],[-68.048889000000031,63.297493000000088],[-68.032227000000034,63.284996000000092],[-68.00028999999995,63.260276999999917],[-67.92582699999997,63.196098000000006],[-67.920546999999999,63.191376000000105],[-67.916945999999939,63.186653000000092],[-67.925003000000004,63.183327000000077]],[[-78.079726999999991,63.469436999999914],[-77.946105999999986,63.468048000000124],[-77.937774999999988,63.471100000000035],[-77.930556999999965,63.474991000000102],[-77.924164000000019,63.47693600000008],[-77.911941999999954,63.476379000000009],[-77.845001000000025,63.472214000000008],[-77.680557000000022,63.434433000000013],[-77.636672999999917,63.402771000000087],[-77.495834000000002,63.274994000000106],[-77.493880999999988,63.269989000000066],[-77.49499499999996,63.265831000000105],[-77.50389100000001,63.252494999999954],[-77.573333999999932,63.200546000000145],[-77.641953000000001,63.171936000000073],[-77.785277999999892,63.121658000000139],[-77.898894999999925,63.09276600000004],[-77.906661999999983,63.09165999999999],[-77.931380999999931,63.090546000000018],[-77.946655000000021,63.091103000000089],[-77.958343999999954,63.093048000000124],[-78.025008999999898,63.11721],[-78.124709999999993,63.165825000000041],[-78.226944000000003,63.221656999999993],[-78.295546999999999,63.25999500000006],[-78.311385999999914,63.272217000000012],[-78.322234999999978,63.281105000000025],[-78.343613000000005,63.29694400000011],[-78.354445999999996,63.303604000000121],[-78.446655000000021,63.350273000000129],[-78.486937999999896,63.364998000000071],[-78.519729999999981,63.370270000000005],[-78.523894999999982,63.372489999999971],[-78.562499999999943,63.395828000000108],[-78.572234999999921,63.434715000000097],[-78.572783999999956,63.440269000000114],[-78.551665999999955,63.44499200000007],[-78.379989999999964,63.476379000000009],[-78.278885000000002,63.489716000000044],[-78.214111000000003,63.496535999999992],[-78.212783999999999,63.496101000000067],[-78.158614999999884,63.482208000000014],[-78.091675000000009,63.470543000000134],[-78.079726999999991,63.469436999999914]],[[-90.653884999999946,63.441101000000003],[-90.697495000000004,63.439713000000097],[-90.708892999999932,63.440544000000102],[-90.719161999999983,63.443603999999993],[-90.72582999999986,63.448043999999982],[-90.755004999999983,63.489716000000044],[-90.757232999999985,63.494438000000116],[-90.748046999999929,63.498329000000012],[-90.737502999999947,63.499161000000129],[-90.645553999999947,63.483330000000137],[-90.620269999999948,63.47693600000008],[-90.602782999999988,63.463882000000012],[-90.598052999999993,63.454436999999984],[-90.602218999999991,63.449158000000011],[-90.611937999999952,63.44609800000012],[-90.621932999999956,63.444153000000142],[-90.653884999999946,63.441101000000003]],[[-78.55749499999996,63.457497000000046],[-78.600554999999929,63.456383000000017],[-78.603333000000021,63.45777099999998],[-78.56138599999997,63.502495000000124],[-78.543334999999956,63.516106000000093],[-78.515839000000028,63.53166200000004],[-78.505004999999869,63.532493999999929],[-78.496108999999933,63.529434000000094],[-78.473327999999981,63.519157000000121],[-78.468063000000029,63.515549000000021],[-78.46166999999997,63.507499999999993],[-78.459166999999979,63.479988000000048],[-78.461945000000014,63.47387700000013],[-78.467223999999987,63.469436999999914],[-78.475554999999986,63.466933999999981],[-78.531113000000005,63.458603000000039],[-78.55749499999996,63.457497000000046]],[[-90.793609999999944,63.494156000000089],[-90.804442999999935,63.493324000000143],[-90.816956000000005,63.495827000000133],[-90.877212999999983,63.514717000000076],[-90.933318999999983,63.534164000000089],[-90.965835999999967,63.54583000000008],[-90.96833799999996,63.550270000000125],[-90.957503999999972,63.551384000000098],[-90.771117999999944,63.55193300000002],[-90.748046999999929,63.550270000000125],[-90.720001000000025,63.543052999999986],[-90.709731999999974,63.539992999999924],[-90.700835999999981,63.536110000000008],[-90.681380999999988,63.52304799999996],[-90.676940999999886,63.518599999999992],[-90.674712999999997,63.513884999999959],[-90.678604000000007,63.508330999999998],[-90.688889000000017,63.50638600000002],[-90.793609999999944,63.494156000000089]],[[-64.851944000000003,63.385826000000122],[-64.856948999999986,63.385826000000122],[-64.882216999999969,63.395546000000024],[-64.904175000000009,63.40638000000007],[-64.918335000000013,63.413879000000065],[-64.942215000000033,63.43082400000003],[-64.950835999999924,63.439156000000025],[-65.026672000000019,63.515549000000021],[-65.035278000000005,63.524436999999978],[-65.053054999999972,63.548331999999959],[-65.051940999999999,63.552215999999987],[-64.977218999999991,63.568329000000062],[-64.967498999999918,63.568329000000062],[-64.954726999999991,63.558883999999978],[-64.954726999999991,63.553879000000109],[-64.93360899999999,63.544716000000108],[-64.912216000000001,63.533333000000084],[-64.909163999999976,63.528603000000089],[-64.867492999999911,63.461662000000047],[-64.860824999999863,63.447212000000093],[-64.847504000000015,63.407494000000042],[-64.844726999999978,63.396942000000081],[-64.847778000000005,63.387496999999996],[-64.851944000000003,63.385826000000122]],[[-72.182495000000017,63.51998900000001],[-72.207503999999972,63.51998900000001],[-72.218886999999995,63.522491000000059],[-72.226943999999946,63.525825999999995],[-72.232772999999895,63.530273000000022],[-72.286666999999909,63.583328000000108],[-72.279174999999952,63.585548000000131],[-72.232223999999917,63.586655000000064],[-72.230285999999978,63.587212000000136],[-72.205276000000026,63.583054000000004],[-72.184432999999956,63.577217000000019],[-72.135559000000001,63.562767000000065],[-72.129165999999998,63.558883999999978],[-72.128052000000025,63.553879000000109],[-72.145003999999972,63.539436000000023],[-72.165833000000021,63.526381999999955],[-72.173614999999984,63.522766000000104],[-72.182495000000017,63.51998900000001]],[[-91.329177999999956,63.559714999999983],[-91.401947000000007,63.549438000000009],[-91.424438000000009,63.550270000000125],[-91.43638599999997,63.55193300000002],[-91.461944999999901,63.558327000000077],[-91.540282999999931,63.601662000000033],[-91.540558000000033,63.606658999999979],[-91.534164000000033,63.611381999999935],[-91.501113999999973,63.611938000000123],[-91.463897999999915,63.6097180000001],[-91.440826000000015,63.608047000000056],[-91.428604000000007,63.606383999999935],[-91.416396999999961,63.603607000000068],[-91.362503000000004,63.590271000000087],[-91.34944200000001,63.586655000000064],[-91.299727999999959,63.567771999999934],[-91.308884000000035,63.563881000000094],[-91.329177999999956,63.559714999999983]],[[-64.092498999999918,63.481659000000093],[-64.101944000000003,63.47943099999992],[-64.109160999999915,63.483046999999999],[-64.169448999999986,63.523605000000089],[-64.180556999999965,63.533051000000057],[-64.184158000000025,63.537216000000058],[-64.209166999999979,63.574996999999996],[-64.216109999999901,63.595268000000033],[-64.216948999999943,63.601105000000132],[-64.215285999999935,63.617493000000024],[-64.212783999999942,63.623604000000114],[-64.199722000000008,63.633331000000055],[-64.191939999999988,63.637215000000083],[-64.182495000000017,63.639435000000105],[-64.17193599999996,63.633606000000043],[-64.09333799999996,63.568329000000062],[-64.078338999999914,63.550545000000113],[-64.077224999999999,63.545273000000009],[-64.077788999999882,63.539718999999991],[-64.086120999999935,63.493050000000039],[-64.087508999999955,63.486655999999982],[-64.092498999999918,63.481659000000093]],[[-68.656386999999938,63.626381000000038],[-68.717772999999909,63.624161000000015],[-68.731109999999944,63.625549000000092],[-68.815552000000025,63.649162000000047],[-68.821670999999981,63.652488999999946],[-68.820007000000032,63.65526600000004],[-68.793059999999969,63.661659000000043],[-68.71444699999995,63.672493000000088],[-68.691665999999941,63.673607000000061],[-68.676940999999999,63.671379000000115],[-68.668883999999935,63.668326999999977],[-68.666397000000018,63.663879000000009],[-68.666259999999966,63.662581999999986],[-68.655272999999966,63.634437999999989],[-68.654449,63.630272000000105],[-68.656386999999938,63.626381000000038]],[[-64.061110999999983,63.270546000000138],[-64.070556999999951,63.268326000000116],[-64.078338999999914,63.268883000000017],[-64.181945999999982,63.29694400000011],[-64.25140399999998,63.320830999999998],[-64.266953000000001,63.326384999999959],[-64.349730999999963,63.392220000000009],[-64.353881999999885,63.395828000000108],[-64.421936000000017,63.471657000000107],[-64.496108999999876,63.6097180000001],[-64.490554999999972,63.620544000000052],[-64.479171999999949,63.636940000000038],[-64.473617999999874,63.640549000000078],[-64.386672999999973,63.675270000000012],[-64.377212999999927,63.677489999999977],[-64.367217999999923,63.675270000000012],[-64.363051999999925,63.671936000000017],[-64.328888000000006,63.644440000000145],[-64.325561999999934,63.637496999999939],[-64.325561999999934,63.59804500000007],[-64.324447999999961,63.588042999999971],[-64.321670999999981,63.577492000000063],[-64.316101000000003,63.562492000000077],[-64.262511999999958,63.421104000000128],[-64.232498000000021,63.388329000000113],[-64.225280999999939,63.384438000000046],[-64.20666499999993,63.384163000000001],[-64.166945999999996,63.369438000000059],[-64.144729999999925,63.355552999999986],[-64.099990999999932,63.322769000000108],[-64.057495000000017,63.278046000000018],[-64.057495000000017,63.273880000000133],[-64.061110999999983,63.270546000000138]],[[-71.799164000000019,63.615546999999935],[-71.806945999999868,63.611938000000123],[-71.845275999999956,63.613608999999997],[-71.855269999999905,63.615829000000019],[-71.863327000000027,63.619438000000002],[-71.865829000000019,63.624435000000119],[-71.865829000000019,63.636383000000137],[-71.864166000000012,63.669440999999949],[-71.830565999999919,63.693878000000041],[-71.821945000000028,63.695267000000058],[-71.789444000000003,63.691375999999991],[-71.779449,63.68832400000008],[-71.775283999999999,63.683051999999918],[-71.777221999999938,63.670830000000137],[-71.791107000000011,63.627213000000097],[-71.799164000000019,63.615546999999935]],[[-76.810546999999985,63.601105000000132],[-76.710555999999997,63.565826000000072],[-76.672225999999966,63.528877000000023],[-76.675551999999925,63.496658000000139],[-76.681609999999978,63.481354000000067],[-76.61332699999997,63.473602000000085],[-76.565551999999911,63.46776600000004],[-76.546111999999994,63.464714000000129],[-76.541945999999939,63.462494000000106],[-76.543883999999991,63.461104999999918],[-76.675002999999947,63.374709999999993],[-76.682219999999973,63.370827000000077],[-76.692214999999976,63.367767000000015],[-76.703338999999971,63.365829000000076],[-76.712783999999942,63.365546999999992],[-76.726105000000018,63.36693600000001],[-76.847778000000005,63.385269000000051],[-76.984160999999915,63.40638000000007],[-77.035277999999948,63.423882000000106],[-77.039443999999946,63.426102000000128],[-77.046111999999994,63.42971799999998],[-77.051391999999964,63.434158000000025],[-77.05360399999995,63.436935000000119],[-77.055556999999965,63.442764000000125],[-77.06138599999997,63.450546000000088],[-77.105834999999956,63.476654000000053],[-77.111663999999962,63.479713000000004],[-77.327788999999996,63.572220000000129],[-77.36721799999998,63.583054000000004],[-77.391388000000006,63.585548000000131],[-77.411666999999966,63.584991000000002],[-77.422226000000023,63.586655000000064],[-77.427779999999984,63.589157000000114],[-77.431945999999982,63.591934000000037],[-77.442215000000033,63.608330000000024],[-77.457229999999981,63.643325999999945],[-77.453887999999949,63.652214000000129],[-77.44027699999998,63.665268000000026],[-77.410277999999948,63.686652999999978],[-77.40055799999999,63.688880999999981],[-77.378051999999968,63.692214999999919],[-77.343338000000017,63.696098000000063],[-77.116942999999935,63.681107000000111],[-77.103332999999964,63.67971799999998],[-77.06138599999997,63.672768000000076],[-77.021392999999932,63.664154000000053],[-76.810546999999985,63.601105000000132]],[[-72.594727000000034,63.642494000000056],[-72.604445999999939,63.641663000000051],[-72.780563000000029,63.659987999999942],[-72.783324999999877,63.66443600000008],[-72.770553999999947,63.669715999999994],[-72.756667999999877,63.672768000000076],[-72.723052999999993,63.67860399999995],[-72.506667999999991,63.707214000000022],[-72.483886999999982,63.708885000000066],[-72.474166999999909,63.705826000000116],[-72.470839999999953,63.702217000000076],[-72.471389999999985,63.700828999999999],[-72.468886999999938,63.699158000000125],[-72.463333000000034,63.689156000000139],[-72.459731999999974,63.679161000000079],[-72.46055599999994,63.672768000000076],[-72.463897999999972,63.668326999999977],[-72.584441999999967,63.644440000000145],[-72.594727000000034,63.642494000000056]],[[-64.032501000000025,63.68971300000004],[-64.161117999999988,63.674438000000066],[-64.181106999999997,63.675827000000083],[-64.200286999999946,63.685546999999985],[-64.208344000000011,63.697487000000081],[-64.21166999999997,63.706383000000017],[-64.212509000000011,63.712212000000022],[-64.208892999999989,63.721930999999984],[-64.180283000000031,63.742218000000094],[-64.17471299999994,63.745270000000005],[-64.166655999999989,63.747772000000055],[-64.083069000000023,63.758331000000112],[-64.078063999999983,63.758331000000112],[-64.075287000000003,63.758049000000028],[-64.073333999999932,63.756386000000134],[-64.054840000000013,63.736595000000079],[-64.043335000000013,63.734161000000086],[-64.030288999999982,63.729713000000118],[-64.025283999999942,63.70249200000012],[-64.025283999999942,63.697487000000081],[-64.026397999999915,63.693878000000041],[-64.032501000000025,63.68971300000004]],[[-72.667769999999962,63.69582400000013],[-72.6949919999999,63.690269000000058],[-72.703613000000018,63.692490000000134],[-72.734160999999972,63.710823000000005],[-72.738891999999908,63.714439000000084],[-72.741669000000002,63.719711000000018],[-72.743880999999874,63.730270000000019],[-72.739989999999977,63.736107000000004],[-72.719727000000034,63.76388500000013],[-72.715560999999923,63.766106000000036],[-72.705841000000021,63.767494000000113],[-72.693877999999984,63.765830999999991],[-72.682495000000017,63.762214999999969],[-72.664718999999934,63.755554000000018],[-72.642226999999934,63.745270000000005],[-72.635833999999988,63.741379000000109],[-72.626663000000008,63.732207999999957],[-72.625823999999966,63.727486000000056],[-72.626389000000017,63.721099999999979],[-72.634170999999981,63.709160000000054],[-72.649993999999992,63.701385000000016],[-72.667769999999962,63.69582400000013]],[[-64.28443900000002,63.708602999999982],[-64.286391999999978,63.708046000000081],[-64.311110999999926,63.709991000000116],[-64.329178000000013,63.71665999999999],[-64.336394999999925,63.719986000000006],[-64.348617999999988,63.728042999999957],[-64.356948999999986,63.736938000000009],[-64.363616999999977,63.746383999999978],[-64.381103999999993,63.807495000000131],[-64.35943599999996,63.803879000000052],[-64.339721999999938,63.796943999999996],[-64.331954999999994,63.791663999999969],[-64.302779999999927,63.78054800000001],[-64.278610000000015,63.770828000000108],[-64.275008999999955,63.766663000000108],[-64.255279999999971,63.729713000000118],[-64.255004999999926,63.72526600000009],[-64.260833999999875,63.719711000000018],[-64.28443900000002,63.708602999999982]],[[-64.170273000000009,63.856384000000105],[-64.180831999999896,63.785270999999966],[-64.195267000000001,63.778603000000032],[-64.203338999999971,63.776382000000126],[-64.234435999999903,63.771378000000141],[-64.245834000000002,63.771378000000141],[-64.256957999999997,63.774162000000103],[-64.325561999999934,63.80582400000003],[-64.398346000000004,63.845543000000134],[-64.39916999999997,63.849434000000031],[-64.397780999999895,63.851386999999988],[-64.396117999999944,63.851936000000137],[-64.353881999999885,63.861107000000061],[-64.334091000000001,63.852081000000055],[-64.325561999999934,63.850273000000016],[-64.31082200000003,63.848328000000038],[-64.268340999999907,63.846100000000035],[-64.215012000000002,63.850273000000016],[-64.208344000000011,63.852776000000006],[-64.200286999999946,63.859718000000044],[-64.186661000000015,63.86721],[-64.179992999999911,63.865547000000106],[-64.175827000000027,63.861938000000066],[-64.170273000000009,63.856384000000105]],[[-92.954178000000013,63.871101000000067],[-92.96055599999994,63.866386000000034],[-92.972778000000005,63.867767000000072],[-92.998610999999983,63.873046999999985],[-93.068619000000012,63.888046000000031],[-93.093886999999995,63.899994000000049],[-93.094451999999933,63.904990999999995],[-93.087783999999999,63.908882000000062],[-93.070007000000032,63.909713999999951],[-93.002791999999943,63.911377000000073],[-92.990829000000019,63.910820000000001],[-92.978333000000021,63.908324999999991],[-92.97444200000001,63.901657],[-92.955275999999969,63.880820999999969],[-92.952498999999989,63.876099000000067],[-92.954178000000013,63.871101000000067]],[[-64.576110999999855,63.780822999999998],[-64.525832999999977,63.771378000000141],[-64.467772999999966,63.771378000000141],[-64.461945000000014,63.774712000000136],[-64.452498999999989,63.777214000000015],[-64.432769999999948,63.779434000000037],[-64.426102000000014,63.777771000000087],[-64.394729999999981,63.745827000000077],[-64.387511999999958,63.737495000000081],[-64.386123999999938,63.73443600000013],[-64.386123999999938,63.701660000000004],[-64.389998999999932,63.696381000000031],[-64.404175000000009,63.687492000000134],[-64.419158999999979,63.67971799999998],[-64.436385999999914,63.673324999999977],[-64.450561999999934,63.671660999999972],[-64.459441999999967,63.672768000000076],[-64.47444200000001,63.679161000000079],[-64.496947999999918,63.690826000000129],[-64.661666999999909,63.754997000000117],[-64.802215999999987,63.764442000000031],[-64.813323999999966,63.767212000000029],[-64.890288999999939,63.789435999999966],[-64.90055799999999,63.793883999999935],[-64.906386999999995,63.797493000000145],[-64.916396999999904,63.806380999999931],[-64.918335000000013,63.815269000000114],[-64.920272999999952,63.824715000000083],[-64.917769999999905,63.831108000000029],[-64.910277999999948,63.837212000000079],[-64.896392999999989,63.845267999999976],[-64.811660999999958,63.87721300000004],[-64.710555999999997,63.908882000000062],[-64.682494999999903,63.91443600000008],[-64.660278000000005,63.916382000000112],[-64.647231999999974,63.916100000000085],[-64.557219999999916,63.909988000000112],[-64.553054999999915,63.906380000000013],[-64.549437999999952,63.895271000000093],[-64.571121000000005,63.870827000000133],[-64.585555999999997,63.844994000000042],[-64.576110999999855,63.780822999999998]],[[-77.743880999999931,63.926658999999916],[-77.753341999999975,63.925551999999982],[-77.948607999999979,63.950829000000113],[-77.956954999999937,63.95388000000014],[-77.966948999999886,63.959160000000054],[-77.978881999999999,63.96915400000006],[-77.982497999999964,63.97554800000006],[-77.982497999999964,63.983047000000056],[-77.976105000000018,63.990273000000059],[-77.957503999999972,64.004715000000033],[-77.950287000000003,64.009155000000021],[-77.943603999999993,64.011107999999979],[-77.923889000000031,64.014999000000046],[-77.889998999999989,64.019989000000066],[-77.774445000000014,64.031662000000097],[-77.753890999999953,64.032761000000107],[-77.648620999999991,64.032486000000063],[-77.591110000000015,64.030272999999966],[-77.557219999999973,64.028046000000074],[-77.549727999999959,64.025543000000084],[-77.544448999999986,64.021927000000062],[-77.545273000000009,64.018600000000106],[-77.623610999999983,63.997214999999926],[-77.623885999999914,63.99582700000002],[-77.628052000000025,63.991104000000064],[-77.639450000000011,63.981934000000024],[-77.68638599999997,63.954437000000041],[-77.728606999999954,63.932213000000104],[-77.737212999999883,63.928329000000076],[-77.743880999999931,63.926658999999916]],[[-89.808884000000035,64.056366000000082],[-89.817229999999938,64.054703000000131],[-89.828887999999893,64.055816999999934],[-89.839447000000007,64.058868000000132],[-89.847778000000005,64.063034000000073],[-89.861114999999984,64.071655000000135],[-89.869995000000017,64.080826000000116],[-89.871933000000013,64.085541000000148],[-89.867767000000015,64.095824999999991],[-89.857498000000021,64.0977630000001],[-89.831679999999892,64.091094999999939],[-89.828063999999927,64.088318000000072],[-89.819732999999928,64.080276000000083],[-89.80471799999998,64.0619200000001],[-89.808884000000035,64.056366000000082]],[[-64.962783999999999,64.110809000000074],[-64.948607999999979,64.109710999999947],[-64.903609999999901,64.111099000000081],[-64.87110899999999,64.099152000000117],[-64.869445999999982,64.096649000000127],[-64.869995000000017,64.093323000000112],[-64.87332200000003,64.090820000000122],[-64.884445000000028,64.086655000000121],[-64.905563000000029,64.082214000000022],[-64.946655000000021,64.078872999999987],[-64.988892000000021,64.081375000000037],[-65.002228000000002,64.083878000000027],[-65.02305599999994,64.089432000000045],[-65.045546999999942,64.099426000000051],[-65.055556999999965,64.108596999999975],[-65.057495000000017,64.11303700000002],[-65.056380999999931,64.117203000000075],[-65.05221599999993,64.121093999999971],[-65.039718999999934,64.124985000000038],[-65.025009000000011,64.127472000000125],[-65.015563999999927,64.126922999999977],[-64.995270000000005,64.12303199999991],[-64.989990000000034,64.118590999999981],[-64.980834999999956,64.115265000000136],[-64.962783999999999,64.110809000000074]],[[-64.491104000000007,64.109146000000123],[-64.499999999999943,64.10803199999998],[-64.511397999999929,64.108321999999987],[-64.587508999999955,64.147491000000059],[-64.592498999999975,64.151931999999988],[-64.595276000000013,64.15498400000007],[-64.59584000000001,64.156647000000021],[-64.567779999999971,64.163605000000018],[-64.554169000000002,64.166931000000034],[-64.524444999999957,64.167206000000022],[-64.518111999999917,64.166214000000025],[-64.50111400000003,64.163314999999955],[-64.453339000000028,64.146942000000081],[-64.450287000000003,64.130264000000011],[-64.491104000000007,64.109146000000123]],[[-73.176940999999999,64.200271999999984],[-73.282776000000013,64.143326000000059],[-73.291945999999939,64.14387499999998],[-73.386397999999872,64.158874999999966],[-73.396956999999986,64.161102000000028],[-73.401672000000019,64.165543000000127],[-73.394729999999925,64.187759000000085],[-73.393065999999919,64.192474000000118],[-73.385559000000001,64.196365000000014],[-73.309433000000013,64.194977000000108],[-73.206664999999987,64.213882000000069],[-73.189986999999917,64.212203999999929],[-73.178054999999972,64.209991000000002],[-73.17332499999992,64.205261000000121],[-73.176940999999999,64.200271999999984]],[[-81.471389999999985,64.188873000000058],[-81.493606999999997,64.188309000000118],[-81.516112999999962,64.190536000000009],[-81.527785999999992,64.194137999999953],[-81.536666999999852,64.208603000000096],[-81.538054999999929,64.218048000000124],[-81.532226999999921,64.223038000000031],[-81.470000999999911,64.239426000000094],[-81.458618000000001,64.238876000000062],[-81.413329999999974,64.233322000000044],[-81.390288999999939,64.229155999999932],[-81.378601000000003,64.22554000000008],[-81.375823999999909,64.220825000000048],[-81.374999999999943,64.215820000000008],[-81.378875999999934,64.211929000000112],[-81.388901000000033,64.204987000000017],[-81.405272999999909,64.19470200000012],[-81.471389999999985,64.188873000000058]],[[-64.52027899999996,64.220261000000107],[-64.576401000000033,64.210541000000035],[-64.601668999999958,64.212493999999992],[-64.611938000000009,64.215820000000008],[-64.619445999999925,64.219711000000075],[-64.646956999999986,64.244141000000127],[-64.647781000000009,64.250000000000114],[-64.643616000000009,64.255829000000119],[-64.637512000000015,64.259995000000004],[-64.629715000000033,64.261658000000125],[-64.571670999999924,64.264998999999989],[-64.557525999999996,64.264862000000051],[-64.553054999999915,64.263321000000076],[-64.55221599999993,64.261658000000125],[-64.552490000000034,64.256653000000085],[-64.468062999999972,64.243316999999934],[-64.464721999999938,64.240814],[-64.462218999999948,64.237487999999928],[-64.464447000000007,64.234420999999998],[-64.471114999999998,64.231659000000093],[-64.52027899999996,64.220261000000107]],[[-75.551392000000021,64.303863999999976],[-75.691939999999988,64.302475000000129],[-75.702224999999999,64.305817000000104],[-75.708892999999989,64.315262000000132],[-75.705840999999964,64.341934000000037],[-75.696655000000021,64.351089000000115],[-75.686385999999914,64.353317000000061],[-75.665008999999998,64.350815000000011],[-75.578887999999949,64.346099999999979],[-75.572784000000013,64.344985999999949],[-75.502501999999936,64.319716999999969],[-75.493606999999997,64.316376000000105],[-75.50111400000003,64.313309000000004],[-75.511123999999938,64.311096000000077],[-75.551392000000021,64.303863999999976]],[[-64.938598999999954,64.235535000000027],[-64.989165999999955,64.209152000000017],[-65.00306699999993,64.21026599999999],[-65.048614999999984,64.218322999999998],[-65.052779999999984,64.219436999999971],[-65.059997999999894,64.223312000000135],[-65.065551999999968,64.227478000000019],[-65.073059000000001,64.240540000000067],[-65.102492999999981,64.296371000000136],[-65.109160999999972,64.310806000000071],[-65.113892000000021,64.323608000000036],[-65.114715999999987,64.329437000000041],[-65.114166000000012,64.334991000000059],[-65.112503000000004,64.339706000000092],[-65.110001000000011,64.343596999999988],[-65.101669000000015,64.346374999999966],[-65.08944699999995,64.349716000000001],[-65.028884999999889,64.361099000000024],[-65.021392999999932,64.362487999999985],[-65.010283999999956,64.361649000000057],[-65.006393000000003,64.360535000000084],[-65.001952999999958,64.356934000000024],[-64.99888599999997,64.354431000000034],[-64.982223999999974,64.333054000000004],[-64.884734999999921,64.28776600000009],[-64.886123999999938,64.283051000000057],[-64.890838999999971,64.276382000000012],[-64.926940999999943,64.242477000000065],[-64.938598999999954,64.235535000000027]],[[-73.876389000000017,64.301376000000005],[-73.883620999999948,64.298874000000069],[-73.951674999999966,64.304977000000008],[-73.96556099999998,64.30664100000007],[-73.972503999999958,64.309707999999944],[-73.97444200000001,64.313309000000004],[-73.960281000000009,64.362197999999978],[-73.95666499999993,64.368317000000047],[-73.952498999999932,64.370819000000097],[-73.942214999999919,64.372757000000036],[-73.932219999999916,64.37359600000002],[-73.918335000000013,64.371918000000051],[-73.909438999999963,64.369980000000112],[-73.889175000000023,64.359711000000118],[-73.879165999999941,64.351928999999984],[-73.874160999999958,64.343323000000055],[-73.87332200000003,64.305252000000053],[-73.876389000000017,64.301376000000005]],[[-73.69776899999988,64.269989000000066],[-73.704726999999934,64.268875000000037],[-73.72084000000001,64.272765999999933],[-73.75389100000001,64.28276100000005],[-73.776671999999962,64.294708000000014],[-73.823333999999988,64.324707000000046],[-73.833618000000001,64.331665000000044],[-73.781386999999995,64.405547999999953],[-73.776108000000022,64.407486000000119],[-73.765563999999983,64.409424000000058],[-73.749161000000015,64.410262999999986],[-73.744445999999982,64.405822999999998],[-73.730835000000013,64.386383000000023],[-73.729172000000005,64.386107999999979],[-73.726944000000003,64.383331000000055],[-73.724441999999954,64.377472000000068],[-73.702498999999989,64.322769000000108],[-73.699157999999954,64.314147999999989],[-73.690552000000025,64.276932000000045],[-73.691665999999998,64.273605000000089],[-73.694442999999922,64.271103000000039],[-73.69776899999988,64.269989000000066]],[[-64.849730999999963,64.307479999999998],[-64.861388999999974,64.307479999999998],[-64.877212999999983,64.313309000000004],[-64.888061999999991,64.321105999999986],[-64.937774999999988,64.361649000000057],[-64.944992000000013,64.37052900000009],[-64.955565999999976,64.383880999999917],[-64.959732000000031,64.397217000000069],[-64.958618000000001,64.405822999999998],[-64.951674999999909,64.411376999999959],[-64.946655000000021,64.413605000000132],[-64.932495000000017,64.417480000000126],[-64.925277999999992,64.418594000000098],[-64.910004000000015,64.416655999999989],[-64.902495999999985,64.412766000000147],[-64.897507000000019,64.408600000000092],[-64.820007000000032,64.379425000000026],[-64.771941999999967,64.348877000000016],[-64.770553999999947,64.345825000000104],[-64.773055999999997,64.34248400000007],[-64.849730999999963,64.307479999999998]],[[-74.27194199999991,64.413605000000132],[-74.285004000000015,64.41304000000008],[-74.357497999999964,64.421097000000088],[-74.377212999999983,64.424423000000104],[-74.423324999999977,64.443863000000079],[-74.437209999999936,64.450271999999927],[-74.439437999999996,64.453323000000125],[-74.338608000000022,64.49470500000001],[-74.331679999999949,64.496933000000126],[-74.31040999999999,64.49884000000003],[-74.285277999999948,64.481659000000036],[-74.228607000000011,64.451096000000064],[-74.205841000000021,64.44747899999993],[-74.183060000000012,64.443039000000113],[-74.17332499999992,64.439148000000046],[-74.174712999999997,64.434981999999991],[-74.178328999999962,64.433867999999961],[-74.27194199999991,64.413605000000132]],[[-73.744995000000017,64.426086000000055],[-73.758346999999958,64.425537000000077],[-73.77806099999998,64.428314],[-73.781386999999995,64.431931000000134],[-73.782776000000013,64.437484999999924],[-73.782500999999968,64.442474000000061],[-73.776108000000022,64.495818999999983],[-73.773894999999982,64.501937999999996],[-73.773330999999928,64.503326000000072],[-73.746917999999937,64.508513999999991],[-73.736664000000019,64.507216999999969],[-73.729172000000005,64.505264000000068],[-73.724166999999852,64.50221300000004],[-73.673049999999989,64.469711000000018],[-73.668610000000001,64.464432000000045],[-73.668334999999956,64.460265999999933],[-73.671936000000017,64.455826000000116],[-73.67971799999998,64.452208999999982],[-73.727218999999934,64.431091000000094],[-73.735001000000011,64.428040000000067],[-73.744995000000017,64.426086000000055]],[[-74.212783999999999,64.483046999999999],[-74.223327999999981,64.480270000000075],[-74.229171999999949,64.481369000000029],[-74.307495000000017,64.516098000000113],[-74.331116000000009,64.526656999999943],[-74.337508999999955,64.531096999999988],[-74.357773000000009,64.546936000000073],[-74.357773000000009,64.551086000000112],[-74.353881999999999,64.553589000000045],[-74.345550999999944,64.555251999999996],[-74.253066999999987,64.548035000000084],[-74.240554999999972,64.546371000000079],[-74.236114999999984,64.545532000000094],[-74.169723999999974,64.523880000000077],[-74.169448999999929,64.519714000000135],[-74.206664999999987,64.486374000000069],[-74.212783999999999,64.483046999999999]],[[-73.557495000000017,64.312758999999971],[-73.577788999999939,64.309982000000105],[-73.601669000000015,64.310257000000092],[-73.626388999999904,64.312758999999971],[-73.650283999999999,64.31721500000009],[-73.655563000000029,64.320267000000001],[-73.658339999999953,64.334991000000059],[-73.669532999999888,64.426849000000118],[-73.610442999999975,64.470489999999984],[-73.68249499999996,64.509720000000129],[-73.679992999999911,64.526093000000003],[-73.677779999999927,64.532211000000132],[-73.666655999999875,64.535538000000088],[-73.577224999999999,64.559982000000048],[-73.537215999999944,64.567764000000011],[-73.527785999999992,64.566940000000045],[-73.521118000000001,64.56303400000013],[-73.509170999999981,64.552475000000072],[-73.504729999999938,64.542480000000012],[-73.50306699999993,64.53414900000007],[-73.489165999999955,64.463318000000072],[-73.488051999999982,64.453598],[-73.48832699999997,64.443863000000079],[-73.490279999999927,64.439148000000046],[-73.555266999999958,64.314697000000137],[-73.557495000000017,64.312758999999971]],[[-65.492767000000015,64.517761000000007],[-65.658339999999953,64.509720000000129],[-65.669448999999929,64.510269000000108],[-65.67971799999998,64.512207000000046],[-65.686110999999926,64.515273999999977],[-65.689712999999983,64.51998900000001],[-65.690276999999924,64.524155000000064],[-65.689712999999983,64.52998400000007],[-65.686935000000005,64.538879000000122],[-65.672500999999954,64.56053200000008],[-65.660278000000005,64.573883000000023],[-65.651108000000022,64.580551000000014],[-65.615829000000019,64.599152000000004],[-65.563323999999909,64.615540000000067],[-65.554442999999992,64.618591000000094],[-65.546951000000035,64.622481999999991],[-65.449158000000011,64.678863999999976],[-65.443877999999927,64.684708000000001],[-65.43582200000003,64.696365000000128],[-65.381942999999922,64.716934000000037],[-65.292495999999971,64.735535000000084],[-65.256957999999941,64.709991000000059],[-65.252501999999936,64.706375000000037],[-65.258057000000008,64.700821000000019],[-65.266402999999912,64.6933140000001],[-65.249999999999886,64.663605000000075],[-65.208054000000004,64.639708999999982],[-65.208618000000001,64.631363000000079],[-65.213897999999915,64.626083000000051],[-65.228057999999919,64.6202550000001],[-65.309433000000013,64.60054000000008],[-65.420272999999952,64.55442800000003],[-65.452788999999939,64.532760999999994],[-65.450835999999924,64.528320000000065],[-65.453613000000018,64.524428999999998],[-65.460555999999997,64.521102999999982],[-65.468886999999995,64.519150000000025],[-65.492767000000015,64.517761000000007]],[[-63.353333000000021,64.994980000000112],[-63.349167000000023,64.991652999999985],[-63.34722099999999,64.991927999999973],[-63.330558999999994,64.986923000000104],[-63.257506999999976,64.92942800000003],[-63.256392999999889,64.926376000000118],[-63.258895999999936,64.921097000000145],[-63.27305599999994,64.918045000000063],[-63.281386999999938,64.918320000000051],[-63.37777699999998,64.940811000000053],[-63.385276999999974,64.944138000000009],[-63.393889999999942,64.951096000000007],[-63.417220999999984,64.97137499999991],[-63.420279999999934,64.976089000000059],[-63.420279999999934,64.978317000000004],[-63.418892000000028,64.982483000000116],[-63.415549999999996,64.986923000000104],[-63.395279000000016,64.995529000000033],[-63.376105999999993,64.998871000000008],[-63.363616999999977,64.997208000000057],[-63.353333000000021,64.994980000000112]],[[-63.243613999999923,65.254990000000134],[-63.251395999999943,65.253875999999991],[-63.256667999999991,65.256104000000107],[-63.310554999999965,65.290542999999957],[-63.313331999999946,65.293869000000029],[-63.311667999999941,65.298035000000084],[-63.306663999999898,65.302475000000129],[-63.257781999999963,65.320831000000112],[-63.244445999999925,65.322769000000051],[-63.236663999999962,65.321655000000078],[-63.227218999999991,65.313873000000115],[-63.166388999999924,65.286102000000085],[-63.165833000000021,65.282486000000006],[-63.166663999999969,65.27915999999999],[-63.235274999999888,65.256943000000092],[-63.243613999999923,65.254990000000134]],[[-66.92471299999994,65.284424000000115],[-66.933883999999978,65.283324999999991],[-66.962509000000011,65.283599999999979],[-66.976943999999946,65.284424000000115],[-66.989166000000012,65.286377000000073],[-66.99110399999995,65.288878999999952],[-67.011123999999938,65.319153000000028],[-67.011948000000018,65.323044000000095],[-67.010559000000001,65.333328000000108],[-67.005004999999926,65.339706000000092],[-66.992217999999923,65.346100000000092],[-66.974441999999954,65.350540000000137],[-66.932494999999903,65.358032000000094],[-66.920273000000009,65.358597000000088],[-66.910827999999867,65.356933999999967],[-66.908614999999998,65.355255],[-66.908050999999944,65.351089000000059],[-66.90943900000002,65.346100000000092],[-66.91194200000001,65.342209000000025],[-66.920273000000009,65.294434000000024],[-66.921386999999982,65.289703000000088],[-66.92471299999994,65.284424000000115]],[[-89.005568999999923,65.385544000000039],[-89.017501999999979,65.385544000000039],[-89.030288999999982,65.387496999999939],[-89.076110999999969,65.394714000000079],[-89.100280999999882,65.400818000000072],[-89.099990999999932,65.405822999999941],[-89.091674999999952,65.408325000000048],[-89.06806899999998,65.408325000000048],[-89.03195199999999,65.407211000000075],[-89.018615999999952,65.403320000000008],[-89.009445000000028,65.399155000000007],[-89.005279999999914,65.395538000000045],[-89.003066999999987,65.390549000000078],[-89.005568999999923,65.385544000000039]],[[-88.430282999999918,65.455261000000064],[-88.465011999999888,65.453597999999943],[-88.489990000000034,65.456650000000081],[-88.503615999999909,65.460541000000148],[-88.510284000000013,65.464995999999985],[-88.512222000000008,65.469711000000018],[-88.507506999999976,65.474991000000045],[-88.496383999999978,65.476928999999984],[-88.485001000000011,65.477767999999969],[-88.461120999999991,65.477478000000133],[-88.424163999999962,65.474426000000051],[-88.398620999999878,65.47026100000005],[-88.39416499999993,65.465820000000122],[-88.399733999999967,65.461380000000077],[-88.421386999999982,65.456940000000088],[-88.430282999999918,65.455261000000064]],[[-62.795005999999887,65.519988999999953],[-62.804442999999992,65.519150000000025],[-62.819450000000018,65.524155000000064],[-62.826950000000011,65.528046000000131],[-62.893889999999942,65.581100000000106],[-62.895553999999947,65.585541000000035],[-62.895553999999947,65.589981000000023],[-62.889724999999942,65.599152000000004],[-62.884444999999971,65.60554500000012],[-62.87471800000003,65.613602000000071],[-62.8663939999999,65.617477000000065],[-62.856392000000028,65.61914100000007],[-62.849723999999981,65.618866000000082],[-62.842773000000022,65.616378999999995],[-62.838051000000007,65.613602000000071],[-62.834998999999925,65.606644000000131],[-62.834998999999925,65.604705999999965],[-62.830001999999979,65.593048000000124],[-62.824448000000018,65.58526599999999],[-62.817504999999926,65.578598],[-62.810279999999977,65.574706999999933],[-62.785560999999973,65.564148000000102],[-62.765006999999969,65.557480000000112],[-62.750838999999985,65.551376000000062],[-62.788894999999968,65.523315000000025],[-62.795005999999887,65.519988999999953]],[[-83.882766999999944,65.666931000000091],[-83.893889999999942,65.664703000000145],[-83.906386999999938,65.666931000000091],[-83.937499999999943,65.677199999999914],[-83.943054000000018,65.681931000000077],[-83.942214999999976,65.686920000000043],[-83.93638599999997,65.691925000000083],[-83.928328999999962,65.69720500000011],[-83.896118000000001,65.710266000000047],[-83.884734999999978,65.712769000000037],[-83.872771999999941,65.712203999999986],[-83.864440999999943,65.707763999999997],[-83.868880999999988,65.696930000000123],[-83.871384000000035,65.686920000000043],[-83.876937999999939,65.672210999999947],[-83.882766999999944,65.666931000000091]],[[-67.472504000000015,65.705261000000007],[-67.55972300000002,65.702209000000096],[-67.584731999999974,65.703598000000113],[-67.640563999999927,65.696091000000138],[-67.691375999999934,65.685806000000014],[-67.701401000000033,65.686096000000077],[-67.706954999999937,65.688034000000016],[-67.713897999999858,65.696640000000116],[-67.715835999999967,65.701659999999947],[-67.713332999999921,65.705551000000014],[-67.695830999999885,65.720825000000104],[-67.658614999999998,65.725266000000033],[-67.577498999999989,65.731658999999979],[-67.529175000000009,65.734985000000052],[-67.499999999999943,65.734985000000052],[-67.48971599999993,65.734985000000052],[-67.424438000000009,65.735260000000039],[-67.446944999999914,65.718596999999988],[-67.472504000000015,65.705261000000007]],[[-62.268332999999984,65.701659999999947],[-62.259445000000028,65.699707000000046],[-62.238051999999982,65.702484000000084],[-62.221107000000018,65.708038000000101],[-62.20416999999992,65.711655000000064],[-62.186385999999914,65.711928999999998],[-62.167777999999942,65.70277399999992],[-62.131667999999934,65.678863999999976],[-62.128333999999938,65.674149000000114],[-62.131942999999978,65.657211000000018],[-62.135276999999974,65.651382000000012],[-62.142226999999991,65.64498900000001],[-62.194999999999993,65.612762000000032],[-62.202498999999989,65.610259999999982],[-62.215004000000022,65.609984999999938],[-62.22444200000001,65.611098999999967],[-62.296950999999979,65.624985000000095],[-62.455001999999979,65.659988000000112],[-62.466109999999958,65.663879000000009],[-62.483886999999925,65.721099999999922],[-62.484443999999939,65.726928999999984],[-62.483611999999994,65.731658999999979],[-62.480552999999873,65.737761999999918],[-62.473609999999951,65.74192800000003],[-62.46832999999998,65.744140999999956],[-62.461944999999957,65.745254999999986],[-62.283889999999928,65.74443100000002],[-62.27194199999991,65.744140999999956],[-62.260283999999956,65.74331699999999],[-62.252501999999993,65.74192800000003],[-62.251396,65.739151000000106],[-62.258613999999909,65.728592000000049],[-62.27027899999996,65.723038000000088],[-62.297501000000011,65.708602999999982],[-62.268332999999984,65.701659999999947]],[[-83.283889999999928,65.834152000000131],[-83.292220999999927,65.828872999999987],[-83.30360399999995,65.826385000000016],[-83.315551999999968,65.826096000000064],[-83.327498999999932,65.82748399999997],[-83.347777999999892,65.832489000000066],[-83.395279000000016,65.8316650000001],[-83.406661999999983,65.830276000000083],[-83.418059999999969,65.827774000000034],[-83.429168999999945,65.824432000000058],[-83.439986999999917,65.819153000000085],[-83.456389999999999,65.808867999999961],[-83.473327999999981,65.800262000000032],[-83.485274999999945,65.800812000000064],[-83.498046999999929,65.804152999999928],[-83.529723999999987,65.817489999999964],[-83.559157999999968,65.831100000000049],[-83.575561999999934,65.839980999999966],[-83.581679999999892,65.844711000000018],[-83.585007000000019,65.849426000000051],[-83.586120999999991,65.854156000000103],[-83.580291999999986,65.859420999999941],[-83.571670999999981,65.862488000000042],[-83.560271999999941,65.864990000000148],[-83.525283999999886,65.868317000000104],[-83.478058000000033,65.870255000000043],[-83.442490000000021,65.870818999999983],[-83.36999499999996,65.866653000000042],[-83.345551,65.863876000000005],[-83.333069000000023,65.860260000000096],[-83.291106999999954,65.843597000000045],[-83.285277999999948,65.838882000000012],[-83.283889999999928,65.834152000000131]],[[-65.645843999999954,65.813034000000073],[-65.656386999999995,65.812759000000028],[-65.660278000000005,65.819717000000026],[-65.654998999999918,65.869431000000077],[-65.651671999999962,65.876647999999989],[-65.647781000000009,65.879974000000004],[-65.636123999999882,65.88638300000008],[-65.623885999999914,65.891373000000101],[-65.583069000000023,65.902771000000143],[-65.542769999999962,65.908035000000098],[-65.531676999999945,65.908874999999966],[-65.516112999999962,65.906371999999976],[-65.511397999999929,65.903046000000131],[-65.512221999999895,65.894440000000031],[-65.513335999999981,65.890548999999965],[-65.52806099999998,65.859420999999941],[-65.559433000000013,65.834717000000012],[-65.645843999999954,65.813034000000073]],[[-85.480559999999969,65.791930999999977],[-85.468062999999972,65.790817000000004],[-85.456389999999942,65.791367000000037],[-85.445266999999944,65.793869000000086],[-85.424164000000019,65.801926000000094],[-85.413895000000025,65.807480000000055],[-85.40834000000001,65.812485000000095],[-85.404998999999975,65.817489999999964],[-85.404175000000009,65.822495000000004],[-85.393065999999862,65.832764000000054],[-85.381942999999978,65.835265999999933],[-85.369995000000017,65.834991000000116],[-85.333327999999995,65.832214000000022],[-85.313613999999916,65.830276000000083],[-85.288605000000018,65.826660000000004],[-85.263061999999991,65.821106000000043],[-85.213622999999984,65.808029000000033],[-85.202788999999939,65.803588999999988],[-85.18582200000003,65.794708000000071],[-85.162505999999894,65.78137200000009],[-85.156386999999938,65.776657000000057],[-85.049164000000019,65.621643000000006],[-85.047774999999945,65.616928000000144],[-85.048614999999984,65.611923000000104],[-85.051666000000012,65.606934000000138],[-85.067504999999926,65.59637500000008],[-85.08805799999999,65.585541000000035],[-85.120270000000005,65.574996999999996],[-85.142226999999934,65.569992000000127],[-85.175827000000027,65.563309000000118],[-85.232223999999917,65.554703000000018],[-85.24360699999994,65.55386400000009],[-85.267776000000026,65.555542000000003],[-85.280563000000029,65.55802900000009],[-85.291945999999882,65.557205000000124],[-85.302490000000034,65.552765000000079],[-85.307770000000005,65.547760000000039],[-85.311110999999926,65.542479999999955],[-85.311935000000005,65.537766000000033],[-85.308043999999995,65.533051],[-85.295836999999949,65.52388000000002],[-85.271118000000001,65.511658000000068],[-85.240829000000019,65.498322000000087],[-85.204178000000013,65.485809000000017],[-85.165557999999976,65.474991000000045],[-85.127776999999924,65.466095000000109],[-85.088608000000022,65.453597999999943],[-85.043609999999944,65.436371000000122],[-85.02694699999995,65.427475000000015],[-85.015015000000005,65.418319999999937],[-85.011123999999938,65.413605000000075],[-85.002791999999943,65.401382000000069],[-85.001403999999923,65.396652000000017],[-85.005004999999983,65.37692300000009],[-85.011672999999973,65.352203000000031],[-84.930557000000022,65.214157000000057],[-84.924712999999997,65.209717000000012],[-84.912216000000001,65.206375000000094],[-84.900283999999942,65.206100000000106],[-84.832503999999972,65.212494000000106],[-84.821395999999879,65.213882000000012],[-84.810271999999998,65.216385000000002],[-84.800277999999992,65.221649000000014],[-84.792496000000028,65.226929000000041],[-84.748046999999985,65.292755000000056],[-84.746947999999975,65.297485000000052],[-84.749724999999899,65.307204999999954],[-84.755004999999869,65.316666000000112],[-84.762221999999952,65.326096000000007],[-84.761123999999995,65.331099999999992],[-84.758056999999951,65.336105000000032],[-84.754729999999938,65.341095000000053],[-84.745834000000002,65.351379000000065],[-84.740279999999984,65.356368999999972],[-84.595839999999953,65.475540000000024],[-84.58555599999994,65.481093999999985],[-84.573623999999995,65.481659000000036],[-84.561934999999949,65.481093999999985],[-84.549437999999952,65.47886699999998],[-84.440276999999924,65.456650000000081],[-84.432220000000029,65.453323000000125],[-84.426392000000021,65.448593000000074],[-84.424712999999997,65.443863000000079],[-84.42582699999997,65.438873000000001],[-84.314437999999996,65.381653000000142],[-84.291945999999996,65.37692300000009],[-84.161391999999921,65.341934000000037],[-84.151107999999908,65.338593000000003],[-84.147507000000019,65.333878000000141],[-84.153060999999923,65.328598000000056],[-84.194153000000028,65.297485000000052],[-84.201950000000011,65.292206000000078],[-84.220839999999953,65.284713999999951],[-84.228881999999999,65.279434000000094],[-84.230834999999956,65.269440000000088],[-84.229720999999984,65.264708999999982],[-84.141388000000006,65.219986000000063],[-84.088333000000034,65.203873000000044],[-83.899993999999992,65.165543000000071],[-83.876098999999954,65.162766000000033],[-83.852782999999931,65.161652000000004],[-83.666945999999939,65.160811999999964],[-83.620543999999938,65.160811999999964],[-83.540282999999931,65.16415400000011],[-83.52806099999998,65.161925999999937],[-83.408614999999998,65.135544000000095],[-83.388061999999934,65.126647999999932],[-83.378875999999991,65.117203000000075],[-83.33805799999999,65.074707000000046],[-83.334732000000031,65.069992000000013],[-83.335830999999928,65.064986999999974],[-83.339447000000007,65.059982000000105],[-83.343063000000029,65.045258000000047],[-83.340835999999967,65.035537999999974],[-83.330840999999964,65.021378000000084],[-83.319457999999941,65.012207000000103],[-83.208053999999947,64.945526000000086],[-83.198043999999868,64.941086000000098],[-83.190552000000025,64.939423000000147],[-83.156386999999995,64.939972000000068],[-83.005004999999926,64.913039999999967],[-82.992766999999901,64.909714000000122],[-82.865828999999962,64.873596000000077],[-82.855834999999956,64.86914100000007],[-82.848052999999993,64.864426000000037],[-82.842498999999918,64.859985000000108],[-82.829726999999991,64.840819999999951],[-82.828613000000018,64.836104999999918],[-82.825287000000003,64.831375000000094],[-82.816390999999953,64.821930000000009],[-82.800277999999992,64.808868000000018],[-82.770003999999972,64.795532000000037],[-82.75778200000002,64.791092000000049],[-82.709166999999979,64.776382000000069],[-82.697220000000016,64.77388000000002],[-82.569732999999928,64.763885000000073],[-82.361388999999974,64.763610999999969],[-82.34944200000001,64.760269000000051],[-82.211944999999957,64.718323000000055],[-82.202224999999885,64.713608000000022],[-82.203339000000028,64.708602999999982],[-82.209166999999979,64.703598000000113],[-82.217498999999975,64.698593000000074],[-82.203612999999962,64.684417999999994],[-82.064437999999996,64.648605000000089],[-81.932495000000017,64.584427000000062],[-81.763061999999991,64.501099000000067],[-81.753890999999953,64.486923000000047],[-81.75140399999998,64.472488000000112],[-81.753066999999987,64.355820000000051],[-81.764174999999966,64.341095000000109],[-81.770003999999972,64.336105000000032],[-81.777221999999995,64.326096000000007],[-81.778885000000002,64.321105999999986],[-81.777221999999995,64.31164600000011],[-81.77416999999997,64.30664100000007],[-81.74888599999997,64.273605000000089],[-81.727218999999934,64.258330999999998],[-81.712783999999999,64.250000000000114],[-81.702788999999996,64.2452550000001],[-81.669723999999974,64.232758000000103],[-81.646118000000001,64.22554000000008],[-81.622498000000007,64.216660000000047],[-81.613051999999982,64.212203999999929],[-81.600280999999939,64.20277400000009],[-81.594451999999933,64.193313999999987],[-81.590835999999967,64.183594000000085],[-81.589995999999928,64.17886400000009],[-81.602492999999981,64.129974000000004],[-81.610824999999977,64.125809000000004],[-81.717772999999966,64.099426000000051],[-81.758621000000005,64.089432000000045],[-81.76916499999993,64.088043000000027],[-81.824447999999961,64.086380000000077],[-81.879165999999941,64.080826000000116],[-81.955840999999964,64.0619200000001],[-81.964171999999962,64.0577550000001],[-81.970000999999968,64.052765000000022],[-81.973617999999931,64.047759999999982],[-81.999160999999958,64.003326000000015],[-81.996384000000035,63.998604000000114],[-81.986938000000009,63.994155999999975],[-81.975005999999951,63.990546999999992],[-81.963897999999972,63.988884000000041],[-81.952498999999932,63.98832700000014],[-81.930556999999965,63.988045000000056],[-81.897507000000019,63.989990000000091],[-81.875823999999909,63.991661000000136],[-81.56082200000003,64.029433999999981],[-81.44027699999998,64.067764000000068],[-81.383620999999948,64.090546000000018],[-81.287780999999882,64.080276000000083],[-81.276397999999972,64.07748399999997],[-81.270003999999915,64.072495000000004],[-81.264174999999966,64.062759000000028],[-81.256957999999997,64.059143000000006],[-81.245543999999995,64.055542000000116],[-80.964721999999938,63.991936000000123],[-80.942489999999964,63.990546999999992],[-80.931670999999994,63.991936000000123],[-80.920837000000006,63.994995000000131],[-80.910277999999892,63.999161000000015],[-80.906661999999926,64.004166000000055],[-80.903335999999967,64.013885000000073],[-80.909163999999976,64.023315000000139],[-80.914168999999958,64.028046000000074],[-80.92582699999997,64.032761000000107],[-80.948607999999979,64.038879000000065],[-80.967498999999918,64.04803499999997],[-80.972778000000005,64.052765000000022],[-80.975554999999986,64.0577550000001],[-80.973891999999978,64.062485000000095],[-80.935821999999973,64.111923000000047],[-80.890838999999971,64.11554000000001],[-80.812209999999993,64.091094999999939],[-80.777495999999871,64.079437000000098],[-80.734726000000023,64.054153000000099],[-80.566100999999946,63.994155999999975],[-80.543335000000013,63.987770000000069],[-80.531677000000002,63.983330000000024],[-80.522507000000019,63.978600000000029],[-80.517501999999979,63.973877000000016],[-80.488327000000027,63.910545000000013],[-80.49221799999998,63.905548000000067],[-80.503066999999987,63.902489000000116],[-80.567504999999926,63.889435000000049],[-80.453063999999927,63.859436000000017],[-80.363051999999925,63.841102999999976],[-80.217223999999987,63.809989999999971],[-80.194480999999996,63.804474000000084],[-80.189986999999974,63.799995000000024],[-80.174712999999883,63.780822999999998],[-80.172225999999966,63.776100000000042],[-80.171660999999972,63.771102999999925],[-80.178878999999881,63.756660000000068],[-80.184998000000007,63.751663000000121],[-80.195830999999885,63.748604],[-80.346953999999982,63.728042999999957],[-80.357772999999952,63.728600000000085],[-80.369155999999975,63.73333000000008],[-80.380279999999971,63.734993000000031],[-80.391387999999949,63.734993000000031],[-80.402221999999995,63.734717999999987],[-80.434433000000013,63.731102000000135],[-80.454178000000013,63.727767999999969],[-80.485275000000001,63.715546000000018],[-80.493606999999997,63.710274000000084],[-80.504729999999995,63.690826000000129],[-80.506393000000003,63.685822000000144],[-80.510009999999966,63.681107000000111],[-80.52194199999991,63.671104000000071],[-80.587783999999999,63.635826000000066],[-80.608886999999982,63.628326000000015],[-80.774445000000014,63.573326000000122],[-80.912216000000001,63.526381999999955],[-80.922501000000011,63.521378000000027],[-80.930557000000022,63.516106000000093],[-80.936385999999914,63.511108000000092],[-80.938048999999864,63.50638600000002],[-80.9375,63.501389000000074],[-80.934433000000013,63.496658000000139],[-80.930557000000022,63.482208000000014],[-80.930282999999974,63.477486000000113],[-80.9375,63.467491000000052],[-80.958053999999947,63.458328000000051],[-80.968613000000005,63.455269000000044],[-80.989440999999999,63.450829000000056],[-81.011123999999995,63.449158000000011],[-81.032775999999956,63.44860100000011],[-81.054442999999992,63.449158000000011],[-81.076401000000033,63.451385000000016],[-81.110000999999954,63.458328000000051],[-81.386123999999938,63.526381999999955],[-81.694153000000028,63.607498000000135],[-81.734160999999972,63.625549000000092],[-81.757232999999985,63.634720000000073],[-81.768889999999999,63.638046000000088],[-81.779998999999975,63.639717000000132],[-81.801940999999943,63.641105999999979],[-81.823623999999995,63.639435000000105],[-81.855270000000019,63.63249200000007],[-81.876662999999951,63.629990000000021],[-81.887512000000015,63.62943300000012],[-81.909728999999913,63.631934999999999],[-81.995270000000005,63.661102000000142],[-82.01167299999986,63.667213000000004],[-82.026397999999972,63.676383999999985],[-82.031386999999938,63.681107000000111],[-82.041107000000011,63.685822000000144],[-82.052490000000034,63.689156000000139],[-82.06361400000003,63.690826000000129],[-82.107772999999952,63.692214999999919],[-82.129439999999988,63.691658000000018],[-82.214172000000019,63.687766999999951],[-82.224715999999887,63.686377999999991],[-82.285552999999993,63.678047000000049],[-82.296111999999937,63.674713000000111],[-82.299437999999952,63.669715999999994],[-82.298889000000031,63.664992999999981],[-82.302215999999987,63.659987999999942],[-82.307769999999948,63.654991000000052],[-82.318344000000025,63.651657000000057],[-82.328887999999949,63.65026899999998],[-82.339995999999871,63.650826000000052],[-82.351395000000025,63.653320000000008],[-82.472228999999913,63.680275000000051],[-82.483886999999982,63.68471500000004],[-82.491103999999893,63.689156000000139],[-82.535278000000005,63.726378999999952],[-82.545836999999949,63.735550000000103],[-82.549728000000016,63.745270000000005],[-82.550827000000027,63.750000000000057],[-82.546951000000035,63.764717000000019],[-82.543334999999956,63.769714000000135],[-82.532226999999978,63.779991000000109],[-82.514450000000011,63.790276000000063],[-82.504456000000005,63.795547000000056],[-82.484160999999972,63.804993000000024],[-82.473617999999931,63.80832700000002],[-82.431945999999982,63.820273999999984],[-82.420837000000006,63.820831000000055],[-82.40972899999997,63.819160000000011],[-82.398055999999883,63.815826000000015],[-82.386672999999973,63.814156000000025],[-82.376389000000017,63.81749700000006],[-82.372771999999998,63.82249500000006],[-82.353881999999942,63.852219000000105],[-82.351395000000025,63.861938000000066],[-82.358336999999949,63.900543000000027],[-82.361388999999974,63.905265999999983],[-82.368880999999988,63.909988000000112],[-82.378325999999959,63.91443600000008],[-82.413894999999968,63.926940999999999],[-82.525833000000034,63.966103000000032],[-82.548888999999974,63.96915400000006],[-82.828613000000018,63.979431000000034],[-82.967223999999987,63.965546000000131],[-82.978058000000033,63.963051000000121],[-83.064162999999951,63.951934999999992],[-83.086944999999957,63.954994000000113],[-83.098891999999921,63.959160000000054],[-83.12388599999997,63.972763000000043],[-83.129165999999941,63.977486000000056],[-83.145279000000016,64.001099000000124],[-83.139724999999999,64.006103999999993],[-83.095550999999887,64.028320000000008],[-83.029449,64.074707000000103],[-83.016113000000018,64.084991000000116],[-82.996947999999975,64.10026600000009],[-82.980285999999978,64.11554000000001],[-82.97084000000001,64.125534000000016],[-82.961944999999901,64.135818000000029],[-82.960555999999997,64.140548999999965],[-82.96166999999997,64.145538000000101],[-82.964721999999995,64.150269000000037],[-83.008346999999958,64.187484999999981],[-83.019729999999981,64.188873000000058],[-83.072783999999956,64.186646000000053],[-83.105269999999962,64.181655999999975],[-83.126388999999961,64.175811999999951],[-83.157227000000034,64.163040000000137],[-83.339447000000007,64.134720000000129],[-83.488327000000027,64.122482000000048],[-83.519729999999981,64.11442599999998],[-83.530288999999925,64.111099000000081],[-83.548339999999996,64.102478000000133],[-83.673324999999977,64.017212000000029],[-83.682220000000029,64.007217000000082],[-83.683318999999983,64.002212999999927],[-83.676666000000012,63.992766999999958],[-83.665833000000021,63.983603999999957],[-83.642501999999979,63.969986000000119],[-83.626099000000011,63.956099999999992],[-83.608611999999994,63.937492000000077],[-83.605559999999969,63.932770000000005],[-83.604171999999949,63.928047000000049],[-83.595839999999896,63.825829000000056],[-83.596664000000033,63.820831000000055],[-83.623046999999929,63.781661999999983],[-83.631942999999865,63.771659999999997],[-83.637222000000008,63.766388000000063],[-83.647507000000019,63.763054000000125],[-83.658614999999941,63.763611000000026],[-83.670272999999952,63.766937000000041],[-83.694442999999978,63.775826000000109],[-83.718613000000005,63.779991000000109],[-83.740554999999972,63.779991000000109],[-83.750838999999985,63.776657000000114],[-83.824172999999973,63.747490000000028],[-84.007232999999985,63.668053000000043],[-84.012786999999889,63.662765999999976],[-84.021117999999944,63.65277100000003],[-84.027495999999928,63.642769000000044],[-84.050277999999935,63.626938000000109],[-84.069457999999997,63.616386000000091],[-84.079453000000001,63.611938000000123],[-84.089447000000007,63.607773000000122],[-84.09973100000002,63.605270000000132],[-84.110000999999954,63.603607000000068],[-84.121383999999978,63.604163999999969],[-84.132767000000001,63.606658999999979],[-84.144729999999925,63.610825000000034],[-84.162216000000001,63.619713000000047],[-84.174164000000019,63.623047000000042],[-84.196380999999917,63.62499200000002],[-84.261123999999995,63.62082700000002],[-84.286117999999988,63.615546999999935],[-84.388061999999991,63.559158000000082],[-84.395279000000016,63.553879000000109],[-84.40055799999999,63.548607000000004],[-84.446380999999974,63.488045],[-84.449431999999888,63.483046999999999],[-84.452224999999942,63.472488000000112],[-84.447220000000016,63.453323000000012],[-84.449157999999954,63.443603999999993],[-84.477492999999981,63.3836060000001],[-84.563323999999966,63.337494000000049],[-84.754456000000005,63.264160000000061],[-84.774170000000026,63.257217000000082],[-84.793883999999991,63.250274999999988],[-84.823059000000001,63.237213000000111],[-84.841949,63.227211000000011],[-84.870834000000002,63.214157000000114],[-84.890563999999983,63.207214000000079],[-85.143341000000021,63.139992000000063],[-85.224166999999966,63.120827000000133],[-85.244995000000017,63.118598999999961],[-85.266402999999968,63.117493000000138],[-85.288054999999986,63.118324000000143],[-85.343338000000017,63.122765000000072],[-85.375823999999909,63.123877999999934],[-85.396956999999929,63.122765000000072],[-85.449158000000011,63.116661000000022],[-85.482223999999974,63.118598999999961],[-85.493331999999953,63.119987000000094],[-85.505004999999983,63.123046999999929],[-85.536391999999921,63.134995000000004],[-85.543883999999935,63.138328999999999],[-85.577788999999939,63.165543000000127],[-85.589171999999962,63.174712999999997],[-85.592498999999975,63.17943600000001],[-85.638061999999934,63.244995000000074],[-85.639175000000023,63.249718000000087],[-85.648345999999947,63.33554799999996],[-85.653884999999946,63.408882000000006],[-85.650833000000034,63.428604000000007],[-85.644454999999994,63.443603999999993],[-85.635833999999988,63.458603000000039],[-85.626098999999897,63.468880000000013],[-85.618057000000022,63.479156000000103],[-85.60722399999986,63.494438000000116],[-85.604995999999971,63.509163000000058],[-85.591110000000015,63.617493000000024],[-85.59333799999996,63.631934999999999],[-85.596114999999941,63.641380000000083],[-85.607497999999964,63.665268000000026],[-85.61332699999997,63.669715999999994],[-85.717498999999975,63.716103000000089],[-85.879439999999988,63.704711999999915],[-85.98582499999992,63.693320999999969],[-86.017226999999934,63.68832400000008],[-86.183608999999933,63.653046000000074],[-86.224441999999954,63.642769000000044],[-86.244995000000017,63.639435000000105],[-86.266952999999944,63.638046000000088],[-86.300277999999935,63.639717000000132],[-86.346114999999998,63.645546000000138],[-86.381377999999984,63.652214000000129],[-86.450286999999889,63.660545000000013],[-86.552779999999871,63.670273000000066],[-86.56361400000003,63.670546999999999],[-86.596114999999941,63.668602000000021],[-86.626937999999996,63.661659000000043],[-86.666397000000018,63.648331000000042],[-86.694442999999922,63.633606000000043],[-86.733886999999982,63.606658999999979],[-86.759170999999981,63.590271000000087],[-86.778060999999923,63.581108000000086],[-86.807495000000017,63.571380999999974],[-86.837783999999999,63.563323999999966],[-86.847778000000005,63.560822000000087],[-86.879165999999998,63.555549999999982],[-86.922225999999966,63.552773000000059],[-87.050551999999982,63.549720999999977],[-87.083618000000001,63.550270000000125],[-87.095275999999956,63.551384000000098],[-87.118606999999997,63.555824000000086],[-87.141388000000006,63.563881000000094],[-87.14973399999991,63.568329000000062],[-87.188048999999864,63.589989000000003],[-87.217223999999987,63.622215000000097],[-87.222778000000005,63.631660000000011],[-87.226394999999968,63.641105999999979],[-87.225280999999995,63.651099999999985],[-87.22193900000002,63.665825000000098],[-87.218886999999938,63.675827000000083],[-87.210830999999985,63.691100999999946],[-87.200835999999867,63.706657000000121],[-87.186661000000015,63.722213999999951],[-87.161117999999931,63.743607000000054],[-86.943877999999927,63.900543000000027],[-86.934432999999956,63.906097000000045],[-86.915282999999988,63.91443600000008],[-86.875823999999966,63.928604000000121],[-86.784163999999976,63.956940000000031],[-86.763625999999988,63.962212000000136],[-86.700287000000003,63.972214000000122],[-86.668609999999887,63.978324999999984],[-86.503890999999896,64.018326000000002],[-86.41361999999998,64.048598999999967],[-86.255004999999926,64.076096000000064],[-86.233611999999994,64.079437000000098],[-86.223327999999981,64.081940000000088],[-86.213333000000034,64.085541000000148],[-86.203888000000006,64.091094999999939],[-86.189437999999882,64.101653999999996],[-86.178328999999962,64.121918000000107],[-86.178878999999995,64.131653000000028],[-86.182220000000029,64.141373000000101],[-86.212219000000005,64.178589000000045],[-86.253066999999987,64.200546000000088],[-86.273894999999982,64.208878000000084],[-86.300551999999982,64.221924000000058],[-86.308884000000035,64.226379000000065],[-86.3125,64.230819999999994],[-86.354720999999984,64.289978000000133],[-86.384170999999981,64.36442599999998],[-86.401672000000019,64.436645999999996],[-86.401107999999965,64.441649999999925],[-86.383620999999948,64.564987000000087],[-86.368880999999988,64.629424999999969],[-86.315552000000025,64.701096000000064],[-86.272506999999962,64.768051000000014],[-86.24888599999997,64.793868999999916],[-86.238891999999964,64.804152999999985],[-86.231383999999935,64.809418000000051],[-86.221114999999998,64.813034000000073],[-86.210280999999952,64.814697000000024],[-86.198607999999922,64.81442300000009],[-86.187209999999993,64.815262000000018],[-86.176665999999955,64.817764000000125],[-86.171660999999915,64.823043999999982],[-86.152495999999928,64.918045000000063],[-86.151947000000007,64.923035000000084],[-86.153335999999911,64.927765000000136],[-86.157226999999978,64.932479999999998],[-86.181106999999997,64.955551000000014],[-86.187209999999993,64.959991000000002],[-86.212509000000011,64.966385000000059],[-86.22084000000001,64.970535000000041],[-86.226394999999968,64.979980000000126],[-86.227782999999988,64.983871000000022],[-86.225829999999974,64.998596000000134],[-86.225006000000008,65.003601000000003],[-86.212219000000005,65.03387500000008],[-86.206389999999885,65.043869000000086],[-86.198333999999988,65.054153000000099],[-86.189986999999917,65.064423000000033],[-86.18472300000002,65.069717000000026],[-86.165282999999931,65.080551000000071],[-86.144729999999981,65.08859300000006],[-86.138335999999924,65.094437000000028],[-86.138061999999991,65.099425999999994],[-86.135558999999944,65.1827550000001],[-86.137221999999952,65.197753999999975],[-86.141953000000001,65.212204000000099],[-86.146118000000001,65.216660000000047],[-86.151397999999972,65.226379000000009],[-86.164168999999958,65.250000000000114],[-86.170546999999942,65.269150000000081],[-86.171660999999915,65.278869999999984],[-86.153335999999911,65.384720000000073],[-86.149733999999967,65.394714000000079],[-86.111937999999952,65.494141000000013],[-86.097777999999948,65.529160000000104],[-86.013900999999976,65.709152000000074],[-86.010009999999909,65.714996000000099],[-85.993880999999988,65.730545000000006],[-85.982773000000009,65.740814000000057],[-85.975280999999882,65.746094000000085],[-85.888335999999981,65.799987999999928],[-85.832503999999915,65.832489000000066],[-85.791381999999999,65.853317000000118],[-85.770554000000004,65.862198000000035],[-85.728333000000021,65.879425000000083],[-85.696654999999907,65.891937000000041],[-85.621108999999933,65.917480000000012],[-85.56527699999998,65.930267000000015],[-85.542496000000028,65.933319000000097],[-85.506667999999991,65.934418000000051],[-85.493880999999988,65.932205000000124],[-85.491013000000009,65.931060999999943],[-85.482773000000009,65.927765000000079],[-85.476944000000003,65.923309000000017],[-85.468886999999938,65.913879000000122],[-85.469726999999978,65.908874999999966],[-85.473891999999978,65.898880000000077],[-85.488892000000021,65.878586000000098],[-85.511123999999995,65.857758000000047],[-85.520554000000004,65.84275800000006],[-85.523620999999991,65.823043999999982],[-85.520554000000004,65.813309000000061],[-85.516662999999994,65.808594000000028],[-85.510559000000001,65.804152999999928],[-85.493331999999953,65.795258000000103],[-85.480559999999969,65.791930999999977]],[[-62.136664999999937,65.851379000000009],[-62.141669999999976,65.849716000000058],[-62.154442000000017,65.850815000000068],[-62.162216000000001,65.854156000000103],[-62.210830999999985,65.880539000000056],[-62.296950999999979,65.927765000000079],[-62.296669000000009,65.938583000000051],[-62.281386999999995,65.946365000000014],[-62.265006999999969,65.946930000000066],[-62.230552999999986,65.943862999999965],[-62.167220999999984,65.932754999999986],[-62.137779000000023,65.925811999999951],[-62.139724999999999,65.913040000000137],[-62.118606999999997,65.881087999999977],[-62.129996999999889,65.859146000000123],[-62.136664999999937,65.851379000000009]],[[-67.138335999999981,65.92692599999998],[-67.145844000000011,65.926376000000118],[-67.154448999999943,65.92886400000009],[-67.161117999999988,65.932205000000124],[-67.185271999999941,65.948317999999972],[-67.209166999999923,65.978867000000037],[-67.211945000000014,65.982758000000103],[-67.208892999999989,65.984421000000054],[-67.199158000000011,65.986373999999955],[-67.181380999999874,65.987198000000092],[-67.166945999999939,65.984984999999995],[-67.153885000000002,65.978591999999992],[-67.152785999999992,65.974990999999989],[-67.152602999999885,65.970733999999993],[-67.134445000000028,65.933044000000052],[-67.134734999999921,65.930267000000015],[-67.138335999999981,65.92692599999998]],[[-83.576950000000011,65.983047000000056],[-83.588607999999965,65.981658999999922],[-83.60082999999986,65.983322000000044],[-83.604445999999996,65.987762000000089],[-83.60082999999986,65.993042000000116],[-83.588897999999972,66.003052000000025],[-83.570007000000032,66.013611000000083],[-83.547500999999954,66.019440000000088],[-83.511397999999986,66.019989000000066],[-83.498885999999914,66.01748699999996],[-83.493056999999965,66.012771999999927],[-83.50140399999998,66.00749200000007],[-83.510009999999966,66.003325999999959],[-83.554442999999935,65.988876000000062],[-83.576950000000011,65.983047000000056]],[[-84.722777999999948,65.546097000000088],[-84.733886999999982,65.544708000000128],[-84.746108999999933,65.545822000000101],[-84.78472899999997,65.556640999999956],[-84.803604000000007,65.565536000000009],[-84.828612999999962,65.578873000000044],[-84.840835999999967,65.588043000000084],[-84.848052999999879,65.597487999999998],[-84.853333000000021,65.606934000000138],[-84.852218999999934,65.611923000000104],[-84.857772999999952,65.645827999999995],[-84.858886999999925,65.650818000000072],[-84.866393999999957,65.659988000000112],[-84.878601000000003,65.669144000000074],[-84.900283999999942,65.67804000000001],[-85.028609999999958,65.711655000000064],[-85.063048999999921,65.723312000000021],[-85.073897999999986,65.727768000000083],[-85.082229999999981,65.732208000000128],[-85.106948999999929,65.750548999999921],[-85.118057000000022,65.764709000000039],[-85.181945999999982,65.945526000000086],[-85.173049999999932,65.994705000000067],[-85.143889999999942,66.021103000000039],[-85.137222000000008,66.023315000000082],[-85.081679999999949,66.026657],[-85.057495000000017,66.02609300000006],[-84.9375,66.010543999999982],[-84.924712999999997,66.008040999999992],[-84.910277999999892,66.000000000000114],[-84.887221999999952,65.945526000000086],[-84.883330999999885,65.940811000000053],[-84.807770000000005,65.895828000000108],[-84.755004999999869,65.853317000000118],[-84.716110000000015,65.817215000000147],[-84.714171999999962,65.807205000000067],[-84.712783999999942,65.802200000000028],[-84.707779000000016,65.792755000000113],[-84.637222000000008,65.712203999999986],[-84.597503999999958,65.696640000000116],[-84.586670000000026,65.692200000000071],[-84.574172999999917,65.639160000000004],[-84.576110999999969,65.629150000000095],[-84.585006999999962,65.61914100000007],[-84.598617999999931,65.608597000000032],[-84.667769999999962,65.560532000000023],[-84.722777999999948,65.546097000000088]],[[-83.608611999999994,66.044144000000074],[-83.642226999999991,66.034988000000112],[-83.652221999999995,66.036652000000117],[-83.653609999999901,66.04136699999998],[-83.647507000000019,66.046646000000123],[-83.644164999999987,66.051650999999993],[-83.626099000000011,66.066940000000102],[-83.618056999999965,66.072220000000129],[-83.607223999999974,66.07748400000014],[-83.597778000000005,66.078873000000101],[-83.583618000000001,66.070540999999935],[-83.577788999999996,66.06581100000011],[-83.570847000000015,66.056366000000025],[-83.574447999999961,66.051376000000005],[-83.58555599999994,66.048035000000141],[-83.59722899999997,66.046646000000123],[-83.608611999999994,66.044144000000074]],[[-85.019164999999987,66.05720500000001],[-85.135558999999944,66.044434000000081],[-85.147781000000009,66.045821999999987],[-85.149170000000026,66.05053700000002],[-85.107773000000009,66.084427000000119],[-85.09973100000002,66.089706000000092],[-85.063323999999966,66.087769000000037],[-85.038604999999961,66.086105000000032],[-85.016112999999905,66.079712000000086],[-85.008620999999948,66.070540999999935],[-85.006957999999941,66.065536000000066],[-85.010283999999956,66.060531999999967],[-85.019164999999987,66.05720500000001]],[[-83.649444999999901,66.083602999999982],[-83.661117999999988,66.081940000000031],[-83.673614999999984,66.083327999999938],[-83.692490000000021,66.091370000000097],[-83.696105999999986,66.096099999999979],[-83.689986999999974,66.111099000000024],[-83.685271999999941,66.121093999999914],[-83.678878999999995,66.125259000000142],[-83.606658999999979,66.124146000000053],[-83.593886999999938,66.121643000000063],[-83.587783999999999,66.117203000000075],[-83.591674999999896,66.112197999999978],[-83.604445999999996,66.105820000000051],[-83.610549999999932,66.10165399999994],[-83.638061999999991,66.086928999999998],[-83.649444999999901,66.083602999999982]],[[-83.921386999999982,66.009720000000016],[-83.730834999999956,65.947754000000032],[-83.705840999999964,65.934143000000063],[-83.694152999999972,65.924697999999978],[-83.683318999999983,65.910538000000088],[-83.680832000000009,65.901093000000003],[-83.689163000000008,65.866653000000042],[-83.699721999999952,65.851379000000009],[-83.713897999999972,65.841094999999939],[-83.724715999999944,65.836929000000055],[-83.73582499999992,65.833603000000039],[-83.727492999999924,65.799713000000111],[-83.525008999999955,65.737761999999918],[-83.360001000000011,65.727478000000076],[-83.348052999999993,65.726928999999984],[-83.25111400000003,65.716934000000037],[-83.226944000000003,65.714157000000114],[-83.214447000000007,65.710541000000092],[-83.210830999999871,65.705826000000059],[-83.25111400000003,65.654709000000139],[-83.259445000000028,65.649429000000055],[-83.288894999999968,65.632750999999985],[-83.299727999999959,65.629424999999969],[-83.311110999999983,65.627196999999967],[-83.345000999999968,65.62081900000004],[-83.379165999999998,65.615540000000067],[-83.391387999999949,65.617203000000131],[-83.399170000000026,65.62081900000004],[-83.406113000000005,65.630264000000068],[-83.41194200000001,65.634720000000016],[-83.419998000000021,65.639435000000049],[-83.430557000000022,65.643875000000037],[-83.443328999999949,65.648041000000148],[-83.468612999999948,65.654984000000127],[-83.493056999999965,65.65776100000005],[-83.505004999999926,65.658324999999991],[-83.528610000000015,65.658324999999991],[-83.598891999999978,65.656372000000033],[-83.660277999999948,65.647217000000012],[-83.829726999999991,65.64498900000001],[-83.842772999999909,65.649155000000121],[-83.846114999999941,65.653869999999984],[-83.84973100000002,65.668320000000108],[-83.846389999999985,65.673309000000074],[-83.840560999999866,65.678589000000102],[-83.794158999999979,65.719437000000028],[-83.785827999999981,65.724700999999982],[-83.775009000000011,65.728043000000127],[-83.740828999999962,65.733322000000101],[-83.695266999999944,65.741089000000045],[-83.684158000000025,65.74443100000002],[-83.682769999999948,65.749419999999986],[-83.688888999999961,65.754166000000055],[-83.785278000000005,65.788879000000065],[-83.797501000000011,65.789429000000098],[-83.808883999999978,65.78804000000008],[-83.84973100000002,65.780548000000124],[-83.90583799999996,65.767487000000017],[-83.927490000000034,65.759720000000073],[-83.938048999999978,65.74443100000002],[-83.948607999999922,65.740265000000079],[-83.960007000000019,65.737761999999918],[-83.971664000000033,65.737198000000149],[-83.983886999999925,65.738586000000055],[-84.071121000000005,65.75],[-84.120543999999938,65.758331000000055],[-84.133330999999941,65.760817999999972],[-84.143615999999952,65.764160000000061],[-84.145003999999972,65.769149999999968],[-84.141388000000006,65.774155000000007],[-84.11721799999998,65.789703000000031],[-84.111388999999974,65.794983000000059],[-84.103333000000021,65.809981999999934],[-84.101105000000018,65.819717000000026],[-84.123610999999926,65.900269000000037],[-84.189437999999996,65.968322999999998],[-84.198043999999925,65.973038000000031],[-84.208617999999888,65.977203000000031],[-84.286391999999978,65.999145999999996],[-84.299438000000009,66.002487000000031],[-84.31138599999997,66.003052000000025],[-84.323333999999988,66.002487000000031],[-84.358046999999999,65.997756999999979],[-84.369995000000017,65.997208000000057],[-84.382766999999944,66.000549000000092],[-84.424163999999962,66.028046000000018],[-84.436110999999926,66.037201000000096],[-84.464447000000007,66.060257000000092],[-84.468062999999972,66.064986999999974],[-84.469161999999983,66.069992000000013],[-84.470001000000025,66.089431999999988],[-84.471114999999998,66.128311000000053],[-84.470275999999956,66.133331000000112],[-84.464447000000007,66.138321000000133],[-84.455841000000021,66.141663000000051],[-84.433060000000012,66.138885000000073],[-84.381103999999993,66.129149999999981],[-84.368056999999908,66.125808999999947],[-84.240279999999927,66.098328000000095],[-84.146392999999875,66.081099999999992],[-84.039443999999946,66.076934999999992],[-84.00167799999997,66.033600000000035],[-83.921386999999982,66.009720000000016]],[[-84.579726999999991,66.141373000000044],[-84.627486999999917,66.139160000000118],[-84.639998999999989,66.140549000000078],[-84.648346000000004,66.144989000000123],[-84.654449,66.149429000000112],[-84.675827000000027,66.173035000000027],[-84.678604000000007,66.182480000000055],[-84.667220999999927,66.184981999999991],[-84.618880999999988,66.176651000000049],[-84.59333799999996,66.171097000000088],[-84.589447000000007,66.166382000000056],[-84.574448000000018,66.147491000000002],[-84.579726999999991,66.141373000000044]],[[-84.265288999999996,66.177765000000022],[-84.276947000000007,66.175262000000089],[-84.289169000000015,66.175537000000077],[-84.301391999999964,66.176926000000094],[-84.313889000000017,66.179428000000144],[-84.353333000000021,66.190262000000018],[-84.361937999999952,66.194702000000063],[-84.364440999999943,66.204436999999928],[-84.363616999999977,66.209427000000005],[-84.360001000000011,66.214432000000045],[-84.348343,66.215820000000122],[-84.335830999999985,66.214432000000045],[-84.30972300000002,66.207764000000054],[-84.299164000000019,66.203322999999955],[-84.27305599999994,66.196640000000002],[-84.264450000000011,66.192199999999957],[-84.258347000000015,66.187759000000085],[-84.256957999999997,66.1827550000001],[-84.265288999999996,66.177765000000022]],[[-62.183883999999864,66.237198000000092],[-62.199164999999994,66.216933999999924],[-62.404998999999862,66.218597000000045],[-62.415276000000006,66.219147000000078],[-62.421668999999952,66.222214000000008],[-62.42999999999995,66.229156000000103],[-62.426665999999898,66.233046999999999],[-62.419167000000016,66.237762000000032],[-62.319450000000018,66.269440000000031],[-62.301940999999999,66.274994000000049],[-62.287223999999924,66.278046000000131],[-62.278336000000024,66.279709000000082],[-62.261672999999973,66.280273000000022],[-62.24888599999997,66.278595000000109],[-62.243057000000022,66.276931999999988],[-62.231383999999935,66.269440000000031],[-62.183883999999864,66.237198000000092]],[[-83.067229999999881,66.255554000000075],[-83.054992999999911,66.254990000000134],[-83.043059999999969,66.255264000000068],[-83.031113000000005,66.256653000000028],[-83.019454999999994,66.259155000000135],[-82.996947999999975,66.265823000000069],[-82.960830999999985,66.272491000000059],[-82.937209999999936,66.275269000000037],[-82.91332999999986,66.276093000000003],[-82.902495999999985,66.271652000000131],[-82.904175000000009,66.266662999999937],[-82.910278000000005,66.261658000000068],[-82.918610000000001,66.257492000000013],[-82.92971799999998,66.25221300000004],[-82.935546999999929,66.251389000000074],[-82.990279999999984,66.203598],[-82.996384000000035,66.19859300000013],[-83.00778200000002,66.195250999999985],[-83.019729999999981,66.194977000000051],[-83.080291999999986,66.196640000000002],[-83.093062999999972,66.198868000000118],[-83.263335999999981,66.247208000000001],[-83.287216000000001,66.256104000000107],[-83.293335000000013,66.260544000000095],[-83.296660999999972,66.265273999999977],[-83.297775000000001,66.270263999999997],[-83.298339999999882,66.313873000000115],[-83.285004000000015,66.329163000000108],[-83.273055999999997,66.339432000000102],[-83.264175000000023,66.343597000000102],[-83.252228000000002,66.344986000000119],[-83.226944000000003,66.33998100000008],[-83.216110000000015,66.335541000000035],[-83.204726999999934,66.316666000000112],[-83.173889000000031,66.288589000000115],[-83.168059999999912,66.283874999999966],[-83.067229999999881,66.255554000000075]],[[-66.62332200000003,66.280823000000055],[-66.641952999999944,66.279434000000037],[-66.656951999999933,66.280273000000022],[-66.667495999999971,66.282760999999994],[-66.678878999999995,66.286925999999994],[-66.701400999999976,66.297760000000039],[-66.741942999999878,66.316376000000105],[-66.843063000000029,66.362487999999985],[-66.905837999999903,66.376648000000046],[-66.916107000000011,66.379974000000118],[-66.944716999999969,66.394989000000066],[-66.956115999999952,66.401932000000045],[-66.958617999999944,66.40637200000009],[-66.958344000000011,66.411926000000051],[-66.955276000000026,66.413605000000075],[-66.944442999999922,66.413879000000009],[-66.851943999999946,66.402205999999978],[-66.829726999999991,66.398330999999985],[-66.823059000000001,66.392761000000121],[-66.820846999999958,66.388046000000088],[-66.801101999999958,66.375534000000073],[-66.782227000000034,66.369141000000127],[-66.726944000000003,66.354980000000126],[-66.705565999999976,66.349715999999944],[-66.678329000000019,66.345535000000041],[-66.662216000000001,66.343597000000102],[-66.650283999999942,66.34304800000001],[-66.639724999999999,66.340546000000074],[-66.62388599999997,66.335266000000047],[-66.584441999999967,66.320541000000105],[-66.575012000000015,66.313873000000115],[-66.573623999999995,66.310806000000014],[-66.591675000000009,66.293593999999985],[-66.605269999999962,66.286652000000061],[-66.62332200000003,66.280823000000055]],[[-66.998336999999935,66.493042000000003],[-66.990279999999984,66.489150999999936],[-66.976104999999961,66.489150999999936],[-66.963332999999977,66.487198000000035],[-66.873321999999973,66.468596999999988],[-66.868880999999988,66.464431999999988],[-66.871384000000035,66.460541000000092],[-66.878052000000025,66.458327999999995],[-66.936110999999926,66.445525999999973],[-66.948883000000023,66.444702000000007],[-66.987212999999997,66.445250999999928],[-67.030288999999925,66.45248400000014],[-67.036666999999966,66.456099999999992],[-67.038329999999974,66.472488000000055],[-67.038054999999986,66.478043000000127],[-67.035278000000005,66.484711000000118],[-67.025008999999955,66.489975000000129],[-67.006957999999884,66.493042000000003],[-66.998336999999935,66.493042000000003]],[[-107.92304999999993,66.850540000000024],[-107.93499799999989,66.849152000000117],[-107.94611399999991,66.851089000000115],[-107.94554099999993,66.856934000000024],[-107.837784,67.003875999999991],[-107.83029199999993,67.008606000000043],[-107.81696299999993,67.009155000000135],[-107.80666400000001,67.005829000000119],[-107.79499800000002,66.997208000000001],[-107.79110699999995,66.988312000000064],[-107.78971899999999,66.985259999999982],[-107.79055800000003,66.979705999999965],[-107.82389799999999,66.901093000000003],[-107.83000199999992,66.895538000000101],[-107.89499699999999,66.860809000000017],[-107.90360999999996,66.856934000000024],[-107.92304999999993,66.850540000000024]],[[-108.01445000000001,66.897766000000047],[-108.025284,66.895538000000101],[-108.03859699999998,66.897217000000126],[-108.04444899999993,66.901382000000126],[-108.09638999999993,66.967484000000013],[-108.09777800000001,66.972762999999986],[-108.10659799999996,67.026001000000065],[-108.06360599999988,67.001099000000067],[-107.93831599999999,66.946930000000066],[-107.95944199999991,66.931655999999975],[-107.96665999999993,66.926651000000106],[-108.00583599999987,66.901931999999931],[-108.01445000000001,66.897766000000047]],[[-63.059166000000005,66.957764000000111],[-63.083327999999995,66.954987000000017],[-63.095550999999944,66.955826000000002],[-63.116942999999992,66.963043000000084],[-63.136391000000003,66.974701000000096],[-63.163054999999929,66.995255000000043],[-63.165549999999996,66.999145999999939],[-63.166106999999954,67.004990000000134],[-63.159163999999976,67.015549000000021],[-63.154166999999973,67.021378000000027],[-63.144446999999957,67.028869999999984],[-63.127494999999954,67.033599999999979],[-63.123055000000022,67.034713999999951],[-63.110831999999903,67.033875000000023],[-63.101668999999902,67.029709000000082],[-63.098052999999936,67.027205999999978],[-63.097778000000005,67.023315000000082],[-63.021111000000019,66.996643000000006],[-63.011672999999973,66.992477000000065],[-63.003890999999953,66.988585999999998],[-62.999999999999886,66.984420999999998],[-62.999442999999985,66.978591999999992],[-63.002228000000002,66.97554000000008],[-63.020835999999974,66.966385000000002],[-63.040000999999961,66.960815000000139],[-63.059166000000005,66.957764000000111]],[[-62.918334999999956,67.009720000000016],[-62.938048999999978,67.005829000000119],[-62.977775999999949,67.006653000000085],[-63.009726999999998,67.009995000000004],[-63.037780999999939,67.015823000000125],[-63.068335999999988,67.025543000000027],[-63.092772999999966,67.035812000000078],[-63.12388599999997,67.049149000000114],[-63.135559000000001,67.054703000000075],[-63.138892999999996,67.059418000000107],[-63.138054000000011,67.065262000000132],[-63.135833999999988,67.069716999999969],[-63.130279999999914,67.074158000000068],[-63.11721799999998,67.078873000000101],[-63.110557999999969,67.080276000000026],[-63.100081999999929,67.079712000000086],[-63.002228000000002,67.069443000000035],[-62.978333000000021,67.062759000000142],[-62.961112999999955,67.054703000000075],[-62.941108999999926,67.043593999999985],[-62.922500999999954,67.031097000000045],[-62.914444000000003,67.023041000000148],[-62.912215999999944,67.014708999999982],[-62.918334999999956,67.009720000000016]],[[-62.64416499999993,67.057479999999998],[-62.646949999999947,67.049988000000042],[-62.65166499999998,67.04693600000013],[-62.752501999999993,67.010543999999982],[-62.764449999999954,67.009155000000135],[-62.782775999999956,67.009430000000009],[-62.813056999999958,67.016937000000098],[-62.832222000000002,67.024429000000055],[-62.899445000000014,67.058318999999983],[-62.894599999999969,67.059113000000082],[-62.865004999999996,67.057479999999998],[-62.82028200000002,67.055817000000047],[-62.810279999999977,67.05693100000002],[-62.806664000000012,67.05914300000012],[-62.702869000000021,67.128685000000075],[-62.652221999999995,67.166091999999992],[-62.641945000000021,67.174149],[-62.631942999999865,67.176926000000037],[-62.547782999999924,67.186096000000134],[-62.533889999999985,67.187195000000088],[-62.425277999999992,67.191085999999984],[-62.418059999999969,67.19081099999994],[-62.37888299999986,67.169708000000071],[-62.375274999999931,67.165817000000004],[-62.376105999999936,67.164429000000098],[-62.388054000000011,67.157486000000063],[-62.443610999999919,67.135817999999972],[-62.451942000000031,67.132751000000042],[-62.472495999999978,67.126083000000051],[-62.504172999999923,67.119430999999963],[-62.538612000000001,67.113876000000062],[-62.569449999999961,67.105819999999994],[-62.580001999999979,67.102203000000088],[-62.596106999999961,67.092209000000025],[-62.631667999999934,67.069991999999957],[-62.638610999999912,67.063873000000115],[-62.64416499999993,67.057479999999998]],[[-107.40778399999999,67.083054000000004],[-107.49054699999999,67.071380999999974],[-107.50639299999995,67.072495000000117],[-107.51750199999987,67.074706999999989],[-107.52778599999999,67.078048999999965],[-107.54972800000002,67.08998100000008],[-107.56500199999999,67.103317000000061],[-107.57444799999996,67.112198000000149],[-107.58389299999988,67.121368000000018],[-107.59110999999996,67.130813999999987],[-107.62917299999992,67.18331900000004],[-107.63054699999992,67.188582999999994],[-107.62970699999988,67.194138000000066],[-107.62666300000001,67.200272000000098],[-107.62053700000001,67.206100000000049],[-107.60833700000001,67.20748900000001],[-107.59777799999995,67.204162999999994],[-107.58168000000001,67.196365000000128],[-107.57584400000002,67.192200000000128],[-107.56194299999987,67.183868000000132],[-107.51000999999991,67.15637200000009],[-107.47778299999993,67.140823000000012],[-107.46193700000003,67.133331000000055],[-107.44360399999999,67.126083000000051],[-107.412781,67.115814000000057],[-107.40055799999993,67.113037000000134],[-107.40778399999999,67.083054000000004]],[[-95.361663999999962,67.197754000000145],[-95.373610999999926,67.196365000000128],[-95.400557999999933,67.197204999999997],[-95.415282999999988,67.199707000000103],[-95.430831999999896,67.202773999999977],[-95.527495999999928,67.223037999999974],[-95.543334999999956,67.226379000000009],[-95.551392000000021,67.230270000000075],[-95.552779999999927,67.235260000000096],[-95.542220999999984,67.238585999999941],[-95.391112999999962,67.263046000000145],[-95.377776999999924,67.262772000000041],[-95.317229999999995,67.255554000000018],[-95.307220000000029,67.252486999999917],[-95.305832000000009,67.247757000000092],[-95.309432999999956,67.242203000000075],[-95.314712999999927,67.238585999999941],[-95.336669999999913,67.212769000000094],[-95.342772999999966,67.206940000000088],[-95.361663999999962,67.197754000000145]],[[-107.66278099999994,67.22026100000005],[-107.675003,67.218872000000033],[-107.73029300000002,67.289978000000076],[-107.73306300000002,67.300261999999918],[-107.73029300000002,67.306366000000139],[-107.72501399999993,67.31303400000013],[-107.71083099999998,67.319153000000142],[-107.67777999999993,67.311919999999986],[-107.66944899999993,67.30802900000009],[-107.66000399999996,67.298874000000012],[-107.64472999999998,67.269150000000025],[-107.64028899999994,67.253601000000117],[-107.63945000000001,67.242752000000053],[-107.64250199999992,67.236649000000114],[-107.64778100000001,67.229980000000012],[-107.65416699999997,67.224426000000051],[-107.66278099999994,67.22026100000005]],[[-63.366393999999957,67.287766000000033],[-63.396111000000019,67.269988999999953],[-63.417777999999998,67.26638800000012],[-63.456107999999972,67.264434999999992],[-63.507506999999976,67.269440000000031],[-63.541945999999939,67.272491000000059],[-63.55972300000002,67.273041000000092],[-63.578339000000028,67.273315000000025],[-63.62027699999993,67.269150000000025],[-63.763618000000008,67.272491000000059],[-63.81361400000003,67.279160000000104],[-63.829726999999878,67.28414900000007],[-63.819449999999961,67.289978000000076],[-63.796668999999952,67.299987999999985],[-63.688331999999889,67.341660000000047],[-63.666663999999969,67.345535000000041],[-63.646110999999962,67.348038000000031],[-63.605559999999969,67.352203000000031],[-63.585830999999871,67.353317000000004],[-63.485001000000011,67.341094999999996],[-63.369164000000012,67.302475000000072],[-63.357779999999991,67.293868999999972],[-63.366393999999957,67.287766000000033]],[[-107.91082799999998,67.310532000000023],[-107.93443300000001,67.306640999999956],[-107.94803599999995,67.308319000000097],[-108.08444199999997,67.381363000000079],[-108.076683,67.424698000000035],[-108.07389799999993,67.430817000000104],[-108.06861899999996,67.437485000000038],[-108.06111099999993,67.442200000000071],[-107.94748700000002,67.479980000000012],[-107.91776999999996,67.48942599999998],[-107.90306099999992,67.489151000000106],[-107.89472999999992,67.485535000000084],[-107.88722200000001,67.476089000000115],[-107.88276699999989,67.462494000000049],[-107.89806399999998,67.319717000000082],[-107.90110799999997,67.313598999999954],[-107.91082799999998,67.310532000000023]],[[-108.36833200000001,67.467209000000082],[-108.38194299999998,67.466660000000104],[-108.39806399999998,67.467758000000003],[-108.43388399999998,67.47665400000011],[-108.44444299999992,67.479980000000012],[-108.45278899999994,67.483871000000079],[-108.45889299999988,67.488037000000134],[-108.49249299999997,67.519714000000079],[-108.49638400000003,67.524429000000112],[-108.49582700000002,67.529984000000013],[-108.49137899999999,67.563034000000073],[-108.48137700000001,67.566375999999991],[-108.45777899999996,67.568054000000132],[-108.33583099999993,67.565810999999997],[-108.29750100000001,67.557205000000067],[-108.28582799999998,67.54304500000012],[-108.28443899999996,67.537766000000147],[-108.29527299999995,67.49693300000007],[-108.30166600000001,67.491089000000045],[-108.35722399999986,67.469437000000028],[-108.36833200000001,67.467209000000082]],[[-108.14111300000002,67.449997000000053],[-108.16944899999993,67.449707000000046],[-108.23665599999993,67.456650000000025],[-108.25167799999997,67.458878000000141],[-108.26222200000001,67.462204000000042],[-108.26806599999992,67.466660000000104],[-108.27194199999991,67.471374999999966],[-108.275284,67.481658999999979],[-108.22556299999997,67.565536000000122],[-108.21916199999987,67.571106000000043],[-108.20638999999994,67.570540999999992],[-108.19833399999999,67.566665999999998],[-108.17360699999995,67.552475000000015],[-108.1661069999999,67.54304500000012],[-108.13137799999993,67.481934000000024],[-108.12970699999994,67.47665400000011],[-108.12888299999997,67.465820000000065],[-108.12943999999999,67.460266000000047],[-108.13249200000001,67.454163000000108],[-108.14111300000002,67.449997000000053]],[[-108.32277699999997,67.589980999999966],[-108.32362399999994,67.586655000000121],[-108.33944700000001,67.587769000000094],[-108.42027300000001,67.599426000000051],[-108.48222399999992,67.631363000000022],[-108.48388699999992,67.636658000000068],[-108.475281,67.640548999999965],[-108.46389799999992,67.643051000000071],[-108.44803599999995,67.641937000000041],[-108.41832699999992,67.63638300000008],[-108.40334299999995,67.634155000000135],[-108.390289,67.631088000000034],[-108.379707,67.627762000000132],[-108.37138400000003,67.62414600000011],[-108.33416699999992,67.604156000000103],[-108.32277699999997,67.589980999999966]],[[-63.881942999999978,67.503326000000015],[-63.935555000000022,67.501938000000109],[-63.979163999999912,67.503052000000082],[-63.99500299999994,67.504166000000055],[-64.005279999999914,67.505263999999954],[-64.025283999999942,67.510544000000039],[-64.029723999999874,67.513885000000073],[-64.031677000000002,67.518600000000106],[-64.034728999999913,67.52887000000004],[-64.038054999999872,67.542755000000113],[-64.034438999999907,67.558594000000028],[-63.981110000000001,67.644150000000025],[-63.976944000000003,67.649428999999998],[-63.969993999999986,67.653595000000109],[-63.962775999999963,67.65554800000001],[-63.952498999999989,67.654434000000037],[-63.945549000000028,67.651382000000126],[-63.93721800000003,67.645263999999997],[-63.926392000000021,67.633330999999941],[-63.922226000000023,67.624985000000038],[-63.915549999999996,67.617203000000131],[-63.904442000000017,67.60803199999998],[-63.875556999999958,67.593048000000067],[-63.853888999999924,67.585541000000148],[-63.815276999999924,67.566665999999998],[-63.787223999999981,67.550537000000077],[-63.769996999999989,67.537766000000147],[-63.763618000000008,67.529709000000025],[-63.758056999999951,67.520538000000045],[-63.760833999999988,67.51527400000009],[-63.769447000000014,67.513321000000133],[-63.818335999999988,67.5086060000001],[-63.842223999999931,67.506377999999984],[-63.881942999999978,67.503326000000015]],[[-108.05999799999995,67.475266000000033],[-108.08972199999994,67.465546000000131],[-108.10333300000002,67.467209000000082],[-108.109444,67.471374999999966],[-108.11332700000003,67.476089000000115],[-108.14389,67.530547999999953],[-108.14277600000003,67.541655999999989],[-108.13362099999989,67.628036000000066],[-108.13221699999997,67.639434999999992],[-108.11776699999996,67.669982999999945],[-108.11361699999998,67.675261999999975],[-108.10109699999992,67.676651000000106],[-108.087219,67.674988000000042],[-108.01418299999995,67.662491000000045],[-108.00361599999997,67.65914900000007],[-107.99553700000001,67.655258000000003],[-107.98944099999994,67.651093000000003],[-107.98332199999999,67.644714000000135],[-107.92832900000002,67.561645999999996],[-107.92304999999993,67.551651000000049],[-107.92138699999992,67.54664600000001],[-107.922234,67.540817000000004],[-107.92749000000003,67.534424000000058],[-108.05999799999995,67.475266000000033]],[[-97.502791999999943,67.624420000000043],[-97.515563999999927,67.623871000000065],[-97.530288999999982,67.624985000000038],[-97.541381999999999,67.628860000000032],[-97.549437999999952,67.638045999999974],[-97.551391999999964,67.642761000000007],[-97.553054999999915,67.647766000000104],[-97.560546999999929,67.692748999999992],[-97.40055799999999,67.731658999999922],[-97.387786999999889,67.732208000000071],[-97.360001000000011,67.731658999999922],[-97.346389999999928,67.728317000000004],[-97.337783999999999,67.724152000000004],[-97.337783999999999,67.721100000000092],[-97.33277899999996,67.70637499999998],[-97.327224999999999,67.681655999999975],[-97.33277899999996,67.675812000000008],[-97.341675000000009,67.670532000000094],[-97.370543999999882,67.657760999999994],[-97.433608999999933,67.637497000000053],[-97.478881999999942,67.627472000000125],[-97.502791999999943,67.624420000000043]],[[-109.11221299999994,67.763321000000076],[-109.12581599999987,67.76249700000011],[-109.14111299999996,67.764998999999989],[-109.195267,67.775543000000027],[-109.20612299999993,67.778869999999984],[-109.20777900000002,67.783875000000023],[-109.16944899999999,67.797759999999926],[-109.15943899999996,67.801085999999998],[-109.135559,67.802764999999965],[-109.0933379999999,67.803863999999976],[-109.07584400000002,67.802199999999971],[-109.06054699999999,67.799713000000054],[-109.03916899999996,67.793320000000108],[-109.04083299999996,67.788315000000068],[-109.05277999999993,67.782486000000063],[-109.08000199999987,67.771103000000039],[-109.08972199999994,67.768051000000128],[-109.11221299999994,67.763321000000076]],[[-96.170546999999999,67.773041000000148],[-96.182769999999948,67.77165199999996],[-96.192490000000021,67.773605000000089],[-96.196380999999917,67.778046000000018],[-96.185821999999973,67.794708000000014],[-96.179992999999968,67.800262000000032],[-96.171386999999925,67.806366000000025],[-96.098617999999988,67.832213999999965],[-96.077224999999942,67.838882000000126],[-96.065552000000025,67.841095000000109],[-96.053328999999962,67.842758000000003],[-96.040282999999931,67.843323000000055],[-96.02806099999998,67.841659999999933],[-95.997498000000007,67.820830999999998],[-95.996384000000035,67.81581100000011],[-96.004729999999995,67.809708000000001],[-96.016113000000018,67.807479999999998],[-96.040832999999964,67.804428000000087],[-96.170546999999999,67.773041000000148]],[[-114.11501299999998,67.883880999999974],[-114.08222999999998,67.883041000000105],[-114.02223200000003,67.884155000000078],[-114.00583599999999,67.8836060000001],[-113.95500199999998,67.881362999999965],[-113.92138699999998,67.878036000000009],[-113.925003,67.874694999999974],[-113.94138299999986,67.875259000000142],[-113.98638899999997,67.874419999999986],[-113.99999999999994,67.873306000000014],[-114.01027699999992,67.871368000000075],[-114.05166600000001,67.870254999999986],[-114.08306900000002,67.87052900000009],[-114.195267,67.872482000000048],[-114.22972099999987,67.874146000000053],[-114.25250199999999,67.879974000000004],[-114.29638699999998,67.892212000000029],[-114.29695100000004,67.895263999999941],[-114.27555799999999,67.900542999999914],[-114.25110599999994,67.904433999999981],[-114.21972700000003,67.904160000000047],[-114.20612299999993,67.901932000000102],[-114.17388899999997,67.892487000000074],[-114.14862099999999,67.887206999999989],[-114.13305700000001,67.885269000000051],[-114.11501299999998,67.883880999999974]],[[-97.856383999999935,67.850539999999967],[-97.866942999999992,67.846939000000134],[-97.924164000000019,67.849991000000045],[-97.954453000000001,67.856368999999972],[-97.963333000000034,67.860260000000039],[-97.970001000000025,67.86442599999998],[-97.974166999999909,67.869141000000013],[-97.973327999999924,67.874146000000053],[-97.976944000000003,67.884155000000078],[-97.97444200000001,67.904984000000013],[-97.961120999999991,67.90554800000001],[-97.933318999999983,67.89888000000002],[-97.920272999999952,67.893600000000106],[-97.91361999999998,67.889160000000118],[-97.895554000000004,67.881362999999965],[-97.86221299999994,67.859985000000052],[-97.858046999999942,67.855255],[-97.856383999999935,67.850539999999967]],[[-108.64695699999999,67.86943100000002],[-108.66082799999998,67.868865999999969],[-108.66915899999998,67.872482000000048],[-108.64666699999998,67.887206999999989],[-108.58500700000002,67.915543000000071],[-108.56610099999989,67.922759999999982],[-108.54472399999997,67.928314],[-108.531113,67.928864000000033],[-108.38027999999997,67.922484999999995],[-108.37082699999996,67.919708000000071],[-108.36444099999994,67.915543000000071],[-108.36110699999989,67.905257999999947],[-108.35944399999994,67.899993999999992],[-108.41221599999994,67.885817999999972],[-108.64695699999999,67.86943100000002]],[[-113.390289,67.897766000000047],[-113.46389799999997,67.895828000000108],[-113.52694699999995,67.896378000000141],[-113.55972300000002,67.897491000000002],[-113.59416199999993,67.899428999999941],[-113.60333299999991,67.903046000000074],[-113.59750399999996,67.906647000000135],[-113.58528100000001,67.908600000000092],[-113.41972399999997,67.925262000000089],[-113.39111300000002,67.926651000000049],[-113.34750400000001,67.928040000000067],[-113.27390299999996,67.929977000000122],[-113.25723299999993,67.929428000000144],[-113.25029000000001,67.925262000000089],[-113.24694799999997,67.914429000000098],[-113.25361599999997,67.909424000000058],[-113.27778599999999,67.905822999999998],[-113.297234,67.904433999999981],[-113.33444199999991,67.901092999999946],[-113.390289,67.897766000000047]],[[-112.93055700000002,67.916655999999989],[-112.98361199999999,67.915268000000083],[-112.99999999999989,67.916092000000049],[-113.06027199999994,67.915268000000083],[-113.13110399999999,67.911652000000004],[-113.14750700000002,67.912200999999982],[-113.14750700000002,67.915817000000004],[-113.13806199999999,67.919144000000131],[-112.94304699999998,67.931091000000094],[-112.89639299999999,67.93081699999999],[-112.88722199999995,67.927200000000028],[-112.890289,67.921921000000054],[-112.90110800000002,67.919144000000131],[-112.93055700000002,67.916655999999989]],[[-111.07167099999998,67.847488000000055],[-111.08666999999997,67.847488000000055],[-111.0911099999999,67.852203000000088],[-111.08693700000003,67.858871000000079],[-111.07028200000002,67.867203000000075],[-110.84889199999998,67.954711999999972],[-110.83917200000002,67.958037999999988],[-110.82668299999995,67.959717000000012],[-110.81388900000002,67.959152000000017],[-110.80722000000003,67.954987000000017],[-110.80943300000001,67.948867999999948],[-110.81696299999999,67.940262000000018],[-110.86221299999994,67.894989000000123],[-110.86945300000002,67.889984000000084],[-110.88027999999991,67.887496999999996],[-111.05943300000001,67.849152000000061],[-111.07167099999998,67.847488000000055]],[[-114.21916199999998,67.945250999999985],[-114.29583699999995,67.944702000000063],[-114.30999799999995,67.945816000000036],[-114.31722999999988,67.949707000000103],[-114.31082200000003,67.954711999999972],[-114.30027799999988,67.957489000000066],[-114.25446299999987,67.963318000000072],[-114.17138699999992,67.969147000000078],[-114.13999899999999,67.96887200000009],[-114.12416099999996,67.967209000000139],[-114.12110899999993,67.961929000000055],[-114.12332199999992,67.958037999999988],[-114.16332999999986,67.949142000000052],[-114.20388800000001,67.945816000000036],[-114.21916199999998,67.945250999999985]],[[-108.13806199999999,67.872482000000048],[-108.15167199999996,67.871918000000107],[-108.24553699999996,67.878036000000009],[-108.25418100000002,67.881927000000076],[-108.25556899999992,67.887206999999989],[-108.23916599999995,67.920258000000103],[-108.236107,67.926376000000062],[-108.23111,67.933044000000052],[-108.22471599999994,67.938873000000058],[-108.198036,67.950821000000076],[-108.14723200000003,67.96665999999999],[-108.12581599999999,67.972214000000008],[-108.114441,67.974426000000051],[-108.10056299999997,67.974991000000102],[-108.08416699999998,67.97387700000013],[-108.07140399999992,67.971100000000035],[-108.06054699999999,67.967758000000117],[-108.05444299999988,67.963318000000072],[-108.05055199999998,67.958603000000039],[-108.048607,67.949142000000052],[-108.05139200000002,67.926651000000049],[-108.06331599999993,67.902206000000035],[-108.06833599999999,67.895538000000045],[-108.07501200000002,67.889709000000039],[-108.08249699999999,67.884995000000117],[-108.09137699999985,67.880814000000044],[-108.11277799999999,67.87553400000013],[-108.13806199999999,67.872482000000048]],[[-113.72000099999997,67.973312000000078],[-113.72778299999993,67.969147000000078],[-113.73998999999998,67.967209000000139],[-113.75361599999997,67.966094999999996],[-113.79750099999995,67.964705999999978],[-113.99305699999996,67.961104999999918],[-113.99109599999997,67.964995999999985],[-113.98249800000002,67.967209000000139],[-113.97250400000001,67.968597000000045],[-113.91639700000002,67.972214000000008],[-113.88639799999999,67.972762999999986],[-113.83833299999998,67.971924000000001],[-113.81111099999993,67.97387700000013],[-113.78527800000001,67.976929000000041],[-113.77223199999997,67.980270000000075],[-113.74082899999996,67.979980000000069],[-113.72501399999999,67.978043000000014],[-113.72000099999997,67.973312000000078]],[[-109.195267,67.989974999999959],[-109.04998799999993,67.958328000000051],[-109.03028899999993,67.966933999999924],[-108.99082900000002,67.976379000000009],[-108.97693599999997,67.976929000000041],[-108.95111099999991,67.973312000000078],[-108.89723199999997,67.956940000000088],[-108.88445300000001,67.94859300000013],[-108.86554699999999,67.905822999999998],[-108.86609599999991,67.90026899999998],[-108.87943999999999,67.875259000000142],[-108.88806199999999,67.871093999999971],[-108.90055799999999,67.869705000000124],[-108.916946,67.87052900000009],[-109.04888900000003,67.90387000000004],[-109.10305799999998,67.920258000000103],[-109.135559,67.930267000000129],[-109.16972399999992,67.945250999999985],[-109.18888899999996,67.957764000000054],[-109.195267,67.962204000000099],[-109.19888299999997,67.972488000000112],[-109.198036,67.983871000000136],[-109.195267,67.989974999999959]],[[-110.33444199999997,68.011658000000125],[-110.39362299999993,68.011108000000092],[-110.41000400000001,68.011932000000058],[-110.42111199999994,68.014998999999932],[-110.42083700000001,68.020827999999995],[-110.41055299999999,68.024704000000042],[-110.32640099999992,68.047760000000096],[-110.317497,68.049712999999997],[-110.31082199999992,68.045532000000094],[-110.30888400000003,68.037491000000045],[-110.316101,68.019150000000025],[-110.32333399999999,68.014160000000004],[-110.33444199999997,68.011658000000125]],[[-98.951401000000033,67.979980000000069],[-98.963622999999927,67.978317000000118],[-98.979445999999939,67.980270000000075],[-99.005004999999983,67.987198000000092],[-99.014450000000011,67.991088999999988],[-99.028335999999911,67.999420000000043],[-99.078612999999905,68.045592999999997],[-99.051392000000021,68.055817000000047],[-98.990554999999858,68.078323000000069],[-98.975554999999986,68.077209000000039],[-98.968886999999995,68.073044000000039],[-98.964721999999995,68.064987000000087],[-98.934432999999956,67.99664300000012],[-98.934998000000007,67.991363999999976],[-98.942763999999954,67.985259999999926],[-98.951401000000033,67.979980000000069]],[[-65.397232000000031,68.039978000000133],[-65.409163999999976,68.039428999999984],[-65.500290000000007,68.046097000000145],[-65.510833999999988,68.04942299999999],[-65.516662999999994,68.05442800000003],[-65.519729999999981,68.067490000000078],[-65.518065999999976,68.072220000000073],[-65.505279999999971,68.076385000000073],[-65.43582200000003,68.088042999999971],[-65.394454999999994,68.08998100000008],[-65.386397999999929,68.088318000000129],[-65.390288999999996,68.078323000000069],[-65.383057000000008,68.053314000000057],[-65.383330999999941,68.048599000000024],[-65.387222000000008,68.043320000000051],[-65.397232000000031,68.039978000000133]],[[-108.50611900000001,68.034714000000122],[-108.51862299999993,68.033324999999934],[-108.53388999999999,68.035538000000088],[-108.54028299999993,68.039978000000133],[-108.53751399999999,68.046097000000145],[-108.45472699999999,68.090546000000074],[-108.44748700000002,68.087769000000037],[-108.44583099999994,68.082489000000123],[-108.44611399999991,68.074706999999989],[-108.45140100000003,68.068054000000018],[-108.46665999999999,68.058319000000097],[-108.49722299999996,68.038879000000122],[-108.50611900000001,68.034714000000122]],[[-109.32167099999998,67.981094000000041],[-109.33556399999992,67.980270000000075],[-109.35193600000002,67.981369000000086],[-109.37805199999991,67.986923000000047],[-109.432503,68.003052000000025],[-109.49804699999993,68.022766000000104],[-109.50666799999993,68.026382000000126],[-109.53888699999999,68.047485000000052],[-109.54305999999991,68.052200000000084],[-109.50473,68.088882000000069],[-109.49749799999989,68.093597000000102],[-109.484734,68.095260999999937],[-109.44722000000002,68.092209000000025],[-109.41055299999999,68.071930000000066],[-109.32167099999998,68.039978000000133],[-109.31527699999987,68.035812000000021],[-109.3116609999999,68.025543000000027],[-109.31111099999987,67.997756999999922],[-109.3116609999999,67.991928000000087],[-109.31416299999995,67.985809000000074],[-109.32167099999998,67.981094000000041]],[[-108.36054999999999,68.049712999999997],[-108.37444299999993,68.048874000000069],[-108.38751200000002,68.05192599999998],[-108.40638699999994,68.064697000000081],[-108.40805099999994,68.069716999999969],[-108.40167200000002,68.075546000000145],[-108.38221699999991,68.092758000000003],[-108.37444299999993,68.095535000000041],[-108.36193800000001,68.096939000000077],[-108.32000699999992,68.098877000000016],[-108.306107,68.099425999999937],[-108.29444899999999,68.097214000000065],[-108.297234,68.091095000000053],[-108.29778299999998,68.085541000000035],[-108.30082700000003,68.079437000000041],[-108.30860899999999,68.074706999999989],[-108.34916699999997,68.05192599999998],[-108.36054999999999,68.049712999999997]],[[-110.21362299999998,68.038039999999967],[-110.23998999999998,68.035812000000021],[-110.25639299999995,68.036652000000061],[-110.25862100000001,68.041931000000034],[-110.25,68.046097000000145],[-110.22165699999994,68.056641000000013],[-110.18195300000002,68.069716999999969],[-109.93276999999989,68.131927000000076],[-109.92166099999997,68.134155000000021],[-109.89639299999999,68.13749700000011],[-109.88583399999993,68.136383000000137],[-109.87721299999993,68.12692300000009],[-109.87748699999997,68.121368000000018],[-109.882767,68.114151000000106],[-109.88527699999997,68.108032000000037],[-109.88999899999993,68.101379000000065],[-109.89584399999995,68.095535000000041],[-109.90334300000001,68.090546000000074],[-109.92111199999994,68.081664999999987],[-109.93222000000003,68.079163000000108],[-110.08721899999995,68.053314000000057],[-110.21362299999998,68.038039999999967]],[[-112.78056299999997,68.131088000000091],[-112.79276999999996,68.129424999999969],[-112.88999899999999,68.137207000000103],[-112.9058379999999,68.139160000000061],[-112.91722099999998,68.142211999999972],[-112.922234,68.146652000000017],[-112.91832699999992,68.153594999999996],[-112.91306299999997,68.159424000000001],[-112.90638699999994,68.164429000000041],[-112.89835399999998,68.168869000000086],[-112.88861099999997,68.172211000000004],[-112.87638900000002,68.173874000000126],[-112.86110699999995,68.174149000000114],[-112.76722699999993,68.166656000000103],[-112.75167799999997,68.164703000000145],[-112.74973299999994,68.158034999999984],[-112.74472000000003,68.153594999999996],[-112.74638399999998,68.147490999999945],[-112.75334199999998,68.142211999999972],[-112.76139799999993,68.138046000000088],[-112.78056299999997,68.131088000000091]],[[-74.21556099999998,68.117751999999939],[-74.164718999999991,68.065536000000066],[-73.974716000000001,68.041092000000106],[-73.736388999999974,68.013611000000026],[-73.655471999999975,68.007705999999985],[-73.643340999999907,68.012207000000046],[-73.619995000000017,68.014998999999932],[-73.608886999999868,68.015548999999965],[-73.578063999999983,68.014434999999992],[-73.567504999999983,68.013046000000031],[-73.543883999999935,68.008330999999998],[-73.439986999999974,67.985535000000141],[-73.428329000000019,67.982208000000014],[-73.418883999999991,67.97886699999998],[-73.411666999999966,67.974991000000102],[-73.409728999999913,67.970534999999984],[-73.348617999999988,67.828048999999965],[-73.361664000000019,67.810257000000092],[-73.377776999999867,67.793869000000029],[-73.383330999999941,67.789429000000041],[-73.404175000000009,67.774994000000106],[-73.411391999999921,67.770537999999988],[-73.418609999999944,67.766388000000006],[-73.429442999999992,67.762771999999927],[-73.449431999999945,67.76249700000011],[-73.664168999999958,67.774704000000099],[-73.932219999999916,67.78637700000013],[-73.993057000000022,67.788040000000024],[-74.038329999999917,67.788589000000002],[-74.083892999999875,67.788315000000068],[-74.113327000000027,67.787201000000096],[-74.168059999999855,67.78276100000005],[-74.228881999999942,67.775268999999923],[-74.251952999999901,67.772491000000116],[-74.263061999999991,67.77165199999996],[-74.305832000000009,67.768600000000049],[-74.32028200000002,67.768875000000094],[-74.388610999999969,67.775268999999923],[-74.400833000000034,67.776657000000057],[-74.481109999999944,67.789429000000041],[-74.535278000000005,67.804703000000131],[-74.564162999999951,67.814423000000033],[-74.581680000000006,67.821381000000031],[-74.59722899999997,67.828598000000113],[-74.640838999999971,67.852203000000088],[-74.659728999999913,67.864700000000084],[-74.684433000000013,67.881927000000076],[-74.758895999999993,67.950271999999984],[-74.772232000000031,67.963318000000072],[-74.775557999999876,67.969147000000078],[-74.777221999999995,67.97387700000013],[-74.778060999999923,68.006104000000107],[-74.777495999999985,68.017761000000064],[-74.773055999999997,68.029984000000127],[-74.760009999999966,68.05442800000003],[-74.754181000000017,68.06053200000008],[-74.748610999999926,68.065536000000066],[-74.731948999999872,68.070831000000112],[-74.718613000000005,68.072220000000073],[-74.629990000000021,68.078598000000056],[-74.615279999999984,68.078323000000069],[-74.436661000000015,68.097487999999998],[-74.363892000000021,68.166381999999999],[-74.355834999999956,68.172759999999982],[-74.346953999999926,68.176376000000005],[-74.339447000000007,68.177199999999971],[-74.322509999999909,68.173035000000141],[-74.268889999999999,68.154984000000013],[-74.239440999999999,68.144989000000066],[-74.231673999999941,68.141936999999984],[-74.216399999999965,68.134155000000021],[-74.212509000000011,68.130538999999942],[-74.210830999999985,68.124984999999981],[-74.21556099999998,68.117751999999939]],[[-65.642226999999991,68.159424000000001],[-65.56639100000001,68.152205999999978],[-65.512787000000003,68.15277100000003],[-65.502791999999999,68.151093000000117],[-65.497771999999941,68.14776599999999],[-65.494445999999925,68.142487000000017],[-65.495543999999995,68.128310999999997],[-65.500838999999985,68.121918000000051],[-65.516953000000001,68.113037000000077],[-65.525283999999999,68.109711000000061],[-65.675551999999982,68.096100000000092],[-65.686935000000005,68.095825000000104],[-65.696105999999929,68.098877000000016],[-65.709731999999974,68.106094000000098],[-65.713897999999972,68.112762000000089],[-65.721938999999963,68.164429000000041],[-65.716949,68.175812000000064],[-65.711670000000026,68.180267000000072],[-65.701400999999976,68.181366000000082],[-65.67582699999997,68.179977000000065],[-65.656661999999926,68.175262000000032],[-65.648345999999947,68.168594000000041],[-65.646666999999923,68.163605000000075],[-65.642226999999991,68.159424000000001]],[[-107.47361799999993,68.144714000000079],[-107.48500100000001,68.142487000000017],[-107.50140399999998,68.143600000000049],[-107.55499299999991,68.160537999999974],[-107.55416899999994,68.166091999999992],[-107.54499800000002,68.169983000000059],[-107.5038909999999,68.182480000000055],[-107.49472000000003,68.18664600000011],[-107.48444399999994,68.189697000000137],[-107.46806300000003,68.188582999999994],[-107.46193700000003,68.184142999999949],[-107.46028100000001,68.179153000000099],[-107.45935800000001,68.175629000000015],[-107.45667299999997,68.174423000000047],[-107.45527600000003,68.169144000000074],[-107.45584099999996,68.163605000000075],[-107.46694899999994,68.15026899999998],[-107.47361799999993,68.144714000000079]],[[-104.453056,68.102203000000031],[-104.48277299999995,68.079712000000029],[-104.497772,68.080275999999969],[-104.50334199999992,68.084717000000069],[-104.55304699999999,68.140274000000034],[-104.55610699999994,68.145264000000111],[-104.55695299999996,68.15026899999998],[-104.55387899999999,68.161651999999947],[-104.54666099999997,68.164992999999981],[-104.42639200000002,68.199997000000053],[-104.41555799999998,68.202773999999977],[-104.391953,68.206940000000088],[-104.37721299999998,68.199707000000046],[-104.36860699999994,68.190536000000122],[-104.370003,68.184982000000105],[-104.37416100000002,68.178863999999976],[-104.40499899999992,68.139435000000049],[-104.453056,68.102203000000031]],[[-107.38890100000003,68.172211000000004],[-107.40278599999999,68.171645999999953],[-107.41111799999999,68.17553700000002],[-107.44167299999992,68.196929999999952],[-107.445267,68.201660000000004],[-107.43998699999997,68.208327999999995],[-107.42944299999999,68.211380000000077],[-107.41443599999997,68.211105000000089],[-107.30972300000002,68.209152000000131],[-107.295547,68.20748900000001],[-107.29167200000001,68.202773999999977],[-107.31054699999999,68.196091000000024],[-107.38890100000003,68.172211000000004]],[[-111.83332799999999,68.181931000000077],[-111.84722899999997,68.180817000000104],[-111.860817,68.183594000000028],[-111.86554699999999,68.188034000000016],[-111.83222999999998,68.204987000000131],[-111.81416300000001,68.212494000000049],[-111.79194599999994,68.21775800000006],[-111.77944899999994,68.219437000000028],[-111.764183,68.219437000000028],[-111.75499699999995,68.215820000000122],[-111.75945299999995,68.209152000000131],[-111.76666299999994,68.206375000000037],[-111.79194599999994,68.193588000000034],[-111.81111099999998,68.186920000000043],[-111.83332799999999,68.181931000000077]],[[-98.650283999999999,68.180267000000072],[-98.674438000000009,68.173874000000126],[-98.704453000000001,68.176085999999998],[-98.702788999999996,68.191650000000095],[-98.693328999999949,68.213608000000022],[-98.684433000000013,68.218872000000033],[-98.672226000000023,68.220534999999927],[-98.657226999999978,68.219437000000028],[-98.643065999999976,68.216095000000109],[-98.638610999999969,68.211655000000121],[-98.636672999999917,68.206650000000025],[-98.643065999999976,68.201660000000004],[-98.650283999999999,68.180267000000072]],[[-74.062774999999988,68.151657000000057],[-74.073623999999938,68.150818000000072],[-74.138335999999924,68.170258000000047],[-74.169723999999974,68.195525999999973],[-74.176392000000021,68.204162999999994],[-74.171386999999982,68.208602999999982],[-74.15583799999996,68.217484000000127],[-74.138061999999991,68.225815000000011],[-74.117217999999923,68.232207999999957],[-74.105835000000013,68.235260000000096],[-74.097228999999913,68.236649000000057],[-74.086944999999957,68.235260000000096],[-74.079726999999991,68.232483000000002],[-74.075286999999946,68.227767999999969],[-74.073059000000001,68.223877000000073],[-74.063323999999909,68.203049000000021],[-74.055557000000022,68.172485000000108],[-74.054442999999992,68.159988000000112],[-74.057219999999973,68.154984000000013],[-74.062774999999988,68.151657000000057]],[[-108.59028599999999,68.214431999999988],[-108.63944999999995,68.151382000000012],[-108.6499859999999,68.152481000000023],[-108.65862299999998,68.156097000000045],[-108.67748999999998,68.168869000000086],[-108.67360699999995,68.186371000000122],[-108.67194399999994,68.191085999999984],[-108.63500999999997,68.228592000000106],[-108.62748699999992,68.233597000000145],[-108.60555999999997,68.23692299999999],[-108.56610099999989,68.240540000000124],[-108.55972300000002,68.236099000000024],[-108.59028599999999,68.214431999999988]],[[-109.78388999999999,68.13749700000011],[-109.81166099999996,68.136107999999979],[-109.828056,68.136932000000115],[-109.84137699999997,68.139708999999982],[-109.84999099999999,68.143325999999945],[-109.85665899999998,68.14776599999999],[-109.85417200000001,68.153869999999984],[-109.845551,68.158034999999984],[-109.77194199999997,68.188309000000061],[-109.676941,68.224152000000061],[-109.64417300000002,68.232207999999957],[-109.58889799999997,68.245254999999986],[-109.57749899999988,68.247482000000048],[-109.56806899999998,68.247208000000114],[-109.57055699999995,68.241089000000102],[-109.57695000000001,68.232483000000002],[-109.58194700000001,68.225815000000011],[-109.59416199999993,68.214431999999988],[-109.67388899999997,68.173309000000074],[-109.7625119999999,68.143325999999945],[-109.77250699999991,68.139984000000027],[-109.78388999999999,68.13749700000011]],[[-66.31361400000003,68.14776599999999],[-66.326950000000011,68.147490999999945],[-66.354995999999971,68.153319999999951],[-66.381103999999937,68.158600000000035],[-66.396392999999932,68.161102000000085],[-66.468612999999948,68.171097000000032],[-66.527785999999878,68.177765000000022],[-66.570847000000015,68.181366000000082],[-66.601944000000003,68.182480000000055],[-66.607223999999974,68.217209000000082],[-66.5,68.239700000000084],[-66.299437999999952,68.254440000000045],[-66.221938999999963,68.241089000000102],[-66.256667999999991,68.163605000000075],[-66.269729999999925,68.158600000000035],[-66.301391999999964,68.149154999999951],[-66.31361400000003,68.14776599999999]],[[-96.384170999999924,68.200821000000019],[-96.422775000000001,68.198318000000086],[-96.436935000000005,68.198593000000074],[-96.448607999999922,68.20248400000014],[-96.454726999999934,68.206650000000025],[-96.462783999999999,68.216095000000109],[-96.456664999999987,68.221649000000127],[-96.375,68.254715000000033],[-96.364166000000012,68.258041000000105],[-96.350829999999974,68.258605999999929],[-96.344451999999933,68.254166000000112],[-96.317504999999926,68.231934000000024],[-96.324448000000018,68.221099999999979],[-96.338897999999915,68.212204000000042],[-96.348891999999864,68.208037999999988],[-96.360001000000011,68.204712000000086],[-96.384170999999924,68.200821000000019]],[[-78.571670999999981,68.200272000000098],[-78.655563000000029,68.187759000000028],[-78.662216000000001,68.189147999999989],[-78.660277999999892,68.196365000000128],[-78.643065999999976,68.218323000000055],[-78.607223999999917,68.248322000000087],[-78.593886999999881,68.255554000000018],[-78.581115999999952,68.258880999999974],[-78.550277999999992,68.263610999999969],[-78.548049999999989,68.263046000000145],[-78.545273000000009,68.25],[-78.525283999999999,68.233597000000145],[-78.517226999999934,68.223312000000021],[-78.522506999999905,68.21775800000006],[-78.532226999999978,68.213043000000027],[-78.558883999999978,68.203049000000021],[-78.571670999999981,68.200272000000098]],[[-86.426391999999964,68.069152999999972],[-86.397507000000019,68.021652000000131],[-86.378325999999959,67.993317000000104],[-86.376662999999951,67.988585999999998],[-86.368606999999997,67.954711999999972],[-86.370833999999945,67.939972000000012],[-86.396117999999944,67.859711000000118],[-86.403609999999958,67.848877000000073],[-86.465012000000002,67.786652000000117],[-86.47084000000001,67.78137200000009],[-86.489989999999977,67.770537999999988],[-86.571945000000028,67.728867000000037],[-86.583617999999944,67.725266000000147],[-86.596663999999976,67.72554000000008],[-86.676665999999955,67.731658999999922],[-86.690552000000025,67.733871000000022],[-86.858336999999949,67.79693599999996],[-86.879439999999931,67.810257000000092],[-86.883895999999936,67.814986999999974],[-86.910278000000005,67.8477630000001],[-86.918610000000001,67.86192299999999],[-86.926940999999999,67.876373000000115],[-86.945830999999941,67.909424000000058],[-86.951949999999897,67.923874000000012],[-86.948607999999979,67.928864000000033],[-86.940551999999968,67.934418000000051],[-86.926101999999958,67.931366000000082],[-86.913329999999974,67.931931000000134],[-86.854445999999882,67.954163000000051],[-86.84333799999996,67.958603000000039],[-86.838897999999972,67.986374000000126],[-86.836945000000014,68.001099000000067],[-86.840835999999911,68.010818000000029],[-86.847503999999958,68.020263999999997],[-86.851944000000003,68.024994000000049],[-86.863892000000021,68.029159999999933],[-86.878325999999959,68.032210999999961],[-86.904175000000009,68.030548000000067],[-86.932495000000017,68.035812000000021],[-86.942214999999976,68.040267999999969],[-86.986664000000019,68.061646000000053],[-86.992766999999901,68.066666000000112],[-86.991942999999935,68.071655000000078],[-86.98832699999997,68.081664999999987],[-86.978881999999999,68.096939000000077],[-86.906386999999938,68.180267000000072],[-86.89805599999994,68.185531999999967],[-86.742492999999911,68.282760999999937],[-86.711944999999957,68.299149],[-86.700561999999934,68.303589000000045],[-86.675003000000004,68.306091000000094],[-86.646666999999923,68.301651000000106],[-86.602782999999988,68.291367000000037],[-86.538605000000018,68.270538000000101],[-86.487503000000004,68.24859600000002],[-86.458617999999888,68.235535000000084],[-86.411117999999988,68.208878000000027],[-86.406661999999983,68.204162999999994],[-86.402785999999992,68.194427000000019],[-86.434998000000007,68.162491000000102],[-86.433884000000035,68.098601999999971],[-86.432495000000017,68.088882000000069],[-86.426391999999964,68.069152999999972]],[[-111.71028100000001,68.220534999999927],[-111.72556299999997,68.220260999999994],[-111.74221799999998,68.221099999999979],[-111.75583599999993,68.223602000000028],[-111.76500699999997,68.227203000000088],[-111.77194199999991,68.231369000000029],[-111.77639799999992,68.236099000000024],[-111.77887699999997,68.241089000000102],[-111.77916699999997,68.246933000000126],[-111.77722199999999,68.253052000000139],[-111.77166699999998,68.258880999999974],[-111.71501199999994,68.296936000000073],[-111.70388799999989,68.299422999999933],[-111.52887699999991,68.310806000000127],[-111.51363400000002,68.311096000000134],[-111.49944299999993,68.296936000000073],[-111.50446299999999,68.292480000000126],[-111.52861000000001,68.290543000000071],[-111.55777,68.289429000000098],[-111.58277899999996,68.286101999999971],[-111.60526999999996,68.281096999999932],[-111.61361699999998,68.276657000000114],[-111.62777699999998,68.266663000000108],[-111.633331,68.260818000000029],[-111.63305699999995,68.249709999999993],[-111.63054699999992,68.24443100000002],[-111.63249200000001,68.238312000000008],[-111.63945000000001,68.23332199999993],[-111.64943700000003,68.229980000000012],[-111.67166099999997,68.224701000000039],[-111.696663,68.221375000000023],[-111.71028100000001,68.220534999999927]],[[-75.582779000000016,68.300262000000089],[-75.5625,68.294433999999967],[-75.453888000000006,68.266663000000108],[-75.42971799999998,68.262206999999989],[-75.386672999999917,68.258041000000105],[-75.263061999999934,68.247208000000114],[-75.228881999999942,68.24552900000009],[-75.199158000000011,68.24552900000009],[-75.183059999999955,68.243866000000025],[-75.158614999999941,68.239975000000129],[-75.134734999999864,68.234711000000118],[-75.121933000000013,68.229156000000046],[-75.030563000000029,68.167205999999965],[-75.011948000000018,68.14776599999999],[-75.003066999999987,68.132202000000063],[-75,68.119690000000105],[-75.002227999999945,68.114426000000094],[-75.049163999999962,68.041367000000093],[-75.052490000000034,68.036652000000061],[-75.063323999999966,68.027206000000092],[-75.091675000000009,68.009995000000004],[-75.148055999999997,67.974426000000051],[-75.153609999999901,67.969437000000084],[-75.164443999999946,67.954163000000051],[-75.164443999999946,67.949417000000096],[-75.162780999999939,67.943863000000079],[-75.113891999999964,67.86192299999999],[-75.104445999999996,67.847488000000055],[-75.064162999999951,67.782486000000063],[-75.025008999999955,67.625534000000016],[-75.025283999999999,67.619431000000077],[-75.068892999999889,67.542755000000113],[-75.071944999999971,67.538879000000065],[-75.133620999999948,67.481658999999979],[-75.161117999999988,67.463882000000126],[-75.198607999999979,67.443314000000044],[-75.388061999999934,67.354705999999965],[-75.395843999999954,67.353043000000071],[-75.553603999999893,67.333603000000096],[-75.662506000000008,67.305251999999996],[-75.84445199999999,67.264159999999947],[-75.946105999999929,67.251937999999996],[-76.116652999999928,67.255554000000018],[-76.226943999999946,67.260818000000029],[-76.30860899999999,67.253601000000117],[-76.490829000000019,67.236374000000069],[-76.66361999999998,67.219986000000006],[-76.693053999999961,67.221099999999979],[-76.978057999999976,67.245529000000147],[-77.026672000000019,67.254990000000078],[-77.044723999999917,67.260544000000095],[-77.057219999999916,67.267212000000086],[-77.074448000000018,67.280823000000055],[-77.101395000000025,67.30581699999999],[-77.246947999999975,67.451934999999992],[-77.247222999999963,67.457214000000135],[-77.236937999999952,67.495254999999986],[-77.224441999999954,67.535538000000031],[-77.225829999999974,67.543869000000086],[-77.230285999999978,67.554428000000144],[-77.242217999999923,67.569153000000085],[-77.275008999999955,67.614699999999971],[-77.312209999999993,67.676376000000118],[-77.320847000000015,67.691649999999981],[-77.322509999999909,67.698029000000076],[-77.319167999999991,67.71138000000002],[-77.258346999999958,67.816375999999934],[-77.251953000000015,67.82638500000013],[-77.243332000000009,67.837494000000049],[-77.233062999999959,67.848877000000073],[-77.228333000000021,67.853867000000093],[-77.220551,67.86192299999999],[-77.203888000000006,67.876373000000115],[-76.865554999999972,68.15776100000005],[-76.858886999999925,68.161651999999947],[-76.726105000000018,68.238876000000118],[-76.702498999999932,68.24859600000002],[-76.673888999999974,68.259155000000078],[-76.635009999999909,68.271927000000062],[-76.606948999999929,68.279434000000037],[-76.28195199999999,68.332764000000111],[-76.267226999999934,68.332764000000111],[-76.258346999999901,68.3316650000001],[-76.251953000000015,68.328598],[-76.25,68.323044000000039],[-76.25306699999993,68.313599000000124],[-76.249161000000015,68.307480000000112],[-76.235824999999977,68.303314],[-76.221663999999976,68.301376000000062],[-76.116104000000007,68.296646000000067],[-76.083327999999995,68.295257999999933],[-76.060546999999985,68.296936000000073],[-76.052779999999984,68.298598999999967],[-76.032227000000034,68.304703000000018],[-76.000564999999995,68.316939999999988],[-75.985001000000011,68.324432000000115],[-75.966399999999965,68.331100000000106],[-75.954178000000013,68.333878000000084],[-75.930831999999953,68.336929000000112],[-75.917495999999915,68.338318000000072],[-75.887511999999958,68.339705999999978],[-75.818068999999866,68.336655000000007],[-75.756667999999991,68.332489000000066],[-75.726105000000018,68.33027600000014],[-75.695540999999878,68.326935000000105],[-75.667496000000028,68.322768999999994],[-75.62249799999995,68.313034000000073],[-75.602492999999868,68.307480000000112],[-75.582779000000016,68.300262000000089]],[[-79.020553999999947,68.169144000000074],[-79.032500999999911,68.165268000000026],[-79.075012000000015,68.168320000000108],[-79.089721999999938,68.170258000000047],[-79.101669000000015,68.175262000000032],[-79.171386999999868,68.205261000000064],[-79.176940999999943,68.209427000000119],[-79.179992999999968,68.215545999999961],[-79.188323999999966,68.247208000000114],[-79.191100999999946,68.319442999999978],[-79.151671999999962,68.346649000000014],[-79.141952999999944,68.34887700000013],[-79.125548999999978,68.350266000000147],[-79.099441999999954,68.348602000000142],[-79.044997999999964,68.343322999999941],[-78.929992999999911,68.338882000000012],[-78.826110999999969,68.295532000000037],[-78.809998000000007,68.287490999999989],[-78.804717999999923,68.283051],[-78.801666000000012,68.279160000000104],[-78.80221599999993,68.272491000000002],[-78.805266999999958,68.266663000000108],[-78.815551999999911,68.255554000000018],[-78.823333999999932,68.250548999999978],[-78.841948999999886,68.240540000000124],[-79.020553999999947,68.169144000000074]],[[-100.07472200000001,68.349716000000114],[-100.08640299999996,68.296097000000088],[-100.09166700000003,68.284987999999998],[-100.09944200000001,68.278595000000053],[-100.11221299999994,68.276382000000069],[-100.12832600000002,68.278320000000065],[-100.14028899999994,68.281661999999983],[-100.16443600000002,68.288589000000059],[-100.20056199999999,68.299149],[-100.22693600000002,68.316086000000041],[-100.23082699999992,68.319717000000082],[-100.21556099999998,68.318603999999993],[-100.20249899999988,68.319717000000082],[-100.19110099999995,68.322220000000073],[-100.1183319999999,68.347214000000008],[-100.11000100000001,68.352478000000019],[-100.08583099999998,68.368866000000082],[-100.07668299999989,68.359711000000004],[-100.07444799999996,68.354980000000069],[-100.07472200000001,68.349716000000114]],[[-82.05999799999995,68.306091000000094],[-82.072509999999966,68.303040000000067],[-82.271117999999944,68.338593000000117],[-82.312774999999988,68.349151999999947],[-82.326675000000023,68.353591999999992],[-82.33805799999999,68.358322000000044],[-82.344451999999876,68.362762000000032],[-82.345550999999944,68.36775200000011],[-82.333327999999995,68.371917999999994],[-82.230559999999969,68.385543999999982],[-82.216949,68.384155000000135],[-82.135558999999944,68.372756999999979],[-82.012512000000015,68.350815000000068],[-82.001113999999973,68.34637500000008],[-81.99722300000002,68.34137000000004],[-82.010009999999909,68.332764000000111],[-82.05999799999995,68.306091000000094]],[[-111.11444099999994,68.405823000000055],[-111.12832600000002,68.404984000000127],[-111.13751199999996,68.408599999999979],[-111.141953,68.413315000000011],[-111.14890300000002,68.428863999999919],[-111.14917000000003,68.439972000000125],[-111.141953,68.444976999999994],[-111.13054699999992,68.447479000000044],[-111.11527999999998,68.447754000000089],[-111.09861799999999,68.446930000000123],[-111.08249699999993,68.44470200000012],[-111.07611099999991,68.436919999999986],[-111.08416699999998,68.424988000000042],[-111.10582699999998,68.409988000000055],[-111.11444099999994,68.405823000000055]],[[-99.045273000000009,68.423874000000069],[-99.054992999999911,68.408324999999991],[-99.147781000000009,68.442200000000071],[-99.154723999999987,68.446365000000071],[-99.159163999999919,68.451096000000007],[-99.149733999999853,68.455261000000007],[-99.12110899999999,68.454987000000074],[-99.105269999999962,68.453048999999965],[-99.087219000000005,68.449416999999983],[-99.045273000000009,68.423874000000069]],[[-74.162216000000001,68.246093999999971],[-74.190552000000025,68.242477000000008],[-74.20777899999996,68.243317000000047],[-74.221114999999998,68.247208000000114],[-74.228881999999942,68.250823999999966],[-74.244155999999862,68.261383000000023],[-74.260559000000001,68.273314999999968],[-74.388610999999969,68.398330999999985],[-74.399733999999967,68.42025799999999],[-74.402221999999938,68.427765000000136],[-74.400283999999999,68.43414300000012],[-74.393065999999919,68.445251000000098],[-74.376937999999882,68.459717000000126],[-74.360275000000001,68.463882000000126],[-74.340835999999911,68.462493999999992],[-74.307769999999948,68.461655000000064],[-74.293883999999991,68.460541000000092],[-74.279448999999943,68.458328000000108],[-74.269729999999868,68.454712000000029],[-74.217498999999862,68.426086000000112],[-74.198043999999982,68.414992999999924],[-74.079452999999944,68.338593000000117],[-74.074722000000008,68.330825999999945],[-74.077498999999989,68.325546000000088],[-74.144454999999937,68.254440000000045],[-74.149733999999853,68.25],[-74.162216000000001,68.246093999999971]],[[-100.71056399999998,68.402480999999966],[-100.72416699999997,68.401657],[-100.78943599999997,68.409988000000055],[-100.88971699999996,68.45277400000009],[-100.88027999999997,68.457214000000135],[-100.84889199999992,68.464996000000099],[-100.83029199999999,68.468596999999932],[-100.79332699999986,68.468872000000147],[-100.78611799999999,68.464706000000092],[-100.71806300000003,68.411926000000051],[-100.71305799999999,68.407486000000006],[-100.71056399999998,68.402480999999966]],[[-110.86250299999995,68.474152000000061],[-110.92610199999996,68.465820000000065],[-111.05444299999999,68.469711000000132],[-111.08833299999998,68.473311999999964],[-111.09750400000001,68.477203000000031],[-111.09750400000001,68.482757999999933],[-111.09249899999998,68.487198000000149],[-111.08528099999995,68.492203000000018],[-111.07528699999995,68.495529000000033],[-110.984734,68.515549000000078],[-110.82167099999998,68.54803499999997],[-110.80332899999996,68.546371000000136],[-110.79222099999998,68.543319999999937],[-110.76390100000003,68.533600000000035],[-110.74582700000002,68.526382000000069],[-110.69833399999999,68.491364000000033],[-110.69611399999991,68.486374000000012],[-110.70889299999988,68.484711000000061],[-110.72833300000002,68.484421000000054],[-110.79499799999996,68.479980000000126],[-110.86250299999995,68.474152000000061]],[[-110.58693700000003,68.524155000000007],[-110.625,68.519440000000145],[-110.6600039999999,68.521927000000005],[-110.72112299999998,68.531097000000102],[-110.73249800000002,68.534149000000014],[-110.74610899999999,68.542480000000069],[-110.75974300000001,68.55664100000007],[-110.76194800000002,68.561645999999939],[-110.75473,68.566665999999998],[-110.63861099999997,68.569443000000092],[-110.62832600000002,68.559143000000006],[-110.52971600000001,68.54803499999997],[-110.520554,68.544144000000074],[-110.51834100000002,68.539154000000053],[-110.52722199999988,68.534987999999942],[-110.53859699999992,68.532486000000063],[-110.58693700000003,68.524155000000007]],[[-104.54527300000001,68.396102999999982],[-104.58667000000003,68.394440000000088],[-104.64666699999998,68.395827999999995],[-104.69332900000001,68.402480999999966],[-104.708618,68.40525800000006],[-104.75974299999996,68.418045000000063],[-104.88305699999995,68.449996999999996],[-104.91915899999992,68.459991000000059],[-104.9375,68.46748400000007],[-105.08167999999995,68.546371000000136],[-105.04415899999998,68.562759000000028],[-105.024719,68.570540999999992],[-105.01390100000003,68.573318000000086],[-104.98999000000003,68.57748400000014],[-104.93859900000001,68.583327999999995],[-104.91000399999996,68.583878000000027],[-104.76167299999997,68.582764000000054],[-104.74610899999993,68.582214000000022],[-104.71193699999998,68.578597999999943],[-104.682503,68.57388300000008],[-104.55332899999996,68.537201000000096],[-104.52999899999992,68.530548000000124],[-104.50917099999992,68.523315000000139],[-104.48277299999995,68.511658000000011],[-104.46916199999998,68.503326000000015],[-104.46362299999998,68.498871000000008],[-104.44915799999995,68.485260000000039],[-104.44055200000003,68.476089000000059],[-104.42777999999987,68.456940000000031],[-104.42527799999999,68.441360000000032],[-104.426941,68.435806000000014],[-104.43083199999995,68.429703000000075],[-104.43499799999995,68.423599000000024],[-104.44138299999997,68.417206000000078],[-104.45111099999991,68.413315000000011],[-104.48332199999999,68.404709000000082],[-104.51917299999997,68.398330999999985],[-104.54527300000001,68.396102999999982]],[[-105.139183,68.53637700000013],[-105.12609900000001,68.533325000000048],[-105.11305199999998,68.534424000000001],[-105.10109699999998,68.536652000000004],[-105.08693699999998,68.536926000000108],[-105.07861300000002,68.533051000000114],[-105.06639099999995,68.519149999999968],[-105.05972300000002,68.509430000000066],[-105.05888400000003,68.504166000000055],[-105.06833599999999,68.500274999999988],[-105.08612099999999,68.502777000000037],[-105.11193800000001,68.508881000000088],[-105.23361199999994,68.541091999999992],[-105.24416400000001,68.544708000000071],[-105.29110700000001,68.576935000000049],[-105.29222099999998,68.582214000000022],[-105.28138699999994,68.584991000000116],[-105.25611900000001,68.588318000000015],[-105.24305700000002,68.589705999999978],[-105.228882,68.589980999999966],[-105.21112099999993,68.587769000000094],[-105.18582200000003,68.580826000000116],[-105.18611099999998,68.576660000000004],[-105.18167099999994,68.566665999999998],[-105.17832900000002,68.561645999999939],[-105.139183,68.53637700000013]],[[-113.78611799999999,68.582764000000054],[-113.80166599999995,68.58248900000001],[-113.85249299999998,68.584152000000131],[-113.88945000000001,68.586929000000055],[-113.93138099999999,68.593872000000033],[-113.95259099999987,68.597389000000078],[-113.95966299999998,68.603195000000142],[-113.96611000000001,68.611099000000081],[-113.95667300000002,68.614699999999914],[-113.94248999999996,68.615814000000114],[-113.91388699999999,68.615814000000114],[-113.89972699999998,68.616928000000087],[-113.83693700000003,68.608871000000079],[-113.80027799999999,68.606093999999985],[-113.78611799999999,68.60386699999998],[-113.77667200000002,68.60026600000009],[-113.76194800000002,68.592209000000082],[-113.761124,68.586655000000121],[-113.77223199999997,68.583878000000027],[-113.78611799999999,68.582764000000054]],[[-100.74054699999999,68.596375000000023],[-100.78388999999993,68.594437000000084],[-100.86805699999991,68.603043000000014],[-100.88249200000001,68.611374000000069],[-100.87666300000001,68.616379000000109],[-100.86527999999998,68.619141000000013],[-100.85305800000003,68.620818999999983],[-100.83972199999999,68.62164300000012],[-100.81388900000002,68.619141000000013],[-100.75556899999992,68.607758000000047],[-100.74082899999996,68.604706000000078],[-100.73361199999994,68.600540000000024],[-100.74054699999999,68.596375000000023]],[[-78.468886999999995,68.563873000000001],[-78.474441999999897,68.55831900000004],[-78.482223999999917,68.553313999999943],[-78.503066999999987,68.545532000000037],[-78.530837999999903,68.541091999999992],[-78.545836999999949,68.540817000000004],[-78.562209999999993,68.541930999999977],[-78.599227999999925,68.550644000000034],[-78.614554999999939,68.553650000000061],[-78.638901000000033,68.558028999999976],[-78.654723999999987,68.558594000000028],[-78.668883999999991,68.554153000000099],[-78.724715999999944,68.521927000000005],[-78.715835999999911,68.515823000000012],[-78.691375999999991,68.509155000000021],[-78.674438000000009,68.509720000000073],[-78.653335999999967,68.512496999999939],[-78.636123999999938,68.513046000000088],[-78.621947999999975,68.509720000000073],[-78.617615000000001,68.507217000000082],[-78.610275000000001,68.502213000000097],[-78.610824999999977,68.498032000000023],[-78.618056999999965,68.492203000000018],[-78.705565999999976,68.451660000000118],[-78.716110000000015,68.447754000000089],[-78.743057000000022,68.442748999999992],[-78.776672000000019,68.439147999999989],[-78.795272999999952,68.438583000000108],[-78.813048999999921,68.438873000000115],[-78.828063999999983,68.440811000000053],[-78.861663999999962,68.446365000000071],[-78.876389000000017,68.450546000000145],[-78.959732000000031,68.474700999999982],[-78.946105999999986,68.508041000000048],[-78.943328999999949,68.511932000000115],[-78.936935000000005,68.516388000000006],[-78.822784000000013,68.547759999999982],[-78.809432999999956,68.550537000000077],[-78.791672000000005,68.550262000000032],[-78.759170999999981,68.54803499999997],[-78.743880999999988,68.546097000000032],[-78.723891999999978,68.547484999999938],[-78.704177999999899,68.554703000000131],[-78.698883000000023,68.558028999999976],[-78.688889000000017,68.564697000000137],[-78.670837000000006,68.578872999999987],[-78.668609999999944,68.583327999999995],[-78.672774999999945,68.58859300000006],[-78.680557000000022,68.593323000000112],[-78.693054000000018,68.596939000000134],[-78.705841000000021,68.600540000000024],[-78.784163999999976,68.618590999999981],[-78.851395000000025,68.634155000000078],[-78.894454999999994,68.646378000000141],[-78.89805599999994,68.64888000000002],[-78.889724999999942,68.652771000000087],[-78.863892000000021,68.659714000000122],[-78.837783999999886,68.661102000000028],[-78.720001000000025,68.657211000000132],[-78.689437999999939,68.653320000000065],[-78.495834000000002,68.627762000000132],[-78.481948999999929,68.624985000000038],[-78.469451999999933,68.621093999999971],[-78.460555999999997,68.617203000000075],[-78.467223999999987,68.569153000000085],[-78.468886999999995,68.563873000000001]],[[-74.768889999999999,68.673874000000012],[-74.756667999999991,68.672760000000039],[-74.65583799999996,68.65498400000007],[-74.648346000000004,68.652206000000092],[-74.522231999999974,68.565262000000018],[-74.518340999999907,68.558594000000028],[-74.531951999999876,68.552765000000022],[-74.551392000000021,68.550537000000077],[-74.586944999999957,68.548874000000126],[-74.726668999999902,68.556091000000038],[-74.742767000000015,68.557480000000055],[-74.807219999999916,68.563599000000067],[-74.821945000000028,68.56581099999994],[-74.833892999999989,68.569717000000026],[-74.84333799999996,68.575821000000076],[-74.870543999999995,68.598877000000073],[-74.883056999999894,68.61303700000002],[-74.890288999999996,68.624985000000038],[-74.805832000000009,68.668868999999972],[-74.796111999999994,68.671646000000067],[-74.787216000000001,68.673035000000027],[-74.779998999999975,68.673874000000012],[-74.77194199999991,68.673035000000027],[-74.768889999999999,68.673874000000012]],[[-114.04723399999995,68.613602000000014],[-114.06139399999995,68.612488000000042],[-114.075287,68.614699999999914],[-114.10193600000002,68.625809000000004],[-114.12666299999995,68.637206999999989],[-114.14890299999996,68.649428999999998],[-114.16166699999991,68.658035000000098],[-114.18998699999986,68.680266999999958],[-114.18639400000001,68.683594000000085],[-114.15387699999991,68.679703000000018],[-114.141953,68.676925999999924],[-114.14111299999996,68.671097000000088],[-114.05638099999987,68.635818000000029],[-114.04888900000003,68.631927000000132],[-114.04167200000001,68.627762000000132],[-114.03778099999994,68.616928000000087],[-114.04723399999995,68.613602000000014]],[[-74.811385999999914,68.320541000000048],[-74.817504999999926,68.318603999999993],[-75,68.333344000000125],[-75.002227999999945,68.333603000000039],[-75.008346999999958,68.337204000000099],[-75.010284000000013,68.346649000000014],[-75.005004999999926,68.353591999999992],[-75.002791999999999,68.35914600000001],[-75.00140399999998,68.366378999999995],[-75.015014999999948,68.379700000000128],[-75.029174999999952,68.390549000000021],[-75.037505999999951,68.394714000000022],[-75.081679999999892,68.404984000000127],[-75.10943599999996,68.406937000000084],[-75.138061999999991,68.409988000000055],[-75.153060999999866,68.413040000000024],[-75.241378999999995,68.436371000000065],[-75.263900999999919,68.444976999999994],[-75.294723999999974,68.457763999999997],[-75.369995000000017,68.489700000000028],[-75.396118000000001,68.503601000000003],[-75.416397000000018,68.518051000000128],[-75.416397000000018,68.524429000000112],[-75.396956999999873,68.611099000000081],[-75.389175000000023,68.62303200000008],[-75.307770000000005,68.694702000000063],[-75.299727999999959,68.700546000000088],[-75.280562999999972,68.709717000000069],[-75.254729999999881,68.717484000000013],[-75.239440999999999,68.718048000000124],[-75.014450000000011,68.677200000000028],[-75,68.672241000000099],[-74.942764000000011,68.576096000000064],[-74.938323999999909,68.571655000000135],[-74.931380999999931,68.566665999999998],[-74.836945000000014,68.511658000000011],[-74.801940999999999,68.501099000000124],[-74.785004000000015,68.494705000000067],[-74.780288999999982,68.490265000000079],[-74.772232000000031,68.479980000000126],[-74.768341000000021,68.473311999999964],[-74.776397999999915,68.410537999999917],[-74.811385999999914,68.320541000000048]],[[-84.808043999999938,68.763885000000016],[-84.821395999999879,68.763611000000083],[-84.835830999999985,68.766662999999994],[-84.939163000000008,68.793594000000041],[-84.907776000000013,68.803589000000102],[-84.895279000000016,68.80720500000001],[-84.882492000000013,68.809707999999944],[-84.855835000000013,68.810806000000014],[-84.841385000000002,68.807479999999998],[-84.837219000000005,68.802765000000136],[-84.837783999999999,68.79693600000013],[-84.801665999999955,68.769150000000081],[-84.808043999999938,68.763885000000016]],[[-68.110275000000001,68.78276100000005],[-67.807494999999903,68.733597000000032],[-67.781676999999945,68.729155999999932],[-67.679169000000002,68.711379999999963],[-67.668335000000013,68.707214000000079],[-67.661391999999921,68.701935000000105],[-67.662216000000001,68.698317999999972],[-67.676666000000012,68.695816000000093],[-67.850554999999929,68.697754000000032],[-67.869720000000029,68.69859299999996],[-67.897781000000009,68.704987000000017],[-67.918609999999887,68.712493999999936],[-67.951400999999976,68.721649000000014],[-68.039169000000015,68.738037000000077],[-68.188323999999909,68.763885000000016],[-68.306106999999997,68.779434000000094],[-68.323623999999995,68.779984000000127],[-68.339995999999985,68.778594999999939],[-68.352492999999981,68.775543000000027],[-68.367492999999854,68.774994000000106],[-68.433608999999933,68.781097000000045],[-68.451400999999976,68.783875000000023],[-68.457779000000016,68.785812000000078],[-68.459441999999967,68.791092000000106],[-68.455275999999969,68.802199999999914],[-68.450835999999867,68.80720500000001],[-68.439163000000008,68.812485000000038],[-68.428328999999962,68.813034000000016],[-68.418899999999894,68.810257000000092],[-68.375548999999921,68.808029000000147],[-68.241942999999935,68.798874000000069],[-68.224716000000001,68.797485000000108],[-68.110275000000001,68.78276100000005]],[[-101.83112299999999,68.566940000000102],[-101.84555099999989,68.566665999999998],[-101.86028299999998,68.569717000000026],[-101.88527699999986,68.576385000000016],[-101.90527299999991,68.583878000000027],[-102.00583599999999,68.613875999999948],[-102.112213,68.62359600000002],[-102.23000300000001,68.64027399999992],[-102.254997,68.646942000000081],[-102.31639100000001,68.672211000000061],[-102.3125,68.688583000000051],[-102.21665999999999,68.718322999999998],[-102.14862099999999,68.734984999999938],[-102.13639799999993,68.736923000000104],[-102.11389200000002,68.742477000000065],[-102.09249899999998,68.748871000000122],[-102.073059,68.756943000000092],[-102.05638099999993,68.768051000000071],[-102.05166600000001,68.773880000000077],[-102.04943799999995,68.779434000000094],[-102.04972799999996,68.784714000000008],[-102.05555699999996,68.794434000000081],[-102.05555699999996,68.799713000000054],[-102.05082700000003,68.805542000000059],[-102.04276999999996,68.811096000000077],[-102.02306399999992,68.819443000000035],[-101.99833699999999,68.823044000000095],[-101.98500099999995,68.824158000000068],[-101.95612299999999,68.824158000000068],[-101.93943799999994,68.822494999999947],[-101.9119419999999,68.816086000000098],[-101.77861000000001,68.783875000000023],[-101.69387799999993,68.768051000000071],[-101.69999699999994,68.737762000000032],[-101.68055699999996,68.672484999999995],[-101.68250299999994,68.661652000000061],[-101.701683,68.637772000000041],[-101.83112299999999,68.566940000000102]],[[-102.60082999999997,68.813309000000004],[-102.60749799999996,68.80914300000012],[-102.69695299999995,68.813034000000016],[-102.70722999999992,68.816666000000112],[-102.68888900000002,68.833328000000108],[-102.67859599999997,68.836928999999998],[-102.64055599999995,68.841934000000037],[-102.61277799999993,68.84304800000001],[-102.59889199999986,68.841095000000053],[-102.60221899999999,68.834152000000074],[-102.60082999999997,68.813309000000004]],[[-89.944442999999978,68.662200999999982],[-89.956389999999942,68.661652000000061],[-89.974166999999966,68.705826000000002],[-89.999160999999958,68.730819999999937],[-90.017226999999934,68.740540000000067],[-90.022507000000019,68.74581900000004],[-90.027495999999985,68.752486999999974],[-90.027785999999992,68.758606000000043],[-90.025557999999933,68.771927000000005],[-90.00306699999993,68.806641000000013],[-89.958618000000001,68.838042999999971],[-89.944442999999978,68.847488000000055],[-89.931945999999982,68.852203000000088],[-89.921935999999903,68.853867000000093],[-89.914443999999946,68.853043000000127],[-89.781677000000002,68.766662999999994],[-89.784163999999919,68.760818000000086],[-89.791381999999999,68.752486999999974],[-89.808884000000035,68.733322000000044],[-89.857498000000021,68.700546000000088],[-89.877486999999917,68.690810999999997],[-89.944442999999978,68.662200999999982]],[[-114.35082999999997,68.871643000000063],[-114.37917299999992,68.86943100000002],[-114.39639299999999,68.869705000000124],[-114.429169,68.87359600000002],[-114.45333900000003,68.879425000000026],[-114.46305799999999,68.882751000000042],[-114.468613,68.887206999999989],[-114.47165699999999,68.892487000000017],[-114.46056399999998,68.895264000000111],[-114.44444299999998,68.896103000000096],[-114.424713,68.896942000000024],[-114.37609899999995,68.893600000000106],[-114.34084300000001,68.890549000000078],[-114.32888800000001,68.887496999999996],[-114.32333399999999,68.883041000000048],[-114.32861299999996,68.87692300000009],[-114.33805799999993,68.87359600000002],[-114.35082999999997,68.871643000000063]],[[-67.847777999999948,68.851928999999984],[-67.863891999999964,68.849425999999994],[-67.883056999999951,68.849990999999989],[-67.897232000000031,68.853043000000127],[-67.908051,68.857208000000128],[-67.956389999999942,68.915268000000026],[-67.96055599999994,68.922484999999995],[-67.96055599999994,68.929977000000065],[-67.954726999999934,68.935806000000127],[-67.946654999999964,68.940810999999997],[-67.938048999999978,68.944427000000019],[-67.923889000000031,68.94859300000013],[-67.892226999999991,68.951660000000004],[-67.876388999999961,68.949417000000096],[-67.869445999999982,68.944138000000066],[-67.83944699999995,68.911926000000108],[-67.831389999999999,68.875809000000118],[-67.833068999999909,68.861374000000012],[-67.837509000000011,68.856368999999972],[-67.847777999999948,68.851928999999984]],[[-85.341675000000009,68.983596999999975],[-85.351669000000015,68.981094000000041],[-85.379165999999941,68.981934000000081],[-85.407227000000034,68.984420999999941],[-85.437209999999993,68.991928000000087],[-85.446944999999971,68.996368000000075],[-85.451400999999976,69.001099000000011],[-85.453063999999983,69.005829000000062],[-85.44387799999987,69.010269000000108],[-85.418883999999991,69.009430000000123],[-85.369995000000017,69.001937999999996],[-85.354720999999927,68.997757000000092],[-85.342223999999931,68.993317000000104],[-85.337783999999999,68.988585999999941],[-85.341675000000009,68.983596999999975]],[[-89.90834000000001,68.917755000000113],[-89.915008999999998,68.913315000000125],[-89.952498999999875,68.926376000000062],[-89.978332999999964,68.933867999999961],[-90,68.937575999999979],[-90.03195199999999,68.943039000000113],[-90.075561999999991,68.948028999999963],[-90.070557000000008,68.981934000000081],[-89.946380999999917,69.010269000000108],[-89.93360899999999,69.011658000000068],[-89.920837000000006,69.010269000000108],[-89.914169000000015,69.006943000000035],[-89.910277999999948,69.003052000000139],[-89.906661999999983,68.922484999999995],[-89.90834000000001,68.917755000000113]],[[-100.17555199999987,68.794708000000014],[-100.22083999999995,68.764435000000049],[-100.25446299999999,68.769150000000081],[-100.26917300000002,68.772217000000012],[-100.28555299999994,68.774155000000121],[-100.29915599999998,68.773315000000082],[-100.30860899999999,68.768875000000037],[-100.31639100000001,68.76249700000011],[-100.35749799999996,68.71527100000003],[-100.36694299999994,68.710541000000035],[-100.40722699999998,68.708038000000045],[-100.423607,68.709991000000002],[-100.61332700000003,68.758040999999992],[-100.62304699999999,68.761932000000058],[-100.62805199999997,68.766388000000006],[-100.632767,68.77609300000006],[-100.62581599999999,68.912490999999932],[-100.59999099999999,69.000548999999978],[-100.56111099999993,69.025818000000015],[-100.54360999999994,69.036652000000061],[-100.52916699999997,69.036652000000061],[-100.497772,69.034714000000122],[-100.41610700000001,69.026382000000126],[-100.38110399999994,69.020828000000108],[-100.35082999999997,69.014709000000096],[-100.34111000000001,69.010818000000029],[-100.33361799999994,69.006653000000028],[-100.32861300000002,69.00221300000004],[-100.32362399999994,68.996093999999971],[-100.32888800000001,68.989975000000129],[-100.33168000000001,68.984420999999941],[-100.33168000000001,68.979431000000091],[-100.326683,68.974701000000039],[-100.31276700000001,68.965820000000122],[-100.23889200000002,68.924149],[-100.22888199999994,68.920258000000103],[-100.21665999999988,68.916930999999977],[-100.20361300000002,68.915543000000071],[-100.16027799999995,68.915268000000026],[-100.14362299999993,68.913315000000125],[-100.13110399999999,68.909987999999998],[-100.12638899999996,68.905548000000124],[-100.17194399999994,68.799423000000047],[-100.17555199999987,68.794708000000014]],[[-85.119445999999925,69.014709000000096],[-85.132216999999855,69.013045999999974],[-85.166107000000011,69.031096999999988],[-85.170273000000009,69.035812000000021],[-85.155562999999972,69.056090999999981],[-85.14555399999989,69.058319000000097],[-85.095551,69.048035000000084],[-85.068343999999968,69.041367000000093],[-85.061385999999914,69.036652000000061],[-85.075835999999924,69.031096999999988],[-85.119445999999925,69.014709000000096]],[[-85.265288999999996,69.072495000000117],[-85.343886999999938,69.06303400000013],[-85.357773000000009,69.063598999999954],[-85.373046999999929,69.067763999999954],[-85.392776000000026,69.076660000000118],[-85.397232000000031,69.081374999999923],[-85.398894999999982,69.086104999999975],[-85.392501999999979,69.09137000000004],[-85.380279999999914,69.095825000000048],[-85.301392000000021,69.104155999999989],[-85.287780999999882,69.104706000000022],[-85.258895999999993,69.100266000000147],[-85.248885999999914,69.095825000000048],[-85.241942999999992,69.09137000000004],[-85.245543999999995,69.086104999999975],[-85.246658000000025,69.081374999999923],[-85.253066999999987,69.07609599999995],[-85.265288999999996,69.072495000000117]],[[-99.999434999999949,68.943588000000034],[-100.006958,68.939423000000033],[-100.021118,68.939696999999967],[-100.03778099999988,68.941360000000088],[-100.12000299999994,68.950821000000076],[-100.16166699999997,68.961380000000133],[-100.18138099999999,68.968872000000033],[-100.19860799999998,68.976929000000041],[-100.20612299999988,68.981094000000041],[-100.23693800000001,69.008605999999986],[-100.25666799999999,69.026656999999943],[-100.25890399999992,69.031661999999983],[-100.25862099999995,69.041931000000034],[-100.23693800000001,69.081374999999923],[-100.23194899999993,69.087203999999986],[-100.21333300000003,69.097214000000065],[-100.12970699999994,69.130264000000125],[-100.09555099999994,69.117477000000122],[-100.05304699999999,69.102478000000019],[-100.03333299999991,69.094711000000075],[-100.02834299999995,69.090271000000087],[-99.978881999999999,69.01388500000013],[-99.976943999999946,69.003876000000105],[-99.999434999999949,68.943588000000034]],[[-90.124709999999993,69.04942299999999],[-90.12721299999987,69.044982999999945],[-90.138061999999991,69.04525799999999],[-90.231948999999986,69.065536000000009],[-90.247498000000007,69.070267000000115],[-90.279175000000009,69.098328000000038],[-90.276397999999858,69.125809000000061],[-90.263335999999924,69.141936999999928],[-90.262511999999958,69.142761000000064],[-90.253890999999953,69.142761000000064],[-90.147231999999974,69.103591999999992],[-90.125,69.055542000000003],[-90.124709999999993,69.04942299999999]],[[-101.66416900000002,69.083603000000096],[-101.67749000000003,69.082764000000111],[-101.69027699999998,69.086104999999975],[-101.69554099999993,69.090546000000074],[-101.69833399999993,69.095261000000107],[-101.71806300000003,69.178588999999931],[-101.71584300000001,69.189147999999989],[-101.71112099999993,69.195251000000098],[-101.70361300000002,69.201660000000004],[-101.695267,69.206940000000031],[-101.68443300000001,69.210815000000025],[-101.65834000000001,69.213608000000022],[-101.60166899999996,69.215546000000131],[-101.55860899999999,69.216660000000104],[-101.53527799999995,69.209427000000119],[-101.5202789999999,69.197479000000101],[-101.497772,69.170258000000047],[-101.49500299999994,69.165543000000014],[-101.49500299999994,69.160262999999929],[-101.49999999999994,69.154434000000094],[-101.55555699999991,69.105255000000113],[-101.56360599999999,69.099990999999989],[-101.65139799999997,69.085541000000035],[-101.66416900000002,69.083603000000096]],[[-90.512512000000015,69.20248400000014],[-90.575561999999991,69.198593000000074],[-90.613327000000027,69.207763999999997],[-90.777221999999995,69.272491000000002],[-90.778609999999901,69.317215000000147],[-90.775832999999977,69.32998699999996],[-90.762512000000015,69.345534999999984],[-90.757232999999985,69.349426000000051],[-90.740829000000019,69.357483000000059],[-90.692215000000033,69.37164300000012],[-90.67332499999992,69.373871000000065],[-90.655272999999966,69.374695000000031],[-90.638610999999969,69.373871000000065],[-90.608046999999999,69.36970500000001],[-90.595001000000025,69.365264999999965],[-90.582503999999972,69.359711000000004],[-90.559433000000013,69.347214000000008],[-90.548614999999984,69.339981000000023],[-90.47193900000002,69.281097000000102],[-90.460830999999928,69.267487000000017],[-90.455565999999976,69.234711000000118],[-90.454452999999887,69.226379000000122],[-90.457503999999972,69.222763000000043],[-90.512512000000015,69.20248400000014]],[[-78.412215999999887,69.379700000000128],[-78.396392999999932,69.377761999999962],[-78.338608000000022,69.3808140000001],[-78.305832000000009,69.377761999999962],[-78.291381999999999,69.374985000000095],[-78.279723999999987,69.370255000000043],[-78.270844000000011,69.364150999999993],[-78.211394999999925,69.299987999999985],[-78.210830999999985,69.294434000000138],[-78.214447000000007,69.288315000000125],[-78.318344000000025,69.238312000000008],[-78.396118000000001,69.210541000000092],[-78.472504000000015,69.191360000000032],[-78.551392000000021,69.089157000000057],[-78.556655999999919,69.083603000000096],[-78.572234999999921,69.073317999999972],[-78.601943999999946,69.066086000000041],[-78.62777699999998,69.058593999999914],[-78.707229999999981,69.014709000000096],[-78.715011999999945,69.009720000000129],[-78.718062999999972,69.003601000000117],[-78.71665999999999,68.99664300000012],[-78.712783999999999,68.984985000000108],[-78.716110000000015,68.979156000000103],[-78.725280999999995,68.968872000000033],[-78.735000999999954,68.963608000000079],[-78.830291999999929,68.91304000000008],[-78.840285999999935,68.908600000000092],[-78.867492999999968,68.900543000000084],[-78.934433000000013,68.888596000000121],[-78.978881999999999,68.882477000000108],[-79.033614999999998,68.877197000000024],[-79.095275999999956,68.872757000000036],[-79.185271999999941,68.853317000000061],[-79.194152999999972,68.849425999999994],[-79.197219999999902,68.839157000000114],[-79.204726999999991,68.833878000000141],[-79.216949,68.829987000000074],[-79.238892000000021,68.827484000000084],[-79.287216000000001,68.83137499999998],[-79.353332999999964,68.844147000000021],[-79.366103999999893,68.847763000000043],[-79.386948000000018,68.856093999999985],[-79.392501999999865,68.860535000000084],[-79.396392999999932,68.864990000000091],[-79.400283999999999,68.871918000000051],[-79.402221999999938,68.923598999999967],[-79.379439999999931,68.931656000000089],[-79.353881999999999,68.943863000000079],[-79.330565999999976,68.958327999999995],[-79.309432999999956,68.973602000000085],[-79.303878999999938,68.978317000000118],[-79.292769999999962,68.995818999999983],[-79.283065999999963,69.012772000000041],[-79.238892000000021,69.066376000000048],[-79.227218999999991,69.076385000000073],[-79.216949,69.081100000000106],[-79.146117999999944,69.093597000000102],[-79.049438000000009,69.102203000000031],[-78.985824999999977,69.099990999999989],[-78.974441999999954,69.100266000000147],[-78.960280999999952,69.102478000000019],[-78.864165999999955,69.141098],[-78.855834999999956,69.145537999999988],[-78.749160999999901,69.261107999999979],[-78.721938999999963,69.310532000000023],[-78.726668999999902,69.318603999999993],[-78.724715999999944,69.331100000000049],[-78.722778000000005,69.336105000000089],[-78.716110000000015,69.34027100000003],[-78.606948999999986,69.371368000000132],[-78.577498999999989,69.377197000000137],[-78.568618999999956,69.378860000000032],[-78.489989999999977,69.391098000000113],[-78.47084000000001,69.392212000000086],[-78.458617999999944,69.38998400000014],[-78.412215999999887,69.379700000000128]],[[-135.28890999999993,69.309418000000051],[-135.29751599999997,69.304977000000122],[-135.33138999999989,69.322768999999994],[-135.34805299999994,69.330551000000128],[-135.38613899999996,69.344986000000063],[-135.39779699999997,69.348037999999974],[-135.44000199999999,69.355820000000108],[-135.48693800000001,69.362198000000092],[-135.51501500000001,69.367477000000065],[-135.52694699999995,69.370529000000147],[-135.55999800000001,69.380264000000068],[-135.56527700000004,69.384995000000004],[-135.56555199999997,69.390548999999965],[-135.55999800000001,69.396652000000131],[-135.54998799999998,69.399994000000049],[-135.52444499999996,69.403595000000109],[-135.50723300000004,69.403046000000131],[-135.42028799999997,69.397491000000059],[-135.365814,69.393599999999992],[-135.33776899999992,69.388596000000064],[-135.32806400000004,69.384995000000004],[-135.27224699999988,69.358321999999987],[-135.27139299999999,69.346938999999963],[-135.27722199999999,69.328322999999955],[-135.28332499999988,69.315262000000018],[-135.28890999999993,69.309418000000051]],[[-76.950835999999867,69.395263999999997],[-76.923614999999984,69.393599999999992],[-76.902221999999995,69.394713999999965],[-76.804168999999945,69.400269000000037],[-76.787780999999995,69.402480999999966],[-76.779174999999952,69.403870000000097],[-76.760833999999875,69.40914900000007],[-76.75140399999998,69.412766000000033],[-76.744445999999982,69.416931000000034],[-76.732772999999952,69.422760000000039],[-76.723327999999981,69.423599000000024],[-76.716400000000021,69.422211000000118],[-76.705840999999964,69.418868999999972],[-76.652221999999938,69.38638300000008],[-76.644729999999925,69.381363000000022],[-76.643889999999942,69.374420000000043],[-76.646666999999979,69.336929000000055],[-76.648894999999925,69.331940000000088],[-76.676391999999964,69.306091000000094],[-76.706389999999999,69.303588999999988],[-76.718886999999995,69.301651000000049],[-76.736937999999952,69.296371000000022],[-76.799438000000009,69.272491000000002],[-76.926392000000021,69.21748400000007],[-76.933608999999933,69.213882000000126],[-76.939986999999974,69.209152000000074],[-76.945830999999998,69.203598000000113],[-76.949431999999945,69.197479000000101],[-76.950561999999934,69.1933140000001],[-76.958892999999989,69.14248699999996],[-77.118057000000022,69.119431000000134],[-77.137787000000003,69.116652999999928],[-77.171660999999915,69.117202999999961],[-77.213622999999984,69.125809000000061],[-77.238601999999958,69.132750999999985],[-77.25778200000002,69.139984000000027],[-77.285827999999924,69.153594999999996],[-77.301392000000021,69.164153999999996],[-77.320281999999963,69.181366000000025],[-77.381942999999865,69.247482000000048],[-77.384170999999981,69.263610999999969],[-77.383330999999941,69.270538000000045],[-77.359725999999966,69.392761000000064],[-77.356383999999935,69.396652000000131],[-77.348342999999943,69.401657],[-77.288329999999917,69.417755],[-77.259170999999924,69.424698000000035],[-77.189162999999951,69.438309000000004],[-77.153610000000015,69.444427000000076],[-77.129989999999964,69.445251000000042],[-77.113616999999977,69.441650000000038],[-77.075561999999991,69.428314000000057],[-77.043335000000013,69.417206000000078],[-77.006957999999997,69.406372000000033],[-76.978332999999907,69.399994000000049],[-76.950835999999867,69.395263999999997]],[[-90.329453000000001,69.235809000000017],[-90.34722899999997,69.234711000000118],[-90.361388999999974,69.238312000000008],[-90.506392999999946,69.329162999999994],[-90.510009999999909,69.334717000000012],[-90.514450000000011,69.363876000000005],[-90.501113999999973,69.372482000000105],[-90.491669000000002,69.376647999999989],[-90.301940999999943,69.434418000000107],[-90.205275999999913,69.445816000000093],[-90.200835999999981,69.444427000000076],[-90.199722000000008,69.439148000000102],[-90.195267000000001,69.416931000000034],[-90.178604000000007,69.409988000000055],[-90.149733999999967,69.375534000000016],[-90.148345999999947,69.370255000000043],[-90.154723999999987,69.350815000000068],[-90.15972899999997,69.34526100000005],[-90.271666999999923,69.255554000000018],[-90.288605000000018,69.249419999999986],[-90.329453000000001,69.235809000000017]],[[-135.59222399999999,69.482208000000071],[-135.574432,69.446640000000059],[-135.61999499999996,69.468597000000102],[-135.62942499999991,69.472214000000065],[-135.66528299999999,69.481368999999916],[-135.69360399999999,69.486649],[-135.74081399999994,69.493041999999946],[-135.77835099999999,69.496094000000085],[-135.81054700000004,69.497756999999979],[-135.81555200000003,69.502487000000031],[-135.8125,69.508041000000048],[-135.79528799999997,69.516663000000051],[-135.78555299999999,69.519989000000066],[-135.77389500000004,69.52276599999999],[-135.76113899999996,69.524429000000055],[-135.74526999999995,69.524704000000099],[-135.66610700000001,69.505828999999949],[-135.59942599999999,69.486098999999967],[-135.59222399999999,69.482208000000071]],[[-101.05304699999999,69.504439999999988],[-101.00611900000001,69.486923000000104],[-101.00862099999995,69.450272000000041],[-101.12526700000001,69.401382000000126],[-101.21861299999989,69.371368000000132],[-101.23029299999996,69.368591000000038],[-101.24305700000002,69.371917999999994],[-101.26888999999994,69.378860000000032],[-101.27916700000003,69.382476999999994],[-101.271118,69.385818000000029],[-101.256958,69.386658000000068],[-101.24526999999995,69.389434999999992],[-101.2369379999999,69.394713999999965],[-101.23166699999996,69.400818000000015],[-101.18888899999996,69.469711000000075],[-101.18639400000001,69.475265999999976],[-101.22749299999992,69.495529000000033],[-101.23805199999998,69.499145999999996],[-101.2538909999999,69.500274999999988],[-101.266953,69.49832200000003],[-101.31749699999995,69.511107999999922],[-101.38445300000001,69.53276100000005],[-101.38722199999995,69.53776600000009],[-101.35833700000001,69.566940000000102],[-101.34973099999996,69.572495000000004],[-101.34056099999992,69.574707000000046],[-101.27555799999993,69.580826000000059],[-101.26167299999992,69.581665000000044],[-101.07305899999994,69.534988000000112],[-101.06276699999995,69.53137200000009],[-101.05999800000001,69.526382000000012],[-101.05304699999999,69.504439999999988]],[[-96.663054999999929,69.569717000000026],[-96.563323999999966,69.564147999999989],[-96.461120999999991,69.564147999999989],[-96.401671999999905,69.562759000000028],[-96.373610999999983,69.560806000000071],[-96.358886999999868,69.55720500000001],[-96.351943999999946,69.55304000000001],[-96.345275999999899,69.548599000000081],[-96.343886999999995,69.543594000000041],[-96.335555999999997,69.534424000000001],[-96.328613000000018,69.529983999999956],[-96.31639100000001,69.526382000000012],[-96.291671999999892,69.531097000000045],[-96.218063000000029,69.546371000000136],[-96.207229999999981,69.55053700000002],[-96.198333999999875,69.55664100000007],[-96.194442999999978,69.561920000000043],[-96.184432999999956,69.56721500000009],[-96.169723999999917,69.566940000000102],[-96.152221999999995,69.563599000000067],[-96.139998999999932,69.559982000000105],[-96.133330999999941,69.555542000000059],[-96.134445000000028,69.550262000000032],[-96.136397999999986,69.546097000000032],[-96.104171999999949,69.49832200000003],[-96.101104999999961,69.493041999999946],[-96.097778000000005,69.483322000000044],[-96.096114999999998,69.46804800000001],[-96.098617999999988,69.457763999999941],[-96.143065999999919,69.351379000000009],[-96.146666999999979,69.345824999999991],[-96.163329999999974,69.348037999999974],[-96.233886999999982,69.359711000000004],[-96.248610999999926,69.36303700000002],[-96.270003999999972,69.370818999999983],[-96.288604999999961,69.378860000000032],[-96.304992999999911,69.387497000000053],[-96.325286999999946,69.400269000000037],[-96.333617999999944,69.409714000000122],[-96.348343,69.423035000000084],[-96.382216999999912,69.44470200000012],[-96.401108000000022,69.453048999999908],[-96.430557000000022,69.459717000000069],[-96.461944999999957,69.462493999999992],[-96.507232999999985,69.464432000000102],[-96.524719000000005,69.467484000000013],[-96.548889000000031,69.474990999999989],[-96.630828999999949,69.512207000000103],[-96.654175000000009,69.524994000000106],[-96.736663999999962,69.576660000000004],[-96.735549999999989,69.581940000000031],[-96.721663999999919,69.58248900000001],[-96.691665999999884,69.581940000000031],[-96.676940999999999,69.578323000000125],[-96.663054999999929,69.569717000000026]],[[-67.310546999999929,69.549149000000114],[-67.324172999999973,69.533875000000023],[-67.331680000000006,69.53137200000009],[-67.351105000000018,69.530823000000112],[-67.388610999999969,69.533051000000057],[-67.473052999999936,69.533875000000023],[-67.492766999999958,69.533051000000057],[-67.53083799999996,69.52915999999999],[-67.545272999999895,69.525818000000072],[-67.552489999999977,69.523041000000148],[-67.549437999999896,69.519714000000022],[-67.507232999999985,69.514998999999989],[-67.499999999999943,69.512833000000057],[-67.49888599999997,69.51249700000011],[-67.489990000000034,69.508606000000043],[-67.481673999999941,69.500000000000114],[-67.492492999999854,69.495529000000033],[-67.50778200000002,69.494980000000112],[-67.573623999999995,69.506653000000085],[-67.58555599999994,69.50749200000007],[-67.598891999999978,69.506378000000097],[-67.626662999999951,69.500549000000092],[-67.642226999999878,69.500274999999988],[-67.731948999999929,69.513611000000083],[-67.744445999999925,69.515822999999955],[-67.749725000000012,69.521103000000039],[-67.739440999999943,69.540817000000118],[-67.730834999999956,69.544434000000081],[-67.723052999999993,69.545258000000047],[-67.707229999999981,69.544434000000081],[-67.686661000000015,69.541091999999992],[-67.674712999999883,69.540268000000026],[-67.663329999999974,69.54193099999992],[-67.578063999999983,69.559708000000001],[-67.550277999999935,69.565536000000122],[-67.541381999999999,69.569153000000028],[-67.531386999999995,69.576384999999959],[-67.527221999999995,69.581940000000031],[-67.48443599999996,69.590271000000143],[-67.425002999999947,69.588882000000126],[-67.394454999999994,69.584991000000059],[-67.367217999999923,69.578323000000125],[-67.321395999999993,69.560531999999967],[-67.314437999999996,69.55664100000007],[-67.309433000000013,69.552765000000022],[-67.310546999999929,69.549149000000114]],[[-96.760558999999944,69.54553199999998],[-96.770003999999915,69.543594000000041],[-96.786666999999909,69.54553199999998],[-96.868880999999874,69.555817000000104],[-96.883895999999993,69.55914300000012],[-96.888061999999991,69.563873000000001],[-96.902221999999995,69.5977630000001],[-96.900283999999999,69.602203000000088],[-96.870543999999995,69.601379000000122],[-96.851395000000025,69.599425999999994],[-96.840835999999967,69.597488000000055],[-96.81639100000001,69.590271000000143],[-96.809433000000013,69.585815000000025],[-96.766402999999968,69.554977000000065],[-96.761947999999961,69.55053700000002],[-96.760558999999944,69.54553199999998]],[[-91.110001000000011,69.549423000000047],[-91.119155999999975,69.548324999999977],[-91.140288999999939,69.560806000000071],[-91.142501999999922,69.564986999999974],[-91.136397999999986,69.575546000000031],[-91.121384000000035,69.593048000000067],[-91.108886999999925,69.602203000000088],[-91.037215999999944,69.614990000000091],[-90.969161999999926,69.618317000000047],[-90.959732000000031,69.61943100000002],[-90.937499999999943,69.616379000000109],[-90.923049999999932,69.611374000000069],[-90.920272999999952,69.608032000000094],[-90.919158999999979,69.606093999999985],[-90.930832000000009,69.599152000000061],[-91.110001000000011,69.549423000000047]],[[-133.93222000000003,69.560256999999922],[-133.948059,69.560256999999922],[-133.96304299999997,69.561371000000122],[-133.98611499999998,69.565536000000122],[-134.01196299999992,69.571381000000031],[-134.01666299999994,69.576096000000064],[-134.01419099999998,69.58248900000001],[-134.01028400000001,69.585541000000092],[-133.94528199999996,69.613312000000008],[-133.93362399999995,69.616089000000102],[-133.89446999999996,69.621093999999971],[-133.87997399999995,69.621918000000107],[-133.86581399999994,69.619141000000013],[-133.84472700000003,69.600815000000011],[-133.84695399999998,69.588882000000126],[-133.868042,69.56721500000009],[-133.87719699999997,69.565261999999962],[-133.93222000000003,69.560256999999922]],[[-95.488892000000021,69.565536000000122],[-95.452498999999932,69.550262000000032],[-95.375548999999978,69.517761000000121],[-95.366104000000007,69.513611000000083],[-95.359726000000023,69.509155000000021],[-95.362212999999997,69.498870999999951],[-95.402495999999985,69.383330999999998],[-95.515839000000028,69.330826000000116],[-95.527221999999995,69.327484000000027],[-95.539718999999991,69.325271999999927],[-95.606383999999935,69.319153000000085],[-95.620270000000005,69.318603999999993],[-95.634170999999924,69.318329000000119],[-95.692489999999964,69.319153000000085],[-95.706954999999994,69.319442999999922],[-95.722778000000005,69.320831000000055],[-95.736938000000009,69.324432000000058],[-95.741104000000007,69.329162999999994],[-95.741668999999945,69.334717000000012],[-95.731673999999941,69.373031999999967],[-95.727782999999874,69.378585999999927],[-95.716949,69.382750999999928],[-95.693877999999984,69.389434999999992],[-95.669158999999979,69.394150000000025],[-95.657776000000013,69.397217000000126],[-95.648346000000004,69.403320000000065],[-95.666397000000018,69.497756999999979],[-95.669158999999979,69.50749200000007],[-95.694442999999978,69.540268000000026],[-95.708053999999947,69.548874000000126],[-95.720001000000025,69.552765000000022],[-95.736663999999905,69.554977000000065],[-95.815826000000015,69.562759000000028],[-95.827498999999932,69.559708000000001],[-95.831680000000006,69.554153000000099],[-95.822784000000013,69.514435000000049],[-95.817504999999926,69.504990000000021],[-95.809432999999956,69.495529000000033],[-95.797225999999966,69.481658999999979],[-95.862212999999997,69.348037999999974],[-95.87222300000002,69.34275800000006],[-95.899445000000014,69.340820000000122],[-95.961670000000026,69.346375000000023],[-95.978881999999999,69.349426000000051],[-95.990829000000019,69.353317000000118],[-96.011123999999882,69.478043000000071],[-96.009734999999978,69.483047000000056],[-95.919998000000021,69.595260999999994],[-95.909164000000033,69.599425999999994],[-95.789443999999946,69.634155000000078],[-95.773894999999925,69.632751000000098],[-95.625548999999921,69.616089000000102],[-95.61221299999994,69.61442599999998],[-95.488892000000021,69.565536000000122]],[[-138.86721799999992,69.588318000000015],[-138.87332200000003,69.583054000000061],[-138.88305699999995,69.579437000000098],[-138.91000399999996,69.576096000000064],[-138.945831,69.57887299999993],[-138.97720300000003,69.583054000000061],[-138.99609399999997,69.584152000000131],[-139.02307099999996,69.580826000000059],[-139.03417999999999,69.578048999999965],[-139.05306999999999,69.570540999999992],[-139.12109399999997,69.52915999999999],[-139.137787,69.530823000000112],[-139.33248899999995,69.566085999999927],[-139.32998699999996,69.571655000000135],[-139.32223499999992,69.576096000000064],[-139.26779199999993,69.605820000000051],[-139.24221799999992,69.618317000000047],[-139.23275799999999,69.621918000000107],[-139.19973800000002,69.630538999999999],[-139.14416499999999,69.644989000000123],[-139.13305700000001,69.647766000000047],[-139.12027,69.649993999999992],[-139.10333299999996,69.648041000000035],[-139.02029399999998,69.633331000000112],[-138.95611600000001,69.619705000000124],[-138.92111199999994,69.610535000000084],[-138.88055399999996,69.596939000000134],[-138.872772,69.59275800000006],[-138.86721799999992,69.588318000000015]],[[-135.51724199999995,69.569153000000028],[-135.54305999999997,69.565536000000122],[-135.55721999999997,69.568054000000075],[-135.57138099999997,69.576934999999992],[-135.58111600000001,69.580551000000071],[-135.5883179999999,69.584717000000126],[-135.591095,69.589980999999966],[-135.58944699999989,69.596099999999979],[-135.58612099999993,69.601653999999996],[-135.57888800000001,69.606644000000017],[-135.55471799999992,69.620254999999986],[-135.51196299999998,69.641663000000108],[-135.50030500000003,69.644439999999975],[-135.43972799999995,69.65248100000008],[-135.42388900000003,69.65248100000008],[-135.40972899999991,69.649993999999992],[-135.39779699999997,69.646942000000081],[-135.40917999999999,69.634995000000117],[-135.4655459999999,69.585541000000092],[-135.474152,69.581375000000037],[-135.505585,69.571655000000135],[-135.51724199999995,69.569153000000028]],[[-67.920273000000009,69.521927000000005],[-67.935271999999941,69.518875000000094],[-68.002228000000002,69.526657000000057],[-68.049437999999952,69.533875000000023],[-68.238892000000021,69.570267000000058],[-68.248885999999914,69.596649000000127],[-68.078339000000028,69.665268000000083],[-67.970839999999896,69.701935000000049],[-67.959731999999974,69.704987000000017],[-67.946380999999974,69.706375000000094],[-67.895553999999947,69.708603000000039],[-67.889724999999999,69.708328000000051],[-67.869720000000029,69.700821000000076],[-67.821120999999948,69.676376000000062],[-67.831680000000006,69.601928999999984],[-67.910278000000005,69.526657000000057],[-67.920273000000009,69.521927000000005]],[[-134.26058999999987,68.733535999999958],[-134.23248299999989,68.706100000000106],[-134.22778299999993,68.701385000000073],[-134.22726399999999,68.696426000000088],[-134.23580900000002,68.694977000000108],[-134.26779199999999,68.695816000000093],[-134.35693400000002,68.703049000000078],[-134.38861099999997,68.707214000000079],[-134.436127,68.713608000000136],[-134.45748899999995,68.719147000000135],[-134.46194499999996,68.72387700000013],[-134.49554399999994,68.75221300000004],[-134.53640699999994,68.786926000000051],[-134.66946399999989,68.894440000000145],[-134.741669,68.935531999999967],[-134.75500499999987,68.944427000000019],[-134.76696799999991,68.953323000000125],[-134.78306599999996,68.965355000000045],[-134.82583599999998,68.97886699999998],[-134.85278299999999,68.976379000000009],[-134.89224200000001,68.971924000000001],[-134.90472399999999,68.969986000000006],[-134.91473400000001,68.96665999999999],[-134.92028799999997,68.960815000000082],[-134.91973899999994,68.949417000000096],[-134.91723599999995,68.944138000000066],[-134.91641199999998,68.926926000000094],[-134.92028799999997,68.914703000000031],[-134.92584199999999,68.908600000000092],[-134.93307499999997,68.903594999999996],[-134.94137599999999,68.899429000000112],[-134.96112099999999,68.892487000000017],[-134.97500599999995,68.891663000000051],[-134.99999999999994,68.892082000000073],[-135.00750699999998,68.892212000000029],[-135.12609900000001,68.899429000000112],[-135.14196800000002,68.901382000000069],[-135.167236,68.907211000000075],[-135.17083699999995,68.911102000000142],[-135.17806999999999,68.920822000000044],[-135.18084699999997,68.926085999999998],[-135.20165999999995,68.9327550000001],[-135.23330699999991,68.934708000000001],[-135.262787,68.933594000000028],[-135.36111500000004,68.926651000000049],[-135.39196799999996,68.926651000000049],[-135.42138699999987,68.928864000000033],[-135.444458,68.934981999999934],[-135.45388799999995,68.938582999999994],[-135.46081499999997,68.942749000000106],[-135.76916499999993,68.896378000000084],[-135.808044,68.895264000000111],[-135.843323,68.897217000000069],[-135.88247699999999,68.905258000000117],[-135.90585299999992,68.911376999999959],[-135.94805899999994,68.924698000000092],[-135.99527,68.942474000000061],[-136.00250199999999,68.946640000000002],[-136.00527999999997,68.951935000000049],[-135.98916599999995,69.029160000000104],[-135.98525999999998,69.035812000000021],[-135.97833299999996,69.040817000000061],[-135.96859699999999,69.044434000000024],[-135.95443699999998,69.045532000000094],[-135.88861099999991,69.026093000000003],[-135.85012800000004,69.007401000000129],[-135.83389299999993,68.998322000000144],[-135.82888799999989,68.993591000000038],[-135.80248999999992,68.989426000000037],[-135.77001999999999,68.989150999999993],[-135.64889499999998,68.991928000000087],[-135.63473499999998,68.993042000000059],[-135.57861300000002,69.006104000000107],[-135.52557399999995,69.021102999999982],[-135.51779199999999,69.023880000000077],[-135.529449,69.026931999999988],[-135.72082499999999,69.046097000000145],[-135.91583300000002,69.088318000000129],[-135.92748999999998,69.09137000000004],[-135.93472299999996,69.095535000000041],[-135.95138499999996,69.142761000000064],[-135.96582000000001,69.197754000000089],[-135.96722399999999,69.214706000000092],[-135.95944199999997,69.228317000000061],[-135.94695999999993,69.23942599999998],[-135.92611699999998,69.254715000000033],[-135.915009,69.257492000000127],[-135.89862099999999,69.255554000000018],[-135.89138800000001,69.251389000000017],[-135.82138099999986,69.215271000000143],[-135.75140399999998,69.179428000000087],[-135.74194299999999,69.175812000000064],[-135.66610700000001,69.146941999999967],[-135.65667699999995,69.143600000000049],[-135.56750499999993,69.11775200000011],[-135.55279499999989,69.116652999999928],[-135.48693800000001,69.113312000000121],[-135.49581899999993,69.124145999999996],[-135.60720799999996,69.145264000000054],[-135.6305539999999,69.151382000000012],[-135.64001499999995,69.154984000000127],[-135.81082199999997,69.242751999999996],[-135.83999600000004,69.259430000000066],[-135.85220300000003,69.268051000000014],[-135.85498000000001,69.273315000000139],[-135.8558349999999,69.284714000000065],[-135.85415599999999,69.290817000000004],[-135.84860199999997,69.296936000000017],[-135.8416749999999,69.301926000000094],[-135.83331299999998,69.306366000000082],[-135.80389400000001,69.316666000000055],[-135.79251099999999,69.319442999999922],[-135.57192999999995,69.33859300000006],[-135.5561219999999,69.338882000000012],[-135.48580900000002,69.33526599999999],[-135.44860799999998,69.332214000000022],[-135.41332999999997,69.323043999999982],[-135.39196799999996,69.309981999999991],[-135.38723800000002,69.30525200000011],[-135.379974,69.301086000000055],[-135.37027,69.297484999999995],[-135.32333399999999,69.285262999999986],[-135.25778200000002,69.271378000000084],[-135.24386599999997,69.268600000000106],[-135.22970599999996,69.266098000000056],[-135.18554699999993,69.258880999999917],[-135.17056300000002,69.257766999999944],[-135.16223099999996,69.261931999999945],[-135.15805099999994,69.268600000000106],[-135.15835599999997,69.274429000000112],[-135.16500899999994,69.279160000000047],[-135.17443800000001,69.283051000000114],[-135.23971599999987,69.3316650000001],[-135.28695699999992,69.413605000000018],[-135.28723100000002,69.419144000000017],[-135.28527800000001,69.425537000000134],[-135.278076,69.430542000000003],[-135.26834099999996,69.434143000000063],[-135.16082800000004,69.473602000000142],[-135.15084799999994,69.476929000000098],[-135.137787,69.478592000000049],[-134.99664300000001,69.48414600000001],[-134.91528299999993,69.485259999999982],[-134.69473300000004,69.481658999999979],[-134.67749000000003,69.480819999999994],[-134.64251699999988,69.477203000000031],[-134.62832599999996,69.474426000000108],[-134.60861199999988,69.468597000000102],[-134.570831,69.453873000000044],[-134.55917399999987,69.450821000000133],[-134.53112799999997,69.445526000000086],[-134.49609399999997,69.441925000000026],[-134.48165900000004,69.442748999999992],[-134.46859699999993,69.444427000000076],[-134.43832399999997,69.454712000000029],[-134.42083699999995,69.463042999999914],[-134.413635,69.468322999999998],[-134.40777600000001,69.474152000000004],[-134.40557899999993,69.480270000000132],[-134.40835600000003,69.491364000000033],[-134.41778599999992,69.500549000000092],[-134.43667600000003,69.508041000000048],[-134.44833399999999,69.511107999999922],[-134.46887200000003,69.542755000000056],[-134.40167199999996,69.638321000000133],[-134.40249600000004,69.649719000000005],[-134.406677,69.654434000000037],[-134.44277999999997,69.68081699999999],[-134.48580899999996,69.706100000000049],[-134.49054000000001,69.710815000000082],[-134.49304199999995,69.715819999999951],[-134.49108899999993,69.722214000000008],[-134.47637900000001,69.723037999999974],[-134.30972299999996,69.715819999999951],[-134.20388799999995,69.668868999999972],[-134.17748999999998,69.64027400000009],[-134.19638099999992,69.621093999999971],[-134.20388799999995,69.616089000000102],[-134.24026500000002,69.585815000000025],[-134.24472000000003,69.579162999999994],[-134.24472000000003,69.573318000000029],[-134.24221799999998,69.568054000000075],[-134.11331200000001,69.538879000000009],[-134.09860199999997,69.539978000000019],[-134.08111600000001,69.548324999999977],[-134.06195099999997,69.555817000000104],[-134.03750600000001,69.560256999999922],[-134.02001999999999,69.559417999999994],[-134.00836200000003,69.556091000000038],[-134.00140399999998,69.551926000000037],[-133.97778299999999,69.528594999999996],[-133.96112099999999,69.509155000000021],[-133.94723499999992,69.506378000000097],[-133.91833499999996,69.508331000000055],[-133.87914999999998,69.513321000000076],[-133.86749299999997,69.515822999999955],[-133.86026000000004,69.520828000000051],[-133.82250999999997,69.555252000000053],[-133.823151,69.5600740000001],[-133.81973300000004,69.564986999999974],[-133.801941,69.573608000000092],[-133.79168699999997,69.576934999999992],[-133.77835099999993,69.576384999999959],[-133.75057999999996,69.547485000000108],[-133.74832199999992,69.542205999999965],[-133.79861500000004,69.481094000000098],[-133.81805399999996,69.464157000000114],[-133.85055499999999,69.445816000000093],[-133.87692300000003,69.433044000000109],[-133.92083699999995,69.412201000000039],[-133.94137599999999,69.405258000000003],[-133.96444699999995,69.400269000000037],[-134.08554100000003,69.340546000000018],[-134.21112099999993,69.276092999999946],[-134.21832299999988,69.271103000000096],[-134.27557400000001,69.226089000000115],[-134.27999899999986,69.219437000000028],[-134.28222699999998,69.213318000000015],[-134.28195199999999,69.20748900000001],[-134.27722199999994,69.202773999999977],[-134.27471899999995,69.197754000000089],[-134.27444500000001,69.186096000000077],[-134.28030399999994,69.180267000000072],[-134.287781,69.175262000000032],[-134.38363599999997,69.11831699999999],[-134.39779699999997,69.117477000000122],[-134.44888300000002,69.119705000000067],[-134.47720300000003,69.118042000000116],[-134.53112799999997,69.112762000000089],[-134.5680539999999,69.106644000000131],[-134.58526599999999,69.098038000000031],[-134.67361500000004,69.017761000000007],[-134.67584199999993,69.01138300000008],[-134.675568,69.005829000000062],[-134.66973899999999,68.9727630000001],[-134.67166099999997,68.966385000000002],[-134.66665599999999,68.956100000000049],[-134.65280200000001,68.947754000000145],[-134.60665900000004,68.935256999999979],[-134.58831799999996,68.928040000000067],[-134.51419099999987,68.887496999999996],[-134.50723300000004,68.883041000000048],[-134.48858599999994,68.870254999999986],[-134.47470099999998,68.856093999999985],[-134.46417199999991,68.84248400000007],[-134.45693999999997,68.826934999999992],[-134.44750999999991,68.811920000000043],[-134.44027700000004,68.80192599999998],[-134.43112199999996,68.792755000000056],[-134.417236,68.784423999999944],[-134.39889499999998,68.777205999999978],[-134.37609899999995,68.770827999999995],[-134.3511049999999,68.764998999999989],[-134.29666099999992,68.754440000000102],[-134.28750599999995,68.75082400000008],[-134.28057899999999,68.746643000000006],[-134.26058999999987,68.733535999999958]],[[-102.14527900000002,69.648604999999975],[-102.16027800000001,69.648331000000042],[-102.17832900000002,69.651093000000003],[-102.21028099999995,69.662200999999982],[-102.22609699999992,69.670258000000103],[-102.23166700000002,69.674698000000149],[-102.24305699999996,69.694138000000123],[-102.243607,69.704436999999984],[-102.24137899999999,69.71026599999999],[-102.23416099999997,69.716660000000047],[-102.22556299999991,69.721924000000001],[-102.21584300000001,69.726654000000053],[-102.15778399999999,69.736099000000081],[-102.13474300000001,69.724701000000096],[-102.12943999999993,69.72026100000005],[-102.12332199999997,69.71276899999998],[-102.12026999999989,69.708038000000045],[-102.11721799999998,69.697753999999975],[-102.11554699999999,69.666655999999989],[-102.11805700000002,69.660812000000135],[-102.12277199999994,69.65498400000007],[-102.13221699999991,69.650542999999971],[-102.14527900000002,69.648604999999975]],[[-77.946655000000021,69.646652000000074],[-77.944992000000013,69.639709000000039],[-77.946105999999986,69.633331000000112],[-77.965835999999967,69.624985000000038],[-78.07028200000002,69.59275800000006],[-78.169997999999964,69.570540999999992],[-78.311934999999949,69.54304500000012],[-78.397780999999952,69.520828000000051],[-78.505004999999869,69.488876000000062],[-78.576401000000033,69.501663000000065],[-78.588057999999933,69.506103999999993],[-78.611388999999917,69.509430000000009],[-78.626098999999954,69.50999500000006],[-78.646117999999888,69.50999500000006],[-78.664443999999889,69.50749200000007],[-78.685271999999941,69.49832200000003],[-78.698043999999982,69.489151000000049],[-78.718886999999938,69.479980000000126],[-78.756957999999941,69.467484000000013],[-78.801940999999943,69.455826000000002],[-78.817504999999926,69.45277400000009],[-78.838608000000022,69.451385000000073],[-78.853058000000033,69.454163000000108],[-78.861938000000009,69.457489000000123],[-78.868331999999953,69.460541000000035],[-78.873885999999857,69.464706000000035],[-78.880279999999971,69.476929000000098],[-78.87860099999989,69.479980000000126],[-78.874160999999958,69.486923000000104],[-78.865004999999996,69.494980000000112],[-78.841385000000002,69.508041000000048],[-78.826110999999969,69.511657999999954],[-78.809722999999963,69.514160000000061],[-78.783324999999991,69.521103000000039],[-78.764175000000023,69.527205999999978],[-78.717772999999966,69.544708000000014],[-78.695266999999944,69.556931000000077],[-78.674438000000009,69.568329000000062],[-78.652785999999935,69.581940000000031],[-78.628051999999968,69.608597000000145],[-78.615554999999915,69.617477000000008],[-78.586394999999925,69.631927000000132],[-78.575835999999981,69.636383000000023],[-78.522506999999905,69.648331000000042],[-78.499724999999899,69.650542999999971],[-78.482772999999895,69.649428999999941],[-78.400283999999999,69.643326000000002],[-78.260833999999932,69.659987999999998],[-78.245270000000005,69.663605000000132],[-78.229445999999996,69.67164600000001],[-78.228057999999976,69.677475000000072],[-78.236938000000009,69.688583000000051],[-78.244995000000017,69.693313999999987],[-78.256957999999941,69.705825999999945],[-78.263625999999931,69.713608000000079],[-78.26916499999993,69.728043000000014],[-78.268615999999952,69.732208000000014],[-78.265838999999971,69.733871000000136],[-78.180557000000022,69.75221300000004],[-78.164168999999958,69.752486999999974],[-78.154174999999952,69.750549000000035],[-78.141953000000001,69.742477000000065],[-78.080001999999979,69.72943099999992],[-78.018341000000021,69.708328000000051],[-77.992767000000015,69.699417000000096],[-77.982773000000009,69.694702000000063],[-77.973891999999978,69.688583000000051],[-77.966110000000015,69.681655999999975],[-77.955565999999976,69.668319999999994],[-77.946655000000021,69.646652000000074]],[[-82.507781999999963,69.704987000000017],[-82.542770000000019,69.704163000000051],[-82.678878999999995,69.726379000000009],[-82.720001000000025,69.733321999999987],[-82.865004999999996,69.770827999999995],[-82.877776999999924,69.774994000000049],[-82.879439999999931,69.778595000000109],[-82.856383999999991,69.800261999999975],[-82.846664000000033,69.803040000000124],[-82.839171999999962,69.80386400000009],[-82.811661000000015,69.806090999999981],[-82.803054999999915,69.805817000000047],[-82.796111999999994,69.805251999999996],[-82.776108000000022,69.804153000000042],[-82.677779999999927,69.794707999999957],[-82.629990000000021,69.789153999999996],[-82.563889000000017,69.778595000000109],[-82.460281000000009,69.761658000000125],[-82.453063999999983,69.720534999999984],[-82.455001999999922,69.714432000000045],[-82.467223999999987,69.709990999999945],[-82.507781999999963,69.704987000000017]],[[-79.423049999999989,69.784988000000055],[-79.331680000000006,69.713318000000072],[-79.328338999999971,69.707214000000079],[-79.329452999999944,69.701385000000016],[-79.333892999999989,69.697478999999987],[-79.354720999999984,69.688034000000073],[-79.482223999999917,69.646103000000096],[-79.544997999999964,69.626647999999932],[-79.571670999999981,69.61943100000002],[-79.600280999999995,69.612761999999975],[-79.631667999999934,69.608871000000079],[-79.957503999999972,69.619979999999998],[-79.963333000000034,69.626373000000115],[-79.974166999999852,69.631652999999972],[-79.994995000000017,69.638596000000007],[-80.02194199999991,69.643599999999935],[-80.038054999999986,69.645263999999941],[-80.059432999999899,69.64387499999998],[-80.065552000000025,69.641663000000108],[-80.081954999999994,69.630538999999999],[-80.082779000000016,69.626923000000147],[-80.078887999999949,69.622208000000114],[-80.032776000000013,69.587204000000042],[-79.991378999999938,69.568878000000041],[-79.937774999999931,69.531937000000084],[-79.935546999999985,69.527205999999978],[-79.93638599999997,69.523604999999918],[-79.940276999999924,69.518875000000094],[-79.974441999999954,69.502213000000097],[-79.993880999999931,69.494431000000134],[-80.011948000000018,69.491652999999985],[-80.021117999999944,69.49275200000011],[-80.046111999999937,69.497756999999979],[-80.200561999999991,69.530823000000112],[-80.214721999999995,69.586655000000064],[-80.353606999999954,69.614700000000084],[-80.461944999999957,69.656372000000147],[-80.492767000000015,69.664993000000038],[-80.577788999999996,69.667480000000126],[-80.74360699999994,69.666092000000049],[-80.761123999999995,69.666930999999977],[-80.793334999999956,69.670258000000103],[-80.804442999999878,69.675537000000077],[-80.809433000000013,69.683044000000052],[-80.809433000000013,69.68942300000009],[-80.801392000000021,69.701096000000121],[-80.730835000000013,69.746368000000132],[-80.725006000000008,69.74914600000011],[-80.720275999999899,69.750549000000035],[-80.649733999999967,69.748596000000077],[-80.520003999999972,69.720825000000048],[-80.498610999999983,69.759719999999959],[-80.50111400000003,69.762497000000053],[-80.502791999999943,69.76638800000012],[-80.504455999999948,69.774994000000049],[-80.503066999999987,69.779984000000127],[-80.499999999999943,69.783324999999991],[-80.490554999999972,69.788589000000115],[-80.46665999999999,69.791931000000091],[-80.388901000000033,69.799988000000042],[-80.371384000000035,69.799149000000057],[-80.340285999999992,69.794707999999957],[-80.338607999999908,69.790542999999957],[-80.343063000000029,69.784149000000127],[-80.34445199999999,69.776931999999988],[-80.329726999999991,69.774155000000121],[-80.314712999999983,69.778045999999961],[-80.289444000000003,69.786652000000061],[-80.264175000000023,69.79525799999999],[-80.246657999999968,69.798599000000024],[-80.232773000000009,69.79942299999999],[-80.20666499999993,69.798035000000084],[-80.191665999999884,69.79525799999999],[-80.182769999999948,69.792755000000056],[-80.129165999999941,69.765549000000021],[-80.073058999999944,69.74971000000005],[-79.972778000000005,69.723312000000078],[-79.862777999999935,69.741088999999988],[-79.768065999999976,69.75277699999998],[-79.756392999999889,69.778869999999927],[-79.752501999999993,69.783599999999979],[-79.744720000000029,69.788589000000115],[-79.687209999999993,69.814697000000081],[-79.678329000000019,69.814423000000147],[-79.512787000000003,69.80693100000002],[-79.476943999999946,69.803589000000102],[-79.453888000000006,69.798874000000069],[-79.442489999999907,69.794983000000002],[-79.431670999999938,69.789703000000088],[-79.423049999999989,69.784988000000055]],[[-83.674437999999952,69.719986000000063],[-83.688598999999954,69.719436999999914],[-83.717772999999966,69.723312000000078],[-83.776947000000007,69.732758000000047],[-83.806945999999982,69.739426000000037],[-83.898894999999982,69.764434999999992],[-83.908614999999998,69.769150000000025],[-83.917220999999984,69.778595000000109],[-83.913054999999986,69.793320000000051],[-83.900833000000034,69.808318999999926],[-83.886948000000018,69.81860400000005],[-83.873885999999914,69.823044000000095],[-83.860274999999945,69.824432000000002],[-83.832503999999972,69.825272000000041],[-83.577498999999989,69.797760000000096],[-83.533324999999934,69.791366999999923],[-83.529174999999952,69.786652000000061],[-83.542220999999984,69.783324999999991],[-83.576675000000023,69.780823000000055],[-83.601944000000003,69.779984000000127],[-83.695830999999998,69.763884999999959],[-83.708618000000001,69.759429999999952],[-83.712783999999999,69.754440000000102],[-83.705840999999964,69.750000000000057],[-83.693329000000006,69.745529000000147],[-83.662506000000008,69.736923000000047],[-83.655838000000017,69.732208000000014],[-83.654175000000009,69.727203000000145],[-83.661117999999988,69.722214000000008],[-83.674437999999952,69.719986000000063]],[[-82.429442999999992,69.782210999999961],[-82.444153000000028,69.778320000000122],[-82.470551,69.781372000000033],[-82.513335999999867,69.788315000000011],[-82.526107999999965,69.790542999999957],[-82.551392000000021,69.796646000000123],[-82.564437999999996,69.800812000000008],[-82.688599000000011,69.850815000000125],[-82.674438000000009,69.874984999999981],[-82.673049999999989,69.875809000000118],[-82.660552999999993,69.876083000000051],[-82.636397999999986,69.871094000000085],[-82.555831999999953,69.860809000000131],[-82.517226999999934,69.854155999999989],[-82.446105999999986,69.822220000000129],[-82.436661000000015,69.817490000000078],[-82.428878999999938,69.812195000000031],[-82.426666000000012,69.799988000000042],[-82.425827000000027,69.793045000000063],[-82.426101999999958,69.786925999999994],[-82.429442999999992,69.782210999999961]],[[-91.520003999999915,69.731369000000086],[-91.535278000000005,69.726929000000041],[-91.549438000000009,69.727203000000145],[-91.560271999999884,69.728316999999947],[-91.725280999999995,69.784149000000127],[-91.735549999999989,69.789153999999996],[-91.733321999999873,69.791931000000091],[-91.475829999999974,69.875534000000073],[-91.449432000000002,69.879149999999981],[-91.433883999999978,69.880538999999942],[-91.419448999999986,69.879974000000118],[-91.409164000000033,69.874984999999981],[-91.456664999999987,69.774994000000049],[-91.463332999999977,69.763611000000026],[-91.470551,69.755554000000075],[-91.520003999999915,69.731369000000086]],[[-91.819167999999934,69.821655000000078],[-91.833892999999989,69.821105999999929],[-91.844727000000034,69.822220000000129],[-91.860001000000011,69.838593000000003],[-91.864166000000012,69.844146999999964],[-91.860549999999989,69.848877000000016],[-91.84944200000001,69.858871000000022],[-91.821120999999891,69.868042000000003],[-91.782501000000025,69.877762000000075],[-91.763901000000033,69.880264000000125],[-91.745543999999995,69.881653000000142],[-91.728607000000011,69.880813999999987],[-91.71305799999999,69.878310999999997],[-91.701110999999969,69.875259000000085],[-91.644454999999937,69.859421000000054],[-91.639724999999999,69.854980000000126],[-91.651671999999962,69.851089000000059],[-91.666397000000018,69.847487999999998],[-91.819167999999934,69.821655000000078]],[[-97.397781000000009,69.685532000000023],[-97.41194200000001,69.684708000000057],[-97.441939999999931,69.685532000000023],[-97.455841000000021,69.684708000000057],[-97.468338000000017,69.682480000000112],[-97.479720999999984,69.678864000000033],[-97.489440999999999,69.673874000000012],[-97.490279999999871,69.668594000000098],[-97.476944000000003,69.654709000000025],[-97.398346000000004,69.597488000000055],[-97.391388000000006,69.593323000000055],[-97.378875999999934,69.592484000000127],[-97.372771999999998,69.598328000000095],[-97.351943999999946,69.631362999999965],[-97.350829999999974,69.636658000000068],[-97.347504000000015,69.642212000000029],[-97.329726999999878,69.669708000000071],[-97.31639100000001,69.686645999999996],[-97.303878999999938,69.698317999999915],[-97.289168999999958,69.69802900000002],[-97.273894999999982,69.694702000000063],[-97.226395000000025,69.675537000000077],[-97.206954999999937,69.667480000000126],[-97.113892000000021,69.622208000000114],[-97.106948999999929,69.617751999999996],[-97.103607000000011,69.614150999999936],[-97.101944000000003,69.609146000000067],[-97.102782999999931,69.603867000000093],[-97.09944200000001,69.594147000000021],[-97.09056099999998,69.584991000000059],[-97.064437999999939,69.572769000000108],[-96.955565999999976,69.523315000000082],[-96.879165999999998,69.491364000000033],[-96.866942999999992,69.487762000000089],[-96.637786999999946,69.437194999999974],[-96.502501999999936,69.409714000000122],[-96.32028200000002,69.354705999999965],[-96.301391999999964,69.346648999999957],[-96.208892999999989,69.306931000000134],[-96.202224999999942,69.302765000000022],[-96.189986999999974,69.288879000000065],[-96.172226000000023,69.26527400000009],[-96.170546999999999,69.260544000000039],[-96.171935999999903,69.255264000000011],[-96.175551999999925,69.249709999999993],[-96.193329000000006,69.237488000000042],[-96.203339000000028,69.232482999999945],[-96.209732000000031,69.22665399999994],[-96.21305799999999,69.211105000000032],[-96.223617999999931,69.141936999999928],[-96.235000999999954,69.064148000000102],[-96.23361199999988,69.059418000000051],[-96.229720999999984,69.054703000000018],[-96.225554999999986,69.049987999999985],[-96.218886999999995,69.045822000000101],[-96.195266999999944,69.038315000000011],[-96.166396999999904,69.031371999999976],[-96.1324919999999,69.024994000000049],[-96.118880999999931,69.025542999999971],[-96.115279999999984,69.030823000000055],[-96.113891999999964,69.036102000000028],[-96.129990000000021,69.054703000000018],[-96.152221999999995,69.103043000000071],[-96.15695199999999,69.163315000000068],[-96.155838000000017,69.168594000000041],[-96.149444999999901,69.174423000000047],[-96.073623999999995,69.231658999999979],[-96.05972300000002,69.232208000000128],[-96.047774999999888,69.228317000000061],[-96.041107000000011,69.223877000000073],[-95.955565999999919,69.141936999999928],[-95.951675000000023,69.13749700000011],[-95.924438000000009,69.089432000000102],[-95.925827000000027,69.084427000000062],[-95.93472300000002,69.078323000000012],[-95.953612999999905,69.067215000000033],[-95.971389999999928,69.054976999999951],[-95.977782999999988,69.049149000000057],[-95.978881999999999,69.043868999999972],[-95.97084000000001,69.034714000000122],[-95.938599000000011,69.003876000000105],[-95.925551999999982,68.995255000000043],[-95.843886999999995,68.923035000000027],[-95.82028200000002,68.870254999999986],[-95.770554000000004,68.891098000000056],[-95.756957999999997,68.891373000000044],[-95.745833999999945,68.888596000000121],[-95.674163999999962,68.869980000000112],[-95.670272999999895,68.865540000000124],[-95.668609999999944,68.860535000000084],[-95.667495999999971,68.855545000000006],[-95.671386999999982,68.850266000000033],[-95.667220999999984,68.835266000000047],[-95.663329999999974,68.830826000000059],[-95.654175000000009,68.826659999999947],[-95.626098999999954,68.826659999999947],[-95.575835999999981,68.830276000000026],[-95.550277999999878,68.833054000000004],[-95.528335999999911,68.840271000000087],[-95.510284000000013,68.852478000000076],[-95.489989999999977,68.861649000000057],[-95.446655000000021,68.879149999999981],[-95.42471299999994,68.886658000000011],[-95.389998999999989,68.895264000000111],[-95.378052000000025,68.89776599999999],[-95.365004999999996,68.899155000000007],[-95.351395000000025,68.899429000000112],[-95.335555999999997,68.897217000000069],[-95.321395999999993,68.893600000000106],[-95.240279999999984,68.86692800000003],[-95.228881999999942,68.863037000000134],[-95.21055599999994,68.854706000000022],[-95.206954999999994,68.850266000000033],[-95.210830999999985,68.844711000000132],[-95.263061999999991,68.802765000000136],[-95.273055999999997,68.797485000000108],[-95.476395000000025,68.711929000000112],[-95.543610000000001,68.702484000000027],[-95.539992999999924,68.708038000000045],[-95.538895000000025,68.713318000000129],[-95.538895000000025,68.723312000000135],[-95.546386999999982,68.732483000000059],[-95.559433000000013,68.741364000000033],[-95.568344000000025,68.745529000000033],[-95.593886999999938,68.752777000000037],[-95.608046999999885,68.753326000000129],[-95.621932999999956,68.752777000000037],[-95.790558000000033,68.737198000000092],[-95.801666000000012,68.733870999999965],[-95.848343,68.669983000000116],[-95.859726000000023,68.653320000000065],[-95.988891999999964,68.62164300000012],[-96.000838999999928,68.61943100000002],[-96.14973399999991,68.55720500000001],[-96.256393000000003,68.503326000000015],[-96.262512000000015,68.497481999999991],[-96.264724999999885,68.487198000000149],[-96.270844000000011,68.481368999999972],[-96.291381999999942,68.473038000000031],[-96.30221599999993,68.469711000000132],[-96.313888999999961,68.467209000000025],[-96.503615999999909,68.446091000000138],[-96.530563000000029,68.444976999999994],[-96.717498999999918,68.474990999999989],[-96.768341000000021,68.485260000000039],[-96.913895000000025,68.518051000000128],[-96.928328999999962,68.521378000000084],[-97.094451999999876,68.539154000000053],[-97.095550999999944,68.534149000000014],[-97.098891999999978,68.528594999999996],[-97.11999499999996,68.520828000000051],[-97.130828999999949,68.517487000000017],[-97.142501999999979,68.514999000000046],[-97.154175000000009,68.512771999999984],[-97.181106999999997,68.511382999999967],[-97.460007000000019,68.534149000000014],[-97.475005999999951,68.535537999999974],[-97.506118999999956,68.541930999999977],[-97.553329000000019,68.55664100000007],[-97.574172999999917,68.564148000000046],[-97.583618000000001,68.568054000000075],[-97.667220999999927,68.60386699999998],[-97.727218999999991,68.63220199999995],[-97.918609999999944,68.675537000000134],[-98.020554000000004,68.693588000000091],[-98.035552999999936,68.694702000000063],[-98.049987999999985,68.694977000000108],[-98.062774999999988,68.693588000000091],[-98.078338999999971,68.683319000000097],[-98.083892999999989,68.677475000000072],[-98.09333799999996,68.672211000000061],[-98.104995999999971,68.669708000000128],[-98.11999499999996,68.670822000000101],[-98.129715000000033,68.674698000000149],[-98.240279999999984,68.720825000000048],[-98.261123999999938,68.733597000000032],[-98.281677000000002,68.746368000000132],[-98.290558000000033,68.755554000000075],[-98.292495999999971,68.760543999999982],[-98.291945999999939,68.765823000000125],[-98.286117999999931,68.771652000000131],[-98.269729999999981,68.783875000000023],[-98.260833999999932,68.789153999999996],[-98.249161000000015,68.800812000000008],[-98.243056999999965,68.811920000000043],[-98.244155999999975,68.822220000000129],[-98.263061999999991,68.829987000000074],[-98.275283999999886,68.833602999999982],[-98.369719999999973,68.857483000000116],[-98.383330999999941,68.859985000000052],[-98.408051,68.855820000000051],[-98.418609999999944,68.852478000000076],[-98.425003000000004,68.841370000000097],[-98.415282999999988,68.815262000000132],[-98.40194699999995,68.801650999999993],[-98.393615999999952,68.787201000000039],[-98.394729999999925,68.776932000000045],[-98.400283999999942,68.770827999999995],[-98.408614999999941,68.764708999999982],[-98.418609999999944,68.760543999999982],[-98.451110999999969,68.750000000000114],[-98.476395000000025,68.746933000000013],[-98.489990000000034,68.746094000000028],[-98.519454999999994,68.747481999999934],[-98.724715999999887,68.791092000000106],[-98.84722899999997,68.825546000000145],[-98.859436000000017,68.829163000000108],[-98.866394000000014,68.833328000000108],[-98.875548999999978,68.84248400000007],[-98.879714999999976,68.852203000000088],[-98.879165999999941,68.857483000000116],[-98.86999499999996,68.874146000000053],[-98.864440999999999,68.879974000000118],[-98.856383999999991,68.886383000000023],[-98.847503999999958,68.891663000000051],[-98.826675000000023,68.899429000000112],[-98.817504999999869,68.904709000000025],[-98.811934999999949,68.910538000000031],[-98.811385999999914,68.915817000000004],[-98.820556999999951,68.924987999999928],[-98.827498999999989,68.929152999999928],[-98.84944200000001,68.933594000000028],[-98.965835999999967,68.949417000000096],[-98.981109999999944,68.950546000000031],[-98.993057000000022,68.947754000000145],[-99.077498999999989,68.918319999999994],[-99.09584000000001,68.899429000000112],[-99.076401000000033,68.891663000000051],[-99.062209999999936,68.883041000000048],[-99.043883999999935,68.864990000000091],[-99.044158999999866,68.859711000000118],[-99.176102000000014,68.825821000000019],[-99.188599000000011,68.824158000000068],[-99.21055599999994,68.831664999999987],[-99.236664000000019,68.848877000000016],[-99.24610899999999,68.852768000000083],[-99.267226999999991,68.859146000000067],[-99.311385999999914,68.868866000000139],[-99.413329999999974,68.884155000000021],[-99.428054999999972,68.887206999999989],[-99.437774999999988,68.891098000000056],[-99.444992000000013,68.895538000000045],[-99.449722000000008,68.899993999999992],[-99.454178000000013,68.909714000000065],[-99.451110999999912,68.915268000000026],[-99.447768999999994,68.926085999999998],[-99.448882999999967,68.936645999999996],[-99.450835999999981,68.941650000000095],[-99.460555999999997,68.950821000000076],[-99.489166000000012,68.967484000000127],[-99.523330999999871,68.983596999999975],[-99.562499999999943,68.99914600000011],[-99.589721999999881,69.011108000000036],[-99.594161999999983,69.015823000000069],[-99.596389999999928,69.020538000000101],[-99.596114999999998,69.025818000000015],[-99.593338000000017,69.031371999999976],[-99.579880000000003,69.043930000000046],[-99.513625999999874,69.101929000000098],[-99.492217999999866,69.1202550000001],[-99.485824999999977,69.125259000000028],[-99.476943999999946,69.13081399999993],[-99.466659999999933,69.13499500000006],[-99.311385999999914,69.158875000000023],[-99.296660999999972,69.158600000000035],[-99.238051999999982,69.149719000000061],[-99.168334999999956,69.138321000000076],[-99.035278000000005,69.135818000000086],[-99.006957999999997,69.136383000000137],[-98.798049999999989,69.17053199999998],[-98.774445000000014,69.17553700000002],[-98.730559999999969,69.189423000000033],[-98.720275999999956,69.193863000000022],[-98.711120999999991,69.199141999999995],[-98.702788999999996,69.205261000000007],[-98.699722000000008,69.210815000000025],[-98.701110999999969,69.220825000000104],[-98.705275999999969,69.230820000000051],[-98.615554999999915,69.294708000000071],[-98.533889999999928,69.291367000000037],[-98.441375999999877,69.298035000000027],[-98.415558000000033,69.301086000000055],[-98.403335999999967,69.303588999999988],[-98.393341000000021,69.308029000000033],[-98.387512000000015,69.313873000000058],[-98.384170999999981,69.319442999999922],[-98.388061999999991,69.329162999999994],[-98.397232000000031,69.338318000000072],[-98.44027699999998,69.363876000000005],[-98.457229999999981,69.371917999999994],[-98.476944000000003,69.379974000000061],[-98.488892000000021,69.383605999999986],[-98.523330999999985,69.388321000000019],[-98.535552999999936,69.391937000000098],[-98.555556999999965,69.399994000000049],[-98.562499999999943,69.404159999999933],[-98.598052999999993,69.430542000000003],[-98.611937999999952,69.444138000000009],[-98.608886999999868,69.449706999999989],[-98.591675000000009,69.467484000000013],[-98.585555999999997,69.473312000000135],[-98.577224999999999,69.479430999999977],[-98.563323999999909,69.477203000000031],[-98.553329000000019,69.473312000000135],[-98.540833000000021,69.469711000000075],[-98.508347000000015,69.463318000000129],[-98.477492999999924,69.461928999999941],[-98.447768999999994,69.461655000000007],[-98.422501000000011,69.465820000000008],[-98.419448999999986,69.47137499999991],[-98.424164000000019,69.475815000000125],[-98.44888299999991,69.483047000000056],[-98.463897999999972,69.486374000000012],[-98.549438000000009,69.501389000000131],[-98.564712999999927,69.504715000000147],[-98.577224999999999,69.508331000000055],[-98.586944999999901,69.512207000000103],[-98.601669000000015,69.520828000000051],[-98.605559999999912,69.530548000000124],[-98.604995999999971,69.535812000000078],[-98.601943999999946,69.541091999999992],[-98.592772999999909,69.552765000000022],[-98.575561999999991,69.570267000000058],[-98.566955999999948,69.576384999999959],[-98.556655999999862,69.580826000000059],[-98.531386999999938,69.584991000000059],[-98.501403999999923,69.584427000000119],[-98.485549999999989,69.583327999999995],[-98.433318999999983,69.575546000000031],[-98.385559000000001,69.566085999999927],[-98.357773000000009,69.55914300000012],[-98.350554999999929,69.554703000000131],[-98.338897999999972,69.546097000000032],[-98.334166999999979,69.54136699999998],[-98.322509999999909,69.532486000000063],[-98.310821999999973,69.523880000000133],[-98.28443900000002,69.506378000000097],[-98.248610999999983,69.484984999999995],[-98.092498999999975,69.424988000000042],[-98.078613000000018,69.422760000000039],[-98.049727999999959,69.423035000000084],[-98.036666999999852,69.424698000000035],[-98.024719000000005,69.427200000000084],[-98.00389100000001,69.435806000000014],[-97.997771999999998,69.441650000000038],[-97.99722300000002,69.446930000000066],[-98.006957999999997,69.450821000000133],[-98.071395999999993,69.468872000000147],[-98.157226999999978,69.4994200000001],[-98.166945999999996,69.503326000000015],[-98.188599000000011,69.516098],[-98.211394999999925,69.538879000000009],[-98.255843999999968,69.574707000000046],[-98.263061999999991,69.57887299999993],[-98.295837000000006,69.585266000000104],[-98.330291999999986,69.590271000000143],[-98.360549999999932,69.596649000000127],[-98.367767000000015,69.601089000000115],[-98.321670999999981,69.713608000000079],[-98.314163000000008,69.722214000000008],[-98.281951999999933,69.751663000000008],[-98.230285999999978,69.788879000000122],[-98.211120999999991,69.79942299999999],[-98.199722000000008,69.802765000000136],[-98.187209999999936,69.805251999999996],[-98.143889999999942,69.806366000000025],[-98.118057000000022,69.81053200000008],[-98.107772999999895,69.814697000000081],[-98.088608000000022,69.825272000000041],[-98.079726999999991,69.83137499999998],[-98.061661000000015,69.848877000000016],[-98.058333999999888,69.854431000000034],[-98.049164000000019,69.865814],[-98.043059999999969,69.871643000000006],[-98.034164000000033,69.878036000000009],[-98.012222000000008,69.885817999999972],[-97.999725000000012,69.888046000000088],[-97.974166999999909,69.892211999999972],[-97.945540999999992,69.893600000000106],[-97.930557000000022,69.893325999999945],[-97.913329999999974,69.891098],[-97.880279999999914,69.88499500000006],[-97.755004999999926,69.851379000000065],[-97.691101000000003,69.819992000000127],[-97.689162999999951,69.815262000000132],[-97.682219999999973,69.810806000000014],[-97.660004000000015,69.803314000000057],[-97.610000999999954,69.788589000000115],[-97.579726999999991,69.781937000000028],[-97.449158000000011,69.760269000000108],[-97.341109999999958,69.706375000000094],[-97.33944699999995,69.701385000000016],[-97.348052999999879,69.695251000000042],[-97.358611999999994,69.690810999999997],[-97.37110899999999,69.688583000000051],[-97.397781000000009,69.685532000000023]],[[-97.325012000000015,69.889160000000061],[-97.315276999999924,69.888046000000088],[-97.301665999999955,69.889709000000039],[-97.289992999999924,69.893051000000128],[-97.276947000000007,69.894440000000145],[-97.267775999999969,69.894440000000145],[-97.25,69.891373000000044],[-97.237503000000004,69.887771999999984],[-97.230559999999912,69.883331000000055],[-97.226943999999946,69.873596000000134],[-97.230559999999912,69.868042000000003],[-97.236937999999896,69.862198000000149],[-97.243880999999988,69.857483000000116],[-97.269164999999987,69.852478000000076],[-97.283889999999985,69.852768000000083],[-97.299163999999905,69.856094000000098],[-97.308883999999978,69.860260000000039],[-97.317779999999914,69.869431000000134],[-97.418334999999956,69.893600000000106],[-97.448883000000023,69.894149999999911],[-97.465835999999911,69.896378000000084],[-97.480285999999921,69.898880000000133],[-97.488892000000021,69.908035000000041],[-97.492767000000015,69.917755000000113],[-97.488602000000014,69.943863000000079],[-97.485000999999954,69.949417000000039],[-97.476105000000018,69.955551000000071],[-97.466399999999965,69.960815000000082],[-97.453612999999962,69.963043000000027],[-97.4375,69.961929000000055],[-97.350829999999974,69.949417000000039],[-97.335555999999997,69.946091000000024],[-97.328339000000028,69.941650000000095],[-97.327498999999989,69.931656000000089],[-97.346114999999998,69.917205999999965],[-97.349730999999963,69.911651999999947],[-97.351669000000015,69.901382000000012],[-97.347228999999913,69.896652000000017],[-97.337509000000011,69.892761000000121],[-97.325012000000015,69.889160000000061]],[[-100.84973099999991,69.925537000000077],[-100.86389199999991,69.924698000000092],[-100.87444299999999,69.928588999999988],[-100.87999000000002,69.933043999999995],[-100.87999000000002,69.938309000000061],[-100.85861199999994,69.977767999999969],[-100.85333300000002,69.983597000000145],[-100.84333800000002,69.98803700000002],[-100.83112299999993,69.990814000000057],[-100.81500199999994,69.989700000000084],[-100.80695300000002,69.985809000000017],[-100.80526700000001,69.980270000000019],[-100.80721999999997,69.97526600000009],[-100.80721999999997,69.969986000000006],[-100.81249999999994,69.958878000000027],[-100.83112299999993,69.935531999999967],[-100.83999599999999,69.929977000000065],[-100.84973099999991,69.925537000000077]],[[-87.091385000000002,70.150269000000094],[-87.06361400000003,70.147766000000104],[-87.051665999999955,70.141937000000098],[-87.02555799999999,70.135543999999982],[-87.020843999999954,70.131927000000019],[-87.023894999999982,70.127762000000018],[-87.021941999999967,70.121094000000028],[-87.009170999999924,70.116378999999995],[-86.994155999999975,70.113602000000071],[-86.922501000000011,70.104156000000103],[-86.905562999999972,70.103043000000071],[-86.87388599999997,70.09887700000013],[-86.856658999999922,70.097762999999986],[-86.825835999999924,70.092758000000117],[-86.798889000000031,70.087204000000099],[-86.778060999999923,70.089706000000035],[-86.761123999999938,70.093597000000102],[-86.688599000000011,70.115265000000022],[-86.670273000000009,70.118042000000116],[-86.639724999999999,70.116653000000099],[-86.611664000000019,70.111923000000104],[-86.598617999999988,70.108597000000032],[-86.586670000000026,70.104430999999977],[-86.545546999999942,70.081375000000094],[-86.549728000000016,70.07249500000006],[-86.550551999999982,70.066376000000048],[-86.536666999999909,70.062484999999981],[-86.511123999999995,70.053040000000067],[-86.505004999999983,70.048035000000027],[-86.503615999999965,70.036925999999994],[-86.505844000000025,70.028595000000053],[-86.50556899999998,70.023315000000025],[-86.502501999999993,70.020828000000108],[-86.487503000000004,70.017761000000007],[-86.47193900000002,70.015823000000069],[-86.460555999999997,70.012206999999989],[-86.45666499999993,70.007491999999957],[-86.460006999999962,70.00471500000009],[-86.468886999999995,69.999709999999993],[-86.489715999999987,69.983871000000079],[-86.502791999999999,69.980545000000063],[-86.523620999999991,69.978042999999957],[-86.542496000000028,69.977478000000133],[-86.662216000000001,69.967484000000127],[-86.714447000000007,69.966934000000094],[-86.747771999999998,69.969437000000084],[-86.76556399999987,69.969711000000018],[-86.833069000000023,69.974426000000051],[-86.864440999999999,69.978592000000106],[-86.881377999999984,69.979706000000078],[-86.89805599999994,69.982207999999957],[-86.926391999999964,69.989150999999993],[-86.938599000000011,69.993317000000047],[-86.962219000000005,70.00471500000009],[-86.985274999999945,70.01388500000013],[-87.002227999999945,70.014999000000103],[-87.016113000000018,70.010544000000095],[-87.021941999999967,70.005264000000011],[-87.029449,70.000824000000023],[-87.037215999999944,69.99664300000012],[-87.050277999999878,69.991653000000042],[-87.066665999999998,69.989150999999993],[-87.086394999999925,69.987761999999975],[-87.104172000000005,69.987761999999975],[-87.135009999999966,69.992752000000053],[-87.148055999999997,69.997482000000048],[-87.168883999999991,70.008605999999929],[-87.182769999999948,70.01388500000013],[-87.195830999999998,70.017212000000029],[-87.21362299999987,70.017487000000074],[-87.229445999999996,70.019440000000031],[-87.240828999999906,70.021378000000141],[-87.255004999999983,70.025269000000037],[-87.274444999999957,70.034987999999998],[-87.277495999999985,70.038879000000065],[-87.27694699999995,70.044983000000116],[-87.273620999999991,70.050812000000121],[-87.272507000000019,70.054703000000018],[-87.272780999999952,70.059981999999991],[-87.278335999999967,70.067490000000021],[-87.288329999999974,70.073317999999972],[-87.295837000000006,70.077484000000027],[-87.307495000000017,70.080826000000002],[-87.319457999999884,70.083328000000051],[-87.335555999999997,70.085541000000035],[-87.34973100000002,70.086104999999975],[-87.363892000000021,70.088593000000117],[-87.376937999999939,70.093322999999941],[-87.378325999999959,70.096100000000035],[-87.376099000000011,70.099426000000108],[-87.371384000000035,70.103867000000037],[-87.355834999999956,70.107208000000071],[-87.341948999999886,70.108597000000032],[-87.307495000000017,70.107208000000071],[-87.277785999999992,70.114699999999971],[-87.267226999999878,70.113312000000064],[-87.265609999999924,70.113556000000017],[-87.254729999999995,70.112198000000092],[-87.222503999999901,70.111374000000126],[-87.187774999999931,70.108322000000044],[-87.180557000000022,70.109420999999998],[-87.173049999999989,70.112198000000092],[-87.164443999999946,70.117203000000131],[-87.156112999999891,70.11914100000007],[-87.130829000000006,70.120255000000043],[-87.118332000000009,70.11914100000007],[-87.102782999999988,70.12081900000004],[-87.099730999999963,70.123596000000077],[-87.100554999999929,70.125534000000073],[-87.143065999999976,70.139435000000049],[-87.145279000000016,70.142761000000064],[-87.141388000000006,70.146378000000027],[-87.128326000000015,70.149719000000061],[-87.113891999999964,70.148880000000077],[-87.091385000000002,70.150269000000094]],[[-125.05695299999996,70.118317000000104],[-125.08500700000002,70.116333000000111],[-125.10221899999993,70.118072999999981],[-125.11971999999997,70.124954000000002],[-125.122772,70.130066000000056],[-125.12332200000003,70.13546800000006],[-125.12110899999999,70.141372999999987],[-125.11277799999999,70.14697300000006],[-125.10333300000002,70.151688000000092],[-125.08332799999999,70.159973000000093],[-125.07055700000001,70.16187999999994],[-125,70.162933000000066],[-124.97693600000002,70.167206000000078],[-124.96305799999999,70.168320000000051],[-124.95500199999998,70.164153999999996],[-124.98832700000003,70.134430000000009],[-124.99777199999994,70.129974000000061],[-125.04415899999992,70.120315999999946],[-125.05695299999996,70.118317000000104]],[[-124.67944299999994,70.161652000000117],[-124.69444299999998,70.161377000000073],[-124.73750299999995,70.174149000000114],[-124.75361599999991,70.182479999999998],[-124.75917099999998,70.186919999999986],[-124.76194799999996,70.191925000000083],[-124.75890400000003,70.196640000000116],[-124.74471999999997,70.197754000000089],[-124.55110200000001,70.208602999999925],[-124.53611799999987,70.208602999999925],[-124.51888999999994,70.206940000000031],[-124.51055899999994,70.20277399999992],[-124.50527999999997,70.198318000000029],[-124.50750700000003,70.192749000000049],[-124.53694200000001,70.18193100000002],[-124.67944299999994,70.161652000000117]],[[-112.65527299999991,70.266098],[-112.67223399999995,70.266098],[-112.69193999999999,70.267487000000017],[-112.72193900000002,70.272491000000002],[-112.74722300000002,70.278594999999996],[-112.75499699999995,70.282761000000107],[-112.76027699999992,70.287201000000096],[-112.76306199999993,70.292480000000069],[-112.76139799999993,70.298598999999967],[-112.75389100000001,70.303588999999988],[-112.73111,70.309708000000001],[-112.71611000000001,70.310531999999967],[-112.699997,70.309417999999994],[-112.6875,70.306366000000082],[-112.67971799999992,70.302475000000015],[-112.67859599999991,70.300812000000064],[-112.64334099999996,70.28137200000009],[-112.64277600000003,70.275818000000129],[-112.64472999999987,70.269714000000079],[-112.65527299999991,70.266098]],[[-112.96972700000003,70.28137200000009],[-113.00306699999999,70.281097000000102],[-113.104446,70.281936999999971],[-113.14083899999997,70.283325000000048],[-113.15834000000001,70.285262999999986],[-113.20361300000002,70.292480000000069],[-113.16972399999992,70.306931000000134],[-113.15750100000002,70.309708000000001],[-113.12888299999997,70.312485000000095],[-113.11054999999993,70.3119200000001],[-112.993607,70.299423000000104],[-112.97609699999992,70.297484999999938],[-112.96362299999998,70.294434000000138],[-112.95333900000003,70.290817000000004],[-112.94554099999999,70.286652000000004],[-112.95612299999999,70.283325000000048],[-112.96972700000003,70.28137200000009]],[[-100.765289,70.25],[-100.78083800000002,70.25],[-100.7938769999999,70.253326000000015],[-100.84166699999997,70.278320000000008],[-100.86305199999993,70.291091999999992],[-100.86833200000001,70.295532000000037],[-100.85193600000002,70.323883000000137],[-100.83889799999992,70.325546000000031],[-100.80943300000001,70.324158000000125],[-100.77639799999997,70.322495000000004],[-100.75890399999997,70.320540999999992],[-100.74804699999999,70.316940000000102],[-100.74082899999996,70.310531999999967],[-100.75890399999997,70.254990000000021],[-100.765289,70.25]],[[-116.80526699999996,70.509430000000009],[-116.78971899999993,70.507217000000026],[-116.75418100000002,70.50749200000007],[-116.63390400000003,70.493591000000094],[-116.60722399999997,70.488037000000077],[-116.59638999999993,70.484984999999995],[-116.56833599999999,70.473876999999959],[-116.57305899999989,70.467758000000117],[-116.70111099999997,70.468597000000102],[-116.71916199999993,70.470261000000107],[-116.787781,70.483597000000032],[-116.814438,70.488876000000062],[-116.82055700000001,70.493591000000094],[-116.82861300000002,70.503601000000003],[-116.82224300000001,70.508881000000031],[-116.80526699999996,70.509430000000009]],[[-116.287781,70.553314000000114],[-116.26027699999992,70.549988000000042],[-116.24333199999995,70.550261999999975],[-116.18943799999994,70.54553199999998],[-116.140556,70.538589000000002],[-116.12748699999997,70.535812000000078],[-116.13110399999999,70.532486000000006],[-116.29110699999995,70.515549000000021],[-116.32333399999993,70.513611000000083],[-116.44611399999991,70.508881000000031],[-116.46472199999999,70.509154999999964],[-116.47778299999999,70.511932000000058],[-116.495003,70.519989000000066],[-116.49582700000002,70.522765999999933],[-116.47000099999997,70.538040000000024],[-116.30304699999988,70.552199999999971],[-116.287781,70.553314000000114]],[[-116.56304899999998,70.534424000000001],[-116.57833900000003,70.533051000000057],[-116.596947,70.533324999999991],[-116.75028999999995,70.539153999999996],[-116.76363400000002,70.541931000000091],[-116.77443700000003,70.545258000000047],[-116.766953,70.548324999999977],[-116.75527999999991,70.551085999999941],[-116.72361799999987,70.556366000000025],[-116.71193699999998,70.559417999999937],[-116.68167099999999,70.561920000000043],[-116.66471899999999,70.562485000000038],[-116.64611799999994,70.562195000000031],[-116.54305999999997,70.559707999999944],[-116.52278100000001,70.558593999999971],[-116.50945300000001,70.556091000000038],[-116.50778200000002,70.550261999999975],[-116.51806599999998,70.546646000000123],[-116.56304899999998,70.534424000000001]],[[-115.92054699999989,70.54136699999998],[-115.95445299999994,70.540267999999969],[-115.99333200000001,70.541656000000103],[-116.051941,70.54553199999998],[-116.06111099999993,70.548324999999977],[-116.04250299999995,70.552199999999971],[-115.98388699999998,70.560806000000071],[-115.97222899999991,70.563599000000011],[-115.91972399999997,70.572494999999947],[-115.87917299999998,70.578598000000113],[-115.86389200000002,70.579987000000074],[-115.82501199999996,70.578323000000069],[-115.81416300000001,70.574997000000053],[-115.80803700000001,70.570541000000105],[-115.81082199999997,70.564986999999974],[-115.81916799999999,70.560806000000071],[-115.84111000000001,70.554153000000042],[-115.86638599999998,70.549423000000047],[-115.92054699999989,70.54136699999998]],[[-116.87943999999993,70.547485000000108],[-116.88945000000001,70.543869000000029],[-116.923317,70.542755000000056],[-117.03611799999993,70.546371000000136],[-117.18331899999998,70.537491000000102],[-117.20195000000001,70.53776600000009],[-117.22000099999997,70.539153999999996],[-117.27555799999993,70.550261999999975],[-117.28888699999993,70.55304000000001],[-117.29778299999998,70.556931000000077],[-117.30166600000001,70.561920000000043],[-117.29778299999998,70.571380999999974],[-117.26083399999999,70.584717000000126],[-117.25140399999992,70.587204000000042],[-117.23805199999998,70.589156999999943],[-117.21640000000002,70.591095000000109],[-117.19943199999994,70.591660000000104],[-117.16332999999997,70.588593000000003],[-116.89444700000001,70.556091000000038],[-116.88362100000001,70.552765000000136],[-116.87943999999993,70.547485000000108]],[[-128.08612099999999,70.605545000000006],[-128.10415599999999,70.595825000000104],[-128.1201779999999,70.597214000000122],[-128.11444099999994,70.591934000000037],[-128.11721799999992,70.580551000000014],[-128.12387100000001,70.57388300000008],[-128.13275099999993,70.569153000000028],[-128.34054599999996,70.539153999999996],[-128.34167499999995,70.542205999999908],[-128.252228,70.646378000000084],[-128.24581899999998,70.653046000000074],[-128.23416099999986,70.656097000000102],[-128.21639999999996,70.654709000000025],[-128.18832399999997,70.648604999999975],[-128.11498999999998,70.628036000000009],[-128.10360699999995,70.624419999999986],[-128.09472700000003,70.62052900000009],[-128.0883179999999,70.616089000000045],[-128.08499099999995,70.611099000000024],[-128.08612099999999,70.605545000000006]],[[-100.23082699999992,70.451660000000061],[-100.24333199999995,70.449142000000109],[-100.26000999999985,70.449996999999996],[-100.27610799999997,70.453049000000078],[-100.47250400000001,70.496367999999961],[-100.49916100000002,70.503326000000129],[-100.63054699999998,70.543320000000108],[-100.662781,70.554703000000075],[-100.67083700000001,70.558868000000075],[-100.67639199999996,70.563309000000004],[-100.68138099999993,70.573044000000095],[-100.68138099999993,70.583602999999982],[-100.67832900000002,70.594147000000021],[-100.66443599999991,70.637771999999984],[-100.65194699999995,70.669708000000071],[-100.51194800000002,70.676376000000062],[-100.49500299999988,70.675262000000089],[-100.48000300000001,70.673309000000131],[-100.46916199999998,70.669434000000138],[-100.46112099999999,70.659987999999998],[-100.451683,70.651932000000102],[-100.44360399999999,70.64776599999999],[-100.34722899999991,70.608032000000094],[-100.33640300000002,70.604431000000034],[-100.31945799999994,70.603317000000061],[-100.21833799999996,70.564422999999977],[-100.22444200000001,70.456649999999968],[-100.23082699999992,70.451660000000061]],[[-103.17777999999993,70.622482000000048],[-103.19360399999994,70.622208000000114],[-103.24833699999994,70.622757000000036],[-103.26640299999991,70.624146000000053],[-103.27500900000001,70.628311000000053],[-103.28111299999995,70.632751000000042],[-103.281387,70.638046000000088],[-103.26834099999996,70.666382000000056],[-103.22582999999986,70.676376000000062],[-103.21000700000002,70.676651000000049],[-103.19415299999997,70.673035000000027],[-103.173607,70.6336060000001],[-103.17304999999999,70.628586000000041],[-103.17777999999993,70.622482000000048]],[[-103.35082999999992,70.687195000000088],[-103.36416599999995,70.685256999999979],[-103.38110399999988,70.685806000000127],[-103.39499699999999,70.689148000000046],[-103.42887899999994,70.69999700000011],[-103.43776700000001,70.703872999999987],[-103.44638099999997,70.708037999999988],[-103.45249899999993,70.712494000000106],[-103.45889299999999,70.722214000000008],[-103.46278399999994,70.732208000000014],[-103.45694700000001,70.737198000000035],[-103.44360399999999,70.739150999999993],[-103.42777999999998,70.739426000000037],[-103.39917000000003,70.737198000000035],[-103.36361699999992,70.727767999999969],[-103.34111000000001,70.72026100000005],[-103.33500699999996,70.716094999999996],[-103.33444199999997,70.710815000000082],[-103.33860800000002,70.699417000000096],[-103.34333799999996,70.693588000000091],[-103.35082999999992,70.687195000000088]],[[-71.471664000000033,71.012772000000041],[-71.428878999999995,71.012206999999989],[-71.389175000000023,71.013885000000073],[-71.371108999999933,71.011931999999945],[-71.357497999999964,71.009720000000073],[-71.344727000000034,71.005554000000018],[-71.339171999999962,70.998322000000087],[-71.339721999999995,70.99136400000009],[-71.343063000000029,70.984985000000052],[-71.386672999999917,70.922485000000108],[-71.392226999999991,70.916656000000103],[-71.402495999999871,70.911926000000051],[-71.415557999999976,70.90776100000005],[-71.433060000000012,70.904709000000139],[-71.451110999999912,70.903046000000018],[-71.474441999999954,70.902481000000023],[-71.495543999999938,70.90277100000003],[-71.654448999999943,70.890822999999955],[-71.733063000000016,70.874984999999924],[-71.933884000000035,70.833328000000051],[-71.937774999999931,70.824706999999989],[-71.946380999999974,70.820831000000112],[-71.955565999999976,70.818329000000006],[-71.991668999999945,70.814697000000081],[-72.038605000000018,70.811371000000008],[-72.081954999999994,70.809708000000114],[-72.096664000000033,70.809708000000114],[-72.112212999999997,70.811371000000008],[-72.198607999999979,70.882750999999985],[-72.223327999999981,70.916931000000091],[-72.225280999999939,70.924423000000047],[-72.226395000000025,70.930542000000059],[-72.213897999999915,70.934708000000001],[-72.202224999999999,70.93664600000011],[-72.166655999999989,70.938034000000016],[-72.148894999999925,70.936371000000065],[-72.136672999999973,70.933594000000028],[-72.133620999999948,70.931656000000032],[-72.145554000000004,70.926085999999998],[-72.149170000000026,70.921097000000032],[-72.136123999999995,70.916931000000091],[-72.117492999999911,70.917205999999965],[-72.097778000000005,70.919708000000014],[-72.078339000000028,70.923599000000081],[-72.057769999999948,70.933043999999995],[-72.044723999999917,70.944426999999962],[-72.039443999999946,70.950272000000098],[-72.033324999999934,70.963042999999971],[-72.026672000000019,70.98275799999999],[-72.019729999999868,71.034424000000058],[-72.021392999999989,71.041930999999977],[-72.008620999999948,71.049713000000111],[-71.916107000000011,71.06442300000009],[-71.884170999999924,71.068878000000097],[-71.851669000000015,71.072220000000016],[-71.831680000000006,71.071106000000043],[-71.794723999999974,71.053040000000067],[-71.730834999999956,71.045532000000037],[-71.644454999999994,71.034987999999998],[-71.546950999999979,71.018600000000106],[-71.471664000000033,71.012772000000041]],[[-96.563323999999966,71.292205999999965],[-96.546950999999979,71.289154000000053],[-96.535552999999993,71.28276100000005],[-96.472504000000015,71.232208000000071],[-96.470275999999956,71.226089000000059],[-96.480835000000013,71.208878000000141],[-96.487503000000004,71.203598000000056],[-96.561110999999983,71.208328000000108],[-96.578063999999983,71.210541000000035],[-96.628601000000003,71.220260999999937],[-96.638610999999912,71.226089000000059],[-96.641678000000013,71.231368999999972],[-96.642776000000026,71.234421000000054],[-96.652495999999985,71.287201000000096],[-96.649170000000026,71.29304500000012],[-96.610549999999989,71.290543000000014],[-96.581116000000009,71.293594000000041],[-96.563323999999966,71.292205999999965]],[[-98.895554000000004,71.27777100000003],[-98.90834000000001,71.273040999999978],[-98.97444200000001,71.284714000000008],[-98.989715999999987,71.290543000000014],[-99.000290000000007,71.297211000000004],[-99.00556899999998,71.301926000000037],[-99.008621000000005,71.308029000000147],[-99.008895999999936,71.313873000000001],[-99.00306699999993,71.319443000000092],[-98.963622999999927,71.352203000000088],[-98.955840999999964,71.352203000000088],[-98.930283000000031,71.342209000000082],[-98.923324999999977,71.337769000000094],[-98.914443999999946,71.331665000000044],[-98.895554000000004,71.27777100000003]],[[-73.120543999999995,71.479705999999965],[-73.129439999999931,71.450821000000076],[-73.077498999999932,71.466385000000002],[-73.043335000000013,71.47886699999998],[-73.035552999999936,71.48414600000001],[-73.016402999999968,71.500000000000114],[-73.005844000000025,71.511658000000125],[-72.998046999999985,71.517211999999915],[-72.985275000000001,71.521378000000027],[-72.97222899999997,71.521378000000027],[-72.962508999999955,71.51998900000001],[-72.934157999999968,71.509155000000135],[-72.827498999999989,71.454987000000017],[-72.820281999999963,71.449707000000103],[-72.817504999999983,71.444977000000108],[-72.823333999999988,71.439697000000024],[-72.831954999999994,71.435806000000127],[-72.849730999999963,71.4327550000001],[-72.872497999999894,71.43081699999999],[-72.921660999999972,71.428314],[-72.992767000000015,71.419433999999967],[-73.010009999999966,71.415543000000071],[-73.022780999999952,71.411101999999971],[-73.031112999999948,71.406646999999964],[-73.028885000000002,71.399155000000064],[-73.007507000000032,71.352203000000088],[-72.978881999999942,71.329712000000086],[-72.974166999999909,71.324997000000053],[-72.97193900000002,71.317490000000134],[-72.973617999999874,71.313309000000061],[-72.983886999999982,71.308594000000028],[-72.996657999999911,71.304153000000099],[-73.025283999999999,71.297485000000108],[-73.060546999999929,71.294708000000014],[-73.089446999999893,71.313873000000001],[-73.163329999999917,71.33248900000001],[-73.198607999999922,71.336380000000077],[-73.244995000000017,71.348877000000073],[-73.265288999999939,71.357483000000002],[-73.272506999999962,71.36192299999999],[-73.275008999999955,71.365814000000057],[-73.276397999999972,71.379150000000038],[-73.265015000000005,71.396378000000141],[-73.255004999999926,71.408874999999966],[-73.254729999999995,71.415268000000083],[-73.293609999999887,71.454711999999972],[-73.301392000000021,71.459717000000012],[-73.320556999999894,71.469711000000075],[-73.347504000000015,71.477768000000026],[-73.362502999999947,71.481094000000041],[-73.374160999999901,71.485809000000074],[-73.379990000000021,71.519714000000022],[-73.377212999999983,71.522766000000104],[-73.366942999999992,71.527480999999966],[-73.189986999999917,71.565536000000066],[-73.176940999999999,71.566376000000105],[-73.147507000000019,71.564423000000147],[-73.132216999999912,71.561371000000065],[-73.090285999999935,71.546371000000079],[-73.081116000000009,71.542206000000078],[-73.073623999999938,71.536926000000051],[-73.074722000000008,71.531372000000033],[-73.11332699999997,71.485809000000074],[-73.120543999999995,71.479705999999965]],[[-72.760833999999875,71.531937000000084],[-72.786391999999978,71.530273000000022],[-72.830841000000021,71.531096999999988],[-72.848891999999921,71.532211000000018],[-72.867492999999911,71.533875000000023],[-72.949996999999996,71.547211000000118],[-72.982497999999907,71.553589000000102],[-73.008895999999879,71.56109600000002],[-73.020554000000004,71.565811000000053],[-73.030562999999916,71.571655000000078],[-73.035277999999948,71.575546000000145],[-73.039992999999981,71.579987000000074],[-73.037506000000008,71.587203999999986],[-73.034164000000033,71.592209000000025],[-72.968062999999972,71.636658000000011],[-72.948607999999979,71.644714000000079],[-72.924712999999997,71.649429000000112],[-72.806655999999919,71.659149000000014],[-72.781113000000005,71.660812000000135],[-72.745269999999948,71.659987999999942],[-72.726669000000015,71.658325000000048],[-72.709166999999979,71.655258000000117],[-72.695830999999941,71.651093000000117],[-72.684433000000013,71.642761000000121],[-72.662215999999944,71.604431000000034],[-72.660552999999936,71.598038000000031],[-72.671111999999994,71.585815000000025],[-72.682495000000017,71.574706999999989],[-72.701110999999912,71.557479999999998],[-72.712783999999942,71.547211000000118],[-72.718886999999995,71.542755000000056],[-72.727492999999981,71.538589000000115],[-72.742492999999968,71.534149000000127],[-72.760833999999875,71.531937000000084]],[[-73.370270000000005,71.554428000000087],[-73.394454999999937,71.554428000000087],[-73.406661999999983,71.556366000000025],[-73.418335000000013,71.56109600000002],[-73.42860399999995,71.566940000000045],[-73.436934999999949,71.573318000000029],[-73.450561999999991,71.584152000000074],[-73.449721999999952,71.58998100000008],[-73.448043999999925,71.594146999999964],[-73.441939999999988,71.598877000000016],[-73.388610999999912,71.634155000000021],[-73.348342999999943,71.658325000000048],[-73.276108000000022,71.691924999999912],[-73.243332000000009,71.696639999999945],[-73.213332999999977,71.698593000000074],[-73.209166999999979,71.698868000000118],[-73.190552000000025,71.697204999999997],[-73.167496000000028,71.692200000000128],[-73.155562999999972,71.687195000000088],[-73.148894999999982,71.679977000000065],[-73.149993999999992,71.674423000000104],[-73.170546999999942,71.668319999999937],[-73.221114999999998,71.660262999999986],[-73.249434999999949,71.652481000000023],[-73.262511999999958,71.648041000000035],[-73.282776000000013,71.637771999999984],[-73.303604000000007,71.621918000000051],[-73.320281999999963,71.605545000000006],[-73.325012000000015,71.599152000000061],[-73.331679999999949,71.588042999999971],[-73.338607999999965,71.571105999999929],[-73.339721999999938,71.565262000000132],[-73.352492999999981,71.557479999999998],[-73.370270000000005,71.554428000000087]],[[-96.958892999999932,71.704437000000098],[-96.99888599999997,71.701096000000064],[-97.036391999999921,71.701385000000016],[-97.050277999999935,71.704162999999994],[-97.049727999999902,71.709991000000116],[-97.040282999999988,71.72026100000005],[-97.02416999999997,71.731093999999985],[-96.99888599999997,71.741363999999919],[-96.991668999999945,71.743042000000059],[-96.990829000000019,71.743866000000025],[-96.96945199999999,71.74859600000002],[-96.963897999999972,71.752212999999983],[-96.924163999999962,71.755554000000018],[-96.886397999999986,71.755264000000011],[-96.866942999999992,71.753601000000117],[-96.850554999999872,71.749419999999986],[-96.84445199999999,71.744141000000013],[-96.851104999999905,71.738875999999948],[-96.86860699999994,71.728592000000106],[-96.881377999999927,71.723312000000078],[-96.896956999999929,71.718323000000112],[-96.915832999999964,71.713608000000079],[-96.958892999999932,71.704437000000098]],[[-95.339995999999928,71.731369000000029],[-95.39805599999994,71.729431000000091],[-95.43582200000003,71.729980000000012],[-95.471114999999941,71.733597000000145],[-95.483062999999902,71.736923000000047],[-95.48832699999997,71.740814000000114],[-95.488051999999868,71.745529000000147],[-95.450286999999946,71.818877999999927],[-95.44027699999998,71.824158000000011],[-95.420836999999892,71.828873000000044],[-95.384170999999981,71.836104999999975],[-95.348891999999978,71.840546000000074],[-95.328613000000018,71.842208999999968],[-95.301666000000012,71.844147000000135],[-95.286666999999966,71.843048000000124],[-95.275832999999977,71.84027100000003],[-95.265838999999971,71.836655000000007],[-95.261672999999973,71.833328000000051],[-95.259734999999921,71.827484000000027],[-95.310546999999929,71.737198000000035],[-95.324721999999952,71.732758000000047],[-95.339995999999928,71.731369000000029]],[[-134.49554399999994,68.75221300000004],[-134.48803699999991,68.736649],[-134.48803699999991,68.731094000000098],[-134.48306299999996,68.720535000000041],[-134.47387700000002,68.711379999999963],[-134.46472199999994,68.707489000000066],[-134.44638099999997,68.700271999999984],[-134.40112299999993,68.687759000000085],[-134.37387100000001,68.682480000000112],[-134.33999599999999,68.67886400000009],[-134.30804399999994,68.678040000000124],[-134.28277600000001,68.681366000000139],[-134.24636799999996,68.687484999999981],[-134.23071299999998,68.692841000000101],[-134.22692899999998,68.694138000000123],[-134.22332800000004,68.699706999999933],[-134.26058999999987,68.733535999999958],[-134.26251200000002,68.736374000000126],[-134.28750599999995,68.753601000000003],[-134.30835000000002,68.766097999999943],[-134.32638499999996,68.773605000000089],[-134.42306500000001,68.831664999999987],[-134.54168700000002,68.919708000000071],[-134.558044,68.933043999999995],[-134.614441,68.983321999999987],[-134.62387099999995,68.992752000000053],[-134.62887599999999,69.003052000000139],[-134.62914999999992,69.008880999999974],[-134.62469499999992,69.015548999999965],[-134.56222499999996,69.082764000000111],[-134.55499299999997,69.08776899999998],[-134.53750600000001,69.09387200000009],[-134.49194299999999,69.104155999999989],[-134.46362299999998,69.106094000000098],[-134.44805899999989,69.106094000000098],[-134.36303699999996,69.102203000000031],[-134.34887700000002,69.103043000000071],[-134.33889799999992,69.106369000000086],[-134.22747800000002,69.174988000000099],[-134.22305299999999,69.181656000000032],[-134.22082499999993,69.188034000000016],[-134.22137499999997,69.216385000000116],[-134.21694899999989,69.223038000000088],[-134.162781,69.254715000000033],[-134.15389999999996,69.258880999999917],[-134.142517,69.261383000000023],[-134.12832599999996,69.262206999999989],[-134.06915299999997,69.262771999999984],[-134.05471799999998,69.263610999999969],[-134.02917500000001,69.266936999999984],[-133.92861899999991,69.282211000000075],[-133.90557899999988,69.287490999999989],[-133.89529400000004,69.290817000000004],[-133.88668799999999,69.294983000000116],[-133.87914999999998,69.299987999999985],[-133.87332199999997,69.30581699999999],[-133.86859100000004,69.312484999999924],[-133.86886599999997,69.318329000000119],[-133.87332199999997,69.323043999999982],[-133.87582399999997,69.328322999999955],[-133.86972000000003,69.33415199999996],[-133.67028799999997,69.386658000000068],[-133.65863000000002,69.389160000000004],[-133.55056799999994,69.405823000000055],[-133.40777600000001,69.414703000000088],[-133.37222299999991,69.412201000000039],[-133.35583499999996,69.409988000000055],[-133.32806400000004,69.404709000000082],[-133.30972299999996,69.402771000000143],[-133.23443599999996,69.397217000000126],[-133.21749899999992,69.39637799999997],[-133.20584099999991,69.398880000000077],[-133.073059,69.434982000000048],[-132.99941999999999,69.481934000000138],[-132.966095,69.511657999999954],[-132.95220899999998,69.563309000000061],[-132.95193499999999,69.569153000000028],[-132.95666499999993,69.57388300000008],[-132.96581999999995,69.57748400000014],[-132.98638900000003,69.590271000000143],[-132.988586,69.595260999999994],[-132.98361199999994,69.602203000000088],[-132.97747800000002,69.608032000000094],[-132.92251599999997,69.642212000000029],[-132.904449,69.650542999999971],[-132.89388999999994,69.65387000000004],[-132.86471599999999,69.658325000000104],[-132.82110599999999,69.660538000000031],[-132.78778099999994,69.659714000000065],[-132.66229199999998,69.651206999999999],[-132.628784,69.648048000000074],[-132.62028499999997,69.646378000000141],[-132.61479199999991,69.644043000000011],[-132.606628,69.639046000000121],[-132.55279499999995,69.631362999999965],[-132.53527800000001,69.630264000000011],[-132.41751099999993,69.635544000000039],[-132.39389,69.64027400000009],[-132.372772,69.646942000000081],[-132.34527600000001,69.659424000000058],[-132.33248900000001,69.671097000000088],[-132.32748399999997,69.677765000000079],[-132.333618,69.682480000000112],[-132.441101,69.702484000000027],[-132.45748900000001,69.704711999999972],[-132.46777299999991,69.701385000000016],[-132.51779199999999,69.68331900000004],[-132.54823299999998,69.685310000000129],[-132.55523700000003,69.683823000000018],[-132.57455400000003,69.683983000000126],[-132.582718,69.685654],[-132.586884,69.688148000000126],[-132.58673099999993,69.691649999999981],[-132.54833999999994,69.735809000000074],[-132.54055799999998,69.740814000000114],[-132.52749600000004,69.742477000000065],[-132.47305299999999,69.747756999999922],[-132.39974999999998,69.751663000000008],[-132.28918499999992,69.724991000000102],[-132.21304299999997,69.690810999999997],[-132.19888300000002,69.688034000000073],[-132.16305499999999,69.685256999999979],[-132.14697299999995,69.685256999999979],[-132.12304700000004,69.713608000000079],[-132.11663799999991,69.719436999999914],[-132.10720800000001,69.723602000000085],[-132.08331299999992,69.728591999999992],[-131.95443699999998,69.75471500000009],[-131.87469499999992,69.763884999999959],[-131.85861199999999,69.763611000000026],[-131.84527600000001,69.765273999999977],[-131.8347169999999,69.768599999999992],[-131.76556400000004,69.794707999999957],[-131.75891100000001,69.800536999999963],[-131.75836200000003,69.806366000000025],[-131.76028400000001,69.811646000000053],[-131.7647399999999,69.816376000000105],[-131.76666299999994,69.821655000000078],[-131.76000999999997,69.827484000000084],[-131.75058000000001,69.83137499999998],[-131.64501999999999,69.864990000000034],[-131.62359600000002,69.871368000000018],[-131.44778400000001,69.918594000000041],[-131.42639199999991,69.947479000000101],[-131.42111199999994,69.954162999999994],[-131.41027799999995,69.957214000000022],[-131.34887700000002,69.95248400000014],[-131.26916499999993,69.937759000000028],[-131.24609399999991,69.931091000000038],[-131.237213,69.927199999999971],[-131.23055999999991,69.923035000000141],[-131.20916699999998,69.899155000000007],[-131.20333899999997,69.889160000000061],[-131.20138499999996,69.883881000000088],[-131.20193499999999,69.878036000000009],[-131.2049869999999,69.871918000000051],[-131.21054099999998,69.865265000000079],[-131.21722399999987,69.859421000000054],[-131.22164899999996,69.854155999999989],[-131.22222899999991,69.848328000000038],[-131.220551,69.84304800000001],[-131.21194499999996,69.833603000000096],[-131.20526100000001,69.829437000000041],[-131.19638099999997,69.825546000000145],[-131.18499799999995,69.824158000000068],[-131.08056599999998,69.88499500000006],[-131.07501199999996,69.891663000000051],[-131.03140299999995,69.949417000000039],[-131.01028399999996,69.98692299999999],[-131.01278699999995,70.023315000000025],[-131.01947000000001,70.027771000000087],[-130.93029799999999,70.083054000000118],[-130.89224200000001,70.099152000000004],[-130.74832199999997,70.081940000000145],[-130.65612799999991,70.108597000000032],[-130.554169,70.165267999999969],[-130.54305999999991,70.168320000000051],[-130.48721299999994,70.173309000000017],[-130.47222899999997,70.173874000000069],[-130.46771200000001,70.170089999999959],[-130.47271699999993,70.167099000000121],[-130.48388699999998,70.164992999999981],[-130.51141399999995,70.162201000000039],[-130.52224699999994,70.158875000000023],[-130.54724099999999,70.127472000000012],[-130.54806499999995,70.121643000000006],[-130.54638699999992,70.116378999999995],[-130.54223599999995,70.111648999999943],[-130.53555299999999,70.107483000000059],[-130.52416999999997,70.103867000000037],[-130.5102839999999,70.101089000000002],[-130.49527,70.101654000000053],[-130.48416099999992,70.104705999999965],[-130.43237299999998,70.125870000000134],[-130.40722700000003,70.140533000000119],[-130.35360699999995,70.132202000000007],[-130.33084099999996,70.110809000000074],[-130.32250999999997,70.101379000000009],[-130.18472299999996,70.053589000000045],[-130.16861,70.053314],[-129.97555499999993,70.069442999999978],[-129.96304299999997,70.071655000000021],[-129.92611699999992,70.078598],[-129.89083900000003,70.092758000000117],[-129.86444099999994,70.126923000000033],[-129.84609999999986,70.154984000000127],[-129.8324889999999,70.195525999999916],[-129.79000899999994,70.219986000000119],[-129.73138399999999,70.253052000000082],[-129.69778400000001,70.262496999999996],[-129.68667600000003,70.265549000000078],[-129.67306499999995,70.266936999999984],[-129.64724699999999,70.251663000000065],[-129.60916099999992,70.213042999999971],[-129.45916699999998,70.147491000000116],[-129.40472399999999,70.123031999999967],[-129.40335099999999,70.11775200000011],[-129.40527299999997,70.106369000000086],[-129.40640300000001,70.10054000000008],[-129.4100039999999,70.094436999999971],[-129.433899,70.068054000000132],[-129.49749800000001,70.020538000000101],[-129.57360799999998,69.997757000000092],[-129.59555099999994,69.991363999999919],[-129.88946499999992,69.917205999999965],[-129.99304199999989,69.892487000000017],[-130.22805800000003,69.840546000000131],[-130.49581899999998,69.78166200000004],[-130.55999800000001,69.737198000000092],[-130.56140099999999,69.725815000000068],[-130.56472799999995,69.719711000000018],[-130.57028200000002,69.713043000000084],[-130.57833900000003,69.708038000000045],[-130.62136799999996,69.695251000000042],[-130.64697299999989,69.691360000000145],[-130.70416299999994,69.688309000000118],[-130.75750700000003,69.682480000000112],[-130.78030399999994,69.676926000000094],[-130.78973400000001,69.672760000000039],[-130.83639500000004,69.6336060000001],[-130.83944699999995,69.627472000000068],[-130.84081999999995,69.616089000000102],[-130.83667000000003,69.611099000000024],[-130.83749399999999,69.605545000000063],[-130.84414699999996,69.599716000000001],[-130.91915899999998,69.56721500000009],[-130.92861899999997,69.563309000000061],[-130.94473299999999,69.565536000000122],[-131.02667199999996,69.593048000000067],[-131.03973399999995,69.601653999999996],[-131.04168699999997,69.606934000000024],[-131.04083300000002,69.612761999999975],[-131.05306999999999,69.637206999999989],[-131.16332999999992,69.627762000000132],[-131.18859900000001,69.623871000000065],[-131.32861299999996,69.579987000000131],[-131.40750099999997,69.586655000000064],[-131.58694500000001,69.567490000000134],[-131.69168100000002,69.551650999999993],[-131.70498699999996,69.560256999999922],[-131.71389799999992,69.563873000000001],[-131.72778299999999,69.566940000000102],[-131.74108899999993,69.567490000000134],[-131.75585899999999,69.566940000000102],[-131.99722299999991,69.53137200000009],[-132.00640899999996,69.527205999999978],[-132.03890999999999,69.508331000000055],[-132.04666099999992,69.503326000000015],[-132.0799869999999,69.480819999999994],[-132.14169300000003,69.412766000000033],[-132.13305699999995,69.403320000000065],[-132.12164299999995,69.399994000000049],[-132.09750399999996,69.396057000000098],[-132.08526599999999,69.390823000000069],[-132.08084099999996,69.386108000000036],[-132.07888800000001,69.3808140000001],[-132.08166499999999,69.374695000000031],[-132.09472700000003,69.362762000000032],[-132.11663799999991,69.357208000000014],[-132.32916299999999,69.31442300000009],[-132.52417000000003,69.277771000000087],[-132.53195199999999,69.280547999999953],[-132.54556300000002,69.283325000000048],[-132.56167599999998,69.285812000000135],[-132.57998699999996,69.287490999999989],[-132.59222399999993,69.287200999999982],[-132.70611600000001,69.26887499999998],[-132.71777299999997,69.266388000000063],[-132.739441,69.260817999999972],[-132.76028399999996,69.254166000000112],[-132.76779199999999,69.249146000000053],[-132.90722699999998,69.1244200000001],[-132.90722699999998,69.118866000000082],[-132.90527299999997,69.042755],[-132.94610599999999,69.037491000000045],[-133.05084199999999,69.054703000000018],[-133.10638399999993,69.050537000000134],[-133.1719359999999,69.043320000000051],[-133.18331899999998,69.040817000000061],[-133.19332900000001,69.037491000000045],[-133.20083599999987,69.032485999999949],[-133.20556599999998,69.025818000000015],[-133.21499600000004,69.006653000000028],[-133.21664399999997,69.001937999999996],[-133.21444700000001,68.99664300000012],[-133.209991,68.991928000000087],[-133.20333900000003,68.987761999999975],[-133.19860799999998,68.983046999999942],[-133.19888300000002,68.977203000000145],[-133.21304299999991,68.938034000000073],[-133.22610499999996,68.913605000000132],[-133.23361199999999,68.908600000000092],[-133.31332399999985,68.871918000000051],[-133.32333399999993,68.868590999999924],[-133.33471699999996,68.866089000000045],[-133.34887699999996,68.865265000000079],[-133.36331200000001,68.866652999999985],[-133.37692300000003,68.869140999999956],[-133.38583399999999,68.873032000000023],[-133.39944500000001,68.881362999999965],[-133.40167199999991,68.886658000000011],[-133.39529400000004,68.89027400000009],[-133.37969999999996,68.89027400000009],[-133.36694299999994,68.891936999999984],[-133.359711,68.896942000000024],[-133.35360700000001,68.90277100000003],[-133.35803199999992,68.907486000000063],[-133.36944599999993,68.910538000000031],[-133.38275099999998,68.911102000000142],[-133.39556899999997,68.909424000000058],[-133.46112099999999,68.892761000000121],[-133.466095,68.888321000000133],[-133.484711,68.850266000000033],[-133.493042,68.826659999999947],[-133.49081399999994,68.821655000000078],[-133.48416099999997,68.81164600000011],[-133.47082499999999,68.797485000000108],[-133.46389799999992,68.793320000000108],[-133.4549869999999,68.789703000000145],[-133.40557899999999,68.772217000000012],[-133.32138099999992,68.746368000000132],[-133.16418499999992,68.707214000000079],[-133.08999599999999,68.694977000000108],[-133.05416899999994,68.691360000000145],[-133.03750599999995,68.690536000000009],[-133.02334599999995,68.691360000000145],[-133.01083399999987,68.693038999999999],[-132.98803699999996,68.697754000000032],[-132.95861799999994,68.69859299999996],[-132.94305399999996,68.696365000000014],[-132.91833500000001,68.690262000000075],[-132.92056299999996,68.695526000000029],[-132.9336239999999,68.709717000000069],[-132.94250499999998,68.713318000000129],[-132.95471199999997,68.71527100000003],[-133.00723299999999,68.719711000000075],[-133.02252199999998,68.719711000000075],[-133.03527800000001,68.718048000000124],[-133.04583699999995,68.711379999999963],[-133.11248799999998,68.714996000000042],[-133.142517,68.718597000000102],[-133.15249599999993,68.720825000000048],[-133.25500499999998,68.758606000000043],[-133.25945999999999,68.763321000000076],[-133.26611299999996,68.778869999999984],[-133.26141399999995,68.785537999999974],[-133.24999999999994,68.788040000000024],[-133.23416099999992,68.785812000000078],[-133.225281,68.782211000000018],[-133.22082499999999,68.777480999999966],[-133.22082499999999,68.771652000000131],[-133.21664399999997,68.766937000000098],[-133.20306399999998,68.764160000000004],[-133.16168200000004,68.75749200000007],[-133.14752199999998,68.758330999999998],[-133.13891599999994,68.76249700000011],[-133.1397399999999,68.766937000000098],[-133.21139499999998,68.790817000000118],[-133.23498499999999,68.795821999999987],[-133.250854,68.798035000000141],[-133.28178399999996,68.794426000000101],[-133.28863499999989,68.793097999999986],[-133.30145300000004,68.789429000000041],[-133.32556199999999,68.787491000000045],[-133.33554099999992,68.789703000000145],[-133.34445199999993,68.793594000000041],[-133.35665899999992,68.801085999999941],[-133.35888699999998,68.806366000000025],[-133.35415599999993,68.832214000000135],[-133.332764,68.843872000000147],[-133.27722199999988,68.856934000000024],[-133.26583900000003,68.859421000000054],[-133.23776199999998,68.861099000000024],[-133.22192399999994,68.858871000000022],[-133.18804899999986,68.849152000000061],[-133.16778599999998,68.836655000000064],[-133.15917999999999,68.827209000000096],[-133.15222199999999,68.823044000000095],[-133.12191799999994,68.805817000000047],[-133.10833700000001,68.80304000000001],[-133.09167500000001,68.802199999999914],[-133.06222500000001,68.802765000000136],[-133.00527999999997,68.815262000000132],[-132.95803799999993,68.835541000000092],[-132.962219,68.846099999999922],[-132.9619449999999,68.85165400000011],[-132.95193499999999,68.854979999999955],[-132.93667599999998,68.854979999999955],[-132.86749299999997,68.846099999999922],[-132.85611,68.842758000000003],[-132.78594999999996,68.818428000000097],[-132.75363199999998,68.802765000000136],[-132.49194299999994,68.801085999999941],[-132.48055999999991,68.803589000000102],[-132.47027600000001,68.806931000000077],[-132.40557899999999,68.842758000000003],[-132.40029900000002,68.847214000000122],[-132.39529400000004,68.853867000000093],[-132.39279199999999,68.859985000000052],[-132.396973,68.864700000000084],[-132.49249299999997,68.90637200000009],[-132.50363200000004,68.909714000000065],[-132.55334499999998,68.916091999999992],[-132.56750499999998,68.915268000000026],[-132.57638499999996,68.911102000000142],[-132.574432,68.906097000000102],[-132.56777999999991,68.901657000000057],[-132.54055799999998,68.896103000000096],[-132.55557299999992,68.878311000000053],[-132.66528299999993,68.841934000000037],[-132.67806999999993,68.840271000000087],[-132.69360399999994,68.840546000000131],[-132.76229899999998,68.857491000000095],[-132.77094999999997,68.858147000000031],[-132.77778599999999,68.860153000000082],[-132.78027299999991,68.862983999999983],[-132.833618,68.917755000000113],[-132.85998499999988,68.989150999999993],[-132.868042,69.021378000000141],[-132.87191799999999,69.056641000000013],[-132.86944600000004,69.062759000000085],[-132.86553999999995,69.068329000000006],[-132.81527699999998,69.08638000000002],[-132.80526699999996,69.089432000000102],[-132.77111799999994,69.085541000000035],[-132.75418100000002,69.084717000000069],[-132.68917799999991,69.082489000000123],[-132.67501800000002,69.083328000000051],[-132.66332999999997,69.085815000000139],[-132.54083300000002,69.135268999999994],[-132.46081500000003,69.124695000000088],[-132.46472199999999,69.119141000000127],[-132.46749899999998,69.107208000000071],[-132.45916699999992,69.108032000000037],[-132.42861900000003,69.11775200000011],[-132.40777599999996,69.1244200000001],[-132.38500999999997,69.139160000000061],[-132.37887599999999,69.145264000000054],[-132.36886600000003,69.158600000000035],[-132.36138899999997,69.171371000000136],[-132.343323,69.203323000000069],[-132.34249899999992,69.220260999999994],[-132.33972199999994,69.22665399999994],[-132.33056599999998,69.230820000000051],[-132.32055699999995,69.233871000000079],[-132.30612199999996,69.234711000000118],[-132.22360199999997,69.213608000000022],[-132.2225039999999,69.141662999999994],[-132.16805999999997,69.213882000000126],[-132.11694299999999,69.242203000000075],[-132.05804399999994,69.242203000000075],[-131.99600199999998,69.251632999999913],[-131.96389799999997,69.256942999999978],[-131.87527499999999,69.279709000000025],[-131.86499000000003,69.283051000000114],[-131.8052669999999,69.316375999999991],[-131.79751599999986,69.321381000000088],[-131.79110700000001,69.327208999999982],[-131.71444699999995,69.397766000000104],[-131.72555499999993,69.401093000000003],[-131.73416099999997,69.400542999999971],[-131.80667099999999,69.39137299999993],[-131.950287,69.395827999999938],[-131.96499600000004,69.397217000000126],[-131.97277800000001,69.400269000000037],[-131.97000099999997,69.406372000000033],[-131.65222199999994,69.471924000000058],[-131.63919099999998,69.473602000000142],[-131.60748299999995,69.473312000000135],[-131.59136999999993,69.470825000000048],[-131.45889299999999,69.449141999999938],[-131.44528200000002,69.446365000000071],[-131.432953,69.437194999999974],[-131.42910799999993,69.434700000000134],[-131.43160999999998,69.431365999999969],[-131.43710299999992,69.429031000000066],[-131.45193499999999,69.420532000000094],[-131.46221899999995,69.417206000000078],[-131.47164900000001,69.413039999999967],[-131.47943099999998,69.408035000000098],[-131.48611500000004,69.402206000000092],[-131.53472899999997,69.333327999999995],[-131.52584799999994,69.329436999999928],[-131.49941999999999,69.332489000000066],[-131.42083700000001,69.361649000000114],[-131.41278099999994,69.366653000000099],[-131.40750099999997,69.373306000000071],[-131.38989300000003,69.404159999999933],[-131.377228,69.427483000000052],[-131.32193000000001,69.49331699999999],[-131.27166699999992,69.501099000000124],[-131.25723299999999,69.501663000000065],[-131.24581899999998,69.49832200000003],[-131.23330699999991,69.48414600000001],[-131.22387700000002,69.463608000000136],[-131.22027599999996,69.453323000000012],[-131.21664399999992,69.442748999999992],[-131.21276899999992,69.422202999999968],[-131.21093799999989,69.4125370000001],[-131.21026599999999,69.406044000000065],[-131.21304299999997,69.387497000000053],[-131.22360200000003,69.384430000000123],[-131.23330699999991,69.384720000000129],[-131.24526999999995,69.382202000000007],[-131.26641799999993,69.375809000000061],[-131.31777999999997,69.358871000000136],[-131.39529399999998,69.318603999999993],[-131.40307599999994,69.313873000000058],[-131.415009,69.301376000000062],[-131.41445899999997,69.296936000000017],[-131.33526599999993,69.316666000000055],[-131.32470699999999,69.31999200000007],[-131.19332899999995,69.365264999999965],[-131.18859900000001,69.368317000000104],[-131.16650400000003,69.404930000000093],[-131.16223099999996,69.490540000000067],[-131.16418499999997,69.495529000000033],[-131.23123199999992,69.543892000000028],[-131.25385999999997,69.571846000000107],[-131.22546399999999,69.580719000000101],[-131.20681799999994,69.55720500000001],[-131.15046699999994,69.518600000000049],[-131.13006599999994,69.516388000000006],[-131.11053499999997,69.485329000000036],[-131.130157,69.429375000000107],[-131.14851399999992,69.403534000000036],[-131.1458439999999,69.374695000000031],[-131.13583399999999,69.359985000000108],[-131.12832599999996,69.361923000000047],[-131.10122699999999,69.393921000000091],[-131.08525099999991,69.440514000000007],[-131.06085199999995,69.470688000000109],[-131.06617699999993,69.491096000000084],[-131.06394999999998,69.512389999999982],[-131.08924899999994,69.531914000000143],[-131.10920699999997,69.543449000000123],[-131.127838,69.554543000000024],[-131.14781199999993,69.561195000000112],[-131.16599999999988,69.567856000000006],[-131.18832399999991,69.574707000000046],[-131.19473300000004,69.57887299999993],[-131.19665499999991,69.584152000000131],[-131.19610599999999,69.589980999999966],[-131.19055199999997,69.596649000000127],[-131.183899,69.602478000000133],[-131.17471299999994,69.606369000000029],[-131.13833599999998,69.614150999999936],[-131.12359600000002,69.614700000000084],[-131.10748299999989,69.612488000000042],[-131.09359699999999,69.609421000000111],[-131.087219,69.605255],[-131.08306900000002,69.600539999999967],[-131.04577599999999,69.524429000000055],[-131.02999899999998,69.485809000000131],[-131.02780200000001,69.463882000000069],[-131.03390499999995,69.429153000000042],[-131.03695700000003,69.423035000000084],[-131.07028200000002,69.367477000000065],[-131.10803199999992,69.33526599999999],[-131.11331200000001,69.328598],[-131.11639400000001,69.32249500000006],[-131.10888699999998,69.321655000000021],[-131.09973100000002,69.325821000000076],[-131.05084199999993,69.354431000000091],[-131.02667199999996,69.383865000000128],[-130.98999000000003,69.449141999999938],[-130.99121099999996,69.50104500000009],[-130.9922029999999,69.504203999999959],[-130.99026500000002,69.539429000000041],[-130.98083499999996,69.543594000000041],[-130.96887200000003,69.545821999999987],[-130.952789,69.543320000000108],[-130.94638099999992,69.539154000000053],[-130.94222999999994,69.534148999999957],[-130.94055200000003,69.52915999999999],[-130.9244379999999,69.448593000000017],[-130.93971299999998,69.421486000000016],[-130.94154400000002,69.417816000000073],[-130.94555699999995,69.414314000000047],[-130.95039399999996,69.411324000000093],[-130.98580900000002,69.383040999999935],[-131.02583299999998,69.347878000000037],[-131.02984600000002,69.344368000000088],[-131.03317300000003,69.340377999999987],[-131.03199799999999,69.337212000000022],[-131.03668200000004,69.310532000000023],[-131.02780200000001,69.306641000000127],[-131.01696800000002,69.307480000000055],[-131.01419099999993,69.313873000000058],[-131.01333599999998,69.319442999999922],[-131.010559,69.325546000000088],[-131.00500499999998,69.332214000000022],[-130.99832200000003,69.338043000000027],[-130.95693999999997,69.371917999999994],[-130.93194599999998,69.38348400000001],[-130.92710899999992,69.386490000000038],[-130.91844200000003,69.386818000000005],[-130.91177400000004,69.384818999999993],[-130.90928599999995,69.381980999999996],[-130.89611799999994,69.380539000000056],[-130.89889500000004,69.352768000000026],[-130.90249600000004,69.340820000000122],[-130.90640300000001,69.328872999999987],[-130.91427599999992,69.318313999999987],[-130.93194599999998,69.304977000000122],[-130.93972799999995,69.299987999999985],[-130.96362299999987,69.285262999999986],[-131.00057999999996,69.256653000000142],[-131.024719,69.209717000000126],[-131.01806599999992,69.141936999999928],[-131.01419099999993,69.136932000000058],[-130.99832200000003,69.134720000000016],[-130.9372249999999,69.134430000000009],[-130.92861899999997,69.145264000000054],[-130.93112199999996,69.222488000000055],[-130.93276999999995,69.227767999999912],[-130.93917799999991,69.232208000000128],[-130.9513849999999,69.246368000000075],[-130.950287,69.257766999999944],[-130.94723499999998,69.264160000000118],[-130.94168100000002,69.270538000000045],[-130.93499800000001,69.276382000000069],[-130.82110599999993,69.374695000000031],[-130.81304899999998,69.379700000000128],[-130.77139299999999,69.398880000000077],[-130.76055899999994,69.402206000000092],[-130.73165899999998,69.403320000000065],[-130.71472199999999,69.402206000000092],[-130.70028699999995,69.402771000000143],[-130.689728,69.406096999999988],[-130.66027800000001,69.42942800000003],[-130.65472399999993,69.43609600000002],[-130.64529400000004,69.454712000000029],[-130.65280200000001,69.457763999999941],[-130.667236,69.457214000000079],[-130.74777199999994,69.449141999999938],[-130.71499599999993,69.462203999999986],[-130.52502400000003,69.543594000000041],[-130.50723300000004,69.552474999999959],[-130.47860700000001,69.574707000000046],[-130.392517,69.645828000000108],[-130.385559,69.651657000000114],[-130.36248799999998,69.673874000000012],[-130.36608899999987,69.686371000000008],[-130.28112799999991,69.700271999999984],[-130.03308099999998,69.731934000000081],[-129.691956,69.784424000000115],[-129.67251599999992,69.792480000000012],[-129.65307599999994,69.800536999999963],[-129.624146,69.812485000000038],[-129.60220300000003,69.818877999999984],[-129.41332999999992,69.838042999999971],[-129.31555199999997,69.84664900000007],[-129.24276699999984,69.849990999999989],[-129.17999299999997,69.849152000000004],[-129.14862099999993,69.849990999999989],[-129.09942599999994,69.858871000000022],[-129.05889899999988,69.873871000000008],[-129.04196199999996,69.883606000000043],[-129.02722199999999,69.895264000000111],[-129.01501499999995,69.908325000000048],[-129.00058000000001,69.933043999999995],[-128.98831199999995,69.946091000000024],[-128.97360200000003,69.95748900000001],[-128.96527100000003,69.962494000000049],[-128.95526100000001,69.966385000000116],[-128.94415300000003,69.969437000000084],[-128.93194600000004,69.971649000000127],[-128.90084799999994,69.971924000000115],[-128.88723799999997,69.968872000000033],[-128.86471599999999,69.961655000000121],[-128.85610999999989,69.957764000000054],[-128.85470599999996,69.954711999999915],[-128.93444799999992,69.844146999999964],[-128.94665499999991,69.841934000000037],[-128.96417199999996,69.843322999999998],[-129.03805499999999,69.851929000000098],[-129.08248899999995,69.850540000000137],[-129.10971099999989,69.847763000000043],[-129.134186,69.843322999999998],[-129.14529399999998,69.840271000000087],[-129.15612799999997,69.836928999999998],[-129.163635,69.83137499999998],[-129.169464,69.824706999999989],[-129.16027799999995,69.715819999999951],[-129.15390000000002,69.700271999999984],[-129.14999399999994,69.695526000000029],[-129.14138800000001,69.691649999999981],[-129.13027999999991,69.688034000000073],[-128.97747800000002,69.674698000000149],[-128.96304299999997,69.675262000000089],[-128.92501799999997,69.68081699999999],[-128.78613300000001,69.760818000000086],[-128.64001500000001,69.84304800000001],[-128.54473899999999,69.885268999999994],[-128.44195599999989,69.921920999999998],[-128.32415800000001,69.948318000000086],[-128.31054700000004,69.958327999999995],[-128.30862400000001,70.008041000000105],[-128.31222499999996,70.012772000000041],[-128.349152,70.03915400000011],[-128.35638399999999,70.048874000000012],[-128.36138900000003,70.058868000000018],[-128.36972000000003,70.095825000000048],[-128.36831699999988,70.101654000000053],[-128.36193800000001,70.108322000000044],[-128.35333299999996,70.113037000000077],[-128.34304799999995,70.116928000000144],[-128.31054700000004,70.126923000000033],[-128.24414099999996,70.146378000000027],[-128.10916099999997,70.182204999999954],[-128.09414700000002,70.182479999999998],[-128.05667099999994,70.178039999999953],[-128.01055899999994,70.178314000000114],[-127.99472000000003,70.179428000000087],[-127.96833799999996,70.182754999999986],[-127.84861799999999,70.208878000000141],[-127.61501299999992,70.228867000000093],[-127.58500699999996,70.229431000000034],[-127.54998799999998,70.22665400000011],[-127.51500699999985,70.22164900000007],[-127.51750199999998,70.225540000000137],[-127.55082700000003,70.236374000000012],[-127.578056,70.242751999999996],[-127.61305199999987,70.247757000000036],[-127.71665999999999,70.259720000000073],[-127.73166700000002,70.261382999999967],[-127.79194599999994,70.25999500000006],[-127.85833699999995,70.263046000000088],[-127.87581599999987,70.264435000000105],[-128.02835099999993,70.28637700000013],[-128.03695700000003,70.290543000000071],[-128.06664999999987,70.307205000000067],[-128.07611099999991,70.343597000000045],[-128.07843000000003,70.346436000000097],[-128.07144199999988,70.348267000000078],[-128.0616149999999,70.347923000000037],[-128.05343599999998,70.346092000000056],[-128.04661599999986,70.343933000000106],[-128.02711499999998,70.340766999999971],[-127.98889200000002,70.345824999999991],[-127.97250399999996,70.34526100000005],[-127.96000699999996,70.347488000000112],[-127.94860799999998,70.350540000000024],[-127.94082600000002,70.356094000000041],[-127.90194699999995,70.393326000000059],[-127.91555800000003,70.396652000000074],[-127.93195300000002,70.396942000000081],[-127.95417799999996,70.39387499999998],[-127.97693600000002,70.387772000000041],[-127.987213,70.383880999999974],[-128.02166699999998,70.374695000000031],[-128.06500199999994,70.377312000000018],[-128.13833599999992,70.37598400000013],[-128.15183999999994,70.380310000000122],[-128.15933199999995,70.385483000000022],[-128.19665499999996,70.391937000000041],[-128.19888300000002,70.40248100000008],[-128.19055200000003,70.436646000000053],[-128.17749000000003,70.460815000000139],[-128.16055299999999,70.491364000000033],[-128.15249600000004,70.503601000000003],[-128.13583399999993,70.523041000000148],[-128.006958,70.588593000000003],[-127.99665799999997,70.590546000000131],[-127.97138999999999,70.583878000000141],[-127.90360999999996,70.562485000000038],[-127.83556399999998,70.540817000000118],[-127.68028300000003,70.486098999999967],[-127.51583900000003,70.426086000000055],[-127.42859599999991,70.393326000000059],[-127.27471899999995,70.326096000000064],[-127.24889399999995,70.314148000000046],[-127.18831599999999,70.280548000000124],[-127.173607,70.272217000000069],[-127.125,70.237198000000149],[-127.07640100000003,70.196365000000071],[-127.05499299999997,70.178039999999953],[-127.03443899999996,70.148880000000077],[-126.89334099999996,70.008880999999974],[-126.87888299999997,70.000548999999978],[-126.81276700000001,69.910537999999974],[-126.81194299999993,69.905258000000117],[-126.80526700000001,69.895538000000045],[-126.74388099999999,69.813873000000115],[-126.71472199999999,69.775269000000094],[-126.70584099999996,69.766098000000113],[-126.69999699999994,69.76138300000008],[-126.6808319999999,69.748031999999967],[-126.67250100000001,69.743866000000082],[-126.62053699999996,69.719986000000063],[-126.60166899999996,69.712479000000144],[-126.45944199999997,69.644149999999968],[-126.29055799999998,69.558594000000028],[-126.26777599999997,69.540817000000118],[-126.26722699999993,69.535537999999974],[-126.25583599999999,69.526657000000057],[-126.11221299999994,69.469436999999971],[-126.08860800000002,69.462493999999992],[-126.0497279999999,69.45277400000009],[-126.03666699999997,69.449706999999989],[-125.98889199999996,69.430542000000003],[-125.96806299999997,69.423035000000084],[-125.95749699999999,69.419434000000024],[-125.91055299999999,69.405548000000067],[-125.88474300000001,69.399155000000064],[-125.83972199999999,69.389160000000004],[-125.55110200000001,69.33718900000008],[-125.42639200000002,69.312180000000126],[-125.41528299999987,69.313019000000054],[-125.37249800000001,69.33580000000012],[-125.36554699999999,69.342468000000054],[-125.39083900000003,69.370513999999957],[-125.40110800000002,69.374130000000036],[-125.37748699999997,69.396087999999963],[-125.21000699999996,69.381912],[-125.16528299999999,69.381638000000066],[-125.14167800000001,69.38638300000008],[-125.13249200000001,69.391098000000113],[-125.12554899999998,69.397491000000059],[-125.11193800000001,69.415817000000061],[-125.08944700000001,69.449706999999989],[-125.11277799999999,69.464157000000114],[-125.12304699999993,69.468032999999991],[-125.462784,69.452469000000065],[-125.53056300000003,69.435242000000073],[-125.609444,69.415253000000121],[-125.62249799999995,69.418593999999985],[-125.61805700000002,69.42442299999999],[-125.57805599999995,69.471649000000014],[-125.48832700000003,69.50749200000007],[-125.47721899999993,69.510268999999994],[-125.46472199999988,69.512207000000103],[-125.449997,69.51249700000011],[-125.30695300000002,69.499984999999981],[-125.14723200000003,69.485519000000124],[-125.13166799999993,69.484694999999988],[-125.11805699999996,69.485793999999942],[-125.12082700000002,69.490798999999981],[-125.13137799999993,69.49441500000006],[-125.18554699999987,69.507202000000063],[-125.21640000000002,69.513031000000069],[-125.25499699999995,69.523026000000016],[-125.265556,69.526917000000083],[-125.41000399999996,69.628036000000066],[-125.41306299999997,69.633041000000105],[-125.41361999999992,69.638321000000133],[-125.41166699999991,69.64387499999998],[-125.37805200000003,69.678589000000045],[-125.36554699999999,69.690262000000075],[-125.35527000000002,69.694138000000123],[-125.079453,69.742752000000053],[-125.06555200000003,69.743591000000038],[-125.04972800000002,69.743042000000116],[-125.016953,69.740524000000107],[-125,69.738190000000088],[-124.98581699999994,69.734711000000004],[-124.97528099999994,69.730820000000108],[-124.96749899999998,69.726929000000041],[-124.93554699999999,69.678314],[-124.92500299999995,69.644714000000135],[-124.90638699999994,69.65387000000004],[-124.88166799999999,69.670532000000037],[-124.82195300000001,69.714995999999985],[-124.82972699999999,69.719147000000078],[-124.86165599999993,69.735809000000074],[-124.88555899999994,69.748031999999967],[-124.89750700000002,69.750549000000035],[-125.01418299999995,69.750534000000016],[-125.22805799999998,69.759140000000116],[-125.24137899999999,69.760254000000089],[-125.25890399999992,69.784103000000016],[-125.27639799999997,69.808243000000061],[-125.225281,69.839676000000054],[-125.20638999999994,69.849120999999968],[-125.19611399999997,69.853026999999997],[-125.18443299999996,69.855804000000091],[-125.16750300000001,69.85414099999997],[-125.16194199999995,69.849700999999982],[-125.15722700000003,69.823563000000036],[-125.15666199999998,69.818283000000122],[-125.17083700000001,69.805496000000119],[-125.170547,69.800216999999975],[-125.165009,69.795502000000113],[-125.15055799999999,69.793564000000003],[-125.05666399999996,69.795242000000087],[-125.03222700000003,69.817200000000071],[-125.00945300000001,69.845520000000079],[-124.94748700000002,69.910537999999974],[-124.94027699999987,69.916930999999977],[-124.89334100000002,69.940262000000018],[-124.76444999999995,69.970824999999991],[-124.79527299999995,70.008880999999974],[-124.82695000000001,70.012496999999996],[-124.88694799999996,70.011932000000002],[-124.99027999999998,70.00610400000005],[-125.025284,69.998000999999988],[-125.04695100000004,69.989990000000091],[-125.08640299999996,69.968535999999915],[-125.10722399999997,69.953522000000078],[-125.10759699999994,69.947975000000099],[-125.11138899999997,69.941940000000102],[-125.12389400000001,69.939956999999993],[-125.19082600000002,69.932433999999944],[-125.20667299999991,69.933228000000099],[-125.21721599999995,69.936905000000081],[-125.21777299999997,69.942337000000066],[-125.20221699999991,69.998581000000058],[-125.19748700000002,70.004501000000118],[-125.18831599999999,70.009033000000102],[-125.016953,70.076218000000097],[-125,70.079987000000017],[-124.98972300000003,70.078598],[-124.98166700000002,70.074432000000115],[-124.97556299999991,70.064697000000024],[-124.97528099999994,70.059418000000051],[-124.98194899999999,70.047760000000039],[-124.98665599999998,70.041655999999989],[-124.99610899999999,70.036925999999994],[-124.99768799999998,70.036925999999994],[-125,70.036925999999994],[-125.03999299999992,70.029068000000109],[-125.04804999999999,70.023041000000092],[-125.04527300000001,70.017990000000111],[-125.03443900000002,70.013931000000014],[-125.01999699999993,70.011993000000075],[-124.90139799999997,70.021378000000141],[-124.86332699999997,70.027206000000092],[-124.85527000000002,70.03054800000001],[-124.86972000000003,70.032760999999994],[-124.93916299999995,70.02748100000008],[-124.95500199999998,70.028320000000065],[-124.95694699999996,70.032211000000132],[-124.93916299999995,70.042480000000126],[-124.92859599999997,70.046097000000088],[-124.81416300000001,70.061645999999996],[-124.71444700000001,70.069153000000142],[-124.67527799999993,70.071930000000066],[-124.64527900000002,70.071930000000066],[-124.63474300000001,70.068329000000006],[-124.63417099999992,70.057754999999929],[-124.60333300000002,70.019714000000135],[-124.59777799999995,70.01527400000009],[-124.58473199999992,70.011932000000002],[-124.56861899999996,70.011108000000036],[-124.55583199999995,70.013046000000145],[-124.45754999999997,70.035706000000118],[-124.45172100000002,70.038376000000028],[-124.44672400000002,70.0417020000001],[-124.423607,70.056366000000139],[-124.44138299999997,70.076096000000121],[-124.449432,70.08027600000014],[-124.506958,70.100266000000147],[-124.51999699999999,70.103867000000037],[-124.54888899999997,70.109984999999938],[-124.58556399999992,70.115265000000022],[-124.59944199999995,70.114151000000049],[-124.62053700000001,70.106644000000074],[-124.63221699999997,70.103867000000037],[-124.68138099999999,70.094436999999971],[-124.71972699999998,70.088593000000117],[-124.735817,70.089432000000102],[-124.73889200000002,70.094436999999971],[-124.75195299999996,70.116378999999995],[-124.75250199999999,70.121643000000006],[-124.74388099999999,70.127197000000137],[-124.734444,70.131927000000019],[-124.70472699999993,70.14498900000001],[-124.69415299999997,70.148605000000089],[-124.68028299999997,70.149719000000061],[-124.43611099999998,70.15109300000006],[-124.39138800000001,70.134155000000135],[-124.35861199999988,70.068603999999993],[-124.36945299999996,70.034987999999998],[-124.37193300000001,70.029434000000037],[-124.38394199999993,70.017761000000007],[-124.41776999999996,69.98942599999998],[-124.42610199999996,69.983871000000079],[-124.45944199999991,69.956375000000037],[-124.42971799999992,69.849425999999937],[-124.44249000000002,69.832763999999997],[-124.45722999999998,69.819716999999969],[-124.47972099999998,69.803589000000102],[-124.50167799999991,69.784424000000115],[-124.50361599999997,69.730820000000108],[-124.5005569999999,69.725815000000068],[-124.49526999999995,69.72137500000008],[-124.487503,69.717209000000139],[-124.45916699999998,69.710815000000082],[-124.36138900000003,69.701096000000121],[-124.29499800000002,69.695251000000042],[-124.28111299999995,69.696091000000081],[-124.26862299999993,69.69802900000002],[-124.2433319999999,69.714705999999978],[-124.23388699999998,69.719147000000078],[-124.21305799999993,69.726654000000053],[-124.20140099999998,69.72943099999992],[-124.1875,69.73054500000012],[-124.06973299999987,69.723602000000085],[-124.04083300000002,69.701385000000016],[-124.05526700000001,69.670532000000037],[-124.21193699999998,69.586380000000077],[-124.24054699999994,69.550262000000032],[-124.24999999999994,69.54553199999998],[-124.28028899999998,69.533600000000035],[-124.33444199999997,69.516936999999984],[-124.37777699999992,69.496933000000013],[-124.39527899999996,69.486923000000104],[-124.51888999999994,69.404159999999933],[-124.51390099999998,69.399428999999998],[-124.48000300000001,69.378036000000066],[-124.47222899999991,69.37414600000011],[-124.44666299999994,69.367203000000131],[-124.32584399999996,69.351929000000041],[-124.26363399999997,69.348602000000085],[-124.21888699999994,69.347762999999929],[-124.16194200000001,69.349152000000117],[-124.12026999999995,69.351379000000009],[-124.09528399999999,69.354980000000069],[-124.01640299999997,69.379150000000095],[-123.962219,69.383040999999935],[-123.83138999999994,69.38888500000013],[-123.81696299999999,69.38888500000013],[-123.73055999999997,69.377472000000125],[-123.702789,69.371094000000028],[-123.69776899999988,69.366378999999995],[-123.69748699999997,69.361099000000081],[-123.69248999999996,69.356644000000074],[-123.67999299999991,69.353317000000118],[-123.66639700000002,69.354156000000103],[-123.502792,69.377197000000137],[-123.47778299999993,69.381088000000034],[-123.46611000000001,69.383881000000031],[-123.41915899999998,69.404434000000037],[-123.40750100000002,69.416092000000106],[-123.43276999999995,69.423035000000084],[-123.44027699999998,69.427200000000084],[-123.45084399999996,69.446930000000066],[-123.45084399999996,69.452209000000039],[-123.44833399999993,69.457763999999941],[-123.44332900000001,69.463882000000069],[-123.43611099999998,69.470261000000107],[-123.42859599999991,69.476379000000065],[-123.39998599999996,69.490265000000079],[-123.36527999999998,69.49832200000003],[-123.33999599999999,69.502213000000097],[-123.30110200000001,69.506653000000085],[-123.27306399999998,69.507767000000115],[-123.26139799999999,69.504990000000021],[-123.26287799999994,69.500267000000008],[-123.25723299999999,69.496094000000085],[-123.19275699999997,69.490814],[-123.17999299999991,69.492477000000122],[-123.16861,69.4952550000001],[-123.16332999999992,69.501389000000131],[-123.13166799999999,69.559708000000001],[-123.12666300000001,69.571105999999986],[-123.09638999999999,69.670532000000037],[-123.09612299999998,69.686371000000008],[-123.10637700000001,69.743042000000116],[-123.10888699999998,69.747756999999922],[-123.11665299999993,69.75221300000004],[-123.10527000000002,69.77915999999999],[-123.01583900000003,69.818329000000062],[-122.97083999999995,69.830826000000002],[-122.95916699999992,69.833603000000096],[-122.94332900000001,69.832763999999997],[-122.90499899999998,69.822220000000129],[-122.876938,69.810257000000092],[-122.85388199999994,69.803040000000124],[-122.82584400000002,69.796371000000079],[-122.80803699999996,69.793593999999985],[-122.79332699999992,69.793593999999985],[-122.779449,69.794707999999957],[-122.76666299999999,69.796371000000079],[-122.754997,69.799149000000057],[-122.74610899999999,69.80442800000003],[-122.66443599999997,69.818054000000018],[-122.61554699999999,69.812195000000031],[-122.58833300000003,69.807479999999998],[-122.47778299999999,69.802765000000136],[-122.45805399999995,69.802475000000129],[-122.24333200000001,69.802200000000084],[-122.12777699999992,69.802475000000129],[-122.06220999999999,69.813309000000004],[-122.04415899999998,69.813599000000011],[-121.89639299999999,69.805542000000059],[-121.71916199999993,69.79582199999993],[-121.68388400000003,69.793593999999985],[-121.44304699999998,69.765549000000021],[-121.41639700000002,69.760818000000086],[-121.38054699999992,69.75221300000004],[-121.33332799999994,69.740814000000114],[-121.28611799999999,69.729156000000103],[-121.18305999999995,69.702484000000027],[-121.12027,69.6827550000001],[-121.08667000000003,69.673598999999967],[-121.03555299999999,69.663315000000125],[-121.00890400000003,69.658325000000104],[-120.93415800000002,69.648604999999975],[-120.88110399999994,69.638885000000073],[-120.82556199999999,69.62359600000002],[-120.79638699999992,69.613036999999963],[-120.760559,69.598328000000095],[-120.73999000000003,69.585266000000104],[-120.73528299999992,69.580276000000026],[-120.72860700000001,69.575821000000019],[-120.70111099999997,69.558594000000028],[-120.67859599999991,69.546097000000032],[-120.61609599999997,69.520264000000054],[-120.39334100000002,69.439697000000081],[-120.27528399999994,69.404159999999933],[-120.23166700000002,69.391662999999937],[-119.98222399999986,69.344711000000018],[-119.93499800000001,69.339705999999978],[-119.91776999999996,69.338318000000072],[-119.63527699999997,69.315810999999997],[-119.46140300000002,69.303314],[-119.33500700000002,69.301926000000094],[-119.31582599999996,69.301086000000055],[-119.23000300000001,69.294434000000138],[-118.94082600000002,69.259430000000066],[-118.85555999999997,69.252487000000087],[-118.84056099999992,69.250548999999978],[-118.79998799999993,69.243317000000047],[-118.69360399999999,69.223602000000028],[-118.65527299999997,69.215820000000065],[-118.64472999999998,69.212494000000049],[-118.63639799999993,69.20887799999997],[-118.58168000000001,69.180267000000072],[-118.55248999999998,69.163605000000075],[-118.53999299999998,69.154984000000127],[-118.502228,69.134720000000016],[-118.48554999999999,69.12692300000009],[-118.45777900000002,69.117477000000122],[-118.432503,69.112198000000092],[-118.18611099999998,69.063873000000115],[-118.08167999999995,69.031371999999976],[-118.03555299999999,69.019714000000135],[-118.010559,69.014434999999992],[-117.87053700000001,68.985535000000141],[-117.83693700000003,68.982483000000002],[-117.74221799999998,68.978043000000014],[-117.63390400000003,68.973602000000085],[-117.59612300000003,68.971649000000127],[-117.5625,68.968597000000045],[-117.41583299999996,68.953598],[-117.26917300000002,68.915268000000026],[-117.19110099999995,68.893874999999923],[-117.15387699999997,68.885544000000039],[-117.13667299999997,68.885544000000039],[-116.978882,68.899993999999992],[-116.96639999999996,68.902206000000035],[-116.96056399999992,68.907211000000075],[-116.93907899999994,68.911003000000107],[-116.88667299999992,68.90887500000008],[-116.74445299999996,68.880538999999999],[-116.515289,68.858032000000094],[-116.50029000000001,68.857208000000128],[-116.43611099999998,68.858597000000088],[-116.42054699999994,68.859146000000067],[-116.41111799999999,68.862761999999918],[-116.40666199999998,68.868590999999924],[-116.40943899999996,68.879974000000118],[-116.39862099999999,68.882751000000042],[-116.38137799999998,68.882477000000108],[-116.36472300000003,68.880813999999987],[-116.34028599999994,68.875259000000085],[-116.28555299999999,68.859711000000118],[-116.22721899999993,68.839157000000114],[-116.22138999999999,68.834427000000119],[-116.21362299999998,68.830551000000014],[-116.12304699999993,68.818329000000062],[-116.10637700000001,68.816666000000112],[-115.99388099999999,68.806641000000013],[-115.96000699999996,68.804703000000075],[-115.94915800000001,68.807479999999998],[-115.94138299999997,68.811920000000043],[-115.94471699999997,68.816940000000045],[-115.95249899999993,68.820831000000112],[-116.12193299999996,68.872481999999991],[-116.31639099999995,68.94747899999993],[-116.32417299999992,68.951660000000004],[-116.33000199999992,68.956100000000049],[-116.325287,68.961929000000055],[-116.31610099999995,68.965546000000018],[-116.30526699999996,68.968597000000045],[-116.26139799999987,68.979980000000069],[-116.239441,68.985535000000141],[-116.20500199999987,68.984985000000108],[-116.19027699999998,68.982758000000047],[-116.068893,68.960541000000148],[-116.00750700000003,68.946365000000128],[-115.96833799999996,68.938582999999994],[-115.88417099999998,68.924698000000092],[-115.86749299999991,68.922759999999982],[-115.77806099999987,68.936371000000122],[-115.76695299999994,68.939148000000046],[-115.77500900000001,68.943039000000113],[-115.80943299999996,68.952208999999982],[-115.83332799999999,68.992477000000008],[-115.59306300000003,68.971649000000127],[-115.44638099999992,68.937759000000028],[-115.06471299999993,68.867476999999951],[-115.05055199999993,68.868866000000139],[-115.03500400000001,68.869140999999956],[-115.01640299999997,68.868042000000003],[-114.98999000000003,68.862761999999918],[-114.97805800000003,68.859146000000067],[-114.82167099999998,68.809707999999944],[-114.79194599999994,68.799423000000047],[-114.77916699999992,68.77915999999999],[-114.77055399999995,68.769440000000088],[-114.74916100000002,68.751389000000074],[-114.729446,68.744431000000134],[-114.71528599999999,68.742203000000131],[-114.69666299999994,68.740814],[-114.66555799999998,68.741653000000099],[-114.57833899999997,68.728043000000071],[-114.54250300000001,68.719436999999971],[-114.44833399999999,68.689697000000024],[-114.44055200000003,68.685805999999957],[-114.46028100000001,68.670532000000094],[-114.46528599999999,68.664428999999927],[-114.46221899999995,68.659424000000058],[-114.45667300000002,68.654709000000025],[-114.40471600000001,68.614990000000148],[-114.39499699999993,68.611374000000069],[-114.30444299999988,68.586929000000055],[-114.23361199999994,68.569443000000092],[-114.12165799999997,68.517487000000017],[-114.10665899999992,68.509430000000066],[-114.08889799999997,68.496368000000018],[-114.07055699999995,68.477478000000076],[-114.064438,68.467209000000025],[-114.06054699999993,68.456650000000025],[-114.01112399999994,68.250275000000045],[-114.01390100000003,68.244979999999998],[-114.02333099999998,68.24136400000009],[-114.03582799999998,68.23942599999998],[-114.28806299999997,68.228866999999923],[-114.32000700000003,68.229156000000046],[-114.33805799999993,68.230545000000063],[-114.35166900000002,68.233597000000145],[-114.37053700000001,68.240540000000124],[-114.37805199999997,68.24443100000002],[-114.38305700000001,68.248871000000065],[-114.390556,68.253052000000139],[-114.41166699999997,68.259430000000066],[-114.42555199999998,68.261932000000002],[-114.44167299999987,68.263610999999969],[-114.47361799999987,68.26388500000013],[-114.70249899999999,68.250275000000045],[-114.75527999999997,68.189697000000137],[-114.76471699999996,68.186096000000077],[-114.861107,68.153594999999996],[-114.87193300000001,68.151093000000117],[-114.89639299999999,68.146942000000024],[-114.92971799999992,68.14776599999999],[-114.97749299999992,68.153319999999951],[-115.00750700000003,68.157211000000018],[-115.076683,68.168869000000086],[-115.17054699999994,68.180542000000116],[-115.22501399999993,68.184142999999949],[-115.23721299999988,68.18220500000001],[-115.24194299999999,68.176376000000005],[-115.24388099999993,68.041367000000093],[-115.24054699999994,68.036377000000073],[-115.23528299999998,68.03166200000004],[-115.220551,68.023880000000077],[-115.204453,68.021927000000119],[-115.17138699999998,68.021102999999982],[-115.15638699999994,68.021652000000131],[-115.12526699999995,68.020263999999997],[-115.11389200000002,68.017487000000131],[-115.11054999999999,68.012207000000046],[-115.11665299999999,68.007217000000026],[-115.12581599999999,68.003601000000117],[-115.20472699999993,67.978043000000014],[-115.216949,67.976089000000002],[-115.34221599999995,67.958037999999988],[-115.50334199999986,67.934418000000051],[-115.52749599999999,67.930267000000129],[-115.53639199999998,67.926651000000049],[-115.5425029999999,67.92164600000001],[-115.53694200000001,67.905257999999947],[-115.53388999999993,67.899993999999992],[-115.52834299999995,67.895538000000045],[-115.521118,67.891663000000108],[-115.50723299999993,67.889435000000105],[-115.281387,67.866379000000109],[-115.27610800000002,67.861649000000057],[-115.20028699999995,67.821930000000123],[-115.19082599999996,67.818329000000062],[-115.11361699999998,67.798599000000081],[-115.1036069999999,67.796646000000123],[-115.02887699999985,67.786652000000117],[-115.01251200000002,67.78637700000013],[-114.99916099999996,67.787491000000102],[-114.93611099999998,67.79553199999998],[-114.88667299999997,67.802764999999965],[-114.84916699999991,67.807755000000043],[-114.80999800000001,67.812195000000031],[-114.78307299999989,67.814423000000033],[-114.75334199999992,67.814986999999974],[-114.73693799999995,67.814697000000137],[-114.718887,67.813309000000061],[-114.70749699999999,67.810531999999967],[-114.6866609999999,67.804153000000099],[-114.67722299999997,67.800812000000064],[-114.65527299999997,67.788879000000009],[-114.64499699999999,67.779709000000139],[-114.637787,67.775543000000027],[-114.29778299999992,67.718597000000102],[-114.28362300000003,67.717484000000013],[-114.27139299999999,67.719436999999971],[-114.25029000000001,67.724700999999982],[-114.24109599999991,67.728317000000004],[-114.22000099999997,67.733871000000022],[-114.19583099999994,67.737762000000089],[-114.1808319999999,67.738037000000077],[-114.14835399999993,67.736923000000104],[-114.11472300000003,67.733871000000022],[-113.99694799999992,67.723038000000031],[-113.98332199999999,67.720535000000041],[-113.94943199999994,67.711655000000007],[-113.89250199999992,67.696930000000066],[-113.84584000000001,67.691359999999975],[-113.76862299999999,67.691086000000041],[-113.70889299999999,67.691925000000026],[-113.55082699999997,67.698029000000076],[-113.25583599999999,67.704436999999984],[-113.24082899999996,67.704436999999984],[-113.20694700000001,67.702484000000084],[-113.17804699999988,67.698029000000076],[-113.15556300000003,67.692200000000014],[-113.11916399999996,67.678040000000124],[-113.10777300000001,67.674988000000042],[-113.06777999999997,67.667480000000012],[-113.04998799999993,67.666092000000106],[-112.965012,67.669708000000128],[-112.73972300000003,67.669434000000024],[-112.3958439999999,67.679153000000042],[-112.370003,67.68193100000002],[-112.348343,67.687194999999974],[-112.34056099999998,67.691359999999975],[-112.33361799999989,67.696365000000014],[-112.18331899999993,67.727768000000083],[-111.912781,67.754166000000055],[-111.88305700000001,67.754439999999988],[-111.79972799999996,67.75082400000008],[-111.66000399999996,67.733322000000044],[-111.57277699999992,67.744431000000134],[-111.45861799999989,67.763046000000088],[-111.37082699999991,67.781097000000045],[-111.32250999999991,67.806931000000077],[-111.31276699999995,67.810531999999967],[-111.29083299999996,67.815536000000066],[-111.200287,67.834152000000131],[-111.17582699999991,67.837494000000049],[-111.15943900000002,67.836655000000064],[-111.14835399999998,67.833602999999982],[-111.14388999999994,67.82887299999993],[-111.146118,67.822769000000108],[-111.12082700000002,67.780823000000112],[-111.03443899999996,67.764160000000061],[-111.01834100000002,67.763321000000076],[-111.00583599999999,67.764998999999989],[-110.84056099999998,67.800262000000032],[-110.83222999999998,67.804428000000087],[-110.80972300000002,67.818604000000107],[-110.78859699999998,67.833602999999982],[-110.78278399999994,67.839431999999988],[-110.75890400000003,67.852767999999969],[-110.74221799999992,67.861099000000024],[-110.73249800000002,67.86442599999998],[-110.41443600000002,67.947754000000145],[-110.33999599999999,67.965546000000018],[-110.1991579999999,67.972214000000008],[-110.17999299999991,67.994431000000077],[-110.1725009999999,67.999420000000043],[-110.162781,68.00277699999998],[-110.15167200000002,68.005264000000068],[-110.13054699999998,68.008040999999992],[-110.11694299999994,68.008881000000031],[-110.08389299999999,68.006943000000092],[-110.07084699999996,68.004165999999998],[-110.04888900000003,67.997756999999922],[-110.00110599999999,67.979705999999965],[-109.979446,67.967483999999956],[-109.97083999999995,67.958037999999988],[-109.96888699999994,67.953049000000021],[-109.96749899999992,67.941360000000145],[-109.97028399999999,67.929703000000018],[-109.97749299999987,67.911377000000016],[-109.99166899999994,67.891373000000044],[-110.00110599999999,67.872482000000048],[-110.00361599999991,67.866379000000109],[-110.00361599999991,67.860535000000084],[-109.99749799999995,67.850815000000011],[-109.98889200000002,67.841370000000097],[-109.98249800000002,67.837204000000042],[-109.97389199999998,67.833602999999982],[-109.96305799999993,67.830276000000026],[-109.948036,67.830276000000026],[-109.93554699999999,67.831940000000031],[-109.92582699999997,67.835266000000104],[-109.91722099999998,67.839157],[-109.91251399999999,67.845824999999934],[-109.912216,67.85165399999994],[-109.91639700000002,67.856093999999985],[-109.94888300000002,67.877197000000081],[-109.95305599999995,67.881927000000076],[-109.94193999999993,67.884430000000066],[-109.89028899999994,67.879974000000004],[-109.86193799999995,67.874985000000038],[-109.823059,67.866089000000102],[-109.81416299999995,67.862198000000035],[-109.80777,67.858032000000094],[-109.76722699999993,67.827773999999977],[-109.73082699999998,67.791931000000091],[-109.72917200000001,67.767761000000121],[-109.73581699999994,67.74275200000011],[-109.74553700000001,67.739426000000094],[-109.75167799999991,67.733597000000088],[-109.74973299999994,67.728592000000049],[-109.7369379999999,67.720261000000107],[-109.72609699999998,67.716933999999981],[-109.55222300000003,67.687759000000142],[-109.53472899999991,67.685806000000014],[-109.52250700000002,67.687484999999981],[-109.51139799999999,67.689697000000081],[-109.50279199999994,67.693862999999965],[-109.48805199999993,67.703873000000044],[-109.37026999999995,67.729155999999989],[-109.25361599999997,67.731934000000138],[-109.21028100000001,67.732208000000071],[-109.15915699999999,67.727478000000019],[-109.06582600000002,67.714157000000114],[-109.05972300000002,67.709991000000002],[-109.01471699999996,67.676651000000106],[-109.00279199999994,67.662491000000045],[-108.91915899999992,67.535812000000135],[-108.921944,67.529709000000025],[-108.95388800000001,67.511932000000115],[-108.96362299999998,67.5086060000001],[-108.99665800000002,67.501389000000017],[-109.00119000000001,67.5],[-109.00666799999993,67.498322000000087],[-109.01528899999994,67.494141000000013],[-109.02139299999999,67.488311999999951],[-109.02528399999994,67.483322000000101],[-109.01806599999998,67.462494000000049],[-109.002228,67.443587999999977],[-108.98554999999993,67.436096000000077],[-108.84999099999993,67.388596000000064],[-108.83112299999993,67.353591999999992],[-108.82501200000002,67.349426000000108],[-108.81276700000001,67.348876999999959],[-108.80416899999994,67.352768000000026],[-108.79666099999986,67.357758000000103],[-108.79055799999998,67.363602000000128],[-108.76611299999996,67.396378000000027],[-108.75834700000001,67.409149000000127],[-108.75583599999999,67.415267999999969],[-108.74445299999996,67.445525999999973],[-108.74109599999997,67.457214000000135],[-108.73638900000003,67.481093999999985],[-108.735817,67.486649000000057],[-108.734734,67.547759999999982],[-108.735817,67.558594000000028],[-108.73777799999993,67.563873000000058],[-108.73889200000002,67.574707000000103],[-108.73916599999995,67.596938999999963],[-108.73638900000003,67.603043000000014],[-108.73000299999995,67.608597000000032],[-108.71472199999999,67.61914100000007],[-108.70612299999988,67.623306000000071],[-108.69611399999997,67.626373000000001],[-108.67027299999995,67.628586000000098],[-108.65527299999991,67.62831100000011],[-108.62053700000001,67.624695000000031],[-108.6100009999999,67.621093999999971],[-108.58500700000002,67.609985000000108],[-108.57888799999989,67.605545000000063],[-108.516953,67.497482000000048],[-108.51139799999999,67.487487999999985],[-108.510559,67.47665400000011],[-108.51334399999996,67.470535000000098],[-108.52333099999993,67.45748900000001],[-108.52390300000002,67.451659999999947],[-108.52278100000001,67.44081100000011],[-108.49804699999993,67.363037000000077],[-108.49027999999998,67.353591999999992],[-108.48416099999997,67.349426000000108],[-108.47138999999993,67.346649000000014],[-108.458054,67.347214000000065],[-108.43720999999994,67.352768000000026],[-108.42971799999998,67.357483000000059],[-108.42471299999994,67.364151000000049],[-108.421944,67.3702550000001],[-108.42944299999999,67.379700000000128],[-108.43554699999999,67.383881000000031],[-108.439438,67.388596000000064],[-108.44275699999997,67.399155000000121],[-108.43998699999992,67.427475000000129],[-108.43472300000002,67.431656000000032],[-108.39388999999994,67.443587999999977],[-108.38166799999999,67.445251000000098],[-108.36694299999994,67.444976999999994],[-108.34361299999989,67.438582999999937],[-108.33556399999998,67.434982000000105],[-108.32112100000001,67.426926000000037],[-108.30750299999988,67.413040000000024],[-108.301941,67.403320000000122],[-108.30027799999999,67.398041000000148],[-108.29666099999997,67.393326000000116],[-108.28832999999997,67.389435000000049],[-108.13417099999992,67.329163000000051],[-108.06360599999988,67.305251999999996],[-108.02583300000003,67.296371000000022],[-108.015289,67.293045000000006],[-107.98554999999999,67.271927000000119],[-107.94471699999997,67.236374000000069],[-107.94082600000002,67.231659000000036],[-107.875,67.140823000000012],[-107.87526700000001,67.052765000000136],[-107.88054699999998,67.04832499999992],[-107.89362299999999,67.047760000000096],[-107.90499899999998,67.049713000000054],[-107.95028699999995,67.062195000000031],[-108.00834699999996,67.077484000000084],[-108.02084399999995,67.080551000000014],[-108.03666699999991,67.081664999999987],[-108.14862099999993,67.076660000000118],[-108.15722700000003,67.072769000000051],[-108.18916300000001,67.054977000000008],[-108.19304699999986,67.049713000000054],[-108.192207,67.038878999999952],[-108.19082600000002,67.033599999999979],[-108.19138299999992,67.028046000000018],[-108.19526699999994,67.022766000000104],[-108.20388799999995,67.018875000000037],[-108.21611000000001,67.017211999999915],[-108.23277300000001,67.019150000000081],[-108.24527,67.022217000000012],[-108.45028699999995,67.083328000000108],[-108.46056399999992,67.086928999999998],[-108.495003,67.102203000000088],[-108.51722699999999,67.113876000000062],[-108.541382,67.130813999999987],[-108.55555700000002,67.138885000000073],[-108.58029199999999,67.15026899999998],[-108.59056099999998,67.153594999999996],[-108.6063769999999,67.154708999999968],[-108.61971999999997,67.15387000000004],[-108.622772,67.149993999999936],[-108.53028899999993,67.042480000000012],[-108.52416999999997,67.038315000000011],[-108.51611300000002,67.034423999999944],[-108.50140399999998,67.032211000000018],[-108.491669,67.0352630000001],[-108.48554999999988,67.041092000000106],[-108.48500100000001,67.046646000000123],[-108.48665599999998,67.05192599999998],[-108.49054699999988,67.056641000000013],[-108.48944099999994,67.067764000000011],[-108.48194899999999,67.072769000000051],[-108.468887,67.073318000000029],[-108.45612299999999,67.070541000000105],[-108.44193999999999,67.062485000000038],[-108.39222699999993,67.028869999999984],[-108.35637700000001,67.003326000000129],[-108.34665699999994,66.994431000000077],[-108.33056599999998,66.986923000000104],[-108.31806899999998,66.983871000000136],[-108.28971899999993,66.979980000000069],[-108.25862099999995,66.977768000000026],[-108.22860700000001,66.976654000000053],[-108.19695300000001,66.972214000000008],[-108.16639700000002,66.962204000000099],[-108.14998600000001,66.954436999999984],[-108.11472299999997,66.928864000000033],[-107.98528299999998,66.828598000000113],[-107.94138299999997,66.788315000000068],[-107.93831599999999,66.778046000000074],[-107.93971299999993,66.766663000000051],[-107.94193999999999,66.749709999999936],[-107.94471699999997,66.743591000000094],[-107.94803599999995,66.731933999999967],[-107.949432,66.720535000000098],[-107.94583099999994,66.715820000000065],[-107.89444699999996,66.671646000000123],[-107.88276699999989,66.663315000000011],[-107.87082699999996,66.662491000000045],[-107.86444099999989,66.668320000000051],[-107.86389200000002,66.673874000000069],[-107.86776700000001,66.71138000000002],[-107.88474299999996,66.750823999999909],[-107.88834400000002,66.755554000000132],[-107.88194299999992,66.759155000000021],[-107.86776700000001,66.758881000000088],[-107.85333299999996,66.756378000000097],[-107.829453,66.744980000000112],[-107.81777999999997,66.736374000000012],[-107.76500699999997,66.686919999999986],[-107.72416699999991,66.629700000000128],[-107.64750699999996,66.574707000000103],[-107.62805199999997,66.562194999999974],[-107.60082999999997,66.546097000000088],[-107.56945799999994,66.53054800000001],[-107.55721999999997,66.527771000000087],[-107.43305999999995,66.453598000000113],[-107.2911069999999,66.36831699999999],[-107.26027699999986,66.353043000000071],[-107.24804699999993,66.349990999999989],[-107.23500100000001,66.348602000000142],[-107.22222899999997,66.349152000000004],[-107.21140299999996,66.351379000000065],[-107.203056,66.355254999999943],[-107.196663,66.360809000000131],[-107.195831,66.366379000000052],[-107.19722000000002,66.371643000000006],[-107.20056199999993,66.376373000000058],[-107.23554999999993,66.407486000000063],[-107.34221599999995,66.461655000000064],[-107.43888899999996,66.513046000000145],[-107.56220999999994,66.591369999999984],[-107.56582599999996,66.596100000000035],[-107.56861899999996,66.606644000000074],[-107.56777999999991,66.612198000000092],[-107.56916799999999,66.617477000000065],[-107.57055700000001,66.622482000000105],[-107.57417299999997,66.627471999999955],[-107.62416100000002,66.660812000000021],[-107.64943700000003,66.693862999999965],[-107.69387799999998,66.755829000000006],[-107.74665800000002,66.922760000000039],[-107.68861399999997,66.977097000000128],[-107.63806199999999,67.024429000000055],[-107.66665599999993,67.063034000000016],[-107.66805999999985,67.068329000000062],[-107.66166699999997,67.073883000000023],[-107.65083299999992,67.076096000000007],[-107.63612399999994,67.073883000000023],[-107.60777299999995,67.063309000000004],[-107.58361799999994,67.051650999999993],[-107.52390300000002,67.020264000000054],[-107.51666299999999,67.010543999999982],[-107.48388699999998,66.924149],[-107.48473399999995,66.918593999999928],[-107.49694799999997,66.917206000000022],[-107.57972699999988,66.916382000000056],[-107.59445199999999,66.918868999999972],[-107.60221899999988,66.922760000000039],[-107.608047,66.926926000000094],[-107.62332200000003,66.940262000000075],[-107.626938,66.944977000000108],[-107.632767,66.949417000000096],[-107.64083899999997,66.953049000000078],[-107.647064,66.942711000000031],[-107.65521999999999,66.943710000000067],[-107.66238399999997,66.942879000000062],[-107.66754900000001,66.940376000000072],[-107.67138699999998,66.937035000000037],[-107.67038700000001,66.933868000000018],[-107.63527699999997,66.892212000000029],[-107.57028199999991,66.837769000000094],[-107.564438,66.833602999999982],[-107.51306199999993,66.822220000000016],[-107.42832900000002,66.804703000000131],[-107.41610699999995,66.806091000000038],[-107.40888999999993,66.811096000000077],[-107.39111299999996,66.891373000000101],[-107.39584400000001,66.901382000000126],[-107.422234,66.939697000000024],[-107.42944299999999,66.949142000000109],[-107.43888899999996,66.958328000000051],[-107.44471699999997,66.962493999999936],[-107.44387799999993,66.968048000000124],[-107.435272,66.972214000000008],[-107.421944,66.972762999999986],[-107.40611299999995,66.97137500000008],[-107.37943999999993,66.966094999999996],[-107.35916099999992,66.959427000000005],[-107.23388699999992,66.902206000000092],[-107.21806299999997,66.894714000000135],[-107.21028099999995,66.890823000000069],[-107.1875,66.87359600000002],[-107.15750099999991,66.846939000000134],[-107.15055799999999,66.837494000000049],[-107.14916999999991,66.832214000000022],[-107.137787,66.823608000000092],[-107.12554899999992,66.820540999999992],[-107.09472700000003,66.818329000000119],[-107.08361799999994,66.820540999999992],[-107.15527299999997,66.899719000000005],[-107.20388800000001,66.944702000000063],[-107.22666900000002,66.961655000000007],[-107.24027999999998,66.969986000000063],[-107.29750100000001,67.001938000000052],[-107.3052669999999,67.005829000000119],[-107.31139399999995,67.127197000000024],[-107.38806199999993,67.144440000000145],[-107.43083200000001,67.158325000000048],[-107.44915800000001,67.165543000000071],[-107.47332799999992,67.176926000000037],[-107.48137700000001,67.180816999999934],[-107.50306699999993,67.192749000000106],[-107.53250100000002,67.214157],[-107.64862099999993,67.359984999999995],[-107.57694999999995,67.475540000000137],[-107.57389799999993,67.481658999999979],[-107.57528699999995,67.48692299999999],[-107.57888800000001,67.491652999999985],[-107.58277899999996,67.496368000000018],[-107.58860799999991,67.500823999999966],[-107.71833800000002,67.573318000000086],[-107.74054699999994,67.585265999999933],[-107.77362099999999,67.600540000000024],[-107.81331599999999,67.614426000000037],[-107.84472700000003,67.624420000000043],[-107.89055599999989,67.642487000000074],[-107.96916199999998,67.676651000000106],[-107.98972300000003,67.688873000000115],[-107.99944299999999,67.698029000000076],[-108.006958,67.707489000000123],[-108.01334399999996,67.728317000000004],[-108.01445000000001,67.73414600000001],[-108.015289,67.744980000000055],[-108.01390099999998,67.756103999999993],[-108.00805699999995,67.768326000000116],[-107.99249299999997,67.788040000000024],[-107.94833399999993,67.841095000000109],[-107.94193999999999,67.846939000000134],[-107.93415800000002,67.85165399999994],[-107.92278299999998,67.853867000000093],[-107.890289,67.85165399999994],[-107.87777699999992,67.853317000000061],[-107.85527000000002,67.85775799999999],[-107.75666799999993,67.880814000000044],[-107.71472199999994,67.892487000000074],[-107.70472699999993,67.895828000000108],[-107.674713,67.916092000000049],[-107.66166699999997,67.927475000000015],[-107.65110800000002,67.940535999999952],[-107.65499899999992,67.945250999999985],[-107.66555800000003,67.94859300000013],[-107.77050800000001,67.96526300000005],[-107.81133999999992,67.971596000000034],[-107.91027800000001,67.988585999999998],[-107.91639699999996,67.993042000000059],[-107.91999800000002,67.997756999999922],[-107.89055599999989,68.081664999999987],[-107.88527699999997,68.088318000000129],[-107.87888299999997,68.093872000000147],[-107.86332699999997,68.103592000000049],[-107.85166899999996,68.106094000000098],[-107.837784,68.104430999999977],[-107.72112300000003,68.082763999999941],[-107.69943199999994,68.075821000000133],[-107.69360399999994,68.071655000000078],[-107.69776899999994,68.066376000000105],[-107.70667300000002,68.062485000000038],[-107.72721899999993,68.056090999999981],[-107.73860200000001,68.05386400000009],[-107.77250700000002,68.05693100000002],[-107.78778099999994,68.057205000000124],[-107.80027799999999,68.055817000000047],[-107.80943299999996,68.051650999999936],[-107.83332799999988,68.013046000000031],[-107.83389299999999,68.007217000000026],[-107.82778899999988,68.003052000000025],[-107.8038479999999,68.004264999999975],[-107.78733799999998,67.997597000000042],[-107.77900699999998,67.996765000000096],[-107.763847,67.998428000000047],[-107.75699599999996,67.999771000000123],[-107.75426500000003,68.006812999999966],[-107.73306300000002,68.020827999999995],[-107.72501399999993,68.025818000000015],[-107.69027699999992,68.042480000000012],[-107.67999299999997,68.04582199999993],[-107.61028299999998,68.058593999999971],[-107.58583099999998,68.059982000000048],[-107.57084700000001,68.059708000000114],[-107.53806299999997,68.057479999999998],[-107.45028699999989,68.047211000000118],[-107.38890100000003,68.04525799999999],[-107.36221299999994,68.04693600000013],[-107.34944200000001,68.048599000000024],[-107.32640099999998,68.053040000000124],[-107.28778099999994,68.064987000000087],[-107.25140399999998,68.080826000000002],[-107.22638699999993,68.094436999999971],[-107.154449,68.12692300000009],[-107.141953,68.128310999999997],[-107.11028299999998,68.12692300000009],[-107.10665899999998,68.122208000000057],[-107.11888099999987,68.084717000000069],[-106.96556099999998,68.113312000000121],[-106.95278899999988,68.114700000000028],[-106.85611,68.116927999999973],[-106.84111000000001,68.116379000000052],[-106.80194099999994,68.197479000000101],[-106.80943300000001,68.207214000000022],[-106.80610699999994,68.213043000000027],[-106.80027799999993,68.217484000000127],[-106.79110700000001,68.221375000000023],[-106.62748699999997,68.246643000000063],[-106.61444099999994,68.24803200000008],[-106.5994419999999,68.247482000000048],[-106.58860800000002,68.244141000000013],[-106.468613,68.190536000000122],[-106.45777900000002,68.176376000000005],[-106.45417799999996,68.160812000000078],[-106.45056199999999,68.155823000000112],[-106.44471699999991,68.151657000000057],[-106.43195300000002,68.153046000000018],[-106.42138699999987,68.156097000000045],[-106.35056299999997,68.179153000000099],[-106.34472699999998,68.183318999999983],[-106.35056299999997,68.187759000000028],[-106.35888699999992,68.191650000000095],[-106.39277600000003,68.201660000000004],[-106.42083700000001,68.207214000000022],[-106.468887,68.214431999999988],[-106.48194899999993,68.217484000000127],[-106.48999000000003,68.221375000000023],[-106.49582699999996,68.225540000000024],[-106.49722300000002,68.230820000000051],[-106.46833799999996,68.329711999999972],[-106.46501199999994,68.335815000000139],[-106.45667299999991,68.340820000000008],[-106.44748700000002,68.344711000000075],[-106.42639200000002,68.350815000000068],[-106.25611900000001,68.387772000000098],[-106.24416400000001,68.38998400000014],[-106.21833800000002,68.392487000000131],[-106.203056,68.392211999999915],[-106.185272,68.38998400000014],[-106.17471299999994,68.386658000000125],[-106.16665599999999,68.382750999999985],[-106.15471599999989,68.373871000000122],[-105.79638699999998,68.422211000000118],[-105.79055799999998,68.418045000000063],[-105.78222699999998,68.413878999999952],[-105.76583900000003,68.41276600000009],[-105.75167799999991,68.413040000000024],[-105.73972300000003,68.415267999999969],[-105.73029300000002,68.419144000000017],[-105.72305299999999,68.424698000000035],[-105.70111099999991,68.469711000000132],[-105.69721999999996,68.486649],[-105.69833399999993,68.49192800000003],[-105.70278899999994,68.501938000000109],[-105.71444699999995,68.510544000000039],[-105.74305700000002,68.564697000000137],[-105.724716,68.574158000000125],[-105.64499699999999,68.633880999999974],[-105.65083300000003,68.638046000000145],[-105.66639699999996,68.638596000000007],[-105.90222199999999,68.635269000000051],[-105.92832899999996,68.632476999999994],[-106.02944899999994,68.619704999999954],[-106.041382,68.617477000000008],[-106.04972799999996,68.612761999999975],[-106.04750100000001,68.602203000000145],[-106.05332900000002,68.595824999999991],[-106.06416300000001,68.59275800000006],[-106.2077789999999,68.567764000000068],[-106.23638900000003,68.566665999999998],[-106.37027,68.545258000000103],[-106.51083399999999,68.518326000000002],[-106.54387700000001,68.511932000000115],[-106.62470999999999,68.46748400000007],[-106.63166799999999,68.461928999999998],[-106.62888299999992,68.45138500000013],[-106.62165799999997,68.441925000000026],[-106.61582899999996,68.437759000000142],[-106.59528399999994,68.425261999999975],[-106.58473200000003,68.421646000000123],[-106.57167099999992,68.418593999999985],[-106.55387899999994,68.416656000000046],[-106.52194199999997,68.414992999999924],[-106.50446299999999,68.41276600000009],[-106.493607,68.409424000000115],[-106.48777799999988,68.404984000000127],[-106.48055999999997,68.395537999999988],[-106.52722199999994,68.300812000000121],[-106.53415699999999,68.295257999999933],[-106.54332699999998,68.291367000000037],[-106.556107,68.289978000000076],[-106.57277699999986,68.291092000000049],[-106.58444199999991,68.293319999999994],[-106.59500099999997,68.296646000000067],[-106.60109699999998,68.301086000000055],[-106.6119379999999,68.315262000000075],[-106.6383439999999,68.343048000000124],[-106.64444700000001,68.347487999999942],[-106.77887699999997,68.408034999999984],[-106.78971899999999,68.411652000000117],[-106.80277999999993,68.414428999999984],[-107.01363400000002,68.369431000000077],[-107.02166699999998,68.364699999999971],[-107.02027899999996,68.359420999999998],[-107.01666299999999,68.354705999999965],[-107.01750199999998,68.349151999999947],[-107.03138699999994,68.33776899999998],[-107.13221699999991,68.283325000000104],[-107.24610899999999,68.261383000000023],[-107.25890400000003,68.259995000000117],[-107.26500699999997,68.264160000000118],[-107.274719,68.273314999999968],[-107.28611799999993,68.287490999999989],[-107.29611199999994,68.296646000000067],[-107.30194099999994,68.300812000000121],[-107.32721699999991,68.312484999999981],[-107.33805799999999,68.315810999999997],[-107.54666099999992,68.347487999999942],[-107.56082200000003,68.349151999999947],[-107.81331599999999,68.342484000000013],[-107.82611099999997,68.341094999999996],[-107.83640300000002,68.338043000000084],[-107.84973100000002,68.326385000000073],[-107.85500299999995,68.31999200000007],[-107.88527699999997,68.26887499999998],[-107.88362100000001,68.263610999999969],[-107.879707,68.258880999999974],[-107.85417199999995,68.247482000000048],[-107.83029199999993,68.241089000000102],[-107.74194299999999,68.216934000000094],[-107.61332700000003,68.178588999999988],[-107.60249299999998,68.175262000000032],[-107.59861799999999,68.17053199999998],[-107.60305800000003,68.165268000000026],[-107.61582900000002,68.163879000000009],[-107.63221699999997,68.164992999999981],[-107.68998699999997,68.174423000000047],[-107.78639199999992,68.183868000000132],[-107.80027799999999,68.183318999999983],[-107.82584399999996,68.180542000000116],[-107.87193300000001,68.171371000000136],[-108.03388999999999,68.168594000000041],[-108.16139199999986,68.172759999999982],[-108.18694299999999,68.169983000000059],[-108.19695300000001,68.166656000000103],[-108.22028399999999,68.152205999999978],[-108.24944299999993,68.141663000000051],[-108.30055199999993,68.125809000000118],[-108.33222999999998,68.117203000000018],[-108.37026999999989,68.112762000000089],[-108.38555899999994,68.113037000000077],[-108.40306099999998,68.114990000000034],[-108.41388699999993,68.11831699999999],[-108.42250099999995,68.122208000000057],[-108.43277,68.131088000000091],[-108.43611099999987,68.141373000000044],[-108.43306000000001,68.147490999999945],[-108.42804699999994,68.154160000000047],[-108.40888999999999,68.16137700000013],[-108.39750700000002,68.163605000000075],[-108.36694299999994,68.161102000000085],[-108.36277799999993,68.15637200000009],[-108.36582899999996,68.15026899999998],[-108.37361099999993,68.145264000000111],[-108.37998999999996,68.139708999999982],[-108.37832599999996,68.134430000000009],[-108.36527999999993,68.133606000000043],[-108.34612299999998,68.140823000000012],[-108.33860800000002,68.145828000000051],[-108.33332799999994,68.152205999999978],[-108.33056599999998,68.158600000000035],[-108.32695000000001,68.170258000000047],[-108.32444800000002,68.192749000000049],[-108.32945299999989,68.208327999999995],[-108.3958439999999,68.289978000000076],[-108.40222199999994,68.294144000000131],[-108.44360399999999,68.308029000000033],[-108.46000700000002,68.309143000000006],[-108.484444,68.305251999999939],[-108.504997,68.298874000000012],[-108.55999800000001,68.275542999999971],[-108.56500199999999,68.26887499999998],[-108.56806899999992,68.262772000000041],[-108.57444799999996,68.257216999999969],[-108.58444199999997,68.253876000000105],[-108.71556099999998,68.231369000000029],[-108.72944599999988,68.230820000000051],[-108.74610899999993,68.231934000000024],[-108.756958,68.235260000000096],[-108.765556,68.238876000000118],[-108.81527699999998,68.262206999999989],[-108.81916799999993,68.266663000000108],[-108.81416299999989,68.273314999999968],[-108.74889400000001,68.33776899999998],[-108.74109599999997,68.342758000000117],[-108.71417199999996,68.354705999999965],[-108.70417799999996,68.35803199999998],[-108.69387799999993,68.361098999999911],[-108.67083700000001,68.365813999999943],[-108.63999899999993,68.375534000000016],[-108.62082700000002,68.382750999999985],[-108.61193800000001,68.386658000000125],[-108.58112299999999,68.406372000000033],[-108.56667299999998,68.416931000000091],[-108.53443900000002,68.445526000000086],[-108.52916699999992,68.452209000000096],[-108.52278100000001,68.458038000000101],[-108.43167099999994,68.538315000000068],[-108.40416700000003,68.560256999999979],[-108.383331,68.576660000000004],[-108.36888099999999,68.587204000000042],[-108.34528399999994,68.601928999999984],[-108.31416300000001,68.611374000000069],[-108.27916700000003,68.618317000000047],[-108.25195299999996,68.620529000000147],[-108.1702729999999,68.626647999999989],[-107.93331899999998,68.64027399999992],[-107.80499299999997,68.645538000000101],[-107.63834399999996,68.665543000000127],[-107.43167099999994,68.690536000000009],[-107.23137700000001,68.71887200000009],[-107.10833700000001,68.748596000000134],[-106.96140300000002,68.783051000000057],[-106.93859899999995,68.788315000000011],[-106.82084700000001,68.811371000000065],[-106.79444899999993,68.813872999999944],[-106.765556,68.814986999999917],[-106.63500999999991,68.818329000000062],[-106.31555200000003,68.892761000000121],[-106.27250699999996,68.904709000000025],[-106.262787,68.90887500000008],[-106.25446299999993,68.913605000000132],[-106.24833699999988,68.919983000000059],[-106.24472000000003,68.926085999999998],[-106.24360699999994,68.931656000000089],[-106.23998999999998,68.937759000000028],[-106.22917200000001,68.940810999999997],[-106.21472199999999,68.941360000000088],[-106.20140100000003,68.940536000000122],[-106.14943699999998,68.933594000000028],[-106.08084099999996,68.918869000000086],[-105.81360599999988,68.881927000000076],[-105.79804999999999,68.879425000000026],[-105.77639799999997,68.872481999999991],[-105.71806300000003,68.844985999999949],[-105.48693800000001,68.729430999999977],[-105.475281,68.720535000000041],[-105.47165699999999,68.715820000000008],[-105.47833300000002,68.69859299999996],[-105.48194899999999,68.692474000000118],[-105.4891659999999,68.68691999999993],[-105.49889400000001,68.683044000000052],[-105.49944299999999,68.621368000000075],[-105.41443600000002,68.528594999999996],[-105.38082900000001,68.486649],[-105.40888999999999,68.492477000000122],[-105.42304999999999,68.49192800000003],[-105.43388400000003,68.489151000000106],[-105.44360399999994,68.485260000000039],[-105.52944899999994,68.450272000000041],[-105.53806299999991,68.445526000000086],[-105.54387700000001,68.439147999999989],[-105.54778299999998,68.433044000000109],[-105.54888900000003,68.427475000000129],[-105.54804999999999,68.422211000000118],[-105.54110699999995,68.41276600000009],[-105.53307299999994,68.408599999999979],[-105.51777600000003,68.406096999999988],[-105.41639700000002,68.406937000000084],[-105.39028899999988,68.409424000000115],[-105.34528399999999,68.384155000000135],[-105.34889199999992,68.378036000000122],[-105.350281,68.372482000000105],[-105.34472700000003,68.368042000000116],[-105.29499800000002,68.339157000000057],[-105.28694200000001,68.33526599999999],[-105.10082999999992,68.266098000000056],[-105.07305899999994,68.260269000000051],[-105.05555700000002,68.258041000000105],[-105.02639799999992,68.257767000000001],[-105.00894900000003,68.264938000000029],[-105.00661500000001,68.268599999999935],[-105.00578300000001,68.272094999999922],[-105.00666799999993,68.278595000000053],[-105.01695299999994,68.282211000000132],[-105.02610800000002,68.309418000000051],[-104.88474300000001,68.339705999999978],[-104.86416600000001,68.332489000000066],[-104.84805299999999,68.324707000000103],[-104.83917200000002,68.315536000000009],[-104.83583099999998,68.310806000000127],[-104.83416699999998,68.300262000000089],[-104.83944699999995,68.288589000000059],[-104.84584000000001,68.282211000000132],[-104.85305800000003,68.276657000000114],[-104.86277799999993,68.272766000000047],[-104.87332199999997,68.269714000000135],[-104.94554099999999,68.258041000000105],[-104.952789,68.252487000000087],[-104.95194999999995,68.247482000000048],[-104.94055200000003,68.238586000000112],[-104.924713,68.230545000000063],[-104.91443600000002,68.227203000000088],[-104.900284,68.22526600000009],[-104.88639799999999,68.225540000000024],[-104.87332199999997,68.226928999999984],[-104.79750100000001,68.24443100000002],[-104.73111,68.250275000000045],[-104.68776699999995,68.250275000000045],[-104.63999899999999,68.246933000000126],[-104.609734,68.24136400000009],[-104.59889199999998,68.232483000000002],[-104.59722899999997,68.222214000000122],[-104.61277799999999,68.198029000000133],[-104.61888099999993,68.191650000000095],[-104.6324919999999,68.179428000000087],[-104.65471600000001,68.162766000000147],[-104.66722099999993,68.149994000000106],[-104.67027299999995,68.138596000000121],[-104.59221599999989,68.083603000000096],[-104.50778200000002,68.035812000000021],[-104.5,68.031937000000028],[-104.48638900000003,68.029984000000127],[-104.45722999999992,68.029709000000082],[-104.36694299999994,68.034149000000127],[-104.21472199999994,68.024155000000064],[-104.199997,68.021378000000027],[-104.16665599999993,68.017487000000131],[-104.12470999999994,68.018326000000059],[-104.11193800000001,68.019440000000031],[-104.06471299999998,68.027480999999966],[-104.01139799999999,68.042206000000078],[-103.99944299999999,68.044144000000017],[-103.98554999999999,68.044434000000024],[-103.97084000000001,68.043869000000029],[-103.94082600000002,68.038315000000011],[-103.92832900000002,68.034988000000055],[-103.89806399999998,68.024155000000064],[-103.88362100000001,68.021378000000027],[-103.87082699999996,68.020263999999997],[-103.84306300000003,68.020827999999995],[-103.791382,68.025269000000094],[-103.76695299999994,68.028320000000065],[-103.55526700000001,68.057205000000124],[-103.54444899999987,68.059982000000048],[-103.53694200000001,68.065536000000066],[-103.53278399999999,68.071655000000078],[-103.53333299999991,68.076660000000118],[-103.53639199999998,68.081664999999987],[-103.54472399999997,68.090820000000008],[-103.55526700000001,68.099715999999944],[-103.55803699999996,68.104430999999977],[-103.55304699999999,68.109711000000061],[-103.52139299999999,68.130813999999987],[-103.50389099999995,68.140274000000034],[-103.49526999999995,68.144714000000079],[-103.46694899999994,68.156936999999914],[-103.45722999999998,68.160537999999974],[-103.42166099999997,68.166656000000103],[-103.40416700000003,68.164154000000053],[-103.38971700000002,68.16137700000013],[-103.38194299999992,68.157211000000018],[-103.36888099999999,68.148880000000133],[-103.34416199999993,68.121094000000085],[-103.34137699999991,68.116089000000045],[-103.34028599999988,68.105819999999994],[-103.341949,68.100265999999976],[-103.37249799999995,68.06860400000005],[-103.36916399999996,68.010818000000029],[-103.36609599999997,68.005829000000062],[-103.25418100000002,67.966385000000002],[-103.22084000000001,67.962204000000099],[-103.20612299999999,67.961380000000133],[-103.17832899999996,67.961929000000055],[-103.14943699999998,67.961380000000133],[-103.13694800000002,67.958037999999988],[-103.12943999999999,67.953872999999987],[-103.12416100000002,67.949707000000103],[-103.11277799999999,67.930267000000129],[-103.1052699999999,67.926086000000055],[-103.09306300000003,67.923035000000027],[-103.01471700000002,67.913605000000132],[-103.00083899999998,67.913879000000065],[-102.99082899999996,67.917480000000126],[-102.98222399999997,67.922211000000061],[-102.97250399999996,67.925812000000121],[-102.95944199999985,67.926926000000094],[-102.94972199999995,67.923309000000131],[-102.94444299999998,67.918868999999916],[-102.939438,67.914429000000098],[-102.92111199999999,67.896378000000141],[-102.82972699999993,67.831940000000031],[-102.80027799999993,67.820830999999998],[-102.68639400000001,67.804703000000131],[-102.67054699999994,67.80304000000001],[-102.53611799999999,67.795258000000047],[-102.50446299999999,67.791931000000091],[-102.47083999999995,67.786926000000051],[-102.446663,67.780273000000079],[-102.39306599999992,67.76249700000011],[-102.33972199999994,67.744705000000067],[-102.25110599999999,67.725266000000147],[-102.22444199999995,67.733871000000022],[-102.21556099999992,67.738312000000121],[-102.15139799999997,67.765549000000021],[-102.1416779999999,67.769150000000081],[-101.92610200000001,67.760268999999994],[-101.76471699999991,67.723312000000135],[-101.671944,67.691649999999981],[-101.54250300000001,67.67942800000003],[-101.51500699999997,67.67942800000003],[-101.446663,67.732483000000116],[-101.43388400000003,67.733322000000044],[-101.10582699999992,67.741928000000144],[-101.09889199999998,67.737762000000089],[-101.01278699999995,67.742477000000122],[-100.99973299999999,67.74331699999999],[-100.92749000000003,67.753325999999959],[-100.90387699999991,67.756942999999922],[-100.89277600000003,67.759720000000016],[-100.81139400000001,67.794708000000014],[-100.72028399999994,67.834427000000119],[-100.58167999999995,67.834152000000131],[-100.39555399999995,67.847488000000055],[-100.18415799999997,67.843048000000067],[-100.16832699999998,67.841095000000109],[-100.156387,67.837769000000037],[-100.14723200000003,67.828598000000113],[-100.135559,67.825272000000098],[-100.083618,67.814986999999974],[-99.820006999999919,67.795821999999987],[-99.618606999999997,67.789153999999996],[-99.607772999999952,67.791931000000091],[-99.589172000000019,67.800812000000064],[-99.577788999999996,67.803314000000114],[-99.500564999999938,67.799713000000054],[-99.412215999999887,67.788315000000068],[-99.403060999999923,67.784424000000001],[-99.398620999999991,67.779983999999956],[-99.396666999999979,67.774994000000106],[-99.387787000000003,67.765822999999955],[-99.378325999999959,67.761932000000058],[-99.236114999999984,67.713608000000136],[-99.21055599999994,67.706940000000145],[-98.986938000000009,67.718322999999998],[-98.813613999999973,67.741928000000144],[-98.528884999999889,67.777481000000023],[-98.385833999999988,67.785812000000078],[-98.363327000000027,67.790817000000118],[-98.354445999999996,67.796097000000032],[-98.358046999999942,67.805817000000104],[-98.442490000000021,67.861374000000069],[-98.449431999999945,67.865814000000057],[-98.463333000000034,67.868865999999969],[-98.475554999999986,67.867203000000075],[-98.486114999999927,67.863876000000118],[-98.49888599999997,67.863312000000008],[-98.514724999999942,67.865265000000136],[-98.540282999999988,67.872208000000114],[-98.65583799999996,67.916382000000056],[-98.665008999999998,67.920258000000103],[-98.696944999999914,67.936645999999996],[-98.719726999999921,67.948867999999948],[-98.724166999999852,67.953598],[-98.746947999999975,68.047760000000096],[-98.732772999999952,68.070267000000001],[-98.615554999999915,68.074706999999989],[-98.544998000000021,68.061371000000065],[-98.336945000000014,67.96026599999999],[-98.321121000000005,67.952208999999982],[-98.266952999999887,67.923309000000131],[-98.233321999999987,67.901932000000102],[-98.171111999999994,67.843323000000055],[-98.169158999999922,67.838593000000003],[-98.122771999999941,67.788040000000024],[-98.094451999999933,67.766098],[-97.956664999999873,67.727768000000083],[-97.799438000000009,67.68553200000008],[-97.66194200000001,67.643051000000071],[-97.650283999999999,67.639434999999992],[-97.637512000000015,67.6308140000001],[-97.626099000000011,67.618042000000059],[-97.613051999999982,67.609420999999998],[-97.603881999999999,67.605255000000056],[-97.592772999999852,67.601653999999996],[-97.576674999999966,67.598602000000085],[-97.561385999999914,67.596649000000127],[-97.547501000000011,67.596375000000023],[-97.509734999999921,67.599152000000117],[-97.48582499999992,67.602203000000145],[-97.415008999999998,67.613312000000064],[-97.392226999999991,67.618042000000059],[-97.381942999999978,67.621368000000132],[-97.353058000000033,67.634430000000123],[-97.33444199999991,67.643875000000037],[-97.316665999999941,67.654434000000037],[-97.295546999999942,67.661102000000028],[-97.283324999999991,67.662491000000045],[-97.167220999999927,67.675537000000134],[-97.138900999999919,67.674149000000057],[-97.116942999999878,67.777481000000023],[-97.115828999999962,67.78276100000005],[-97.119155999999919,67.792480000000069],[-97.127212999999983,67.801650999999993],[-97.240279999999984,67.926086000000055],[-97.254180999999903,67.929428000000144],[-97.263061999999934,67.924149],[-97.268889999999942,67.918319999999994],[-97.27305599999994,67.907761000000107],[-97.273620999999991,67.90248100000008],[-97.277221999999938,67.896942000000081],[-97.282776000000013,67.891098000000056],[-97.291107000000011,67.884995000000117],[-97.301392000000021,67.881652999999972],[-97.324447999999961,67.876648000000102],[-97.336670000000026,67.875259000000142],[-97.362503000000004,67.873871000000008],[-97.376388999999961,67.874146000000053],[-97.392226999999991,67.876373000000115],[-97.403335999999967,67.879974000000004],[-97.412216000000001,67.884155000000078],[-97.416397000000018,67.888596000000007],[-97.41972399999986,67.898331000000042],[-97.428054999999858,67.907761000000107],[-97.434433000000013,67.911926000000108],[-97.449996999999996,67.920258000000103],[-97.643616000000009,68.008330999999998],[-97.652495999999985,68.012207000000046],[-97.683060000000012,68.018599999999992],[-97.695267000000001,68.017212000000086],[-97.705001999999979,68.012772000000098],[-97.708344000000011,68.007217000000026],[-97.710555999999997,67.991653000000099],[-97.87777699999998,67.963608000000079],[-97.996657999999911,67.950271999999984],[-98.009734999999921,67.949707000000103],[-98.029998999999975,67.941924999999969],[-98.045837000000006,67.929428000000144],[-98.051391999999964,67.923598999999967],[-98.057495000000017,67.912490999999989],[-98.060271999999998,67.891663000000108],[-98.063888999999961,67.829162999999937],[-98.078613000000018,67.830276000000026],[-98.095276000000013,67.833327999999938],[-98.106658999999979,67.836928999999998],[-98.115828999999962,67.840820000000065],[-98.176392000000021,67.873871000000008],[-98.189437999999996,67.882476999999938],[-98.194716999999969,67.897217000000069],[-98.200835999999981,67.906647000000135],[-98.213622999999984,67.920532000000037],[-98.224716000000001,67.929428000000144],[-98.25140399999998,67.946365000000014],[-98.283324999999934,67.962768999999923],[-98.319732999999928,67.978591999999992],[-98.34056099999998,67.986099000000081],[-98.378051999999968,67.996368000000132],[-98.398620999999991,68.004165999999998],[-98.412216000000001,68.012497000000053],[-98.581115999999952,68.139984000000027],[-98.587509000000011,68.149429000000112],[-98.58444199999991,68.154984000000013],[-98.485275000000001,68.184417999999994],[-98.473891999999978,68.186920000000043],[-98.459732000000031,68.183594000000028],[-98.450561999999991,68.179703000000131],[-98.432495000000017,68.166656000000103],[-98.428054999999915,68.162201000000096],[-98.424437999999952,68.152205999999978],[-98.425551999999925,68.141936999999984],[-98.428329000000019,68.136383000000137],[-98.434158000000025,68.130538999999942],[-98.44027699999998,68.119431000000134],[-98.441100999999946,68.10914600000001],[-98.439437999999996,68.104155999999989],[-98.430556999999908,68.094986000000119],[-98.417220999999927,68.08638000000002],[-98.408051,68.082489000000123],[-98.393889999999999,68.079163000000108],[-98.379990000000021,68.079163000000108],[-98.367767000000015,68.080551000000014],[-98.358886999999982,68.085814999999968],[-98.350829999999917,68.092209000000025],[-98.339721999999938,68.103867000000037],[-98.321670999999981,68.136932000000115],[-98.317779999999971,68.14776599999999],[-98.317229999999938,68.153046000000018],[-98.317504999999983,68.162201000000096],[-98.326110999999969,68.171371000000136],[-98.333068999999966,68.17553700000002],[-98.342223999999931,68.179428000000087],[-98.377486999999917,68.190262000000018],[-98.40834000000001,68.196640000000116],[-98.439712999999927,68.200821000000019],[-98.469727000000034,68.203049000000021],[-98.485275000000001,68.204987000000131],[-98.501113999999973,68.208602999999982],[-98.531113000000005,68.22526600000009],[-98.537780999999995,68.229431000000091],[-98.542220999999927,68.234146000000123],[-98.561110999999983,68.27388000000002],[-98.607772999999952,68.293319999999994],[-98.704178000000013,68.352768000000026],[-98.710830999999985,68.356934000000081],[-98.715285999999992,68.361648999999943],[-98.717223999999931,68.366378999999995],[-98.71444699999995,68.372208000000001],[-98.704726999999934,68.376373000000001],[-98.680557000000022,68.380539000000113],[-98.667496000000028,68.381363000000079],[-98.637221999999952,68.379150000000095],[-98.606383999999991,68.372756999999979],[-98.594161999999983,68.36914100000007],[-98.580565999999919,68.360809000000074],[-98.571670999999981,68.351654000000053],[-98.548614999999984,68.339157000000057],[-98.532501000000025,68.331100000000106],[-98.521392999999932,68.328323000000012],[-98.511397999999929,68.329711999999972],[-98.470839999999953,68.348327999999981],[-98.462218999999948,68.353591999999992],[-98.461394999999982,68.358871000000136],[-98.471389999999985,68.373596000000077],[-98.491942999999935,68.38638300000008],[-98.503615999999965,68.38998400000014],[-98.49499499999996,68.409424000000115],[-98.319457999999997,68.358871000000136],[-98.30972300000002,68.354980000000069],[-98.298889000000031,68.346100000000035],[-98.294448999999929,68.34137000000004],[-98.292495999999971,68.336655000000007],[-98.288329999999974,68.331940000000145],[-98.281386999999995,68.327774000000034],[-98.225554999999929,68.304152999999985],[-98.213897999999915,68.300537000000134],[-98.199722000000008,68.300262000000089],[-98.187499999999943,68.301926000000094],[-98.096663999999976,68.317764000000125],[-98.073897999999986,68.334990999999945],[-97.905838000000017,68.384155000000135],[-97.894118999999932,68.386459000000002],[-97.86471599999993,68.384995000000004],[-97.849166999999909,68.383040999999992],[-97.777785999999878,68.366378999999995],[-97.761123999999995,68.363312000000064],[-97.748885999999914,68.364699999999971],[-97.743056999999908,68.370528999999976],[-97.75140399999998,68.379700000000128],[-97.764174999999909,68.393600000000049],[-97.768616000000009,68.398041000000148],[-97.781951999999933,68.406647000000021],[-97.79611199999988,68.409988000000055],[-97.81138599999997,68.411377000000073],[-97.869719999999973,68.414153999999996],[-97.885559000000001,68.416382000000112],[-97.899993999999936,68.419707999999957],[-97.906386999999995,68.423874000000069],[-98.009734999999921,68.498032000000023],[-98.011397999999929,68.503052000000082],[-98.010833999999988,68.508041000000048],[-97.999725000000012,68.535262999999986],[-97.994155999999919,68.541091999999992],[-97.852492999999981,68.542480000000069],[-97.836394999999925,68.540268000000026],[-97.723891999999921,68.523041000000035],[-97.692764000000011,68.516663000000051],[-97.665008999999941,68.504715000000033],[-97.658339999999896,68.500549000000092],[-97.654174999999896,68.496094000000085],[-97.650557999999933,68.486098999999967],[-97.653884999999946,68.480545000000006],[-97.655272999999966,68.470260999999994],[-97.650283999999999,68.455551000000014],[-97.646118000000001,68.450820999999962],[-97.639175000000023,68.446640000000059],[-97.611663999999962,68.434708000000114],[-97.537780999999995,68.418320000000051],[-97.523055999999997,68.416931000000091],[-97.511123999999938,68.419434000000024],[-97.502228000000002,68.424698000000035],[-97.49888599999997,68.430267000000015],[-97.500564999999995,68.434982000000048],[-97.509170999999981,68.444427000000132],[-97.520554000000004,68.448029000000076],[-97.535552999999993,68.449141999999995],[-97.547501000000011,68.446640000000059],[-97.573333999999932,68.444427000000132],[-97.589171999999962,68.446640000000059],[-97.603332999999964,68.449996999999996],[-97.615004999999996,68.453598000000056],[-97.619155999999919,68.458328000000108],[-97.617767000000015,68.462493999999992],[-97.597778000000005,68.483597000000088],[-97.578613000000018,68.493042000000003],[-97.567779999999971,68.496368000000018],[-97.544448999999986,68.501389000000131],[-97.531112999999948,68.501938000000109],[-97.516952999999944,68.501663000000065],[-97.385559000000001,68.495254999999929],[-97.353606999999954,68.491089000000045],[-97.282776000000013,68.474152000000061],[-97.259170999999867,68.466660000000104],[-97.160278000000005,68.389435000000049],[-97.053329000000019,68.353316999999947],[-97.058334000000002,68.302765000000079],[-97.070007000000032,68.300262000000089],[-97.075835999999924,68.294433999999967],[-97.091110000000015,68.268051000000014],[-97.089447000000007,68.263320999999962],[-97.080291999999929,68.259155000000078],[-96.939162999999951,68.239700000000084],[-96.925003000000004,68.239150999999993],[-96.912505999999951,68.240814000000057],[-96.817779999999914,68.258331000000112],[-96.806380999999931,68.260818000000029],[-96.799438000000009,68.265548999999965],[-96.767775999999969,68.270263999999997],[-96.693877999999927,68.280272999999966],[-96.680556999999965,68.280822999999998],[-96.669158999999979,68.276931999999931],[-96.625274999999874,68.251663000000121],[-96.553328999999962,68.273605000000032],[-96.533066000000019,68.281936999999971],[-96.47084000000001,68.305542000000003],[-96.448883000000023,68.312194999999974],[-96.437209999999993,68.314697000000024],[-96.42471299999994,68.316086000000041],[-96.410552999999993,68.315536000000009],[-96.404174999999952,68.311371000000008],[-96.496947999999975,68.207764000000054],[-96.508895999999993,68.196365000000128],[-96.525832999999977,68.184142999999949],[-96.623046999999985,68.115540000000067],[-96.690551999999968,68.079987000000074],[-96.702224999999999,68.077484000000084],[-96.730285999999921,68.078323000000069],[-96.743057000000022,68.07777400000009],[-96.75556899999998,68.076096000000007],[-96.778884999999946,68.071380999999974],[-96.797225999999966,68.06109600000002],[-96.808883999999978,68.04942299999999],[-96.812209999999936,68.043869000000029],[-96.813323999999909,68.038589000000115],[-96.811660999999901,68.033599999999979],[-96.801940999999999,68.025818000000015],[-96.789169000000015,68.017212000000086],[-96.77305599999994,68.013884999999959],[-96.722778000000005,68.009719999999959],[-96.708343999999954,68.008605999999986],[-96.676101999999958,68.018599999999992],[-96.556655999999975,68.033324999999934],[-96.540282999999931,68.030273000000022],[-96.52806099999998,68.03166200000004],[-96.466399999999965,68.038879000000122],[-96.450835999999981,68.053040000000124],[-96.479996000000028,68.090271000000087],[-96.49110399999995,68.094147000000135],[-96.505004999999926,68.094436999999971],[-96.516113000000018,68.091095000000053],[-96.53443900000002,68.080826000000002],[-96.546950999999979,68.079437000000041],[-96.548339999999996,68.084152000000074],[-96.547501000000011,68.089432000000102],[-96.535277999999892,68.101089000000059],[-96.510009999999966,68.119431000000134],[-96.482498000000021,68.134720000000016],[-96.463057999999933,68.144149999999911],[-96.432220000000029,68.156097000000045],[-96.31082200000003,68.192200000000128],[-96.288329999999974,68.197754000000089],[-96.171386999999925,68.221649000000127],[-96.136123999999938,68.228592000000106],[-95.980285999999978,68.254715000000033],[-95.968338000000017,68.230820000000051],[-96.043334999999956,68.179428000000087],[-96.069167999999991,68.16137700000013],[-96.075012000000015,68.155548000000124],[-96.078612999999962,68.149994000000106],[-96.077498999999989,68.144989000000066],[-96.073623999999995,68.140274000000034],[-96.045837000000006,68.133331000000055],[-96.03443900000002,68.129700000000014],[-96.02806099999998,68.125259000000085],[-96.020553999999947,68.116089000000045],[-96.01916499999993,68.111098999999967],[-96.020279000000016,68.106094000000098],[-96.083618000000001,68.00221300000004],[-96.144164999999987,67.923598999999967],[-96.211669999999913,67.829162999999937],[-96.215285999999878,67.823608000000036],[-96.217223999999987,67.813309000000061],[-96.221389999999985,67.697754000000032],[-96.220000999999911,67.693038999999999],[-96.212508999999955,67.683868000000075],[-96.206116000000009,67.67942800000003],[-96.195540999999992,67.682754999999986],[-96.186934999999949,67.688873000000115],[-96.179717999999923,67.692748999999992],[-96.168335000000013,67.694977000000108],[-96.166655999999989,67.690262000000075],[-96.174712999999997,67.643051000000071],[-96.185271999999941,67.626373000000001],[-96.191939999999988,67.62164300000012],[-96.203339000000028,67.61914100000007],[-96.216400000000021,67.618591000000038],[-96.230834999999956,67.619979999999998],[-96.246657999999968,67.623306000000071],[-96.257781999999963,67.626923000000033],[-96.266402999999968,67.631088000000034],[-96.329726999999991,67.610260000000096],[-96.437774999999931,67.541367000000037],[-96.461394999999925,67.508880999999917],[-96.464721999999881,67.503326000000015],[-96.469161999999983,67.492751999999996],[-96.464721999999881,67.478043000000127],[-96.461120999999991,67.473312000000021],[-96.451675000000023,67.471374999999966],[-96.441939999999931,67.475540000000137],[-96.363892000000021,67.478043000000127],[-96.294158999999979,67.444702000000007],[-96.222778000000005,67.421920999999941],[-96.210006999999962,67.419144000000074],[-96.196380999999917,67.418869000000029],[-96.185821999999973,67.422211000000004],[-96.158051,67.43664600000011],[-96.141388000000006,67.448868000000061],[-96.135559000000001,67.454712000000086],[-96.118880999999931,67.466660000000104],[-96.107498000000021,67.469147000000021],[-96.09722899999997,67.464706000000092],[-96.069457999999997,67.433593999999971],[-96.070281999999963,67.428314000000114],[-96.124161000000015,67.377196999999967],[-96.166655999999989,67.341660000000047],[-96.177215999999873,67.336929000000112],[-96.208618000000001,67.326935000000105],[-96.218613000000005,67.322768999999994],[-96.226944000000003,67.316666000000055],[-96.251113999999916,67.25277699999998],[-96.252228000000002,67.247482000000048],[-96.243606999999884,67.243317000000047],[-96.129990000000021,67.21665999999999],[-96.114440999999999,67.213318000000072],[-96.102492999999981,67.214705999999978],[-96.091384999999946,67.217209000000139],[-95.921111999999994,67.278595000000053],[-95.817504999999926,67.331940000000145],[-95.756393000000003,67.367477000000065],[-95.739990000000034,67.376648000000046],[-95.603057999999919,67.383330999999998],[-95.58944699999995,67.383040999999992],[-95.576949999999954,67.380264000000068],[-95.565825999999959,67.376648000000046],[-95.549163999999962,67.368316999999934],[-95.53472899999997,67.359984999999995],[-95.528610000000015,67.35554500000012],[-95.525008999999955,67.351089000000059],[-95.553328999999962,67.313309000000118],[-95.561660999999958,67.307205000000124],[-95.618056999999965,67.278320000000065],[-95.638061999999991,67.270828000000108],[-95.677489999999977,67.254166000000112],[-95.696654999999964,67.244979999999998],[-95.763061999999877,67.212769000000094],[-95.807495000000017,67.186096000000134],[-95.823897999999986,67.174149],[-95.829726999999991,67.168319999999937],[-95.833327999999938,67.162766000000147],[-95.821670999999924,67.161102000000142],[-95.796951000000035,67.16304000000008],[-95.774719000000005,67.167755000000113],[-95.74221799999998,67.176651000000049],[-95.712218999999948,67.188309000000061],[-95.651397999999915,67.198868000000118],[-95.568893000000003,67.210541000000148],[-95.544158999999922,67.212494000000106],[-95.515839000000028,67.209717000000012],[-95.501113999999973,67.20748900000001],[-95.435546999999929,67.193863000000079],[-95.379439999999931,67.154708999999968],[-95.326110999999969,67.027205999999978],[-95.328613000000018,67.016937000000098],[-95.337218999999948,66.99054000000001],[-95.34333799999996,66.974701000000096],[-95.350280999999882,66.963882000000069],[-95.357773000000009,66.959991000000002],[-95.416396999999961,66.951935000000105],[-95.53472899999997,66.941086000000041],[-95.597778000000005,66.948868000000004],[-95.614166000000012,66.970261000000107],[-95.721114999999998,66.964706000000035],[-95.743331999999953,66.959991000000002],[-95.839171999999962,66.94802900000002],[-95.876099000000011,66.945816000000036],[-95.902495999999985,66.946640000000002],[-95.928054999999972,66.952484000000027],[-95.93638599999997,66.956649999999968],[-95.990279999999984,67.004990000000134],[-95.993880999999931,67.009720000000016],[-95.990554999999915,67.014998999999989],[-95.978881999999999,67.026657],[-95.961120999999991,67.043869000000029],[-95.93638599999997,67.065262000000132],[-95.932219999999973,67.069716999999969],[-95.946945000000028,67.072220000000129],[-95.958344000000011,67.069716999999969],[-95.967772999999909,67.065536000000066],[-96.004456000000005,67.045821999999987],[-96.046111999999937,67.016387999999949],[-96.051665999999955,67.010818000000086],[-96.053878999999995,67.000275000000101],[-96.046660999999972,66.991088999999988],[-96.040558000000033,66.986648999999943],[-96.023620999999935,66.978591999999992],[-96.025008999999955,66.973312000000135],[-96.033066000000019,66.967484000000013],[-96.042770000000019,66.963043000000084],[-96.110549999999932,66.950821000000133],[-96.12332200000003,66.950271999999984],[-96.138610999999912,66.953598],[-96.240828999999962,66.983597000000032],[-96.262512000000015,66.991088999999988],[-96.279175000000009,66.999145999999939],[-96.285278000000005,67.003600999999946],[-96.286941999999954,67.008606000000043],[-96.285827999999981,67.013611000000083],[-96.274170000000026,67.025269000000094],[-96.265288999999996,67.030548000000067],[-96.261947999999961,67.035812000000078],[-96.261123999999995,67.041092000000106],[-96.263625999999988,67.051086000000112],[-96.268889999999885,67.06053200000008],[-96.288054999999929,67.068329000000062],[-96.37721299999987,67.084717000000126],[-96.392226999999991,67.086928999999998],[-96.403884999999946,67.085541000000092],[-96.452498999999989,67.068329000000062],[-96.460555999999883,67.062195000000031],[-96.456664999999987,67.057754999999986],[-96.403884999999946,67.008330999999998],[-96.273620999999991,66.950271999999984],[-96.146392999999989,66.894714000000135],[-96.128051999999968,66.881653000000028],[-96.11721799999998,66.867752000000053],[-96.115829000000019,66.862761999999975],[-96.11721799999998,66.857483000000002],[-96.116652999999985,66.847488000000055],[-96.115554999999972,66.842484000000127],[-96.114165999999898,66.837494000000049],[-96.108886999999982,66.832764000000054],[-96.100554999999929,66.828598000000113],[-96.006667999999934,66.794434000000081],[-95.980559999999912,66.787491000000102],[-95.956115999999952,66.782211000000075],[-95.912215999999944,66.775543000000084],[-95.883621000000005,66.768875000000094],[-95.862212999999997,66.761107999999979],[-95.848052999999993,66.752777000000037],[-95.841948999999943,66.74832200000003],[-95.784728999999913,66.674149000000057],[-95.777495999999985,66.654984000000127],[-95.777221999999881,66.644714000000022],[-95.780838000000017,66.629150000000095],[-95.741378999999938,66.638046000000031],[-95.656386999999995,66.6602630000001],[-95.646666999999979,66.664428999999984],[-95.629714999999976,66.675536999999963],[-95.627486999999974,66.68609600000002],[-95.648894999999982,66.724152000000004],[-95.652221999999995,66.728592000000049],[-95.660552999999993,66.732757999999933],[-95.674437999999896,66.734146000000067],[-95.784728999999913,66.737198000000149],[-95.993056999999965,66.84275800000006],[-96.087783999999999,66.907486000000119],[-96.091674999999896,66.911925999999994],[-96.092772999999966,66.916931000000034],[-96.091674999999896,66.922211000000061],[-96.08555599999994,66.926926000000094],[-96.066956000000005,66.936371000000008],[-96.047500999999954,66.944702000000063],[-96.037216000000001,66.94802900000002],[-96.026108000000022,66.950271999999984],[-96.000290000000007,66.950546000000088],[-95.902495999999985,66.946640000000002],[-95.814437999999996,66.941360000000145],[-95.785004000000015,66.93691999999993],[-95.772780999999952,66.932754999999929],[-95.766662999999994,66.928314],[-95.763061999999877,66.923874000000012],[-95.760559000000001,66.913879000000065],[-95.756957999999997,66.90914900000007],[-95.75111400000003,66.90498400000007],[-95.738051999999982,66.901382000000126],[-95.724715999999944,66.900817999999958],[-95.516662999999994,66.902206000000092],[-95.493057000000022,66.90498400000007],[-95.472228999999913,66.911652000000061],[-95.389175000000023,66.911102000000028],[-95.336669999999913,66.893051000000014],[-95.323623999999882,66.889434999999992],[-95.311385999999914,66.889984000000084],[-95.300827000000027,66.893326000000059],[-95.291672000000005,66.898331000000098],[-95.267501999999979,66.91415400000011],[-95.259170999999981,66.920257999999933],[-95.220839999999896,66.968322999999941],[-95.21945199999999,66.973602000000142],[-95.226394999999968,66.982758000000103],[-95.232223999999974,66.987198000000092],[-95.289443999999946,67.024994000000049],[-95.345000999999968,67.084427000000119],[-95.352218999999991,67.148331000000042],[-95.346389999999985,67.15387000000004],[-95.266112999999905,67.212769000000094],[-95.166107000000011,67.276931999999988],[-95.162216000000001,67.282211000000132],[-95.163329999999974,67.287200999999982],[-95.171936000000017,67.291367000000093],[-95.18249499999996,67.29525799999999],[-95.217223999999931,67.306366000000139],[-95.279723999999874,67.319442999999978],[-95.306380999999874,67.326660000000061],[-95.314712999999927,67.330550999999957],[-95.332779000000016,67.34387200000009],[-95.336394999999982,67.348328000000038],[-95.384170999999981,67.444138000000009],[-95.339995999999928,67.499709999999993],[-95.331679999999949,67.505829000000006],[-95.324172999999917,67.516663000000051],[-95.321670999999924,67.527206000000035],[-95.323058999999944,67.531936999999971],[-95.330001999999922,67.541367000000037],[-95.343613000000005,67.554977000000122],[-95.34973100000002,67.559417999999994],[-95.466400000000021,67.637207000000046],[-95.492492999999968,67.643326000000059],[-95.535003999999958,67.646652000000074],[-95.548339999999996,67.649994000000049],[-95.693054000000018,67.704436999999984],[-95.707779000000016,67.723038000000031],[-95.709166999999923,67.727768000000083],[-95.708053999999947,67.733047000000056],[-95.704453000000001,67.738586000000055],[-95.698333999999988,67.744431000000134],[-95.68110699999994,67.756378000000097],[-95.671936000000017,67.761657999999954],[-95.64973399999991,67.767211999999972],[-95.637511999999958,67.768600000000049],[-95.626388999999961,67.771927000000005],[-95.577498999999989,67.787491000000102],[-95.558883999999978,67.797759999999926],[-95.550277999999878,67.803863999999976],[-95.544158999999922,67.809708000000001],[-95.53443900000002,67.820830999999998],[-95.525833000000034,67.836928999999998],[-95.522231999999974,67.852767999999969],[-95.527221999999995,67.872208000000114],[-95.452224999999999,67.981094000000041],[-95.416945999999996,68.027771000000143],[-95.42721599999993,68.032486000000006],[-95.47193900000002,68.054977000000008],[-95.475280999999939,68.058319000000097],[-95.472777999999948,68.06053200000008],[-95.461394999999868,68.063873000000115],[-95.404175000000009,68.069443000000035],[-95.34973100000002,68.074432000000002],[-95.343063000000029,68.074432000000002],[-95.075561999999877,68.068877999999984],[-95.071120999999948,68.063599000000011],[-95.065276999999924,68.060257000000036],[-95.054992999999911,68.055251999999996],[-95.043883999999935,68.051376000000118],[-95.023620999999991,68.04582199999993],[-95.008895999999936,68.044434000000024],[-94.86721799999998,68.034149000000127],[-94.839721999999938,68.034149000000127],[-94.788054999999986,68.040543000000127],[-94.72222899999997,68.054977000000008],[-94.714172000000019,68.059418000000107],[-94.707503999999972,68.065811000000053],[-94.696654999999964,68.078598000000056],[-94.693877999999984,68.083328000000108],[-94.604995999999971,68.139708999999982],[-94.37249799999995,68.221375000000023],[-94.210555999999997,68.262772000000041],[-94.199157999999954,68.267761000000007],[-94.193603999999993,68.272217000000069],[-94.192214999999976,68.276382000000069],[-94.191665999999941,68.281372000000147],[-94.192489999999907,68.292206000000022],[-94.193603999999993,68.298325000000034],[-94.205275999999913,68.313309000000118],[-94.209166999999979,68.323607999999979],[-94.210280999999952,68.328049000000078],[-94.210830999999985,68.361374000000126],[-94.208054000000004,68.366088999999988],[-94.203888000000006,68.370255000000043],[-94.123046999999985,68.416931000000091],[-94.104720999999984,68.424149000000057],[-94.00028999999995,68.460815000000025],[-93.968063000000029,68.468596999999932],[-93.953613000000018,68.471924000000058],[-93.936661000000015,68.474700999999982],[-93.922774999999945,68.475540000000137],[-93.893615999999952,68.474700999999982],[-93.875823999999909,68.477203000000031],[-93.81138599999997,68.488037000000134],[-93.661391999999978,68.520828000000051],[-93.656661999999983,68.523315000000139],[-93.619155999999975,68.544144000000074],[-93.553329000000019,68.586380000000077],[-93.559722999999963,68.611649000000114],[-93.621933000000013,68.624419999999986],[-93.647507000000019,68.626923000000147],[-93.65306099999998,68.626373000000115],[-93.705276000000026,68.657211000000132],[-93.697220000000016,68.749145999999939],[-93.695267000000001,68.751938000000052],[-93.639450000000011,68.780548000000067],[-93.571670999999924,68.834152000000074],[-93.567504999999926,68.839706000000092],[-93.566100999999946,68.849425999999994],[-93.634444999999971,68.959152000000131],[-93.642226999999934,68.963882000000012],[-93.666945999999996,68.972214000000008],[-93.731383999999991,68.974991000000102],[-93.925551999999868,68.974701000000039],[-94.030838000000017,68.918594000000098],[-94.039169000000015,68.914154000000053],[-94.055832000000009,68.901932000000102],[-94.068893000000003,68.891098000000056],[-94.079726999999991,68.847488000000055],[-94.071120999999891,68.843596999999988],[-94.034164000000033,68.833328000000108],[-94.021118000000001,68.836105000000032],[-93.933884000000035,68.855255],[-93.852492999999981,68.879149999999981],[-93.838607999999965,68.885268999999994],[-93.837783999999999,68.886383000000023],[-93.824722000000008,68.891373000000044],[-93.813889000000017,68.893050999999957],[-93.80999799999995,68.890549000000078],[-93.813889000000017,68.88499500000006],[-93.829726999999934,68.876083000000051],[-93.934157999999968,68.824997000000053],[-94.085006999999962,68.761108000000092],[-94.095276000000013,68.758040999999992],[-94.108046999999999,68.755264000000068],[-94.15972899999997,68.747756999999979],[-94.385559000000001,68.729155999999932],[-94.490828999999962,68.728867000000037],[-94.625,68.761383000000137],[-94.608886999999925,68.819443000000035],[-94.588897999999915,68.841370000000097],[-94.583327999999938,68.845825000000104],[-94.570847000000015,68.850266000000033],[-94.561661000000015,68.855255],[-94.556106999999997,68.859985000000052],[-94.553054999999972,68.864425999999924],[-94.545273000000009,68.884720000000073],[-94.548049999999932,68.888885000000073],[-94.557495000000017,68.893050999999957],[-94.569457999999941,68.893600000000106],[-94.577224999999999,68.896652000000017],[-94.585555999999997,68.903046000000074],[-94.589995999999985,68.908325000000048],[-94.605835000000013,68.951096000000064],[-94.604172000000005,68.961929000000055],[-94.599166999999966,68.965546000000018],[-94.587219000000005,68.968872000000033],[-94.553329000000019,68.973877000000073],[-94.37388599999997,69.003052000000139],[-94.224166999999966,69.027771000000143],[-94.163054999999986,69.052200000000084],[-94.151397999999972,69.057205000000124],[-94.072784000000013,69.126648000000046],[-94.072509999999966,69.144989000000066],[-94.137511999999901,69.131927000000019],[-94.22084000000001,69.1202550000001],[-94.235001000000011,69.119431000000134],[-94.248336999999935,69.120529000000033],[-94.312209999999993,69.144989000000066],[-94.323058999999944,69.149994000000106],[-94.327498999999989,69.15525800000006],[-94.329177999999899,69.16137700000013],[-94.309433000000013,69.294144000000131],[-94.306655999999975,69.300262000000089],[-94.303328999999962,69.304977000000122],[-94.291672000000005,69.313873000000058],[-94.284163999999976,69.318878000000097],[-94.259170999999924,69.326660000000061],[-94.166655999999989,69.342483999999956],[-94.043335000000013,69.357483000000059],[-94.025009000000011,69.359711000000004],[-93.955276000000026,69.362762000000032],[-93.736664000000019,69.399994000000049],[-93.626937999999939,69.432479999999941],[-93.574721999999952,69.441650000000038],[-93.562774999999988,69.442748999999992],[-93.526397999999915,69.438309000000004],[-93.532501000000025,69.429977000000008],[-93.547774999999945,69.420532000000094],[-93.67971799999998,69.347762999999929],[-93.691665999999941,69.34275800000006],[-93.741378999999995,69.324432000000058],[-93.753066999999987,69.320540999999992],[-93.764174999999966,69.320540999999992],[-93.828612999999962,69.265549000000078],[-93.856110000000001,69.176926000000037],[-93.856658999999979,69.172211000000004],[-93.845001000000025,69.164992999999981],[-93.837218999999891,69.164429000000041],[-93.634734999999978,69.251663000000121],[-93.467498999999918,69.317490000000021],[-93.456664999999987,69.323043999999982],[-93.362777999999992,69.37164300000012],[-93.365279999999984,69.376082999999994],[-93.379439999999988,69.376373000000001],[-93.459166999999866,69.359711000000004],[-93.470001000000025,69.356644000000074],[-93.478057999999976,69.353317000000118],[-93.498046999999985,69.349152000000117],[-93.511947999999961,69.349426000000051],[-93.565001999999936,69.367752000000053],[-93.560546999999929,69.383881000000031],[-93.538054999999929,69.410538000000088],[-93.527221999999995,69.421646000000067],[-93.515839000000028,69.425537000000134],[-93.503066999999874,69.427475000000072],[-93.488892000000021,69.434982000000048],[-93.439437999999939,69.475265999999976],[-93.441375999999991,69.48054499999995],[-93.487777999999992,69.502777000000037],[-93.509734999999921,69.513046000000088],[-93.532501000000025,69.521103000000039],[-93.540833000000021,69.523315000000082],[-93.587219000000005,69.528046000000018],[-93.621933000000013,69.527205999999978],[-93.683883999999978,69.522217000000012],[-93.709732000000031,69.516098],[-93.808884000000035,69.488876000000062],[-93.869719999999973,69.451660000000118],[-94.045272999999952,69.439148000000102],[-94.279175000000009,69.440262000000075],[-94.299728000000016,69.443038999999999],[-94.313048999999978,69.446640000000059],[-94.343886999999938,69.459152000000074],[-94.451674999999966,69.518600000000049],[-94.502501999999993,69.556366000000025],[-94.591948999999943,69.637206999999989],[-94.629439999999988,69.683044000000052],[-94.670273000000009,69.677475000000072],[-94.712783999999999,69.67164600000001],[-94.749435000000005,69.663605000000132],[-94.755004999999926,69.661652000000004],[-94.764174999999966,69.65498400000007],[-94.766662999999937,69.651093000000003],[-94.762222000000008,69.644714000000135],[-94.742217999999923,69.628311000000053],[-94.724441999999954,69.61442599999998],[-94.725554999999929,69.608597000000145],[-94.730835000000013,69.602767999999969],[-94.740279999999984,69.597488000000055],[-94.769729999999981,69.583054000000061],[-94.801101999999901,69.572219999999959],[-94.820007000000032,69.56721500000009],[-94.831116000000009,69.56581100000011],[-94.846664000000033,69.565536000000122],[-94.862777999999878,69.566940000000102],[-94.951950000000011,69.584427000000119],[-95.010558999999944,69.603043000000127],[-95,69.618865999999969],[-95.009444999999971,69.621643000000063],[-95.021118000000001,69.621643000000063],[-95.078612999999962,69.616379000000109],[-95.168609999999887,69.630538999999999],[-95.396118000000001,69.678864000000033],[-95.40834000000001,69.681931000000134],[-95.423049999999932,69.686096000000134],[-95.544997999999964,69.726929000000041],[-95.648055999999997,69.780273000000022],[-95.71556099999998,69.791366999999923],[-95.724715999999944,69.789978000000133],[-95.728332999999907,69.789153999999996],[-95.738892000000021,69.786102000000028],[-95.757232999999928,69.777205999999921],[-95.758620999999948,69.772766000000104],[-95.86332699999997,69.772216999999955],[-95.960830999999985,69.778045999999961],[-95.975554999999929,69.781937000000028],[-96.020279000000016,69.80442800000003],[-96.035827999999924,69.813873000000115],[-96.074447999999961,69.841934000000037],[-96.087783999999999,69.869141000000127],[-96.082229999999925,69.873596000000134],[-96.085007000000019,69.91137700000013],[-96.097778000000005,69.946639999999945],[-96.116104000000007,69.953872999999987],[-96.177215999999873,69.964705999999921],[-96.195540999999992,69.965546000000018],[-96.198607999999979,69.964995999999985],[-96.209441999999967,69.961655000000121],[-96.217223999999987,69.958327999999995],[-96.220550999999944,69.95748900000001],[-96.235000999999954,69.95748900000001],[-96.246947999999918,69.958878000000027],[-96.257232999999928,69.963043000000027],[-96.272780999999952,69.971099999999979],[-96.38137799999987,70.02748100000008],[-96.402495999999871,70.039978000000076],[-96.459441999999967,70.075546000000088],[-96.500290000000007,70.101379000000009],[-96.509170999999924,70.108597000000032],[-96.525283999999942,70.122756999999979],[-96.531677000000002,70.131088000000034],[-96.55610699999994,70.191925000000083],[-96.568892999999946,70.224425999999994],[-96.571670999999867,70.234421000000054],[-96.570281999999963,70.251099000000124],[-96.568619000000012,70.268600000000106],[-96.562774999999931,70.300262000000032],[-96.558608999999933,70.3119200000001],[-96.555557000000022,70.317490000000134],[-96.548339999999996,70.328872999999987],[-96.535003999999958,70.344147000000078],[-96.294723999999974,70.522491000000116],[-96.232773000000009,70.562195000000031],[-96.078887999999893,70.587494000000049],[-96.069732999999928,70.587769000000037],[-96.045273000000009,70.584152000000074],[-96.041107000000011,70.576934999999992],[-96.033324999999934,70.572769000000108],[-95.995269999999948,70.559707999999944],[-95.93499799999995,70.547485000000108],[-95.92332499999992,70.545258000000047],[-95.806106999999997,70.528869999999984],[-95.797225999999966,70.529434000000094],[-95.789443999999946,70.536652000000117],[-95.791381999999999,70.542755000000056],[-95.799164000000019,70.549149000000114],[-95.855834999999956,70.553314000000114],[-95.914168999999902,70.559417999999937],[-95.931670999999938,70.562195000000031],[-95.96444699999995,70.568878000000041],[-96.000564999999995,70.579987000000074],[-96.049987999999928,70.600266000000033],[-96.058334000000002,70.605820000000051],[-96.061385999999857,70.617203000000018],[-96.055557000000022,70.643050999999957],[-96.048339999999996,70.646942000000024],[-95.952498999999989,70.679702999999961],[-95.848343,70.706940000000088],[-95.815551999999968,70.70915199999996],[-95.817779999999971,70.710265999999933],[-95.901947000000007,70.707764000000054],[-95.932770000000005,70.701096000000064],[-96.115554999999972,70.656097000000102],[-96.138061999999991,70.646378000000084],[-96.149993999999936,70.637206999999989],[-96.152785999999935,70.632477000000108],[-96.154723999999987,70.624694999999974],[-96.153885000000002,70.621643000000063],[-96.158051,70.617476999999951],[-96.160277999999948,70.616379000000052],[-96.16361999999998,70.615540000000124],[-96.202788999999996,70.621643000000063],[-96.376098999999954,70.673035000000027],[-96.385284000000013,70.677765000000022],[-96.394729999999981,70.683594000000028],[-96.401108000000022,70.690536000000122],[-96.410003999999958,70.702484000000027],[-96.415557999999976,70.71527100000003],[-96.422500999999954,70.726089000000002],[-96.43472300000002,70.737198000000035],[-96.446654999999964,70.741928000000087],[-96.53694200000001,70.763321000000019],[-96.580565999999976,70.777480999999909],[-96.603881999999942,70.788040000000137],[-96.611938000000009,70.794434000000024],[-96.61500499999994,70.80442800000003],[-96.61361699999992,70.8211060000001],[-96.601944000000003,70.849990999999989],[-96.591674999999952,70.866928000000144],[-96.578613000000018,70.878035999999952],[-96.571121000000005,70.883040999999992],[-96.545272999999895,70.904983999999956],[-96.53083799999996,70.921371000000136],[-96.52416999999997,70.931656000000032],[-96.513061999999991,70.949707000000046],[-96.510833999999932,70.955826000000059],[-96.503066999999987,70.99693300000007],[-96.495833999999888,71.040268000000083],[-96.481673999999884,71.043319999999994],[-96.450286999999946,71.044983000000116],[-96.414444000000003,71.053589000000045],[-96.406661999999926,71.058594000000085],[-96.369995000000017,71.089981000000023],[-96.371108999999933,71.093048000000124],[-96.375823999999966,71.098037999999974],[-96.40943900000002,71.119431000000077],[-96.417770000000019,71.113602000000071],[-96.420273000000009,71.107208000000014],[-96.412215999999944,71.095824999999991],[-96.410003999999958,71.089705999999978],[-96.413619999999923,71.084152000000017],[-96.421111999999994,71.0816650000001],[-96.440825999999959,71.079163000000051],[-96.461394999999925,71.080551000000128],[-96.476669000000015,71.08526599999999],[-96.50556899999998,71.097214000000008],[-96.538329999999974,71.11303700000002],[-96.552215999999987,71.119980000000055],[-96.560546999999985,71.126373000000001],[-96.559433000000013,71.1308140000001],[-96.553878999999995,71.136932000000058],[-96.548614999999927,71.140548999999965],[-96.467223999999931,71.165267999999969],[-96.457992999999988,71.195564000000047],[-96.462203999999986,71.255501000000038],[-96.504455999999891,71.276093000000117],[-96.503890999999953,71.277205999999978],[-96.488891999999964,71.286102000000085],[-96.278060999999923,71.326384999999959],[-96.24499499999996,71.353866999999923],[-96.21833799999996,71.375809000000004],[-96.193329000000006,71.389984000000084],[-96.168335000000013,71.399993999999992],[-96.134170999999981,71.409714000000065],[-96.046386999999982,71.418045000000006],[-96.027785999999935,71.417755],[-95.926392000000021,71.400542999999971],[-95.893889999999942,71.390823000000069],[-95.882766999999944,71.384155000000078],[-95.878875999999991,71.378586000000098],[-95.878052000000025,71.37303200000008],[-95.878875999999991,71.367203000000075],[-95.859160999999972,71.354980000000012],[-95.830001999999922,71.343048000000067],[-95.792220999999927,71.328049000000021],[-95.673049999999989,71.287491000000102],[-95.658889999999985,71.285537999999974],[-95.551102000000014,71.289978000000019],[-95.535278000000005,71.290816999999947],[-95.455276000000026,71.367751999999996],[-95.451401000000033,71.375809000000004],[-95.547775000000001,71.487762000000032],[-95.779998999999975,71.503875999999991],[-95.832779000000016,71.515823000000125],[-95.936660999999901,71.546646000000123],[-95.943054000000018,71.553589000000102],[-95.908339999999953,71.600540000000137],[-95.895003999999915,71.610535000000027],[-95.889998999999989,71.613312000000121],[-95.877212999999983,71.61831699999999],[-95.863892000000021,71.619430999999963],[-95.812209999999936,71.621918000000051],[-95.744719999999973,71.624145999999996],[-95.678878999999995,71.646378000000084],[-95.539718999999991,71.703597999999943],[-95.399733999999967,71.718597000000045],[-95.301620000000014,71.721099999999979],[-95.289443999999946,71.753601000000117],[-95.289443999999946,71.757491999999957],[-95.288054999999872,71.761932000000002],[-95.285827999999981,71.767212000000086],[-95.239440999999999,71.82249500000006],[-95.226944000000003,71.826660000000061],[-95.073059000000001,71.84137000000004],[-94.890288999999996,71.844711000000075],[-94.856383999999991,71.843322999999998],[-94.838897999999972,71.841094999999996],[-94.795272999999952,71.833328000000051],[-94.744155999999975,71.823044000000039],[-94.73443599999996,71.823317999999972],[-94.716399999999965,71.826096000000121],[-94.653884999999946,71.845261000000107],[-94.612503000000004,71.859711000000004],[-94.606658999999979,71.863312000000064],[-94.607772999999952,71.866378999999995],[-94.615279999999984,71.868866000000082],[-94.629715000000033,71.866928000000144],[-94.65583799999996,71.861923000000104],[-94.706115999999952,71.848038000000031],[-94.743056999999965,71.839432000000102],[-94.756957999999941,71.837493999999936],[-94.775283999999942,71.838882000000069],[-94.783066000000019,71.84137000000004],[-94.826110999999969,71.847487999999998],[-94.853607000000011,71.849426000000108],[-94.903885000000002,71.850266000000147],[-95.102492999999981,71.851089000000002],[-95.119155999999975,71.850266000000147],[-95.157227000000034,71.845825000000048],[-95.179992999999968,71.843048000000124],[-95.180557000000022,71.842208999999968],[-95.192489999999964,71.84137000000004],[-95.213333000000034,71.843048000000124],[-95.231110000000001,71.849152000000004],[-95.240829000000019,71.853867000000037],[-95.25167799999997,71.86053499999997],[-95.256667999999934,71.866928000000144],[-95.255004999999983,71.895537999999988],[-95.222778000000005,71.942200000000071],[-95.217498999999862,71.944976999999994],[-95.201400999999976,71.94720500000011],[-94.97193900000002,71.975814999999955],[-94.741104000000007,71.99192800000003],[-94.698043999999982,71.993590999999924],[-94.661666999999966,71.994980000000112],[-94.579726999999991,71.99693300000007],[-94.56361400000003,71.99693300000007],[-94.530288999999982,71.99443100000002],[-94.499435000000005,71.988037000000134],[-94.487212999999997,71.983322000000101],[-94.393615999999952,71.938309000000004],[-94.387222000000008,71.933868000000075],[-94.388610999999912,71.924149000000114],[-94.460555999999997,71.849426000000108],[-94.47222899999997,71.847214000000065],[-94.506667999999991,71.847762999999986],[-94.521118000000001,71.849990999999932],[-94.539444000000003,71.851379000000065],[-94.562499999999943,71.849990999999932],[-94.574448000000018,71.84693900000002],[-94.64416499999993,71.818329000000006],[-94.61860699999994,71.753326000000072],[-94.611937999999952,71.74971000000005],[-94.599730999999906,71.744704999999954],[-94.594161999999983,71.743317000000047],[-94.569457999999941,71.744979999999998],[-94.555831999999896,71.750000000000057],[-94.538604999999961,71.758331000000112],[-94.536391999999978,71.761108000000036],[-94.528609999999958,71.771378000000141],[-94.519729999999925,71.78915400000011],[-94.497498000000007,71.818329000000006],[-94.48832699999997,71.824158000000011],[-94.484726000000023,71.824706999999933],[-94.392226999999991,71.81442300000009],[-94.366104000000007,71.802475000000072],[-94.356658999999866,71.796371000000022],[-94.354720999999984,71.792479999999955],[-94.389998999999989,71.71775800000006],[-94.419448999999986,71.667205999999965],[-94.423889000000031,71.66137700000013],[-94.418335000000013,71.659987999999942],[-94.40695199999999,71.660812000000135],[-94.368880999999988,71.675262000000032],[-94.267226999999991,71.730820000000051],[-94.258895999999993,71.741928000000087],[-94.255843999999968,71.753876000000105],[-94.242766999999958,71.770828000000108],[-94.228058000000033,71.781661999999983],[-94.207229999999925,71.789428999999927],[-94.194442999999922,71.791931000000034],[-94.181670999999994,71.791931000000034],[-94.036941999999954,71.787200999999982],[-94.023620999999991,71.785812000000021],[-94.014724999999885,71.781096999999988],[-94.008347000000015,71.774993999999992],[-94.006393000000003,71.763321000000019],[-93.993880999999988,71.753052000000139],[-93.972503999999958,71.745818999999983],[-93.942490000000021,71.743590999999981],[-93.909728999999913,71.744979999999998],[-93.888061999999991,71.748322000000087],[-93.871383999999978,71.753052000000139],[-93.850280999999995,71.763321000000019],[-93.830841000000021,71.771652000000074],[-93.818892999999889,71.774703999999986],[-93.802215999999987,71.775542999999971],[-93.784164000000033,71.774155000000064],[-93.741942999999992,71.769150000000025],[-93.726669000000015,71.76638800000012],[-93.71166999999997,71.761383000000023],[-93.707229999999925,71.754990000000078],[-93.694153000000028,71.716095000000109],[-93.696655000000021,71.710815000000082],[-93.704452999999944,71.705261000000064],[-93.737777999999992,71.689423000000033],[-93.764724999999999,71.679703000000131],[-93.811110999999926,71.657486000000063],[-93.818618999999956,71.651932000000102],[-93.81138599999997,71.645538000000045],[-93.797226000000023,71.639435000000105],[-93.658339999999896,71.581940000000031],[-93.618057000000022,71.56860400000005],[-93.589447000000007,71.561371000000065],[-93.513061999999877,71.544707999999957],[-93.494994999999903,71.541656000000046],[-93.476944000000003,71.540267999999969],[-93.428328999999962,71.534149000000127],[-93.412216000000001,71.530823000000055],[-93.230835000000013,71.473602000000142],[-93.214171999999962,71.467209000000139],[-93.201401000000033,71.461380000000133],[-93.18638599999997,71.435806000000127],[-93.18638599999997,71.430267000000129],[-93.18998699999986,71.423874000000012],[-93.193877999999927,71.419433999999967],[-93.195540999999935,71.413605000000132],[-93.190551999999968,71.408035000000098],[-93.180556999999965,71.401093000000003],[-93.142501999999979,71.374985000000038],[-93.128875999999991,71.368866000000025],[-93.101944000000003,71.367477000000008],[-93.062774999999988,71.36943100000002],[-93.045272999999952,71.367751999999996],[-93.029175000000009,71.36442599999998],[-92.997222999999963,71.353866999999923],[-92.985824999999863,71.348877000000073],[-92.977218999999934,71.343872000000033],[-92.973891999999978,71.340820000000122],[-92.941939999999931,71.288879000000009],[-92.938599000000011,71.270538000000045],[-92.936110999999926,71.247481999999991],[-92.931945999999925,71.220535000000041],[-92.930831999999953,71.214432000000102],[-92.923889000000031,71.207763999999941],[-92.854445999999996,71.151382000000126],[-92.862777999999992,71.139434999999992],[-92.869155999999975,71.128036000000122],[-92.888610999999969,71.074707000000103],[-92.889998999999932,71.065810999999997],[-92.906951999999933,70.912491000000102],[-93.030838000000017,70.878860000000088],[-93.040833000000021,70.877762000000018],[-93.048339999999996,70.873870999999951],[-93.046111999999937,70.867203000000018],[-93.042769999999905,70.863876000000062],[-93.027495999999985,70.852768000000083],[-92.982498000000021,70.825546000000145],[-92.958618000000001,70.817490000000078],[-92.928328999999962,70.811371000000008],[-92.911391999999978,70.809982000000048],[-92.813048999999978,70.805817000000047],[-92.688598999999954,70.775542999999971],[-92.676666000000012,70.771652000000074],[-92.641112999999962,70.71527100000003],[-92.639449999999954,70.709991000000116],[-92.642501999999979,70.706375000000094],[-92.621933000000013,70.683594000000028],[-92.592772999999966,70.685806000000127],[-92.430557000000022,70.666091999999992],[-92.418059999999969,70.66304000000008],[-92.208053999999947,70.610260000000039],[-92.199158000000011,70.606644000000017],[-92.169158999999979,70.590271000000143],[-92.159163999999976,70.584152000000074],[-92.157501000000025,70.579163000000108],[-92.156661999999983,70.573044000000095],[-92.168335000000013,70.569992000000013],[-92.196105999999986,70.571105999999986],[-92.228607000000011,70.573608000000036],[-92.245543999999995,70.571380999999974],[-92.25,70.569716999999969],[-92.265014999999892,70.551926000000037],[-92.265014999999892,70.548035000000141],[-92.25,70.501389000000131],[-92.238051999999982,70.487198000000092],[-92.116652999999985,70.470825000000048],[-92.110000999999897,70.468322999999998],[-91.996947999999975,70.390823000000069],[-91.987777999999992,70.355820000000108],[-91.992492999999968,70.320540999999992],[-91.995269999999948,70.316665999999998],[-91.985549999999932,70.289703000000031],[-91.959732000000031,70.2586060000001],[-91.952224999999999,70.255264000000125],[-91.946945000000028,70.258041000000048],[-91.942214999999976,70.263610999999969],[-91.920273000000009,70.296370999999965],[-91.900283999999999,70.330826000000116],[-91.903610000000015,70.337204000000042],[-91.904449,70.343323000000112],[-91.89805599999994,70.349152000000117],[-91.890288999999996,70.354431000000091],[-91.878052000000025,70.358321999999987],[-91.867492999999968,70.360260000000096],[-91.853058000000033,70.361374000000069],[-91.73721299999994,70.358596999999975],[-91.729720999999984,70.356934000000081],[-91.703887999999949,70.34526100000005],[-91.698883000000023,70.342484000000127],[-91.69387799999987,70.336380000000077],[-91.636123999999938,70.231658999999979],[-91.565276999999924,70.200546000000145],[-91.524169999999913,70.179153000000042],[-91.513625999999931,70.167206000000078],[-91.511948000000018,70.158875000000023],[-91.511397999999986,70.152771000000143],[-91.516953000000001,70.146378000000027],[-91.529174999999952,70.142487000000131],[-91.542495999999915,70.140823000000125],[-91.578063999999927,70.13749700000011],[-91.916655999999989,70.119980000000055],[-91.953339000000028,70.118317000000104],[-91.972228999999913,70.118591000000038],[-92.003890999999953,70.121368000000132],[-92.021392999999989,70.123596000000077],[-92.036117999999931,70.126923000000033],[-92.049438000000009,70.132202000000007],[-92.05749499999996,70.136932000000058],[-92.234436000000017,70.212203999999986],[-92.268341000000021,70.208878000000141],[-92.393065999999976,70.150543000000027],[-92.450287000000003,70.0711060000001],[-92.432220000000029,70.075546000000088],[-92.285278000000005,70.089706000000035],[-92.268341000000021,70.090546000000074],[-92.177489999999977,70.088318000000072],[-92.129990000000021,70.084991000000002],[-92.087508999999898,70.079711999999972],[-92.026397999999972,70.066376000000048],[-91.993056999999965,70.058594000000085],[-91.985274999999945,70.053864000000033],[-91.939712999999983,70.020263999999997],[-91.946654999999907,70.015823000000069],[-92.114440999999999,69.956375000000037],[-92.148894999999925,69.946639999999945],[-92.203887999999949,69.92053199999998],[-92.369445999999982,69.847763000000043],[-92.543335000000013,69.780548000000067],[-92.658614999999998,69.761108000000092],[-92.778610000000015,69.722214000000008],[-92.775283999999999,69.706375000000094],[-92.565552000000025,69.71276899999998],[-92.551392000000021,69.712494000000106],[-92.535004000000015,69.709427000000005],[-92.535277999999948,69.705261000000121],[-92.709732000000031,69.673874000000012],[-92.728881999999999,69.67164600000001],[-92.743805000000009,69.671951000000035],[-92.777221999999938,69.676086000000055],[-92.858046999999999,69.6827550000001],[-92.871384000000035,69.682480000000112],[-92.908889999999985,69.680541999999946],[-92.922774999999888,69.679427999999973],[-92.923614999999927,69.678314],[-92.920273000000009,69.669708000000071],[-92.897506999999962,69.665543000000071],[-92.836120999999991,69.655822999999998],[-92.827498999999989,69.655822999999998],[-92.694442999999978,69.656372000000147],[-92.634726999999998,69.671088999999938],[-92.629378999999972,69.673592000000099],[-92.619056999999998,69.675758000000087],[-92.5625,69.687484999999981],[-92.523620999999935,69.692749000000106],[-92.506957999999941,69.693588000000091],[-92.340835999999967,69.694138000000123],[-92.305831999999896,69.665817000000004],[-92.205276000000026,69.645538000000101],[-92.091110000000015,69.624695000000031],[-92.088333000000034,69.62303200000008],[-92.088607999999965,69.618865999999969],[-92.090835999999911,69.616089000000102],[-92.110549999999932,69.613036999999963],[-92.122771999999998,69.612198000000035],[-92.134170999999981,69.612488000000042],[-92.243606999999884,69.630264000000011],[-92.28195199999999,69.639984000000084],[-92.291107000000011,69.641373000000101],[-92.300551999999925,69.641663000000108],[-92.297501000000011,69.636932000000002],[-92.124709999999936,69.554977000000065],[-92.084166999999979,69.544708000000014],[-91.938323999999909,69.517761000000121],[-91.803329000000019,69.498870999999951],[-91.804168999999888,69.504990000000021],[-91.798339999999939,69.513885000000016],[-91.497498000000007,69.658600000000092],[-91.485001000000011,69.663315000000125],[-91.475280999999939,69.664429000000098],[-91.450835999999981,69.65887499999991],[-91.418883999999935,69.65554800000001],[-91.314163000000008,69.652771000000087],[-91.221114999999998,69.653320000000008],[-91.202224999999942,69.655258000000003],[-91.188599000000011,69.65387000000004],[-91.097777999999948,69.638321000000133],[-91.094161999999983,69.636108000000036],[-91.091949,69.631652999999972],[-91.095275999999956,69.626647999999932],[-91.101943999999946,69.620819000000097],[-91.105835000000013,69.619141000000013],[-91.334441999999967,69.552765000000022],[-91.36082499999992,69.54553199999998],[-91.380554000000018,69.542480000000069],[-91.396118000000001,69.541091999999992],[-91.460555999999997,69.539703000000145],[-91.494720000000029,69.537201000000096],[-91.514450000000011,69.534148999999957],[-91.562774999999931,69.522491000000116],[-91.570281999999963,69.520264000000054],[-91.56639100000001,69.514708999999982],[-91.557770000000005,69.508041000000048],[-91.553878999999995,69.505554000000132],[-91.402221999999938,69.522217000000012],[-91.333618000000001,69.534988000000112],[-91.321670999999924,69.538879000000009],[-91.192215000000033,69.562759000000028],[-91.17971799999998,69.558868000000132],[-91.160277999999892,69.546097000000032],[-91.15055799999999,69.537201000000096],[-91.146666999999923,69.531662000000097],[-91.143616000000009,69.525268999999923],[-91.138610999999855,69.519150000000081],[-91.128326000000015,69.514160000000061],[-91.114166000000012,69.510817999999915],[-91.102782999999988,69.508881000000088],[-90.969727000000034,69.511383000000137],[-90.830001999999922,69.484984999999995],[-90.758620999999948,69.482758000000103],[-90.751953000000015,69.487198000000149],[-90.751403999999866,69.49275200000011],[-90.758057000000008,69.501389000000131],[-90.755843999999968,69.507217000000082],[-90.754181000000017,69.509155000000021],[-90.716109999999958,69.539429000000041],[-90.698607999999922,69.539429000000041],[-90.651108000000022,69.534424000000001],[-90.536666999999909,69.513885000000016],[-90.493332000000009,69.504166000000055],[-90.436661000000015,69.489700000000028],[-90.318619000000012,69.454437000000041],[-90.307769999999948,69.450272000000041],[-90.307769999999948,69.44720500000011],[-90.319457999999997,69.440536000000009],[-90.34445199999999,69.432205000000124],[-90.358046999999942,69.429703000000075],[-90.396392999999875,69.428589000000102],[-90.411391999999921,69.431365999999969],[-90.427489999999977,69.440811000000053],[-90.43360899999999,69.444976999999938],[-90.438323999999966,69.448029000000076],[-90.450561999999991,69.450272000000041],[-90.463332999999921,69.448593000000017],[-90.493332000000009,69.440811000000053],[-90.555556999999965,69.422485000000052],[-90.613891999999908,69.451096000000007],[-90.621932999999956,69.453323000000012],[-90.703612999999962,69.453598000000056],[-90.704453000000001,69.451385000000073],[-90.698607999999922,69.446091000000138],[-90.636948000000018,69.429703000000075],[-90.585830999999985,69.419144000000017],[-90.582229999999925,69.416931000000034],[-90.584732000000031,69.41415399999994],[-90.600829999999974,69.408599999999979],[-90.694991999999957,69.389709000000096],[-90.705275999999969,69.387772000000098],[-90.718613000000005,69.387772000000098],[-90.741378999999938,69.382750999999928],[-90.790282999999988,69.362762000000032],[-90.809432999999956,69.342209000000139],[-90.813048999999921,69.338318000000072],[-90.815826000000015,69.333327999999995],[-90.818619000000012,69.298598999999967],[-90.815001999999993,69.293319999999994],[-90.80860899999999,69.287490999999989],[-90.805557000000022,69.282761000000107],[-90.803878999999995,69.259720000000073],[-90.804717999999923,69.255829000000006],[-90.809432999999956,69.253326000000015],[-90.822234999999978,69.251663000000121],[-90.903885000000002,69.246368000000075],[-90.920837000000006,69.246368000000075],[-90.931380999999931,69.247482000000048],[-91.081115999999952,69.266936999999984],[-91.214721999999938,69.290268000000083],[-91.296386999999925,69.3119200000001],[-91.345276000000013,69.328049000000021],[-91.355834999999956,69.332214000000022],[-91.426391999999964,69.350540000000024],[-91.438599000000011,69.352768000000026],[-91.447220000000016,69.352768000000026],[-91.446655000000021,69.349716000000058],[-91.431945999999982,69.33859300000006],[-91.335281000000009,69.304428000000144],[-91.130553999999961,69.24192800000003],[-91.031386999999938,69.218323000000055],[-90.918883999999935,69.160812000000078],[-90.895003999999972,69.150818000000072],[-90.815001999999993,69.133606000000043],[-90.664718999999991,69.083328000000051],[-90.654998999999918,69.078049000000078],[-90.654174999999952,69.07609599999995],[-90.654449,69.070541000000048],[-90.660552999999993,69.059982000000048],[-90.669448999999929,69.049987999999985],[-90.583892999999989,68.928864000000033],[-90.544998000000021,68.911102000000142],[-90.528884999999946,68.908600000000092],[-90.47444200000001,68.890549000000078],[-90.436385999999914,68.874419999999986],[-90.419448999999986,68.840820000000065],[-90.446105999999986,68.779709000000139],[-90.449158000000011,68.77609300000006],[-90.454177999999956,68.773605000000089],[-90.464721999999995,68.770827999999995],[-90.478332999999964,68.768326000000116],[-90.492492999999968,68.767761000000064],[-90.497498000000007,68.768326000000116],[-90.501113999999973,68.770827999999995],[-90.513900999999976,68.759155000000135],[-90.526672000000019,68.744431000000134],[-90.527785999999992,68.736649],[-90.522507000000019,68.729980000000069],[-90.506957999999997,68.724990999999932],[-90.480285999999921,68.707764000000111],[-90.479172000000005,68.705826000000002],[-90.47444200000001,68.530822999999941],[-90.509734999999978,68.495254999999929],[-90.519454999999994,68.487487999999985],[-90.528335999999911,68.483322000000101],[-90.557770000000005,68.474700999999982],[-90.584732000000031,68.465546000000131],[-90.603881999999999,68.455826000000059],[-90.607772999999952,68.451096000000007],[-90.606658999999979,68.446091000000138],[-90.603881999999999,68.439697000000081],[-90.601395000000025,68.436371000000065],[-90.55999799999995,68.423599000000024],[-90.523894999999982,68.414428999999984],[-90.466948999999886,68.403869999999984],[-90.361938000000009,68.384155000000135],[-90.332779000000016,68.378036000000122],[-90.317504999999983,68.373306000000071],[-90.315001999999993,68.369980000000055],[-90.319167999999991,68.368317000000104],[-90.343886999999938,68.365265000000022],[-90.367492999999911,68.345261000000107],[-90.271392999999989,68.238876000000118],[-90.255004999999926,68.23275799999999],[-90.232772999999952,68.230270000000019],[-90.207229999999925,68.231093999999985],[-90.178604000000007,68.235809000000017],[-90.144454999999994,68.243866000000025],[-90.132216999999912,68.24859600000002],[-90.122771999999941,68.25360100000006],[-90.119720000000029,68.257216999999969],[-90.118057000000022,68.262206999999989],[-90.038604999999961,68.352202999999975],[-89.985275000000001,68.396102999999982],[-89.912216000000001,68.467209000000025],[-89.893065999999919,68.543319999999937],[-89.911666999999966,68.547484999999938],[-89.919998000000021,68.553588999999988],[-89.927779999999984,68.563599000000067],[-89.948607999999979,68.599426000000051],[-89.950561999999991,68.60386699999998],[-89.949721999999952,68.607758000000047],[-89.894729999999868,68.65248100000008],[-89.80972300000002,68.71026599999999],[-89.802489999999921,68.712203999999929],[-89.789168999999958,68.71026599999999],[-89.780563000000029,68.705826000000002],[-89.763335999999924,68.690536000000009],[-89.757507000000032,68.684708000000057],[-89.746947999999975,68.669708000000128],[-89.729172000000005,68.699142000000109],[-89.693328999999949,68.763885000000016],[-89.68472300000002,68.810257000000092],[-89.687499999999943,68.819716999999969],[-89.689986999999917,68.824707000000046],[-89.714721999999995,68.846939000000077],[-89.733886999999925,68.881653000000142],[-89.739166000000012,68.892761000000121],[-89.756957999999884,68.939972000000012],[-89.75556899999998,68.954162999999994],[-89.753066999999987,68.958327999999995],[-89.71665999999999,69.006104000000107],[-89.707229999999925,69.014709000000096],[-89.700561999999991,69.019150000000025],[-89.684433000000013,69.028870000000097],[-89.666107000000011,69.038315000000011],[-89.644164999999987,69.048325000000091],[-89.582779000000016,69.06860400000005],[-89.56082200000003,69.077209000000039],[-89.529357999999945,69.090606999999977],[-89.489990000000034,69.110535000000027],[-89.482497999999907,69.115540000000067],[-89.458618000000001,69.133606000000043],[-89.402221999999995,69.178863999999976],[-89.398620999999935,69.182479999999998],[-89.394454999999937,69.193039000000056],[-89.394454999999937,69.199141999999995],[-89.396956999999929,69.208602999999982],[-89.394454999999937,69.214431999999988],[-89.389998999999932,69.219147000000021],[-89.322234999999921,69.247208000000114],[-89.306655999999919,69.251389000000017],[-89.258621000000005,69.259995000000117],[-89.220551,69.266663000000051],[-89.174164000000019,69.273315000000139],[-89.134170999999981,69.275542999999914],[-89.114440999999886,69.27526899999998],[-89.09056099999998,69.271927000000062],[-89.049987999999985,69.264435000000105],[-89.038054999999872,69.261931999999945],[-88.999435000000005,69.251389000000017],[-88.968886999999938,69.24136400000009],[-88.942489999999964,69.229980000000012],[-88.938048999999978,69.226928999999984],[-88.935546999999985,69.222214000000122],[-88.93472300000002,69.219986000000006],[-88.9375,69.214156999999943],[-88.936660999999958,69.209152000000074],[-88.929992999999968,69.198029000000133],[-88.870269999999948,69.148605000000089],[-88.85943599999996,69.142211999999972],[-88.782501000000025,69.103043000000071],[-88.772507000000019,69.098876999999959],[-88.62388599999997,69.042755],[-88.480285999999978,68.998871000000065],[-88.457229999999925,68.992752000000053],[-88.406113000000005,68.982758000000047],[-88.270844000000011,68.934981999999934],[-88.208618000000001,68.911652000000004],[-88.197768999999994,68.906647000000135],[-88.115829000000019,68.860535000000084],[-88.082229999999981,68.841370000000097],[-88.052215999999987,68.823044000000095],[-88.038329999999974,68.814147999999989],[-87.971664000000033,68.766097999999943],[-87.96444699999995,68.760543999999982],[-87.947768999999994,68.731659000000093],[-87.921660999999915,68.673035000000027],[-87.916655999999989,68.656372000000147],[-87.917496000000028,68.647491000000059],[-87.925002999999947,68.632476999999994],[-87.93499799999995,68.61943100000002],[-87.942489999999907,68.610809000000017],[-87.947768999999994,68.605255000000056],[-87.933883999999978,68.576935000000049],[-87.924163999999905,68.559708000000001],[-87.883621000000005,68.494430999999963],[-87.881377999999984,68.491089000000045],[-87.841675000000009,68.432479999999998],[-87.835555999999997,68.42442299999999],[-87.817504999999926,68.417206000000078],[-87.798614999999984,68.40525800000006],[-87.791672000000005,68.398330999999985],[-87.789718999999934,68.391937000000098],[-87.789444000000003,68.386658000000125],[-87.792220999999927,68.334427000000005],[-87.800551999999925,68.3119200000001],[-87.845276000000013,68.247757000000092],[-87.848891999999864,68.244141000000013],[-87.929168999999945,68.197204999999997],[-87.93582200000003,68.195815999999979],[-87.946945000000028,68.198593000000074],[-88.106658999999866,68.242751999999996],[-88.22193900000002,68.36554000000001],[-88.384445000000028,68.291092000000049],[-88.392226999999991,68.287490999999989],[-88.395553999999947,68.285263000000043],[-88.401671999999962,68.280272999999966],[-88.403335999999911,68.275542999999971],[-88.402785999999878,68.270263999999997],[-88.398345999999947,68.260544000000095],[-88.380829000000006,68.24552900000009],[-88.361937999999952,68.233871000000079],[-88.342498999999975,68.223602000000028],[-88.334732000000031,68.217484000000127],[-88.330841000000021,68.213043000000027],[-88.279723999999931,68.118041999999946],[-88.277495999999985,68.111649],[-88.277785999999992,68.105545000000006],[-88.283065999999963,68.099990999999989],[-88.315551999999968,68.086104999999975],[-88.331680000000006,68.076385000000073],[-88.338332999999977,68.070541000000105],[-88.341109999999901,68.064987000000087],[-88.347777999999948,68.037201000000039],[-88.366942999999992,68.03166200000004],[-88.381103999999993,68.025269000000094],[-88.372771999999941,67.96887200000009],[-88.370834000000002,67.959152000000017],[-88.36860699999994,67.954436999999984],[-88.285278000000005,67.81721500000009],[-88.276397999999972,67.80304000000001],[-88.269164999999987,67.793594000000041],[-88.160552999999993,67.682479999999941],[-88.151107999999908,67.673309000000017],[-88.139449999999954,67.664428999999984],[-88.124999999999943,67.65554800000001],[-88.095839999999953,67.642487000000074],[-88.066100999999946,67.634720000000129],[-88.009170999999924,67.622757000000092],[-87.979996000000028,67.615814000000114],[-87.965285999999992,67.611649000000114],[-87.955841000000021,67.607483000000002],[-87.881377999999984,67.568054000000132],[-87.841385000000002,67.536102000000142],[-87.827224999999999,67.527206000000035],[-87.789169000000015,67.505263999999954],[-87.623046999999929,67.412491000000102],[-87.606383999999935,67.403869999999984],[-87.585007000000019,67.395264000000054],[-87.53694200000001,67.378860000000088],[-87.460830999999985,67.344147000000135],[-87.357773000000009,67.262207000000046],[-87.359160999999972,67.247482000000048],[-87.361938000000009,67.242203000000075],[-87.429168999999945,67.208603000000039],[-87.440551999999968,67.204987000000131],[-87.486664000000019,67.194138000000066],[-87.497771999999941,67.190536000000122],[-87.50556899999998,67.185256999999979],[-87.511397999999986,67.174988000000099],[-87.511948000000018,67.169983000000059],[-87.516953000000001,67.115540000000124],[-87.510284000000013,67.112198000000149],[-87.497498000000007,67.115265000000079],[-87.322784000000013,67.162766000000147],[-87.240828999999906,67.216094999999939],[-87.117766999999958,67.212769000000094],[-87.069732999999928,67.219437000000084],[-86.968612999999948,67.245255000000043],[-86.96305799999999,67.250548999999978],[-86.967498999999975,67.255264000000011],[-87.008895999999936,67.282211000000132],[-87.075561999999934,67.327209000000039],[-87.086670000000026,67.336379999999963],[-87.090560999999923,67.345825000000048],[-87.089995999999985,67.350815000000125],[-87.081389999999999,67.354430999999977],[-86.874435000000005,67.404984000000127],[-86.804169000000002,67.420821999999987],[-86.79222099999987,67.422485000000108],[-86.779175000000009,67.422211000000004],[-86.765288999999939,67.419144000000074],[-86.709731999999974,67.388046000000031],[-86.689163000000008,67.3744200000001],[-86.68472300000002,67.369980000000055],[-86.675551999999982,67.365540000000067],[-86.647232000000031,67.358322000000044],[-86.592498999999975,67.345261000000107],[-86.579726999999991,67.344986000000063],[-86.543883999999935,67.344986000000063],[-86.53195199999999,67.346649000000014],[-86.523620999999991,67.352203000000031],[-86.518065999999976,67.357208000000071],[-86.509170999999981,67.36775200000011],[-86.50306699999993,67.377762000000018],[-86.473891999999978,67.468596999999988],[-86.472777999999892,67.478592000000049],[-86.47444200000001,67.483322000000101],[-86.49499499999996,67.49693300000007],[-86.485001000000011,67.516936999999984],[-86.452224999999999,67.592484000000127],[-86.451401000000033,67.597488000000112],[-86.455840999999964,67.601929000000041],[-86.465285999999935,67.606369000000029],[-86.479720999999984,67.610535000000141],[-86.488892000000021,67.614699999999971],[-86.521392999999932,67.671921000000111],[-86.525283999999999,67.681366000000139],[-86.508056999999894,67.69720500000011],[-86.359160999999915,67.827773999999977],[-86.350554999999986,67.833327999999938],[-86.286941999999897,67.869979999999941],[-86.098052999999993,67.978043000000014],[-86.041381999999942,68.000549000000035],[-86.029723999999931,68.004990000000134],[-86.005004999999983,68.008330999999998],[-85.99221799999998,68.009155000000135],[-85.979995999999915,68.011658000000125],[-85.898346000000004,68.046097000000145],[-85.892501999999979,68.051376000000118],[-85.890838999999971,68.061371000000065],[-85.912506000000008,68.084717000000069],[-85.916396999999961,68.094147000000135],[-85.914443999999946,68.104155999999989],[-85.888061999999991,68.189697000000137],[-85.842772999999966,68.317214999999976],[-85.839172000000019,68.321381000000088],[-85.712783999999942,68.411652000000117],[-85.726943999999946,68.486374000000012],[-85.733321999999987,68.598602000000085],[-85.675277999999992,68.711104999999975],[-85.663619999999923,68.726929000000098],[-85.645843999999954,68.737488000000099],[-85.633895999999936,68.741928000000144],[-85.620269999999948,68.741653000000099],[-85.606383999999991,68.740265000000022],[-85.591675000000009,68.737198000000092],[-85.569457999999941,68.728317000000004],[-85.558043999999938,68.726089000000002],[-85.494445999999925,68.736923000000104],[-85.481948999999929,68.739426000000037],[-85.466171000000031,68.749992000000134],[-85.464164999999923,68.752991000000122],[-85.464721999999938,68.759720000000016],[-85.507781999999963,68.766662999999994],[-85.550827000000027,68.773315000000082],[-85.562774999999988,68.776657],[-85.55360399999995,68.781097000000045],[-85.540833000000021,68.78276100000005],[-85.514175000000023,68.783875000000023],[-85.458053999999947,68.777770999999973],[-85.415008999999998,68.770827999999995],[-85.371383999999978,68.762207000000103],[-85.361664000000019,68.757767000000058],[-85.368056999999965,68.752486999999974],[-85.379439999999988,68.747208000000001],[-85.388335999999981,68.741928000000144],[-85.384170999999981,68.737198000000092],[-85.328612999999962,68.724990999999932],[-85.314162999999951,68.722762999999986],[-85.228881999999999,68.71026599999999],[-85.215835999999967,68.710815000000139],[-85.209166999999979,68.714996000000042],[-85.210830999999985,68.719711000000075],[-85.21945199999999,68.729155999999932],[-85.226669000000015,68.733597000000032],[-85.148345999999947,68.750000000000114],[-85.067504999999926,68.749710000000107],[-84.912780999999939,68.746933000000013],[-84.898055999999997,68.742477000000065],[-84.883895999999993,68.740265000000022],[-84.801102000000014,68.73414600000001],[-84.787215999999944,68.733597000000032],[-84.775283999999999,68.737198000000092],[-84.767501999999922,68.747208000000001],[-84.760009999999909,68.757217000000026],[-84.752791999999999,68.767487000000131],[-84.754180999999903,68.772217000000012],[-84.761123999999995,68.776932000000045],[-84.834732000000031,68.820541000000105],[-84.846664000000033,68.82388300000008],[-84.860824999999977,68.825272000000041],[-84.899993999999936,68.820541000000105],[-84.912216000000001,68.818054000000018],[-84.976944000000003,68.809418000000107],[-85.003615999999909,68.808318999999983],[-85.031677000000002,68.810806000000014],[-85.131942999999922,68.826934999999992],[-85.143889999999942,68.830276000000026],[-85.163054999999929,68.839157000000114],[-85.17721599999993,68.848328000000095],[-85.184158000000025,68.853043000000127],[-85.192764000000011,68.862198000000149],[-85.194442999999865,68.867203000000018],[-85.190826000000015,68.872208000000057],[-85.177779999999984,68.87359600000002],[-85.15306099999998,68.873032000000023],[-85.125,68.870254999999986],[-85.053329000000019,68.858871000000022],[-85.039992999999981,68.859421000000054],[-85.005568999999923,68.877472000000068],[-85.001952999999958,68.882477000000108],[-84.99749799999995,68.925812000000064],[-85.007232999999871,68.930267000000129],[-85.021117999999944,68.931656000000089],[-85.046660999999972,68.926651000000049],[-85.059998000000007,68.925812000000064],[-85.08805799999999,68.928588999999988],[-85.116942999999935,68.93331900000004],[-85.129439999999931,68.937485000000095],[-85.136123999999995,68.942200000000128],[-85.140563999999927,68.946640000000002],[-85.136947999999961,68.951935000000049],[-85.127776999999924,68.956100000000049],[-85.115004999999996,68.958603000000039],[-85.087508999999955,68.958037999999988],[-84.973785000000021,68.946869000000106],[-84.914718999999991,68.938034000000073],[-84.818893000000003,68.927765000000022],[-84.805831999999953,68.929152999999928],[-84.796386999999982,68.933594000000028],[-84.791381999999942,68.94331399999993],[-84.793334999999956,68.948318000000086],[-84.799987999999871,68.952774000000034],[-84.809433000000013,68.957214000000022],[-84.821945000000028,68.961655000000121],[-84.837219000000005,68.965820000000122],[-84.851394999999968,68.968323000000112],[-84.865554999999915,68.969711000000018],[-84.906951999999933,68.971649000000127],[-84.921386999999982,68.973877000000073],[-84.936110999999926,68.977203000000145],[-84.986922999999933,68.999511999999982],[-84.981673999999941,69.007492000000013],[-84.957779000000016,69.017487000000074],[-84.944442999999978,69.018051000000014],[-84.836394999999925,69.012772000000041],[-84.720000999999968,69.006943000000035],[-84.591674999999952,68.994431000000077],[-84.578063999999983,68.993866000000025],[-84.565552000000025,68.997482000000105],[-84.541381999999999,69.007216999999969],[-84.532227000000034,69.012497000000053],[-84.528335999999967,69.017487000000074],[-84.535277999999948,69.022217000000126],[-84.563613999999973,69.025818000000015],[-84.745543999999995,69.039703000000088],[-84.953887999999949,69.085815000000139],[-85.108337000000006,69.113312000000121],[-85.020554000000004,69.160262999999929],[-85.006957999999941,69.160812000000078],[-84.994155999999919,69.163315000000068],[-84.987502999999947,69.168594000000041],[-84.994719999999973,69.173035000000141],[-85.008895999999993,69.174423000000047],[-85.064712999999927,69.176926000000037],[-85.143775999999946,69.167091000000028],[-85.151778999999976,69.166091999999935],[-85.159110999999996,69.164101000000073],[-85.163276999999994,69.161598000000083],[-85.155272999999966,69.153107000000091],[-85.176665999999898,69.143600000000049],[-85.197494999999947,69.132750999999985],[-85.210555999999997,69.130264000000125],[-85.223617999999988,69.128860000000088],[-85.236937999999952,69.128036000000122],[-85.25140399999998,69.130264000000125],[-85.266662999999994,69.133606000000043],[-85.308334000000002,69.143600000000049],[-85.315552000000025,69.148041000000148],[-85.317504999999983,69.15277100000003],[-85.308043999999995,69.158034999999984],[-85.29611199999988,69.162491000000102],[-85.283324999999877,69.165267999999969],[-85.235001000000011,69.174698000000035],[-85.227501000000018,69.176872000000003],[-85.226836999999989,69.179870999999991],[-85.231162999999981,69.182541000000072],[-85.240829000000019,69.192474000000004],[-85.254729999999995,69.192749000000049],[-85.337783999999999,69.193863000000022],[-85.383057000000008,69.205551000000071],[-85.392776000000026,69.209991000000059],[-85.473327999999924,69.271927000000062],[-85.477782999999874,69.276382000000069],[-85.50306699999993,69.31442300000009],[-85.508057000000008,69.395263999999997],[-85.506957999999997,69.400269000000037],[-85.503341999999975,69.405258000000003],[-85.494155999999919,69.410812000000021],[-85.481948999999929,69.415267999999969],[-85.467498999999918,69.417206000000078],[-85.453339000000028,69.416931000000034],[-85.424437999999952,69.413315000000011],[-85.396117999999944,69.411652000000061],[-85.383330999999941,69.415267999999969],[-85.339172000000019,69.438873000000115],[-85.343613000000005,69.443587999999977],[-85.353606999999954,69.448029000000076],[-85.378875999999934,69.456649999999968],[-85.39416499999993,69.460815000000139],[-85.422774999999945,69.462493999999992],[-85.436385999999914,69.460815000000139],[-85.445830999999998,69.45637499999998],[-85.465011999999945,69.440811000000053],[-85.477218999999991,69.436371000000008],[-85.491378999999995,69.436646000000053],[-85.500838999999985,69.439148000000102],[-85.510833999999988,69.443587999999977],[-85.525283999999999,69.45277400000009],[-85.538894999999968,69.466933999999981],[-85.542496000000028,69.476379000000065],[-85.547775000000001,69.647217000000069],[-85.546951000000035,69.652206000000035],[-85.514724999999999,69.768051000000071],[-85.450287000000003,69.784714000000122],[-85.423324999999977,69.788879000000122],[-85.409163999999976,69.788589000000115],[-85.393889999999999,69.7852630000001],[-85.389174999999966,69.780548000000067],[-85.389998999999932,69.775818000000015],[-85.39416499999993,69.770537999999988],[-85.406951999999933,69.760269000000108],[-85.410827999999981,69.755264000000068],[-85.406386999999995,69.750549000000035],[-85.391952999999944,69.750275000000101],[-85.379165999999941,69.753601000000117],[-85.366652999999985,69.758040999999992],[-85.342498999999975,69.768875000000037],[-85.333068999999966,69.774155000000121],[-85.331954999999994,69.77915999999999],[-85.34445199999999,69.813033999999959],[-85.349166999999909,69.817490000000078],[-85.361938000000009,69.821930000000066],[-85.377212999999927,69.824158000000068],[-85.433608999999933,69.823608000000036],[-85.461394999999982,69.822495000000117],[-85.489990000000034,69.823044000000095],[-85.518615999999952,69.823608000000036],[-85.56138599999997,69.824706999999989],[-85.586394999999982,69.826934999999935],[-85.582229999999981,69.845825000000104],[-85.578613000000018,69.850815000000125],[-85.571945000000028,69.856094000000098],[-85.561935000000005,69.859421000000054],[-85.548049999999932,69.859984999999995],[-85.377212999999927,69.851089000000059],[-85.361938000000009,69.848877000000016],[-85.315552000000025,69.838042999999971],[-85.274169999999913,69.825272000000041],[-85.222504000000015,69.80802900000009],[-85.212509000000011,69.803589000000102],[-85.199432000000002,69.799149000000057],[-85.170836999999949,69.790542999999957],[-85.093886999999995,69.773315000000025],[-85.079177999999956,69.771102999999982],[-85.064437999999996,69.76998900000001],[-84.871658000000025,69.816086000000098],[-84.86471599999993,69.821105999999929],[-84.854172000000005,69.83137499999998],[-84.574172999999917,69.857483000000116],[-84.546386999999868,69.859421000000054],[-84.476669000000015,69.862198000000149],[-84.433608999999933,69.861098999999967],[-84.375823999999966,69.857483000000116],[-84.346663999999976,69.854706000000022],[-84.331680000000006,69.852203000000031],[-84.169448999999986,69.822220000000129],[-84.125823999999909,69.809418000000107],[-84.118606999999997,69.804703000000075],[-84.114165999999955,69.799988000000042],[-84.112220999999977,69.793593999999985],[-84.104171999999949,69.785812000000021],[-84.091674999999952,69.781372000000033],[-83.971938999999963,69.74971000000005],[-83.941665999999998,69.743042000000116],[-83.748610999999926,69.708878000000084],[-83.733886999999982,69.706649999999911],[-83.705001999999922,69.703598],[-83.603881999999942,69.693588000000091],[-83.589447000000007,69.692200000000014],[-83.360549999999989,69.676376000000062],[-83.346389999999985,69.676086000000055],[-83.333069000000023,69.678314],[-83.306380999999931,69.693862999999908],[-83.293610000000001,69.699142000000109],[-83.280562999999916,69.702484000000027],[-83.253341999999975,69.705261000000121],[-83.238892000000021,69.704711999999972],[-83.180557000000022,69.694977000000108],[-83.122771999999998,69.689148000000046],[-83.021941999999967,69.679703000000018],[-83.008056999999951,69.679152999999985],[-82.826950000000011,69.688873000000058],[-82.696654999999964,69.695816000000036],[-82.541007999999977,69.674477000000138],[-82.539672999999937,69.671593000000087],[-82.536162999999874,69.668823000000032],[-82.527328000000011,69.666153000000122],[-82.509505999999874,69.661979999999971],[-82.500671000000011,69.660491999999977],[-82.483329999999967,69.657990000000098],[-82.457503999999972,69.655327],[-82.291672000000005,69.639984000000084],[-82.263335999999981,69.638046000000145],[-82.254729999999995,69.636383000000023],[-82.307495000000017,69.622208000000114],[-82.334731999999974,69.61943100000002],[-82.390288999999996,69.618865999999969],[-82.47066499999994,69.62303200000008],[-82.476333999999952,69.625870000000077],[-82.483664999999974,69.628539999999987],[-82.492500000000007,69.630043000000001],[-82.552337999999963,69.635376000000008],[-82.560836999999992,69.635704000000146],[-82.56899999999996,69.634872000000087],[-82.577002999999991,69.632874000000129],[-82.653885000000002,69.62303200000008],[-82.654723999999987,69.568604000000107],[-82.612503000000004,69.566940000000102],[-82.600280999999995,69.562485000000095],[-82.535278000000005,69.534988000000112],[-82.489989999999977,69.507217000000082],[-82.476668999999958,69.497756999999979],[-82.486937999999896,69.493591000000094],[-82.500564999999938,69.492203000000018],[-82.528884999999946,69.4952550000001],[-82.74221799999998,69.50999500000006],[-82.897507000000019,69.518875000000094],[-82.939712999999927,69.521378000000084],[-82.982223999999917,69.524154999999951],[-83.067779999999914,69.533051000000057],[-83.125548999999921,69.539978000000019],[-83.154175000000009,69.543869000000086],[-83.228057999999976,69.538589000000002],[-83.082503999999972,69.514160000000061],[-83.025283999999999,69.508041000000048],[-82.954726999999991,69.503601000000003],[-82.870270000000005,69.500274999999988],[-82.856658999999922,69.50082400000008],[-82.842498999999918,69.500274999999988],[-82.785277999999948,69.494141000000127],[-82.68472300000002,69.479706000000022],[-82.324172999999917,69.418868999999972],[-82.295272999999952,69.413879000000122],[-82.23721299999994,69.400818000000015],[-82.225280999999995,69.39637799999997],[-82.221389999999928,69.391662999999937],[-82.231673999999941,69.387497000000053],[-82.289718999999991,69.251663000000121],[-82.291381999999999,69.246643000000063],[-82.273055999999997,69.237488000000042],[-82.258620999999948,69.233871000000079],[-82.244995000000017,69.233322000000101],[-82.217223999999931,69.233047000000113],[-82.203612999999962,69.233597000000145],[-82.054442999999992,69.24136400000009],[-82.041107000000011,69.242751999999996],[-82.027785999999992,69.244979999999941],[-81.99129499999998,69.25470700000011],[-81.914718999999877,69.269440000000145],[-81.70777899999996,69.264709000000039],[-81.693877999999984,69.263046000000145],[-81.67971799999998,69.260544000000039],[-81.650283999999999,69.251663000000121],[-81.512222000000008,69.20138500000013],[-81.416396999999904,69.208038000000101],[-81.402221999999995,69.207214000000135],[-81.388335999999981,69.204712000000086],[-81.359725999999966,69.196640000000116],[-81.347778000000005,69.191925000000083],[-81.338897999999972,69.187485000000038],[-81.332503999999858,69.182479999999998],[-81.299438000000009,69.1202550000001],[-81.330841000000021,69.095261000000107],[-81.57028200000002,68.992477000000008],[-81.59584000000001,68.984146000000123],[-81.71665999999999,68.949142000000052],[-81.75556899999998,68.941360000000088],[-81.809433000000013,68.9327550000001],[-81.888061999999991,68.919144000000131],[-81.914169000000015,68.914429000000098],[-81.966110000000015,68.904433999999981],[-82.005004999999983,68.895538000000045],[-82.043059999999969,68.883881000000088],[-82.055556999999965,68.878586000000041],[-82.057219999999973,68.873871000000008],[-82.043335000000013,68.872208000000057],[-82.00306699999993,68.874146000000053],[-81.977218999999991,68.879700000000014],[-81.833068999999966,68.907211000000075],[-81.819457999999997,68.908600000000092],[-81.68638599999997,68.905258000000117],[-81.673049999999989,68.904433999999981],[-81.66194200000001,68.90277100000003],[-81.650283999999999,68.899155000000007],[-81.58805799999999,68.869705000000124],[-81.581954999999937,68.864990000000091],[-81.438323999999966,68.874984999999981],[-81.424712999999997,68.87553400000013],[-81.382767000000001,68.866652999999985],[-81.354171999999892,68.857483000000116],[-81.238051999999925,68.774704000000042],[-81.23443599999996,68.76998900000001],[-81.232772999999952,68.760268999999937],[-81.252227999999945,68.653046000000131],[-81.255843999999911,68.643051000000014],[-81.260558999999944,68.638046000000145],[-81.267501999999922,68.633041000000105],[-81.357773000000009,68.599152000000117],[-81.560271999999998,68.541656000000103],[-81.687209999999993,68.509430000000066],[-81.798889000000031,68.489700000000028],[-81.816390999999896,68.469711000000132],[-81.830291999999986,68.459717000000126],[-81.842498999999918,68.455551000000014],[-81.958053999999947,68.423309000000017],[-81.970839999999953,68.421097000000145],[-81.997771999999941,68.423035000000084],[-82.011947999999961,68.427765000000136],[-82.024444999999957,68.436919999999986],[-82.027785999999992,68.441650000000038],[-82.028884999999946,68.446640000000059],[-82.033324999999991,68.456099999999992],[-82.038054999999929,68.465820000000065],[-82.041671999999949,68.470535000000098],[-82.062209999999936,68.494430999999963],[-82.068618999999899,68.499145999999996],[-82.077498999999932,68.503601000000003],[-82.091675000000009,68.507217000000082],[-82.229445999999996,68.531662000000097],[-82.256393000000003,68.533600000000035],[-82.269454999999937,68.532486000000063],[-82.271117999999944,68.527481000000023],[-82.267226999999991,68.52276599999999],[-82.254729999999995,68.513321000000133],[-82.243056999999965,68.508881000000088],[-82.229171999999892,68.505264000000125],[-82.1875,68.495819000000097],[-82.175826999999913,68.491364000000033],[-82.17332499999992,68.485808999999961],[-82.175002999999947,68.481093999999928],[-82.179169000000002,68.476089000000059],[-82.183608999999933,68.471100000000092],[-82.190552000000025,68.466095000000053],[-82.202498999999989,68.460815000000025],[-82.215011999999888,68.457489000000123],[-82.228057999999976,68.455261000000007],[-82.25418099999996,68.454437000000041],[-82.382767000000001,68.466934000000037],[-82.393889999999999,68.468322999999998],[-82.448882999999967,68.478592000000049],[-82.476943999999946,68.485535000000027],[-82.500290000000007,68.494430999999963],[-82.532501000000025,68.508041000000048],[-82.545273000000009,68.517487000000017],[-82.549163999999905,68.522217000000069],[-82.557770000000005,68.526932000000102],[-82.571395999999993,68.526382000000069],[-82.583892999999875,68.524155000000007],[-82.608886999999925,68.517487000000017],[-82.62110899999999,68.512206999999933],[-82.634734999999978,68.502213000000097],[-82.638901000000033,68.497208000000057],[-82.635284000000013,68.492203000000018],[-82.491103999999893,68.453873000000101],[-82.490554999999915,68.402205999999921],[-82.363051999999982,68.35054000000008],[-82.356658999999922,68.345825000000048],[-82.353057999999976,68.341094999999996],[-82.351105000000018,68.331375000000094],[-82.352492999999924,68.326660000000061],[-82.356658999999922,68.321655000000021],[-82.369445999999925,68.318329000000006],[-82.381942999999922,68.316939999999988],[-82.39527899999996,68.316666000000055],[-82.422225999999966,68.318603999999993],[-82.448607999999979,68.320831000000055],[-82.475006000000008,68.321106000000043],[-82.500838999999985,68.317490000000021],[-82.507781999999963,68.313309000000118],[-82.50140399999998,68.308594000000085],[-82.483611999999937,68.299422999999933],[-82.426101999999958,68.276657000000114],[-82.400557999999933,68.26887499999998],[-82.386947999999961,68.266388000000063],[-82.37388599999997,68.265548999999965],[-82.36082499999992,68.266937000000041],[-82.311661000000015,68.283051],[-82.286941999999897,68.289703000000031],[-82.273330999999928,68.288879000000065],[-82.264724999999999,68.284424000000058],[-82.260009999999966,68.274993999999992],[-82.259170999999981,68.269989000000123],[-82.258620999999948,68.255554000000018],[-82.264449999999897,68.24552900000009],[-82.270279000000016,68.235535000000084],[-82.278610000000015,68.225540000000024],[-82.289443999999946,68.215545999999961],[-82.300551999999868,68.205551000000071],[-82.321121000000005,68.190262000000018],[-82.330291999999872,68.185256999999922],[-82.337218999999948,68.180267000000072],[-82.345550999999944,68.170258000000047],[-82.34722899999997,68.165268000000026],[-82.345839999999953,68.160537999999974],[-82.337218999999948,68.155823000000112],[-82.314437999999939,68.146652000000017],[-82.272506999999962,68.133331000000055],[-82.230835000000013,68.121918000000051],[-82.206115999999952,68.115814],[-82.192489999999964,68.112487999999985],[-82.179169000000002,68.111649],[-82.166397000000018,68.114151000000106],[-82.145781999999997,68.125488000000018],[-82.099166999999966,68.154984000000013],[-82.080565999999919,68.179703000000131],[-82.06361400000003,68.199707000000046],[-82.056945999999982,68.204712000000086],[-82.047500999999897,68.209716999999955],[-82.037505999999894,68.213881999999955],[-82.025009000000011,68.216095000000109],[-82.01167299999986,68.214705999999921],[-81.997771999999941,68.211105000000089],[-81.988892000000021,68.206650000000025],[-81.985549999999989,68.201660000000004],[-81.984726000000023,68.196929999999952],[-81.993057000000022,68.172485000000108],[-82.008895999999936,68.14776599999999],[-82.019164999999987,68.132751000000042],[-82.027221999999938,68.122756999999979],[-82.034164000000033,68.117751999999939],[-82.043610000000001,68.112762000000089],[-82.056106999999997,68.109421000000054],[-82.114502000000016,68.082870000000014],[-82.173889000000031,68.002486999999974],[-82.175551999999982,67.997482000000105],[-82.102782999999988,67.907211000000075],[-82.096663999999976,67.90248100000008],[-82.079452999999944,67.893326000000002],[-82.070557000000008,67.888596000000007],[-81.837783999999999,67.783875000000023],[-81.727218999999934,67.740814],[-81.707503999999972,67.731658999999922],[-81.690552000000025,67.722487999999998],[-81.678328999999906,67.713042999999914],[-81.666397000000018,67.703598000000056],[-81.65972899999997,67.694138000000009],[-81.653884999999946,67.689423000000147],[-81.636672999999917,67.679977000000008],[-81.592498999999975,67.661652000000061],[-81.538329999999974,67.643599999999992],[-81.498046999999985,67.631927000000132],[-81.457779000000016,67.620529000000147],[-81.433059999999955,67.611374000000069],[-81.416396999999904,67.601929000000041],[-81.248885999999914,67.479706000000078],[-81.243056999999908,67.474991000000045],[-81.239715999999873,67.470260999999994],[-81.237212999999997,67.455551000000014],[-81.237503000000004,67.441086000000098],[-81.239166000000012,67.436096000000077],[-81.245269999999948,67.426376000000005],[-81.256392999999946,67.416381999999942],[-81.293610000000001,67.396103000000039],[-81.300551999999982,67.391098],[-81.30471799999998,67.386108000000092],[-81.347778000000005,67.292755],[-81.366394000000014,67.238875999999948],[-81.373610999999983,67.204711999999972],[-81.376099000000011,67.189972000000012],[-81.375274999999988,67.185256999999979],[-81.380279999999914,67.170532000000037],[-81.413895000000025,67.091370000000097],[-81.432220000000029,67.066666000000112],[-81.496657999999911,67.004715000000147],[-81.50306699999993,66.999710000000107],[-81.512512000000015,66.99470500000001],[-81.524170000000026,66.99054000000001],[-81.536117999999988,66.988312000000064],[-81.699722000000008,66.970261000000107],[-81.711944999999957,66.969986000000063],[-81.750838999999928,66.978591999999992],[-81.763901000000033,66.983046999999999],[-81.772232000000031,66.987762000000032],[-81.783066000000019,66.992477000000065],[-81.796111999999937,66.996933000000013],[-81.809157999999968,66.998321999999973],[-81.833618000000001,66.997756999999979],[-81.929717999999923,66.978591999999992],[-81.952498999999932,66.968048000000124],[-81.988892000000021,66.949706999999933],[-82.026947000000007,66.926086000000055],[-82.179992999999968,66.768875000000094],[-82.183884000000035,66.764160000000061],[-82.369720000000029,66.725815000000125],[-82.481109999999944,66.669707999999957],[-82.556380999999988,66.623871000000122],[-82.562774999999874,66.618866000000082],[-82.566665999999941,66.613876000000005],[-82.571670999999981,66.60386699999998],[-82.577498999999989,66.584427000000005],[-82.576675000000023,66.579436999999984],[-82.579452999999944,66.569717000000082],[-82.585555999999997,66.564697000000024],[-82.596953999999982,66.560256999999979],[-82.694442999999978,66.558029000000033],[-82.78195199999999,66.566666000000055],[-82.86999499999996,66.567490000000021],[-83.018065999999976,66.539978000000076],[-83.012787000000003,66.515823000000069],[-83.015288999999996,66.50610400000005],[-83.019164999999873,66.501099000000011],[-83.025283999999999,66.495819000000097],[-83.049987999999928,66.475539999999967],[-83.058608999999933,66.470260999999994],[-83.357497999999964,66.353043000000071],[-83.368332000000009,66.348877000000016],[-83.402221999999938,66.347487999999998],[-83.450561999999991,66.346649000000014],[-83.515288999999882,66.353867000000037],[-83.567504999999983,66.367477000000122],[-83.652785999999935,66.40776100000005],[-83.654175000000009,66.412491000000102],[-83.639449999999954,66.437195000000088],[-83.630828999999949,66.442200000000128],[-83.618331999999896,66.44081100000011],[-83.607773000000009,66.436371000000122],[-83.597778000000005,66.426926000000037],[-83.601669000000015,66.412201000000096],[-83.597778000000005,66.407486000000063],[-83.545273000000009,66.381363000000079],[-83.53472899999997,66.378035999999952],[-83.579726999999934,66.431656000000089],[-83.672501000000011,66.520538000000101],[-83.68110699999994,66.524993999999992],[-83.70695499999988,66.530822999999998],[-83.732497999999964,66.534714000000065],[-83.795273000000009,66.541930999999977],[-83.82028200000002,66.542754999999943],[-83.832229999999981,66.542206000000022],[-83.857497999999964,66.544144000000131],[-83.968886999999881,66.577484000000027],[-83.977492999999981,66.582214000000079],[-83.985001000000011,66.591660000000047],[-84.011397999999986,66.663605000000018],[-84.014174999999966,66.673309000000017],[-84.015563999999983,66.687759000000142],[-84.014450000000011,66.692748999999992],[-84.006119000000012,66.698029000000076],[-83.994719999999973,66.70138500000013],[-83.982772999999952,66.70277400000009],[-83.945540999999992,66.702484000000084],[-83.891113000000018,66.804153000000099],[-83.886123999999995,66.813873000000001],[-83.883895999999936,66.82388300000008],[-83.884170999999924,66.833602999999982],[-83.890288999999996,66.85775799999999],[-83.901671999999905,66.871918000000107],[-83.907776000000013,66.876647999999989],[-83.916397000000018,66.881087999999977],[-83.928878999999995,66.86303700000002],[-83.938323999999909,66.823608000000092],[-83.945540999999992,66.813599000000067],[-84.104996000000028,66.708328000000108],[-84.116394000000014,66.704987000000074],[-84.140288999999996,66.701934999999935],[-84.152785999999992,66.702484000000084],[-84.165558000000033,66.703873000000101],[-84.260284000000013,66.716385000000059],[-84.27305599999994,66.718596999999932],[-84.286666999999909,66.723038000000031],[-84.295273000000009,66.727478000000076],[-84.43638599999997,66.818329000000119],[-84.427779999999927,66.961104999999975],[-84.415008999999998,66.960815000000139],[-84.390288999999882,66.961929000000112],[-84.378600999999946,66.964157000000057],[-84.367492999999968,66.968597000000102],[-84.370834000000002,66.97137500000008],[-84.436110999999926,66.981369000000086],[-84.488051999999925,66.988876000000005],[-84.618057000000022,67.006378000000041],[-84.694153000000028,67.009720000000016],[-84.733063000000016,67.014708999999982],[-84.837783999999999,67.029434000000094],[-84.850829999999974,67.03166200000004],[-84.87332200000003,67.039428999999984],[-84.881942999999978,67.043869000000029],[-84.886123999999938,67.048599000000081],[-84.892501999999922,67.053314000000114],[-84.901397999999858,67.057754999999986],[-84.915008999999998,67.060806000000014],[-84.926940999999943,67.059418000000107],[-84.936110999999926,67.056090999999981],[-84.880279999999971,66.989426000000037],[-84.871658000000025,66.984984999999938],[-84.857772999999952,66.981659000000093],[-84.84584000000001,66.982208000000071],[-84.833892999999932,66.984711000000004],[-84.811110999999926,66.991653000000099],[-84.789444000000003,67.002486999999974],[-84.778335999999911,67.006653000000085],[-84.765563999999983,67.006378000000041],[-84.699996999999939,66.99581900000004],[-84.645844000000011,66.981659000000093],[-84.639724999999885,66.978043000000071],[-84.651397999999972,66.97554000000008],[-84.712783999999942,66.972762999999986],[-84.885833999999932,66.966660000000047],[-84.960007000000019,66.964157000000057],[-85.010009999999966,66.964706000000035],[-85.048339999999996,66.963318000000072],[-85.059722999999963,66.959717000000069],[-85.142775999999969,66.930267000000129],[-85.228333000000021,66.878311000000053],[-85.228881999999999,66.873306000000014],[-85.222777999999948,66.868866000000025],[-85.196105999999986,66.855255000000056],[-85.184433000000013,66.851089000000115],[-85.146118000000001,66.839431999999988],[-85.133057000000008,66.836929000000055],[-85.11999499999996,66.835541000000148],[-84.948607999999979,66.858597000000145],[-84.94027699999998,66.863876000000118],[-84.904556000000014,66.897202000000107],[-84.901053999999988,66.900375000000111],[-84.904892000000018,66.903037999999981],[-84.912888000000009,66.905044999999973],[-84.920546999999999,66.905373000000111],[-84.935225999999886,66.904540999999995],[-84.943061999999941,66.905373000000111],[-84.951050000000009,66.907378999999992],[-84.95788600000003,66.909874000000002],[-84.961730999999986,66.912704000000019],[-84.956389999999942,66.915367000000117],[-84.86233500000003,66.939835000000073],[-84.855164000000002,66.940666000000078],[-84.767775999999969,66.952209000000039],[-84.755279999999971,66.951660000000061],[-84.602218999999991,66.935806000000127],[-84.562209999999993,66.901382000000126],[-84.573897999999986,66.89888000000002],[-84.61082499999992,66.89387499999998],[-84.62332200000003,66.893326000000059],[-84.650283999999999,66.900817999999958],[-84.675827000000027,66.902771000000087],[-84.688323999999909,66.903046000000131],[-84.746384000000035,66.897491000000059],[-84.706389999999999,66.888596000000007],[-84.58555599999994,66.858871000000079],[-84.558334000000002,66.850540000000024],[-84.523330999999985,66.836929000000055],[-84.505843999999968,66.827773999999977],[-84.504729999999995,66.823043999999982],[-84.516113000000018,66.820540999999992],[-84.541381999999999,66.821381000000031],[-84.580565999999976,66.828323000000125],[-84.634170999999981,66.84165999999999],[-84.660278000000005,66.846375000000023],[-84.672501000000011,66.845824999999991],[-84.684432999999956,66.844147000000021],[-84.690551999999968,66.839980999999966],[-84.684432999999956,66.835266000000104],[-84.675551999999925,66.830826000000116],[-84.664444000000003,66.82748400000014],[-84.651107999999965,66.824158000000125],[-84.466949,66.787766000000147],[-84.434433000000013,66.725540000000137],[-84.445266999999888,66.720260999999937],[-84.448607999999922,66.715271000000087],[-84.442489999999964,66.710814999999968],[-84.429442999999935,66.708328000000108],[-84.404174999999952,66.705551000000014],[-84.343063000000029,66.699416999999983],[-84.203887999999949,66.691360000000032],[-84.153060999999923,66.685806000000014],[-84.144454999999994,66.681366000000025],[-84.136672999999973,66.662201000000039],[-84.138061999999877,66.657210999999961],[-84.142501999999979,66.647216999999955],[-84.146117999999944,66.642212000000086],[-84.180556999999965,66.606644000000074],[-84.186385999999914,66.601379000000009],[-84.128325999999959,66.554703000000018],[-83.967223999999931,66.473877000000073],[-83.916397000000018,66.446640000000116],[-83.89805599999994,66.432755000000043],[-83.888061999999991,66.423599000000081],[-83.871108999999933,66.394989000000066],[-83.867492999999968,66.380539000000113],[-83.804717999999923,66.307205000000124],[-83.773620999999991,66.289703000000088],[-83.774719000000005,66.275269000000037],[-83.772231999999974,66.265548999999965],[-83.768615999999952,66.260818000000029],[-83.762787000000003,66.256104000000107],[-83.728881999999999,66.23803700000002],[-83.71833799999996,66.233597000000032],[-83.684722999999906,66.215546000000018],[-83.68110699999994,66.210815000000082],[-83.67860399999995,66.201096000000121],[-83.684432999999956,66.196091000000024],[-83.693053999999961,66.190810999999997],[-83.767898999999943,66.168639999999982],[-83.789718999999934,66.163315000000125],[-83.835830999999928,66.154709000000025],[-83.847777999999948,66.153320000000008],[-83.855559999999912,66.155822999999998],[-83.977782999999988,66.199417000000096],[-84.118057000000022,66.25471500000009],[-84.135283999999956,66.26388500000013],[-84.141112999999962,66.268326000000059],[-84.148620999999991,66.277771000000143],[-84.149993999999992,66.282760999999994],[-84.150283999999942,66.292480000000012],[-84.148894999999925,66.297485000000052],[-84.152495999999985,66.302200000000084],[-84.158614999999998,66.306641000000013],[-84.167220999999927,66.31109600000002],[-84.178329000000019,66.315536000000009],[-84.190826000000015,66.318054000000018],[-84.216400000000021,66.321655000000078],[-84.228332999999964,66.3211060000001],[-84.317229999999995,66.299712999999997],[-84.426940999999886,66.363037000000077],[-84.441939999999931,66.372208000000057],[-84.506393000000003,66.402205999999978],[-84.516952999999944,66.404709000000139],[-84.528885000000002,66.40415999999999],[-84.550551999999868,66.394440000000088],[-84.558884000000035,66.389160000000061],[-84.619155999999919,66.349715999999944],[-84.626937999999882,66.343597000000102],[-84.635559000000001,66.334991000000002],[-84.636123999999995,66.328873000000044],[-84.625,66.319152999999972],[-84.527221999999995,66.278595000000109],[-84.424438000000009,66.224701000000096],[-84.407500999999968,66.215546000000018],[-84.401397999999972,66.211105000000089],[-84.389998999999932,66.196930000000009],[-84.386397999999986,66.192199999999957],[-84.37777699999998,66.178040000000067],[-84.372498000000007,66.168319999999994],[-84.374709999999993,66.158600000000092],[-84.448607999999922,66.158600000000092],[-84.46055599999994,66.159149000000014],[-84.473327999999981,66.161377000000016],[-84.483886999999925,66.164703000000031],[-84.509445000000028,66.178314],[-84.641112999999962,66.216094999999996],[-84.869155999999975,66.266662999999937],[-84.881942999999978,66.268051000000071],[-84.90583799999996,66.266937000000098],[-84.927489999999977,66.258881000000031],[-84.943877999999984,66.248322000000144],[-84.954726999999934,66.243866000000025],[-84.96665999999999,66.244431000000077],[-84.979720999999984,66.24664300000012],[-85.00167799999997,66.255264000000068],[-85.131942999999922,66.291931000000034],[-85.178329000000019,66.262207000000046],[-85.190276999999867,66.260544000000095],[-85.202498999999932,66.260818000000029],[-85.214721999999995,66.262207000000046],[-85.227782999999988,66.264434999999992],[-85.252227999999945,66.273041000000092],[-85.269729999999981,66.281937000000028],[-85.301392000000021,66.304703000000075],[-85.306655999999919,66.314148000000102],[-85.339721999999938,66.399154999999951],[-85.345550999999887,66.447754000000089],[-85.346114999999998,66.45748900000001],[-85.341675000000009,66.482208000000128],[-85.343338000000017,66.48692299999999],[-85.351394999999968,66.496093999999971],[-85.457503999999915,66.573883000000137],[-85.466400000000021,66.578323000000012],[-85.479720999999984,66.581375000000094],[-85.491942999999878,66.581940000000145],[-85.55221599999993,66.577774000000034],[-85.575561999999991,66.574707000000103],[-85.598617999999931,66.569442999999978],[-85.710555999999997,66.536101999999971],[-85.845276000000013,66.499419999999986],[-85.857773000000009,66.499709999999993],[-85.868880999999931,66.504166000000112],[-85.875548999999978,66.5086060000001],[-85.888901000000033,66.511932000000002],[-85.995543999999995,66.508041000000105],[-86.007507000000032,66.507216999999969],[-86.078888000000006,66.49693300000007],[-86.103333000000021,66.496643000000063],[-86.128326000000015,66.49803200000008],[-86.141113000000018,66.499419999999986],[-86.256667999999934,66.513321000000133],[-86.283324999999934,66.518599999999935],[-86.578888000000006,66.530272999999966],[-86.580001999999979,66.520538000000101],[-86.587783999999942,66.51527400000009],[-86.599730999999963,66.511108000000036],[-86.611389000000031,66.508331000000112],[-86.622771999999998,66.506652999999972],[-86.635009999999966,66.50610400000005],[-86.65972899999997,66.506377999999984],[-86.672500999999954,66.507767000000001],[-86.685546999999985,66.509720000000073],[-86.698883000000023,66.513046000000145],[-86.726944000000003,66.521103000000096],[-86.738051999999982,66.525269000000037],[-86.75167799999997,66.528320000000008],[-86.764174999999966,66.528595000000053],[-86.775283999999942,66.526093000000003],[-86.780838000000017,66.520828000000108],[-86.781386999999995,66.515823000000069],[-86.777221999999995,66.511108000000036],[-86.743880999999931,66.488586000000112],[-86.701110999999969,66.466659999999933],[-86.662780999999939,66.449417000000039],[-86.639998999999932,66.441085999999927],[-86.633621000000005,66.436371000000122],[-86.641677999999956,66.431931000000077],[-86.678604000000007,66.432755000000043],[-86.730559999999969,66.436920000000043],[-86.756957999999941,66.441360000000088],[-86.783614999999941,66.447479000000101],[-86.796386999999925,66.448593000000074],[-86.807495000000017,66.446091000000024],[-86.811110999999983,66.441925000000083],[-86.809158000000025,66.437195000000088],[-86.804992999999968,66.432480000000055],[-86.651671999999962,66.324158000000011],[-86.638335999999924,66.315262000000075],[-86.612777999999992,66.311646000000053],[-86.49722300000002,66.29942299999999],[-86.396117999999944,66.289703000000088],[-86.30610699999994,66.276382000000126],[-86.142226999999991,66.239699999999971],[-86.076110999999912,66.22387700000013],[-85.927489999999977,66.186370999999951],[-85.913895000000025,66.182205000000067],[-85.901108000000022,66.173035000000027],[-85.897232000000031,66.168319999999994],[-85.977492999999924,66.077773999999977],[-85.975829999999917,66.073044000000095],[-85.973891999999978,66.038879000000009],[-85.974716000000001,66.033875000000023],[-85.979995999999915,66.028594999999996],[-85.990554999999972,66.024155000000121],[-86.077224999999999,65.99581900000004],[-86.121384000000035,65.984421000000054],[-86.217498999999975,65.957489000000123],[-86.22084000000001,65.952209000000039],[-86.231383999999935,65.941925000000026],[-86.239166000000012,65.936646000000053],[-86.249435000000005,65.93193100000002],[-86.326400999999976,65.90498400000007],[-86.348617999999874,65.899719000000005],[-86.360275000000001,65.899155000000064],[-86.420272999999952,65.892487000000074],[-86.472228999999857,65.839980999999966],[-86.496947999999975,65.808029000000033],[-86.49499499999996,65.803314],[-86.486389000000031,65.799149],[-86.464171999999962,65.790543000000071],[-86.455276000000026,65.786102000000142],[-86.453888000000006,65.78137200000009],[-86.451110999999855,65.747208000000057],[-86.454177999999956,65.742203000000018],[-86.530288999999868,65.695525999999916],[-86.716109999999958,65.617477000000065],[-86.819457999999997,65.560532000000023],[-86.829726999999991,65.55581699999999],[-86.84056099999998,65.553314000000057],[-86.852782999999931,65.55442800000003],[-86.865828999999962,65.557480000000112],[-86.878052000000025,65.557754999999929],[-86.888610999999969,65.555251999999996],[-86.953888000000006,65.53915400000011],[-86.972777999999948,65.520263999999997],[-87.017226999999991,65.486923000000047],[-87.024445000000014,65.481659000000036],[-87.035278000000005,65.479156000000046],[-87.05471799999998,65.486649000000114],[-87.067504999999983,65.488875999999948],[-87.077788999999996,65.484985000000052],[-87.087783999999999,65.479431000000091],[-87.095001000000025,65.474152000000117],[-87.110275000000001,65.458602999999982],[-87.118606999999997,65.4433140000001],[-87.119155999999975,65.438309000000061],[-87.11500499999994,65.433594000000028],[-87.101944000000003,65.429703000000131],[-87.111664000000019,65.390274000000034],[-87.351105000000018,65.327209000000096],[-87.361938000000009,65.324432000000002],[-87.372771999999941,65.322769000000051],[-87.395843999999897,65.321380999999974],[-87.430831999999953,65.320831000000112],[-87.833327999999938,65.323883000000023],[-87.869155999999975,65.325272000000041],[-87.893065999999976,65.326660000000118],[-87.941939999999875,65.330826000000059],[-87.96665999999999,65.333054000000004],[-88.004456000000005,65.339157000000114],[-88.030288999999925,65.345260999999994],[-88.070281999999963,65.356093999999928],[-88.09445199999999,65.363312000000121],[-88.212783999999886,65.40277100000003],[-88.221389999999985,65.407211000000075],[-88.234726000000023,65.416091999999992],[-88.243331999999953,65.425262000000032],[-88.245270000000005,65.429977000000065],[-88.25389100000001,65.439148000000046],[-88.31361400000003,65.479156000000046],[-88.333617999999944,65.492477000000008],[-88.548614999999984,65.582764000000111],[-88.55972300000002,65.586929000000112],[-88.573058999999944,65.589706000000035],[-88.58555599999994,65.590820000000008],[-88.633330999999998,65.591094999999996],[-88.645554000000004,65.592208999999968],[-88.658889999999928,65.594986000000063],[-88.68582200000003,65.601929000000098],[-88.829726999999878,65.641372999999987],[-88.828888000000006,65.644150000000081],[-88.756667999999991,65.642761000000064],[-88.62249799999995,65.637207000000103],[-88.49888599999997,65.626923000000033],[-88.513335999999981,65.644440000000088],[-88.779723999999987,65.676085999999941],[-88.949721999999895,65.68664600000011],[-88.962783999999999,65.688583000000108],[-89.000838999999985,65.698593000000017],[-89.09944200000001,65.725266000000033],[-89.124435000000005,65.733322000000101],[-89.133895999999936,65.737487999999985],[-89.140563999999927,65.74192800000003],[-89.14527899999996,65.746368000000018],[-89.147507000000019,65.751388999999961],[-89.147231999999974,65.761107999999979],[-89.149444999999957,65.765823000000012],[-89.156386999999938,65.770264000000111],[-89.174438000000009,65.778594999999996],[-89.379990000000021,65.846375000000023],[-89.525283999999999,65.886932000000002],[-89.597228999999857,65.910812000000021],[-89.664718999999934,65.934982000000048],[-89.671660999999915,65.939423000000147],[-89.70944199999991,65.942200000000014],[-89.967223999999987,65.948593000000017],[-89.991104000000007,65.947478999999987],[-90,65.944359000000134],[-89.964171999999962,65.936919999999986],[-89.939163000000008,65.93609600000002],[-89.926391999999908,65.934143000000063],[-89.89916999999997,65.928589000000045],[-89.87110899999999,65.921097000000145],[-89.834166999999979,65.910263000000043],[-89.799438000000009,65.898331000000098],[-89.740829000000019,65.873306000000071],[-89.731673999999998,65.86914100000007],[-89.726943999999946,65.839980999999966],[-89.729172000000005,65.834717000000012],[-89.736389000000031,65.829162999999994],[-89.746947999999975,65.826385000000016],[-89.76916499999993,65.822495000000004],[-89.793334999999956,65.822495000000004],[-89.818892999999889,65.825546000000031],[-89.832229999999925,65.828323000000125],[-89.843886999999938,65.832214000000022],[-89.89056399999987,65.853043000000014],[-89.902221999999995,65.857208000000014],[-90.048614999999984,65.888321000000019],[-90.073623999999938,65.890273999999977],[-90.085555999999997,65.889159999999947],[-90.119995000000017,65.883880999999974],[-90.162780999999995,65.872207999999944],[-90.207229999999925,65.864426000000037],[-90.241942999999992,65.861374000000069],[-90.265838999999971,65.860535000000141],[-90.315001999999993,65.862198000000035],[-90.404448999999943,65.871093999999971],[-90.418335000000013,65.87414600000011],[-90.427489999999977,65.878036000000066],[-90.432495000000017,65.882751000000098],[-90.425551999999925,65.888321000000019],[-90.393065999999919,65.896102999999982],[-90.357773000000009,65.898041000000092],[-90.333327999999995,65.897217000000126],[-90.272781000000009,65.897491000000059],[-90.225554999999929,65.900542999999971],[-90.215560999999923,65.904434000000037],[-90.213333000000034,65.909424000000115],[-90.213333000000034,65.914428999999984],[-90.220551,65.918868999999972],[-90.234725999999966,65.922485000000052],[-90.258895999999993,65.922485000000052],[-90.293335000000013,65.918593999999985],[-90.360275000000001,65.907760999999994],[-90.418883999999878,65.901093000000003],[-90.574172999999973,65.896652000000074],[-90.596114999999941,65.896652000000074],[-90.708618000000001,65.902480999999909],[-90.733886999999925,65.904160000000104],[-90.850280999999995,65.915267999999912],[-91.068344000000025,65.940262000000075],[-91.316390999999953,65.969986000000119],[-91.328613000000018,65.969986000000119],[-91.340285999999935,65.96887200000009],[-91.429168999999945,65.95109599999995],[-91.444442999999865,65.930817000000047],[-91.362777999999935,65.893599999999992],[-91.353332999999964,65.889434999999992],[-91.341385000000002,65.885818000000029],[-91.328063999999983,65.883880999999974],[-91.189437999999939,65.853043000000014],[-91.06082200000003,65.813309000000061],[-91.046660999999915,65.809417999999994],[-91.020553999999947,65.806091000000094],[-91.008621000000005,65.806091000000094],[-91.004180999999903,65.811371000000122],[-91.013900999999976,65.820540999999992],[-91.05471799999998,65.846649000000127],[-91.108337000000006,65.891373000000101],[-91.123046999999929,65.904709000000082],[-91.125823999999852,65.909714000000122],[-91.121384000000035,65.914993000000095],[-91.099730999999963,65.919982999999945],[-91.088057999999933,65.921097000000145],[-91.063889000000017,65.921097000000145],[-90.990279999999984,65.919982999999945],[-90.976943999999946,65.918045000000006],[-90.948607999999979,65.910812000000021],[-90.921386999999925,65.905258000000003],[-90.90834000000001,65.903595000000109],[-90.741942999999992,65.887772000000041],[-90.692489999999964,65.886108000000036],[-90.531676999999945,65.880539000000056],[-90.078063999999983,65.812485000000095],[-90.013900999999919,65.800262000000032],[-90,65.797400999999923],[-89.986938000000009,65.794708000000071],[-89.960006999999962,65.788879000000065],[-89.932220000000029,65.78137200000009],[-89.744995000000017,65.724700999999982],[-89.720275999999956,65.713042999999971],[-89.660278000000005,65.683318999999983],[-89.653335999999911,65.678863999999976],[-89.428328999999962,65.529434000000037],[-89.308883999999978,65.469437000000084],[-89.146118000000001,65.400543000000084],[-89.065551999999911,65.333054000000004],[-89.054442999999992,65.328873000000101],[-89.044448999999986,65.32777400000009],[-88.771118000000001,65.307754999999986],[-88.733886999999982,65.306090999999981],[-88.710281000000009,65.306090999999981],[-88.698607999999979,65.30693100000002],[-88.676940999999999,65.31053200000008],[-88.606948999999929,65.30693100000002],[-88.490279999999984,65.293320000000051],[-88.389174999999909,65.277205999999921],[-88.364715999999873,65.274994000000049],[-88.215012000000002,65.277205999999921],[-88.133330999999941,65.278320000000122],[-88.109725999999966,65.278046000000018],[-88.096664000000033,65.274994000000049],[-88.061660999999958,65.258881000000031],[-88.021117999999888,65.274704000000042],[-88.011123999999938,65.278320000000122],[-87.978058000000033,65.283599999999979],[-87.943603999999993,65.286102000000085],[-87.731383999999991,65.290267999999969],[-87.673049999999989,65.291366999999923],[-87.602218999999934,65.290542999999957],[-87.357773000000009,65.270827999999995],[-87.21055599999994,65.254165999999998],[-87.075012000000015,65.236648999999943],[-86.957779000000016,65.165817000000004],[-86.944992000000013,65.156936999999971],[-86.936935000000005,65.147766000000047],[-86.933318999999983,65.138046000000145],[-86.967498999999975,65.059417999999994],[-86.970275999999899,65.054428000000087],[-86.977492999999981,65.048874000000126],[-86.997771999999941,65.040816999999947],[-87.040557999999976,65.031097000000045],[-87.110001000000011,64.999145999999996],[-87.430283000000031,64.711928999999998],[-87.521666999999923,64.621094000000085],[-87.571944999999971,64.573607999999979],[-87.579178000000013,64.568054000000018],[-87.586120999999991,64.562759000000142],[-87.595550999999944,64.557205000000124],[-87.698043999999925,64.527206000000092],[-87.764419999999973,64.520904999999914],[-87.786391999999921,64.51998900000001],[-87.797225999999966,64.518051000000071],[-87.807219999999973,64.514434999999992],[-87.855270000000019,64.43942300000009],[-87.855835000000013,64.429428000000144],[-87.863616999999977,64.379700000000014],[-87.8663939999999,64.369705000000124],[-87.983886999999925,64.191086000000041],[-87.990829000000019,64.185805999999957],[-88.113327000000027,64.136108000000036],[-88.12332200000003,64.133605999999986],[-88.285552999999936,64.106369000000029],[-88.551666000000012,64.025543000000084],[-88.553878999999995,64.020538000000045],[-88.674437999999952,63.980269999999962],[-88.684432999999956,63.977486000000056],[-88.736663999999962,63.968323000000055],[-88.759444999999971,63.969437000000028],[-88.993880999999931,63.998604000000114],[-89.077788999999882,64.026093000000117],[-89.110000999999954,64.03804000000008],[-89.127212999999983,64.04664600000001],[-89.150833000000034,64.059417999999994],[-89.182770000000005,64.081375000000037],[-89.198043999999982,64.094711000000018],[-89.202224999999999,64.099426000000051],[-89.208617999999944,64.108871000000079],[-89.210555999999997,64.118317000000047],[-89.210555999999997,64.123306000000014],[-89.212783999999942,64.128036000000066],[-89.22084000000001,64.137207000000046],[-89.244720000000029,64.15498400000007],[-89.251113999999973,64.159424000000115],[-89.260833999999875,64.160538000000088],[-89.284164000000033,64.141937000000041],[-89.286391999999978,64.136658000000068],[-89.182495000000017,64.036652000000004],[-89.096664000000033,63.973877000000016],[-89.061661000000015,63.960823000000119],[-89.051101999999958,63.961936999999921],[-89.040833000000021,63.958602999999925],[-89.023620999999991,63.950272000000041],[-89.028609999999958,63.946098000000006],[-89.039443999999946,63.944991999999957],[-89.050551999999925,63.944991999999957],[-89.246657999999968,63.959717000000126],[-89.254729999999938,63.963051000000121],[-89.321395999999936,63.996658000000025],[-89.396117999999944,64.038589000000002],[-89.507232999999928,64.070540999999992],[-89.551101999999958,64.07748399999997],[-89.55860899999999,64.073883000000137],[-89.56082200000003,64.068878000000041],[-89.56527699999998,64.019149999999968],[-89.563323999999852,64.009430000000066],[-89.554442999999992,64.000274999999988],[-89.548049999999932,63.996101000000124],[-89.530838000000017,63.987770000000069],[-89.517775999999913,63.978874000000133],[-89.489990000000034,63.956657000000064],[-89.485549999999989,63.951934999999992],[-89.483321999999873,63.947211999999979],[-89.485549999999989,63.94221500000009],[-89.49722300000002,63.943046999999979],[-89.521117999999944,63.955826000000059],[-89.527495999999985,63.960274000000027],[-89.577224999999999,63.995544000000052],[-89.585555999999997,64.004439999999988],[-89.589995999999928,64.014160000000061],[-89.594161999999926,64.018600000000106],[-89.637787000000003,64.049423000000104],[-89.644164999999987,64.053864000000033],[-89.699722000000008,64.076385000000016],[-89.712219000000005,64.079437000000098],[-89.719161999999983,64.074707000000103],[-89.726943999999946,64.047484999999938],[-89.785552999999993,64.076935000000049],[-89.818068999999923,64.098602000000085],[-89.822509999999909,64.103317000000118],[-89.822783999999956,64.10803199999998],[-89.820557000000008,64.113312000000008],[-89.80972300000002,64.128860000000032],[-89.802215999999987,64.132476999999994],[-89.780563000000029,64.134430000000123],[-89.757507000000032,64.133605999999986],[-89.746947999999975,64.135544000000095],[-89.738051999999925,64.14027399999992],[-89.735824999999977,64.145263999999997],[-89.75111400000003,64.218048000000124],[-89.75556899999998,64.227478000000019],[-89.760009999999966,64.232208000000071],[-89.773055999999997,64.240814],[-89.784163999999919,64.244705000000067],[-89.794158999999922,64.241928000000144],[-89.801102000000014,64.237487999999928],[-89.805557000000022,64.227203000000031],[-89.803328999999962,64.222487999999998],[-89.803054999999972,64.20277400000009],[-89.81639100000001,64.148041000000092],[-89.823623999999995,64.144440000000031],[-89.845550999999944,64.142761000000007],[-89.879439999999988,64.142487000000074],[-89.892226999999991,64.145538000000101],[-89.909728999999913,64.158599999999922],[-89.922501000000011,64.161377000000016],[-89.967498999999918,64.161377000000016],[-89.986938000000009,64.159714000000122],[-90.124161000000015,64.128586000000098],[-90.118057000000022,64.125259000000142],[-90.104995999999971,64.121368000000075],[-90.05860899999999,64.109710999999947],[-89.950561999999991,64.086929000000055],[-89.946105999999986,64.057480000000055],[-89.904175000000009,64.015823000000012],[-89.866942999999992,63.98971599999993],[-89.841674999999896,63.983879000000002],[-89.831116000000009,63.979988000000105],[-89.824447999999961,63.97554800000006],[-89.820281999999963,63.971099999999922],[-89.813613999999973,63.946938000000046],[-89.813613999999973,63.93721000000005],[-89.815552000000025,63.931938000000116],[-89.821944999999971,63.926384000000098],[-89.828612999999962,63.921104000000014],[-89.838057999999933,63.917212999999947],[-89.938888999999961,63.909713999999951],[-89.951400999999976,63.912491000000045],[-89.989440999999999,63.92193600000013],[-89.998336999999992,63.926102000000014],[-89.995270000000005,63.929161000000022],[-89.974715999999944,63.933052000000089],[-89.964721999999995,63.935822000000087],[-89.955276000000026,63.939712999999983],[-89.948607999999979,63.945267000000001],[-89.946655000000021,63.950546000000145],[-89.946655000000021,63.960274000000027],[-89.946655000000021,63.965271000000087],[-89.94888299999991,63.969986000000119],[-89.955565999999976,63.9741590000001],[-89.968613000000005,63.978043000000127],[-90,63.984043000000042],[-90.18249499999996,64.0086060000001],[-90.194153000000028,64.009430000000066],[-90.249435000000005,64.007492000000127],[-90.271392999999989,64.006377999999927],[-90.279175000000009,64.00360100000006],[-90.275009000000011,63.999161000000015],[-90.262786999999889,63.997214999999926],[-90.227492999999981,63.994438000000059],[-90.214721999999881,63.990829000000019],[-90.196944999999914,63.982491000000095],[-90.113892000000021,63.930824000000086],[-89.975005999999951,63.825829000000056],[-89.966400000000021,63.816939999999988],[-89.964171999999962,63.811935000000119],[-89.964171999999962,63.80221599999993],[-89.966110000000015,63.79222100000004],[-89.96833799999996,63.782211000000132],[-89.972503999999958,63.776657000000114],[-89.981673999999998,63.773048000000131],[-90.057770000000005,63.744438000000059],[-90.089995999999928,63.698874999999987],[-90.148894999999982,63.629158000000075],[-90.156386999999938,63.626656000000025],[-90.205275999999913,63.61221299999994],[-90.236388999999917,63.607216000000051],[-90.258620999999891,63.607216000000051],[-90.429442999999992,63.615829000000019],[-90.461394999999982,63.640549000000078],[-90.468613000000005,63.652309000000002],[-90.488051999999982,63.672493000000088],[-90.501113999999973,63.676383999999985],[-90.611937999999952,63.70249200000012],[-90.623885999999914,63.704162999999994],[-90.634445000000028,63.703049000000021],[-90.64416499999993,63.700272000000098],[-90.701400999999976,63.662209000000075],[-90.699157999999954,63.657494000000042],[-90.686660999999958,63.654709000000139],[-90.677779999999927,63.654433999999981],[-90.655563000000029,63.654709000000139],[-90.623610999999983,63.657767999999976],[-90.613891999999908,63.660545000000013],[-90.60972599999991,63.665825000000098],[-90.610001000000011,63.675827000000083],[-90.602782999999988,63.679436000000067],[-90.590285999999992,63.676658999999972],[-90.55972300000002,63.659714000000008],[-90.555556999999965,63.65526600000004],[-90.553329000000019,63.650543000000084],[-90.541381999999942,63.617210000000057],[-90.541381999999942,63.61221299999994],[-90.545273000000009,63.606941000000006],[-90.551391999999964,63.601387000000045],[-90.56082200000003,63.597487999999998],[-90.571120999999948,63.595543000000021],[-90.733886999999925,63.573883000000023],[-90.828063999999983,63.561661000000072],[-90.84944200000001,63.559714999999983],[-90.930556999999965,63.564156000000082],[-90.942763999999954,63.566666000000112],[-90.978881999999999,63.576103000000046],[-90.989440999999943,63.579994000000113],[-91.035003999999958,63.5991590000001],[-91.137786999999889,63.630821000000026],[-91.158051,63.635551000000078],[-91.188599000000011,63.62943300000012],[-91.198883000000023,63.628601000000003],[-91.210281000000009,63.628326000000015],[-91.233321999999987,63.629990000000021],[-91.375823999999966,63.659157000000107],[-91.399733999999967,63.666664000000083],[-91.406386999999938,63.671104000000071],[-91.406661999999983,63.676102000000071],[-91.402785999999992,63.681381000000044],[-91.393616000000009,63.685265000000072],[-91.371384000000035,63.685546999999985],[-91.34973100000002,63.677772999999945],[-91.336945000000014,63.675270000000012],[-91.329453000000001,63.677772999999945],[-91.333892999999989,63.682495000000017],[-91.34056099999998,63.686652999999978],[-91.34944200000001,63.690826000000129],[-91.362503000000004,63.694435000000112],[-91.411666999999909,63.707214000000022],[-91.529174999999952,63.729987999999992],[-91.540558000000033,63.730820000000051],[-91.551392000000021,63.729713000000118],[-91.560821999999916,63.726653999999996],[-91.569457999999997,63.721930999999984],[-91.575561999999934,63.716385000000116],[-91.584166999999979,63.711380000000077],[-91.595550999999887,63.711380000000077],[-91.910552999999936,63.740546999999992],[-92.06639100000001,63.74193600000001],[-92.136123999999938,63.745544000000109],[-92.148620999999991,63.748047000000099],[-92.175003000000004,63.755271999999991],[-92.186110999999983,63.758888000000013],[-92.434433000000013,63.804993000000024],[-92.482772999999952,63.811935000000119],[-92.471664000000033,63.80832700000002],[-92.437774999999931,63.79222100000004],[-92.428328999999962,63.783051],[-92.425551999999982,63.778603000000032],[-92.422500999999954,63.748878000000104],[-92.415832999999964,63.744713000000104],[-92.406661999999926,63.740546999999992],[-92.395553999999947,63.736938000000009],[-92.382766999999944,63.734161000000086],[-92.348891999999921,63.733879000000059],[-92.306380999999931,63.738602000000014],[-92.263061999999934,63.741379000000109],[-92.251113999999973,63.740546999999992],[-92.148055999999997,63.716934000000094],[-92.103881999999942,63.701660000000004],[-92.101669000000015,63.696938000000102],[-92.105559999999969,63.691658000000018],[-92.204177999999956,63.638046000000088],[-92.252501999999993,63.623878000000047],[-92.262512000000015,63.62193300000007],[-92.385009999999909,63.592491000000109],[-92.48971599999993,63.567215000000033],[-92.493056999999965,63.540832999999964],[-92.480835000000013,63.527214000000072],[-92.429168999999945,63.546944000000053],[-92.336394999999868,63.556938000000059],[-92.279998999999975,63.556099000000131],[-92.20666499999993,63.606102000000078],[-92.202788999999882,63.611381999999935],[-92.193877999999927,63.615273000000002],[-92.165282999999988,63.624435000000119],[-91.971114999999998,63.679993000000138],[-91.830291999999929,63.712212000000022],[-91.820006999999976,63.714157],[-91.809432999999956,63.715271000000143],[-91.776107999999965,63.715828000000045],[-91.763335999999981,63.713325999999995],[-91.695266999999944,63.690544000000045],[-91.670837000000006,63.678047000000049],[-91.617492999999911,63.648880000000133],[-91.613051999999925,63.644440000000145],[-91.611388999999974,63.639160000000061],[-91.61250299999989,63.629158000000075],[-91.618056999999965,63.613608999999997],[-91.617217999999923,63.603882000000056],[-91.607498000000021,63.584991000000002],[-91.600829999999974,63.580551000000014],[-91.39805599999994,63.524994000000049],[-91.274170000000026,63.502495000000124],[-91.133056999999951,63.478043000000014],[-90.945540999999935,63.440269000000114],[-90.854720999999984,63.408600000000092],[-90.915557999999919,63.41054500000007],[-90.932770000000005,63.418602000000078],[-90.945540999999935,63.422493000000145],[-90.956954999999937,63.423325000000034],[-90.96833799999996,63.423050000000046],[-90.975006000000008,63.419441000000006],[-90.972777999999948,63.414711000000011],[-90.957503999999972,63.401382000000069],[-90.942214999999976,63.393051000000014],[-90.931380999999931,63.389160000000118],[-90.918883999999935,63.386383000000023],[-90.816665999999998,63.369156000000032],[-90.741942999999992,63.360825000000091],[-90.690825999999959,63.228324999999984],[-90.627486999999974,63.059433000000013],[-90.649169999999913,63.036385000000109],[-90.739990000000034,62.962212000000136],[-90.775832999999977,62.941933000000006],[-90.785004000000015,62.938041999999939],[-90.794998000000021,62.936104],[-90.825835999999924,62.933052000000089],[-90.847778000000005,62.932770000000005],[-90.870270000000005,62.934433000000126],[-90.929442999999992,62.944435000000112],[-90.940551999999968,62.945267000000001],[-91.017226999999934,62.946380999999974],[-91.038329999999917,62.944153000000028],[-91.048049999999989,62.94221500000009],[-91.173049999999989,62.908600000000035],[-91.18249499999996,62.905823000000112],[-91.190825999999959,62.900825999999995],[-91.196654999999964,62.895271000000093],[-91.200561999999934,62.88999200000012],[-91.199721999999895,62.870270000000062],[-91.207229999999981,62.8597180000001],[-91.213333000000034,62.854164000000083],[-91.356383999999991,62.788605000000018],[-91.366652999999928,62.787498000000085],[-91.440276999999867,62.782768000000033],[-91.46166999999997,62.782494000000099],[-91.579178000000013,62.799995000000081],[-91.840285999999935,62.826385000000073],[-91.990279999999984,62.84693900000002],[-92.087508999999898,62.818886000000077],[-92.214721999999995,62.824715000000083],[-92.223052999999993,62.828880000000083],[-92.236114999999927,62.832214000000079],[-92.339995999999985,62.843605000000025],[-92.361937999999952,62.844154000000003],[-92.382766999999944,62.841660000000047],[-92.392501999999922,62.839713999999958],[-92.402221999999995,62.837493999999992],[-92.420836999999949,62.831383000000073],[-92.438323999999966,62.823607999999979],[-92.455275999999969,62.814712999999983],[-92.459441999999967,62.810272000000055],[-92.458618000000001,62.800270000000069],[-92.455841000000021,62.79583000000008],[-92.451400999999919,62.791107000000068],[-92.333617999999944,62.709991000000116],[-92.232773000000009,62.673049999999989],[-92.188598999999954,62.659156999999993],[-92.178329000000019,62.65638000000007],[-92.067779999999971,62.651657000000057],[-92.034728999999857,62.65026899999998],[-91.971389999999928,62.653320000000008],[-91.948883000000023,62.651932000000102],[-91.925827000000027,62.644440000000145],[-91.908614999999998,62.636383000000023],[-91.882766999999944,62.624161000000015],[-91.880554000000018,62.619438000000059],[-91.883330999999998,62.604438999999957],[-91.885009999999909,62.5991590000001],[-91.890288999999996,62.588600000000042],[-91.941375999999991,62.534996000000035],[-91.948043999999982,62.531380000000013],[-92.053328999999962,62.526657],[-92.153060999999923,62.598045000000127],[-92.163329999999974,62.600829999999974],[-92.186110999999983,62.603324999999984],[-92.196655000000021,62.603049999999996],[-92.266112999999962,62.595268000000033],[-92.275009000000011,62.591377000000136],[-92.271399999999971,62.578049000000135],[-92.275557999999933,62.560272000000111],[-92.325561999999991,62.540833000000021],[-92.365004999999996,62.533332999999914],[-92.384734999999978,62.529990999999995],[-92.396118000000001,62.530823000000112],[-92.430831999999953,62.535827999999981],[-92.468062999999972,62.54444100000012],[-92.539169000000015,62.532493999999986],[-92.606110000000001,62.464996000000042],[-92.617767000000015,62.466660000000047],[-92.710006999999962,62.465827999999931],[-92.726105000000018,62.444153000000142],[-92.729720999999984,62.438599000000124],[-92.731109999999944,62.433601000000124],[-92.730834999999956,62.428604000000064],[-92.724716000000001,62.358604000000014],[-92.714721999999995,62.343880000000013],[-92.665833000000021,62.332771000000093],[-92.628052000000025,62.322220000000016],[-92.606658999999922,62.31471300000004],[-92.598052999999936,62.310821999999973],[-92.585006999999905,62.302216000000044],[-92.584441999999967,62.297493000000088],[-92.585830999999871,62.292220999999984],[-92.601668999999958,62.265549000000078],[-92.610275000000001,62.261382999999967],[-92.603995999999938,62.236324000000138],[-92.573058999999944,62.196098000000006],[-92.568619000000012,62.191657999999961],[-92.561934999999949,62.187492000000077],[-92.536666999999966,62.175551999999982],[-92.486388999999974,62.161377000000073],[-92.478057999999919,62.157493999999986],[-92.47001599999993,62.146614],[-92.477782999999988,62.143883000000017],[-92.48721299999994,62.144157000000121],[-92.592223999999987,62.154990999999995],[-92.603881999999942,62.156379999999956],[-92.625823999999909,62.191657999999961],[-92.64044199999995,62.209098999999924],[-92.638435000000015,62.212273000000039],[-92.638275000000021,62.215103000000056],[-92.639938000000029,62.217770000000087],[-92.700561999999991,62.265549000000078],[-92.741103999999893,62.28694200000001],[-92.747498000000007,62.289993000000038],[-92.845551,62.309433000000013],[-93.075561999999991,62.332214000000022],[-93.12222300000002,62.334991000000116],[-92.904174999999952,62.262215000000083],[-92.892226999999991,62.259720000000073],[-92.866393999999957,62.263054000000068],[-92.839995999999985,62.260276999999974],[-92.828612999999905,62.257217000000082],[-92.780288999999868,62.236938000000123],[-92.765288999999996,62.224434000000088],[-92.764724999999942,62.219437000000028],[-92.790282999999988,62.177489999999921],[-92.795836999999949,62.172768000000019],[-92.800963999999965,62.172905000000014],[-92.840285999999992,62.174438000000009],[-92.851943999999946,62.175827000000027],[-92.862503000000004,62.17943600000001],[-92.954453000000001,62.192764000000011],[-93.06806899999998,62.174995000000081],[-93.076674999999909,62.17193600000013],[-93.110000999999954,62.156654000000117],[-93.114440999999999,62.15415999999999],[-93.119720000000029,62.148330999999985],[-93.126937999999882,62.132492000000013],[-93.124160999999958,62.128044000000045],[-93.119445999999925,62.123604000000057],[-93.081389999999942,62.10443900000007],[-93.069167999999877,62.103607000000011],[-93.059722999999906,62.105826999999977],[-93.037506000000008,62.121658000000139],[-93.028885000000002,62.12471000000005],[-93.019164999999987,62.126099000000067],[-93.008057000000008,62.125549000000035],[-92.940552000000025,62.115547000000049],[-92.933060000000012,62.11360900000011],[-92.930557000000022,62.109160999999972],[-92.931380999999988,62.104164000000083],[-92.936935000000005,62.099159000000043],[-92.968338000000017,62.077217000000132],[-92.991104000000007,62.067772000000105],[-93.140839000000028,62.009720000000129],[-93.237212999999997,62.02693899999997],[-93.246384000000035,62.033333000000027],[-93.277495999999871,62.042770000000132],[-93.302779999999927,62.049438000000123],[-93.325286999999946,62.051384000000041],[-93.411391999999978,62.03138000000007],[-93.413054999999986,62.025551000000064],[-93.39416499999993,62.013610999999969],[-93.385559000000001,62.009995000000117],[-93.373610999999983,62.007500000000107],[-93.361937999999952,62.00610400000005],[-93.342223999999931,62.004997000000117],[-93.318893000000003,61.998047000000099],[-93.244445999999982,61.969437000000028],[-93.235549999999989,61.965545999999961],[-93.222228999999913,61.957496999999989],[-93.218338000000017,61.95249200000012],[-93.217223999999987,61.947769000000108],[-93.281951999999876,61.891380000000083],[-93.299728000000016,61.885826000000066],[-93.309157999999911,61.883606000000043],[-93.330565999999919,61.886383000000137],[-93.442489999999964,61.915268000000026],[-93.461670000000026,61.922493000000088],[-93.616104000000007,61.939986999999974],[-93.600280999999939,61.879158000000075],[-93.61721799999998,61.861938000000123],[-93.556945999999982,61.847771000000137],[-93.435821999999973,61.808883999999978],[-93.282776000000013,61.788887000000102],[-93.248610999999983,61.78472099999999],[-93.237777999999935,61.777214000000072],[-93.242492999999968,61.767493999999999],[-93.25556899999998,61.742493000000138],[-93.356948999999986,61.707214000000022],[-93.449431999999945,61.682213000000047],[-93.542769999999962,61.663321999999994],[-93.594161999999926,61.648048000000074],[-93.654998999999862,61.629158000000132],[-93.856658999999979,61.549164000000133],[-93.984726000000023,61.456100000000106],[-93.985275000000001,61.454163000000051],[-93.968613000000005,61.396660000000054],[-93.932495000000017,61.387214999999969],[-93.921935999999903,61.385269000000108],[-93.911666999999966,61.385826000000009],[-93.906386999999995,61.387497000000053],[-93.895003999999972,61.389160000000004],[-93.884734999999864,61.389717000000076],[-93.868056999999965,61.389160000000004],[-93.857498000000021,61.385551000000135],[-93.820281999999963,61.355826999999977],[-93.817504999999983,61.351386999999932],[-93.819167999999991,61.347214000000008],[-93.839447000000007,61.319443000000092],[-93.84445199999999,61.316101000000003],[-93.858046999999942,61.312767000000008],[-93.932220000000029,61.296661000000029],[-93.940552000000025,61.294998000000078],[-94.057219999999973,61.178329000000076],[-94.14805599999994,61.043610000000058],[-94.226943999999946,60.942764000000068],[-94.349166999999909,60.858603999999957],[-94.353333000000021,60.853607000000068],[-94.391112999999905,60.798882000000049],[-94.415282999999988,60.762215000000026],[-94.415008999999998,60.756660000000124],[-94.451674999999966,60.671104000000128],[-94.505004999999983,60.549995000000138],[-94.509444999999971,60.544159000000093],[-94.563048999999978,60.522217000000012],[-94.575835999999981,60.52027099999998],[-94.611389000000031,60.52777100000003],[-94.67332499999992,60.522490999999945],[-94.671660999999915,60.466103000000032],[-94.629439999999988,60.41832700000009],[-94.626388999999961,60.413605000000018],[-94.614715999999873,60.38999200000012],[-94.613891999999908,60.380547000000035],[-94.615004999999996,60.375266999999951],[-94.620834000000002,60.363883999999985],[-94.681945999999925,60.224158999999929],[-94.673614999999927,60.191101000000117],[-94.704726999999934,60.091933999999981],[-94.707503999999972,60.083603000000096],[-94.711394999999925,60.078330999999991],[-94.714721999999938,60.075272000000041],[-94.728333000000021,60.071380999999974],[-94.746658000000025,60.069992000000127],[-94.752791999999943,60.06860400000005],[-94.766402999999912,60.061378000000104],[-94.771117999999944,60.055549999999982],[-94.803878999999995,60.008330999999998],[-94.803878999999995,60.003609000000097],[-94.800430000000006,59.999565000000132],[-94.819167999999991,59.964714000000129],[-94.821670999999924,59.959160000000111],[-94.822509999999909,59.954162999999994],[-94.820556999999951,59.944434999999999],[-94.803329000000019,59.877768999999944],[-94.803329000000019,59.711104999999975],[-94.819167999999991,59.63638300000008],[-94.788605000000018,59.51527400000009],[-94.735275000000001,59.426384000000098],[-94.680557000000022,59.357215999999994],[-94.715285999999992,59.323326000000066],[-94.770003999999972,59.29833200000013],[-94.775009000000011,59.29332700000009],[-94.781386999999995,59.263611000000026],[-94.782227000000034,59.258331000000112],[-94.789718999999991,59.092216000000064],[-94.681670999999994,58.975822000000107],[-94.679992999999968,58.97137500000008],[-94.676392000000021,58.93443300000007],[-94.597777999999948,58.878326000000072],[-94.586394999999868,58.874992000000077],[-94.486938000000009,58.815269000000058],[-94.482223999999974,58.811104000000057],[-94.477782999999931,58.806656000000089],[-94.474716000000001,58.802216000000044],[-94.457503999999915,58.774162000000047],[-94.453338999999914,58.765274000000034],[-94.452788999999882,58.759720000000016],[-94.453338999999914,58.750549000000092],[-94.448607999999979,58.736382000000106],[-94.446105999999986,58.731658999999979],[-94.43720999999988,58.72304500000007],[-94.421660999999972,58.716385000000059],[-94.410552999999993,58.714157000000114],[-94.361388999999974,58.712769000000037],[-94.343613000000005,58.715546000000074],[-94.326950000000011,58.721656999999993],[-94.291107000000011,58.743606999999997],[-94.279175000000009,58.771103000000039],[-94.228881999999999,58.784996000000092],[-94.234725999999966,58.714714000000015],[-94.252228000000002,58.649994000000049],[-94.285277999999892,58.512496999999996],[-94.287216000000001,58.438041999999996],[-94.289168999999958,58.427773000000116],[-94.291672000000005,58.422218000000044],[-94.296660999999972,58.415825000000098],[-94.326400999999976,58.349159000000043],[-94.348617999999988,58.2866590000001],[-94.351668999999902,58.276656999999943],[-94.363892000000021,58.22387700000013],[-94.363327000000027,58.218880000000013],[-94.360275000000001,58.220543000000134],[-94.3558349999999,58.226097000000095],[-94.259445000000028,58.351386999999988],[-94.231110000000001,58.390549000000021],[-94.228606999999954,58.396103000000039],[-94.226943999999946,58.406380000000013],[-94.231110000000001,58.430824000000143],[-94.238891999999964,58.494155999999975],[-94.24610899999999,58.576385000000016],[-94.24610899999999,58.586654999999951],[-94.245269999999948,58.59165999999999],[-94.242766999999958,58.597214000000008],[-94.143889999999942,58.763610999999912],[-94.113892000000021,58.762215000000083],[-93.995833999999945,58.760826000000066],[-93.949158000000011,58.76249700000011],[-93.843886999999938,58.767769000000044],[-93.798614999999927,58.773604999999918],[-93.728058000000033,58.783882000000119],[-93.709732000000031,58.785827999999981],[-93.673049999999932,58.780823000000112],[-93.575561999999991,58.763885000000016],[-93.475554999999986,58.732491000000039],[-93.350554999999929,58.74582700000002],[-93.343886999999881,58.750832000000059],[-93.327788999999996,58.757217000000082],[-93.319167999999991,58.758606000000043],[-93.236664000000019,58.766936999999984],[-93.216659999999933,58.764160000000061],[-93.196380999999974,58.758331000000055],[-93.155562999999972,58.740273000000002],[-93.152221999999938,58.737770000000012],[-93.141112999999962,58.691933000000006],[-93.139724999999885,58.653876999999966],[-93.126937999999882,58.532494000000042],[-93.126099000000011,58.527771000000087],[-93.118057000000022,58.508888000000013],[-93.095276000000013,58.467209000000082],[-93.035277999999948,58.37082700000002],[-92.964721999999938,58.261108000000036],[-92.93110699999994,58.21166199999999],[-92.868880999999931,58.143050999999957],[-92.811660999999901,58.071663000000058],[-92.803329000000019,58.057213000000104],[-92.799987999999985,58.042221000000097],[-92.805557000000022,58.011940000000038],[-92.805557000000022,58.00638600000002],[-92.80471799999998,57.997490000000084],[-92.795273000000009,57.96888000000007],[-92.753615999999965,57.85083000000003],[-92.724716000000001,57.801383999999985],[-92.672501000000011,57.733047000000056],[-92.621108999999876,57.670547000000113],[-92.450835999999981,57.442490000000134],[-92.446380999999974,57.433051999999918],[-92.418883999999991,57.337493999999992],[-92.418334999999956,57.332497000000103],[-92.418883999999991,57.323326000000122],[-92.427215999999987,57.263053999999954],[-92.430283000000031,57.252220000000079],[-92.441101000000003,57.23054500000012],[-92.549437999999896,57.08554799999996],[-92.563889000000017,57.068885999999964],[-92.576400999999976,57.056938000000116],[-92.695267000000001,56.961662000000047],[-92.708617999999888,56.951660000000118],[-92.715835999999967,56.947487000000137],[-92.723327999999924,56.944435000000055],[-92.73832699999997,56.94110100000006],[-92.771392999999932,56.93804200000011],[-92.837219000000005,56.924438000000009],[-92.868056999999965,56.91415399999994],[-92.877212999999927,56.90915700000005],[-92.876098999999954,56.907494000000099],[-92.868332000000009,56.90665400000006],[-92.850554999999929,56.907211000000132],[-92.831680000000006,56.908599999999979],[-92.790557999999976,56.913879000000122],[-92.756957999999997,56.918602000000135],[-92.731383999999991,56.922492999999974],[-92.691101000000003,56.93360100000001],[-92.660277999999948,56.945266999999944],[-92.652221999999881,56.949158000000011],[-92.61721799999998,56.96888000000007],[-92.610000999999954,56.974709000000075],[-92.589171999999905,56.986382000000106],[-92.552779999999984,57.004714999999976],[-92.514450000000011,57.023604999999918],[-92.492217999999923,57.032493999999986],[-92.475280999999995,57.037498000000141],[-92.443054000000018,57.044715999999994],[-92.40055799999999,57.052216000000044],[-92.376098999999954,57.056381000000044],[-92.253615999999965,57.065544000000045],[-92.235549999999989,57.066101000000117],[-92.226105000000018,57.065544000000045],[-92.217223999999987,57.063049000000035],[-92.212218999999948,57.058043999999995],[-92.218932999999993,57.052779999999984],[-92.337509000000011,56.981377000000066],[-92.344727000000034,56.977485999999999],[-92.352218999999991,56.974159000000043],[-92.368332000000009,56.969711000000075],[-92.385558999999944,56.967209000000025],[-92.394454999999994,56.966933999999981],[-92.418610000000001,56.961937000000091],[-92.432220000000029,56.955826000000002],[-92.46945199999999,56.934989999999971],[-92.466399999999965,56.932495000000131],[-92.375,56.949714999999912],[-92.303054999999972,56.967491000000109],[-92.287215999999944,56.974434000000088],[-92.281113000000005,56.978874000000076],[-92.268616000000009,56.990829000000019],[-92.261947999999961,56.99582700000002],[-92.235275000000001,57.012771999999984],[-92.220276000000013,57.018883000000017],[-92.204453000000001,57.02416199999999],[-92.180282999999974,57.030823000000112],[-92.155272999999909,57.036658999999986],[-92.146666999999979,57.037772999999959],[-92.129165999999941,57.03943600000008],[-92.093062999999972,57.040833000000021],[-92.057769999999891,57.043884000000048],[-92.031677000000002,57.046660999999972],[-91.987503000000004,57.052489999999977],[-91.952224999999999,57.05721299999999],[-91.828888000000006,57.087211999999965],[-91.779998999999975,57.100273000000129],[-91.241104000000007,57.222214000000008],[-91.15583799999996,57.239989999999977],[-91.08944699999995,57.251106000000107],[-91.05471799999998,57.256104000000107],[-91.036391999999978,57.258049000000085],[-91.001677999999913,57.26138300000008],[-90.992767000000015,57.26138300000008],[-90.834166999999923,57.257217000000026],[-90.81527699999998,57.255829000000119],[-90.795546999999999,57.24971800000003],[-90.779175000000009,57.243324000000143],[-90.758895999999993,57.237769999999955],[-90.738051999999925,57.232490999999982],[-90.71945199999999,57.228043000000014],[-90.709441999999967,57.226379000000009],[-90.563323999999909,57.212212000000079],[-90.451110999999969,57.193878000000097],[-90.408614999999998,57.181664000000069],[-90.391678000000013,57.176102000000128],[-90.387786999999946,57.171378999999945],[-90.310821999999973,57.134995000000117],[-90.225554999999929,57.104439000000013],[-90.025009000000011,57.031380000000013],[-90.005004999999983,57.01915699999995],[-90,57.016369000000054],[-89.990554999999972,57.011107999999922],[-89.970276000000013,57.004166000000055],[-89.833068999999966,56.978324999999984],[-89.715285999999992,56.957214000000079],[-89.521392999999932,56.92943600000001],[-89.439163000000008,56.923881999999992],[-89.132941999999957,56.864852999999982],[-89.06806899999998,56.852219000000048],[-89.015288999999939,56.84777100000008],[-88.950287000000003,56.843048000000124],[-88.94261199999994,56.844269000000054],[-88.815001999999993,56.824440000000038],[-88.742767000000015,56.764442000000145],[-88.67193599999996,56.709435000000042],[-88.654723999999931,56.696380999999974],[-88.639998999999989,56.688599000000067],[-88.631377999999984,56.68471500000004],[-88.584166999999923,56.670546999999999],[-88.440552000000025,56.603607000000011],[-88.415008999999998,56.58638000000002],[-88.365829000000019,56.561661000000015],[-88.324172999999973,56.542770000000019],[-88.218886999999995,56.504440000000045],[-88.149444999999957,56.486938000000009],[-88.103057999999976,56.476097000000095],[-88.069732999999928,56.468880000000013],[-88.048889000000031,56.465546000000018],[-88.028885000000002,56.459991000000116],[-88.018616000000009,56.456100000000049],[-87.982772999999952,56.441658000000075],[-87.975554999999929,56.437491999999963],[-87.841110000000015,56.315269000000001],[-87.723891999999978,56.203880000000083],[-87.719161999999926,56.198875000000044],[-87.715011999999945,56.189987000000031],[-87.71556099999998,56.169716000000051],[-87.713897999999972,56.164993000000095],[-87.708053999999947,56.156096999999988],[-87.702788999999996,56.151931999999988],[-87.548614999999927,56.049995000000138],[-87.478881999999999,56.029160000000047],[-87.368880999999988,56.000832000000059],[-87.351943999999889,55.992767000000129],[-87.345276000000013,55.988602000000128],[-87.343613000000005,55.983879000000002],[-87.348343,55.973320000000115],[-87.355270000000019,55.962769000000037],[-87.198333999999988,55.940269000000001],[-87.110001000000011,55.92943600000001],[-87.091675000000009,55.927489999999921],[-87.057220000000029,55.926940999999999],[-87.031676999999945,55.929718000000094],[-86.996947999999975,55.931663999999955],[-86.979445999999939,55.931663999999955],[-86.970000999999968,55.929718000000094],[-86.881942999999922,55.907211000000018],[-86.837783999999999,55.891380000000026],[-86.616942999999992,55.838882000000012],[-86.572783999999956,55.83027600000014],[-86.544448999999986,55.824440000000038],[-86.486663999999962,55.811378000000047],[-86.477782999999931,55.808884000000091],[-86.448607999999979,55.799995000000024],[-86.398620999999991,55.784164000000033],[-86.372771999999998,55.774993999999992],[-86.346114999999998,55.763054000000068],[-86.332779000000016,55.754715000000033],[-86.321944999999971,55.745544000000109],[-86.31527699999998,55.741104000000064],[-86.277221999999995,55.728873999999962],[-86.267776000000026,55.726936000000023],[-85.86721799999998,55.657493999999986],[-85.740829000000019,55.638046000000088],[-85.731673999999998,55.636940000000038],[-85.71444699999995,55.631660000000011],[-85.569457999999941,55.55860100000001],[-85.556655999999975,55.550270000000069],[-85.532227000000034,55.528045999999961],[-85.525833000000034,55.51888299999996],[-85.516662999999994,55.500000000000057],[-85.515015000000005,55.495270000000062],[-85.515288999999996,55.490273000000116],[-85.509170999999981,55.481102000000021],[-85.499435000000005,55.472214000000008],[-85.474166999999909,55.454711999999972],[-85.393340999999964,55.408881999999949],[-85.383620999999948,55.404991000000109],[-85.272232000000031,55.374709999999993],[-85.234726000000023,55.364715999999987],[-85.224716000000001,55.364159000000086],[-85.208617999999944,55.365273000000059],[-85.182219999999973,55.365273000000059],[-85.164444000000003,55.361664000000076],[-85.146118000000001,55.354996000000085],[-85.128875999999991,55.346382000000006],[-85.123885999999857,55.341934000000037],[-85.121933000000013,55.337769000000037],[-85.116652999999928,55.323050999999964],[-85.116394000000014,55.313606000000107],[-85.118331999999953,55.308601000000067],[-85.121933000000013,55.303322000000094],[-85.129165999999998,55.297775000000115],[-85.144164999999987,55.290276000000119],[-85.215285999999935,55.268600000000049],[-85.275283999999999,55.216660000000047],[-85.398055999999997,55.10083000000003],[-85.399993999999936,55.095824999999991],[-85.397506999999962,55.090546000000018],[-85.383620999999948,55.06749700000006],[-85.398055999999997,55.0472180000001],[-85.419448999999986,55.010826000000122],[-85.425003000000004,55.000274999999988],[-85.425003000000004,54.995544000000052],[-85.423889000000031,54.990546999999992],[-85.414443999999946,54.991104000000064],[-85.407500999999968,54.993324000000086],[-85.400283999999942,54.997772000000055],[-85.386123999999938,55.008049000000028],[-85.370543999999938,55.024437000000091],[-85.366942999999992,55.029716000000064],[-85.36250299999989,55.04055000000011],[-85.347778000000005,55.080826000000116],[-85.33555599999994,55.101661999999976],[-85.318344000000025,55.127486999999974],[-85.313048999999978,55.132767000000001],[-85.220275999999956,55.224434000000088],[-85.194153000000028,55.244155999999919],[-85.17971799999998,55.253608999999926],[-85.156113000000005,55.264160000000061],[-85.139998999999989,55.270270999999923],[-85.116652999999928,55.276657000000057],[-85.06806899999998,55.287498000000141],[-85.043883999999878,55.292770000000075],[-85.001952999999958,55.296660999999972],[-84.974715999999944,55.295830000000137],[-84.869445999999982,55.279716000000008],[-84.75140399999998,55.256103999999993],[-84.723617999999931,55.249718000000087],[-84.712783999999942,55.247771999999998],[-84.688048999999921,55.245270000000119],[-84.635559000000001,55.24221799999998],[-84.599166999999909,55.241661000000079],[-84.566390999999953,55.244155999999919],[-84.541381999999999,55.247490000000084],[-84.444716999999855,55.267769000000044],[-84.428878999999995,55.273048000000017],[-84.388610999999969,55.282493999999986],[-84.322783999999956,55.289992999999981],[-84.206954999999937,55.295546999999999],[-84.198607999999979,55.295273000000066],[-84.189437999999996,55.294159000000093],[-84.170837000000006,55.283051000000057],[-84.159438999999963,55.278328000000101],[-84.149170000000026,55.275551000000007],[-84.12222300000002,55.272217000000012],[-84.113892000000021,55.271934999999928],[-84.092223999999987,55.271660000000111],[-84.076110999999969,55.276099999999929],[-84.049987999999928,55.286110000000065],[-84.006393000000003,55.301383999999928],[-83.968886999999881,55.313881000000094],[-83.951675000000023,55.317497000000003],[-83.93249499999996,55.319443000000035],[-83.920273000000009,55.319160000000068],[-83.897506999999905,55.316940000000102],[-83.658386000000007,55.237324000000058],[-83.65439600000002,55.235493000000076],[-83.651732999999922,55.232985999999983],[-83.570281999999963,55.18804200000011],[-83.567229999999938,55.183052000000032],[-83.570007000000032,55.177773000000059],[-83.58555599999994,55.166100000000029],[-83.591674999999896,55.154434000000037],[-83.589721999999938,55.149719000000005],[-83.574447999999961,55.138045999999974],[-83.561935000000005,55.130820999999969],[-83.556655999999919,55.134163000000058],[-83.556655999999919,55.17943600000001],[-83.558608999999933,55.184989999999971],[-83.579505999999867,55.221157000000005],[-83.588057999999933,55.233330000000024],[-83.593886999999938,55.236938000000123],[-83.60082999999986,55.239990000000034],[-83.620833999999945,55.242767000000129],[-83.643889999999999,55.242767000000129],[-83.654448999999943,55.243881000000101],[-83.670837000000006,55.248604000000057],[-83.684432999999956,55.254439999999988],[-83.696105999999986,55.261664999999994],[-83.706116000000009,55.269714000000022],[-83.708892999999989,55.274437000000034],[-83.706116000000009,55.279990999999995],[-83.698607999999979,55.283051000000057],[-83.688888999999961,55.281937000000084],[-83.57417299999986,55.262215000000026],[-83.533324999999934,55.250549000000092],[-83.519454999999937,55.243881000000101],[-83.498885999999914,55.235549999999989],[-83.489440999999943,55.233879000000115],[-83.179717999999866,55.197211999999979],[-83.168609999999944,55.197487000000137],[-83.150283999999942,55.200271999999984],[-83.128051999999968,55.207497000000046],[-83.120270000000005,55.210823000000119],[-83.089721999999938,55.226654000000053],[-83.074447999999961,55.231658999999922],[-83.037505999999951,55.238327000000083],[-83.029174999999952,55.238883999999985],[-83.006392999999946,55.238602000000128],[-82.985001000000011,55.236382000000106],[-82.964721999999995,55.233604000000128],[-82.948607999999865,55.228874000000076],[-82.941665999999941,55.225821999999994],[-82.930556999999965,55.218322999999998],[-82.91332999999986,55.201385000000073],[-82.906113000000005,55.191932999999949],[-82.896956999999986,55.177215999999987],[-82.874435000000005,55.154434000000037],[-82.838333000000034,55.146660000000054],[-82.809998000000007,55.142220000000009],[-82.786117999999988,55.141106000000036],[-82.775283999999942,55.14137999999997],[-82.76556399999987,55.142493999999942],[-82.73971599999993,55.147491000000059],[-82.708618000000001,55.156380000000127],[-82.700835999999981,55.159714000000122],[-82.669723999999974,55.168052999999986],[-82.661117999999931,55.169716000000108],[-82.650283999999886,55.169716000000108],[-82.508346999999901,55.152771000000143],[-82.449432000000002,55.133049000000085],[-82.412506000000008,55.112770000000125],[-82.40972899999997,55.108046999999999],[-82.400833000000034,55.082771000000093],[-82.33555599999994,55.071014000000048],[-82.307495000000017,55.115829000000133],[-82.308043999999995,55.121933000000126],[-82.309432999999899,55.127486999999974],[-82.3125,55.132492000000013],[-82.323623999999995,55.139992000000063],[-82.337218999999948,55.146102999999982],[-82.345276000000013,55.148331000000098],[-82.355559999999969,55.162491000000045],[-82.349990999999875,55.166382000000112],[-82.34056099999998,55.164711000000011],[-82.333618000000001,55.1616590000001],[-82.307769999999948,55.148880000000077],[-82.25418099999996,55.111382000000049],[-82.245833999999945,55.102776000000119],[-82.244995000000017,55.09027100000003],[-82.246947999999861,55.084160000000111],[-82.253341999999975,55.073608000000092],[-82.25778200000002,55.06888600000002],[-82.273620999999935,55.05721299999999],[-82.282227000000034,55.048049999999989],[-82.285277999999948,55.042770000000132],[-82.287216000000001,55.036659000000043],[-82.287216000000001,55.030273000000136],[-82.270844000000011,54.931381000000044],[-82.267226999999991,54.920273000000009],[-82.255279999999914,54.894157000000121],[-82.246947999999861,54.879433000000063],[-82.241378999999938,54.874991999999963],[-82.231948999999986,54.873877999999991],[-82.221114999999998,54.787498000000085],[-82.320846999999958,54.571380999999974],[-82.403885000000002,54.410820000000115],[-82.419158999999979,54.384163000000058],[-82.431670999999938,54.370270000000005],[-82.436935000000005,54.366385999999977],[-82.441101000000003,54.361664000000076],[-82.441665999999941,54.330826000000116],[-82.434158000000025,54.209435000000042],[-82.421660999999972,54.197211999999979],[-82.389998999999989,54.16832700000009],[-82.362777999999878,54.143607999999972],[-82.301392000000021,54.103050000000053],[-82.283889999999985,54.092491000000052],[-82.253341999999975,54.076102999999989],[-82.248046999999929,54.072220000000016],[-82.243880999999931,54.068054000000132],[-82.238327000000027,54.057495000000074],[-82.160278000000005,53.898880000000133],[-82.131942999999978,53.817772000000105],[-82.130553999999961,53.793052999999986],[-82.129715000000033,53.774436999999978],[-82.130553999999961,53.767493999999999],[-82.136672999999917,53.749161000000129],[-82.148894999999982,53.727768000000026],[-82.189986999999917,53.674164000000019],[-82.194152999999915,53.669441000000006],[-82.203063999999927,53.653320000000008],[-82.208344000000011,53.641936999999984],[-82.212783999999999,53.622765000000015],[-82.21665999999999,53.603882000000112],[-82.211944999999957,53.536110000000065],[-82.208618000000001,53.524994000000106],[-82.198883000000023,53.504714999999976],[-82.190552000000025,53.489716000000101],[-82.172500999999954,53.460548000000074],[-82.165558000000033,53.451385000000073],[-82.158614999999998,53.442215000000033],[-82.147781000000009,53.421661000000086],[-82.138061999999991,53.38888500000013],[-82.125823999999966,53.344154000000117],[-82.119445999999982,53.315826000000129],[-82.115829000000019,53.298332000000073],[-82.113891999999908,53.286659000000043],[-82.113891999999908,53.280273000000136],[-82.114715999999873,53.273604999999975],[-82.117766999999958,53.268050999999957],[-82.121932999999956,53.263610999999969],[-82.141387999999949,53.254715000000033],[-82.21055599999994,53.220268000000033],[-82.248336999999935,53.193877999999984],[-82.269454999999937,53.163879000000009],[-82.27555799999999,53.153320000000122],[-82.279448999999943,53.141106000000093],[-82.300277999999935,53.060271999999998],[-82.301392000000021,53.05332199999998],[-82.301666000000012,53.041663999999969],[-82.296660999999972,53.018599999999992],[-82.273894999999982,52.956383000000017],[-82.261397999999986,52.937210000000107],[-82.257506999999976,52.932770000000062],[-82.235824999999977,52.924164000000133],[-82.196380999999974,52.913321999999937],[-82.136123999999995,52.894714000000079],[-82.120543999999995,52.889717000000132],[-82.101669000000015,52.879990000000021],[-82.050551999999982,52.84304800000001],[-82.025833000000034,52.823883000000023],[-82.001113999999973,52.804710000000114],[-81.977782999999931,52.784996000000035],[-81.973617999999931,52.780548000000067],[-81.951401000000033,52.736938000000066],[-81.733611999999994,52.549995000000138],[-81.719161999999983,52.538330000000087],[-81.714172000000019,52.534721000000047],[-81.697494999999947,52.524162000000047],[-81.639175000000023,52.490547000000106],[-81.621384000000035,52.480819999999994],[-81.607497999999964,52.475265999999976],[-81.577224999999999,52.465271000000087],[-81.569457999999941,52.462212000000136],[-81.558043999999938,52.456099999999935],[-81.554168999999888,52.451660000000118],[-81.551391999999964,52.446655000000078],[-81.549987999999985,52.44110100000006],[-81.542496000000028,52.338882000000012],[-81.56138599999997,52.316383000000087],[-81.663054999999986,52.292220999999984],[-81.822509999999909,52.254440000000045],[-81.850829999999917,52.244995000000131],[-81.863051999999982,52.238884000000041],[-81.865829000000019,52.23333000000008],[-81.883620999999948,52.187492000000134],[-81.874160999999901,52.188324000000023],[-81.841949,52.194992000000013],[-81.826950000000011,52.19887499999993],[-81.805557000000022,52.206099999999992],[-81.795546999999999,52.213882000000126],[-81.792495999999971,52.21915400000006],[-81.788605000000018,52.223877000000073],[-81.779448999999943,52.232208000000128],[-81.765015000000005,52.237770000000069],[-81.758346999999958,52.23943300000002],[-81.74888599999997,52.240273000000059],[-81.718886999999881,52.240829000000076],[-81.554992999999854,52.237495000000081],[-81.521392999999932,52.235825000000091],[-81.50167799999997,52.23333000000008],[-81.478881999999942,52.225822000000051],[-81.472778000000005,52.221930999999984],[-81.460006999999962,52.210274000000027],[-81.443603999999937,52.192764000000068],[-81.440552000000025,52.188599000000067],[-81.434432999999956,52.179161000000022],[-81.431670999999994,52.174164000000133],[-81.430557000000022,52.168053000000043],[-81.418335000000013,52.149437000000034],[-81.414443999999946,52.144996999999989],[-81.405838000000017,52.136940000000038],[-81.365279999999984,52.107216000000051],[-81.352782999999988,52.101105000000132],[-81.337783999999999,52.096100000000092],[-81.310546999999985,52.091102999999976],[-81.290832999999964,52.088599999999985],[-81.264724999999999,52.08277099999998],[-81.212509000000011,52.065543999999989],[-81.186110999999869,52.053604000000064],[-81.167496000000028,52.044158999999979],[-81.118057000000022,52.045547000000113],[-80.994445999999925,52.01138300000008],[-80.988327000000027,52.008049000000085],[-80.978333000000021,52.000832000000003],[-80.97444200000001,51.996384000000035],[-80.973052999999936,51.990829000000133],[-80.972778000000005,51.978325000000098],[-80.929992999999968,51.924163999999962],[-80.918609999999944,51.910271000000137],[-80.899993999999936,51.89527099999998],[-80.894729999999981,51.891663000000051],[-80.80972300000002,51.857498000000135],[-80.698607999999979,51.794715999999937],[-80.615279999999927,51.730270000000132],[-80.610275000000001,51.726379000000065],[-80.589171999999962,51.699715000000083],[-80.589171999999962,51.693321000000026],[-80.590285999999878,51.686653000000092],[-80.589995999999928,51.674164000000019],[-80.586120999999878,51.663605000000018],[-80.578887999999949,51.648605000000032],[-80.571395999999993,51.633605999999986],[-80.515015000000005,51.524437000000034],[-80.507506999999976,51.515830999999935],[-80.497771999999998,51.508331000000055],[-80.462218999999891,51.488601999999958],[-80.457229999999925,51.484993000000145],[-80.442489999999964,51.473602000000028],[-80.438889000000017,51.46915400000006],[-80.436385999999857,51.464157000000114],[-80.434998000000007,51.458602999999925],[-80.424438000000009,51.36360899999994],[-80.426392000000021,51.358887000000038],[-80.430557000000022,51.354164000000083],[-80.442489999999964,51.34804500000007],[-80.471664000000033,51.339714000000129],[-80.502791999999943,51.331940000000145],[-80.540558000000033,51.323326000000066],[-80.568619000000012,51.314156000000025],[-80.652495999999985,51.278327999999988],[-80.691939999999988,51.247490000000028],[-80.706954999999937,51.235550000000103],[-80.831680000000006,51.155822999999941],[-80.952498999999989,51.079720000000009],[-80.959441999999967,51.077492000000063],[-80.965285999999992,51.074440000000095],[-80.981110000000001,51.06360600000005],[-80.994994999999903,51.051384000000098],[-81.004181000000017,51.043052999999986],[-81.012222000000008,51.033882000000062],[-81.015015000000005,51.028328000000045],[-81.005279999999914,51.028603000000089],[-80.928054999999915,51.04583000000008],[-80.888335999999924,51.082771000000037],[-80.875274999999988,51.103324999999984],[-80.862212999999883,51.116104000000007],[-80.850280999999995,51.122489999999971],[-80.835280999999952,51.126938000000109],[-80.820557000000008,51.130272000000105],[-80.793610000000001,51.132767000000115],[-80.765014999999948,51.133606000000043],[-80.748046999999985,51.136658000000011],[-80.740829000000019,51.138885000000073],[-80.694442999999978,51.156097000000045],[-80.688599000000011,51.159157000000107],[-80.610000999999954,51.214157],[-80.567779999999971,51.258331000000112],[-80.562774999999988,51.262214999999969],[-80.541381999999999,51.276657000000114],[-80.530563000000029,51.283606999999961],[-80.512512000000015,51.292769999999962],[-80.480285999999865,51.307213000000047],[-80.414444000000003,51.332497000000046],[-80.400283999999886,51.337212000000079],[-80.392226999999991,51.338599999999985],[-80.371658000000025,51.336655000000007],[-80.330291999999986,51.326385000000073],[-80.219727000000034,51.301659000000029],[-80.190551999999968,51.297493000000145],[-80.129989999999907,51.297775000000001],[-80.120270000000005,51.296387000000095],[-80.016952999999944,51.263054000000125],[-79.996383999999921,51.25471500000009],[-79.800277999999992,51.156097000000045],[-79.788054999999929,51.149719000000118],[-79.741104000000007,51.123604000000114],[-79.736389000000031,51.119713000000047],[-79.729171999999949,51.110825000000034],[-79.716515000000015,51.081715000000031],[-79.685103999999967,51.045361000000014],[-79.612777999999992,51.008049000000085],[-79.537612999999908,50.958397000000048],[-79.519729999999981,50.929993000000024],[-79.516113000000018,50.926384000000041],[-79.466109999999958,50.889434999999935],[-79.450561999999877,50.87860100000006],[-79.438599000000011,50.872214999999983],[-79.415008999999941,50.846939000000134],[-79.411391999999978,50.842490999999995],[-79.352782999999931,50.748329000000069],[-79.350280999999939,50.736938000000123],[-79.348052999999993,50.731934000000138],[-79.343612999999891,50.728324999999984],[-79.337509000000011,50.724990999999989],[-79.332229999999981,50.723877000000016],[-79.330001999999922,50.758331000000055],[-79.330001999999922,50.764442000000088],[-79.332229999999981,50.775826000000052],[-79.420836999999949,50.879715000000033],[-79.439986999999917,50.894997000000103],[-79.464721999999995,50.913321999999994],[-79.515015000000005,50.95665699999995],[-79.537353999999993,50.983765000000062],[-79.571121000000005,51.00277699999998],[-79.660004000000015,51.045273000000009],[-79.673049999999876,51.050827000000027],[-79.678054999999915,51.054710000000114],[-79.698333999999932,51.075554000000068],[-79.705276000000026,51.084435000000042],[-79.749435000000005,51.168326999999977],[-79.751952999999958,51.178878999999995],[-79.752227999999889,51.184433000000013],[-79.751113999999973,51.197487000000081],[-79.745543999999995,51.208885000000066],[-79.742492999999968,51.214157],[-79.720551,51.243607000000054],[-79.703887999999949,51.261665000000107],[-79.699431999999945,51.266937000000041],[-79.688888999999961,51.281937000000028],[-79.682495000000017,51.292496000000028],[-79.680556999999908,51.298050000000046],[-79.679442999999992,51.304710000000057],[-79.668609999999944,51.398605000000089],[-79.593886999999938,51.449158000000068],[-79.581679999999949,51.455268999999987],[-79.574721999999895,51.457497000000103],[-79.547103999999877,51.460129000000109],[-79.533614999999941,51.50499700000006],[-79.474166999999966,51.579162999999994],[-79.376389000000017,51.642494000000113],[-79.353881999999999,51.656096999999988],[-79.331680000000006,51.661933999999917],[-79.322234999999978,51.662766000000033],[-79.239715999999987,51.634994999999947],[-79.236114999999927,51.630820999999912],[-79.235000999999954,51.624992000000077],[-79.23721299999994,51.619156000000032],[-79.251952999999958,51.60694100000012],[-79.275283999999999,51.577773999999977],[-79.285277999999948,51.562492000000134],[-79.285277999999948,51.556381000000101],[-79.274719000000005,51.530548000000124],[-79.271118000000001,51.525551000000064],[-79.267226999999934,51.521659999999997],[-79.202498999999989,51.518883000000073],[-79.183318999999983,51.519714000000079],[-79.175277999999935,51.521103000000096],[-79.161117999999931,51.525551000000064],[-79.154998999999975,51.528602999999976],[-79.144454999999937,51.536110000000065],[-79.137512000000015,51.538330000000087],[-79.12748699999986,51.538048000000003],[-79.120270000000005,51.535552999999993],[-79.024445000000014,51.476379000000122],[-79.020553999999947,51.473320000000115],[-79.012221999999952,51.464996000000099],[-79.005004999999926,51.449997000000053],[-78.963332999999977,51.353325000000098],[-78.950286999999946,51.29222100000004],[-78.955276000000026,51.256660000000068],[-78.95944199999991,51.252220000000023],[-78.962783999999942,51.246941000000049],[-78.962783999999942,51.240546999999992],[-78.958344000000011,51.230545000000063],[-78.951401000000033,51.215546000000018],[-78.937209999999936,51.197769000000108],[-78.928878999999938,51.18971300000004],[-78.924164000000019,51.185822000000144],[-78.912215999999944,51.179436000000067],[-78.906113000000005,51.176658999999972],[-78.853332999999964,51.165543000000014],[-78.914718999999934,51.22165700000005],[-78.918335000000013,51.226097000000095],[-78.920546999999942,51.231102000000135],[-78.921660999999915,51.237495000000081],[-78.920273000000009,51.249718000000144],[-78.890563999999927,51.390549000000021],[-78.888335999999981,51.396660000000111],[-78.883057000000008,51.401100000000099],[-78.832229999999981,51.438599000000011],[-78.779175000000009,51.474990999999989],[-78.82028200000002,51.513054000000068],[-78.823897999999986,51.517494000000056],[-78.826110999999969,51.522491000000002],[-78.824448000000018,51.541664000000083],[-78.820846999999958,51.554436000000067],[-78.80860899999999,51.576385000000016],[-78.791672000000005,51.603881999999942],[-78.796386999999925,51.608604000000014],[-78.859160999999972,51.634163000000058],[-78.944153000000028,51.670547000000056],[-79.03472899999997,51.764717000000132],[-79.035552999999993,51.770271000000093],[-79.033324999999877,51.776382000000012],[-79.029174999999952,51.781380000000013],[-79.008346999999958,51.795830000000137],[-78.995834000000002,51.801658999999972],[-78.985824999999977,51.801658999999972],[-78.976104999999905,51.799720999999977],[-78.961394999999868,51.794998000000021],[-78.944442999999865,51.790833000000021],[-78.918059999999969,51.79444100000012],[-78.910827999999981,51.796660999999972],[-78.903609999999958,51.799438000000009],[-78.879989999999964,51.811378000000104],[-78.851944000000003,51.828606000000036],[-78.846389999999985,51.832497000000103],[-78.836945000000014,51.841377000000136],[-78.833618000000001,51.845825000000104],[-78.832229999999981,51.852776000000063],[-78.834441999999967,51.857772999999952],[-78.841674999999952,51.866661000000136],[-78.846389999999985,51.870269999999948],[-78.858611999999937,51.876938000000109],[-78.86361699999992,51.880821000000083],[-78.89555399999989,51.926659000000029],[-78.896392999999932,51.932495000000074],[-78.894164999999987,51.93832400000008],[-78.881942999999922,51.944434999999999],[-78.860274999999888,51.951102999999932],[-78.851944000000003,51.95249200000012],[-78.810546999999929,51.958885000000066],[-78.769454999999994,51.966103000000089],[-78.747771999999998,51.973320000000001],[-78.736664000000019,51.979431000000091],[-78.695830999999998,52.008049000000085],[-78.579452999999944,52.111382000000106],[-78.537505999999951,52.180824000000143],[-78.501113999999973,52.255829000000006],[-78.524445000000014,52.311104000000114],[-78.516953000000001,52.367767000000072],[-78.507232999999985,52.454437000000041],[-78.506957999999997,52.460548000000074],[-78.545273000000009,52.514717000000132],[-78.564712999999983,52.530273000000079],[-78.577224999999999,52.536658999999986],[-78.585555999999997,52.538605000000075],[-78.59584000000001,52.538886999999988],[-78.654448999999943,52.54694400000011],[-78.684433000000013,52.551383999999985],[-78.763335999999981,52.564438000000052],[-78.761123999999938,52.570549000000085],[-78.755568999999923,52.574164999999994],[-78.721114999999998,52.586655000000121],[-78.691939999999931,52.596099999999979],[-78.713333000000034,52.628876000000105],[-78.753066999999874,52.683875999999941],[-78.790833000000021,52.737495000000138],[-78.796950999999979,52.773880000000077],[-78.765015000000005,52.777489000000116],[-78.731948999999986,52.783333000000084],[-78.724715999999944,52.785553000000107],[-78.722503999999901,52.791664000000026],[-78.725554999999986,52.819443000000035],[-78.738327000000027,52.872215000000097],[-78.794448999999986,52.861381999999935],[-78.856109999999887,52.877769000000114],[-78.880829000000006,52.896942000000024],[-78.881942999999922,52.90277100000003],[-78.87860099999989,52.908043000000134],[-78.864715999999987,52.963608000000079],[-78.915833000000021,53.000000000000057],[-78.923049999999932,53.068886000000077],[-78.888061999999934,53.224709000000132],[-78.894454999999994,53.259720000000073],[-78.895844000000011,53.26527400000009],[-78.942490000000021,53.384994999999947],[-78.949722000000008,53.399994000000049],[-78.991721999999925,53.434048000000018],[-78.994720000000029,53.436378000000047],[-79.004554999999925,53.439216999999928],[-79.009551999999928,53.438213000000019],[-79.044723999999974,53.439430000000016],[-79.053054999999972,53.438042000000053],[-79.063323999999966,53.439430000000016],[-79.068068999999923,53.443321000000083],[-79.090285999999992,53.470543000000021],[-79.093062999999972,53.474709000000075],[-79.107773000000009,53.497215000000097],[-79.110275000000001,53.502495000000124],[-79.103606999999954,53.513054000000011],[-79.084166999999979,53.522491000000116],[-79.054442999999935,53.531380000000013],[-79.035552999999993,53.53276800000009],[-79.012787000000003,53.531104999999968],[-79.031386999999995,53.529716000000008],[-79.038054999999986,53.526657],[-79.043334999999956,53.523048000000017],[-79.042495999999915,53.511108000000092],[-79.041381999999999,53.505554000000132],[-79.036391999999978,53.501663000000065],[-79.014838999999938,53.498940000000005],[-79.011002000000019,53.496937000000003],[-79.005675999999937,53.49577000000005],[-79.000678999999934,53.496609000000035],[-78.962783999999942,53.508888000000127],[-78.919158999999979,53.555267000000072],[-78.915833000000021,53.560547000000099],[-78.918335000000013,53.565544000000045],[-78.92193599999996,53.569992000000013],[-78.950561999999991,53.599716000000001],[-79.003341999999918,53.641663000000051],[-79.089721999999938,53.691658000000075],[-79.145003999999972,53.701660000000061],[-79.151397999999915,53.704994000000056],[-79.152221999999995,53.710548000000017],[-79.052490000000034,53.831939999999975],[-79.046951000000035,53.835548000000074],[-79.039444000000003,53.83776899999998],[-79.029723999999987,53.839157000000114],[-79.011123999999995,53.839989000000003],[-78.988891999999908,53.838882000000069],[-78.979995999999971,53.836104999999975],[-78.966109999999901,53.83027600000014],[-78.948333999999932,53.820831000000112],[-78.932770000000005,53.815543999999989],[-78.910827999999981,53.814437999999939],[-78.901397999999972,53.815268999999944],[-78.902221999999938,53.821380999999974],[-78.906386999999938,53.825272000000041],[-78.917769999999962,53.832214000000079],[-78.924164000000019,53.835548000000074],[-78.969727000000034,53.851387000000045],[-78.988891999999908,53.854713000000061],[-79.011948000000018,53.856658999999979],[-79.056655999999919,53.873046999999985],[-79.101104999999961,53.901657000000057],[-79.106110000000001,53.905548000000124],[-79.072509999999852,53.999161000000072],[-79.066956000000005,54.002777000000094],[-79.051102000000014,54.006660000000068],[-79.041381999999999,54.00777400000004],[-79.031676999999945,54.00777400000004],[-79.021392999999989,54.006386000000134],[-79.001098999999954,53.999992000000077],[-78.964950999999928,53.99716200000006],[-78.961623999999972,53.999992000000077],[-78.960280999999952,54.001389000000017],[-78.962783999999942,54.006386000000134],[-78.966659999999933,54.010826000000122],[-78.976669000000015,54.018326000000002],[-78.984160999999972,54.021659999999997],[-79.119445999999982,54.078605999999979],[-79.116393999999957,54.103050000000053],[-79.106383999999935,54.111382000000049],[-79.046386999999982,54.178329000000076],[-79.048889000000031,54.183327000000077],[-79.060546999999985,54.184158000000082],[-79.173324999999977,54.174995000000081],[-79.191665999999998,54.172768000000019],[-79.198043999999868,54.169716000000108],[-79.196944999999971,54.163605000000018],[-79.198333999999988,54.157210999999961],[-79.205840999999907,54.154990999999995],[-79.238051999999982,54.158882000000062],[-79.276397999999915,54.166939000000013],[-79.345276000000013,54.199432000000002],[-79.419998000000021,54.274437000000034],[-79.430557000000022,54.290275999999949],[-79.476669000000015,54.368599000000131],[-79.505004999999926,54.42582700000014],[-79.488051999999925,54.452217000000132],[-79.488051999999925,54.458603000000039],[-79.521392999999989,54.587212000000136],[-79.525283999999886,54.591377000000136],[-79.531677000000002,54.594711000000132],[-79.565552000000025,54.609993000000145],[-79.618880999999931,54.623878000000047],[-79.675551999999925,54.625824000000136],[-79.686110999999983,54.627212999999927],[-79.760833999999988,54.648048000000074],[-79.764449999999954,54.652214000000129],[-79.761123999999995,54.658325000000048],[-79.631667999999934,54.702773999999977],[-79.494155999999975,54.744713000000104],[-79.463622999999984,54.75360900000004],[-79.457229999999925,54.750275000000045],[-79.447494999999947,54.75110600000005],[-79.337783999999942,54.772491000000059],[-79.315826000000015,54.779991000000109],[-79.101104999999961,54.827216999999962],[-78.976669000000015,54.843048000000124],[-78.968886999999995,54.845267999999976],[-78.956664999999987,54.851936000000137],[-78.945540999999935,54.859436000000017],[-78.912505999999894,54.884163000000115],[-78.838608000000022,54.91443600000008],[-78.732773000000009,54.931107000000111],[-78.561110999999926,54.977767999999912],[-78.37388599999997,55.030273000000136],[-78.256118999999899,55.082214000000022],[-78.207672000000002,55.111655999999982],[-78.182220000000029,55.125267000000122],[-78.119445999999982,55.149994000000049],[-77.972778000000005,55.204994000000113],[-77.87249799999995,55.243606999999997],[-77.748610999999983,55.300827000000027],[-77.62222300000002,55.382766999999944],[-77.416655999999989,55.486107000000061],[-77.225829999999974,55.588326000000109],[-77.214721999999995,55.595267999999976],[-77.137221999999895,55.654160000000047],[-77.115279999999927,55.674164000000133],[-77.104720999999984,55.683876000000055],[-77.088332999999921,55.699432000000058],[-77.086120999999935,55.705551000000071],[-77.085555999999997,55.708046000000081],[-77.087783999999942,55.709716999999955],[-77.068343999999968,55.754715000000033],[-77.013061999999877,55.803046999999935],[-76.81138599999997,55.971100000000092],[-76.751953000000015,55.997771999999998],[-76.737503000000004,56.001663000000065],[-76.718886999999995,56.008048999999971],[-76.702498999999932,56.017494000000056],[-76.689162999999894,56.027489000000003],[-76.681945999999982,56.033882000000119],[-76.67721599999993,56.038605000000075],[-76.670836999999892,56.045830000000137],[-76.658050999999944,56.060821999999973],[-76.650833000000034,56.071938000000102],[-76.626662999999951,56.118049999999982],[-76.538329999999974,56.297775000000115],[-76.532227000000034,56.315269000000001],[-76.531112999999948,56.322220000000129],[-76.518889999999999,56.406097000000102],[-76.517501999999979,56.423325000000034],[-76.517501999999979,56.43582200000003],[-76.519164999999987,56.464714000000072],[-76.525832999999977,56.492767000000072],[-76.527221999999995,56.503052000000139],[-76.526397999999915,56.605827000000033],[-76.506957999999941,56.710823000000005],[-76.505004999999983,56.733879000000002],[-76.504455999999948,56.771934999999985],[-76.505568999999923,56.784995999999921],[-76.505279999999914,56.791382000000056],[-76.505568999999923,56.803047000000106],[-76.509445000000028,56.819717000000026],[-76.530838000000017,56.90665400000006],[-76.554442999999992,57.005828999999949],[-76.554717999999923,57.010826000000066],[-76.555832000000009,57.034996000000092],[-76.553329000000019,57.053322000000094],[-76.549164000000019,57.06221000000005],[-76.545272999999952,57.068885999999964],[-76.535552999999993,57.077773999999977],[-76.531112999999948,57.087211999999965],[-76.529175000000009,57.09665700000005],[-76.529723999999874,57.10582700000009],[-76.564437999999996,57.207214000000079],[-76.591384999999946,57.274436999999978],[-76.599990999999932,57.293610000000058],[-76.604445999999882,57.302773000000059],[-76.653060999999923,57.401382000000012],[-76.65834000000001,57.406653999999946],[-76.688048999999978,57.430550000000039],[-76.732223999999917,57.490273000000059],[-76.740829000000019,57.503326000000072],[-76.81138599999997,57.624710000000107],[-76.809433000000013,57.634720000000016],[-76.807770000000005,57.641662999999994],[-76.805557000000022,57.647774000000084],[-76.861937999999952,57.71915400000006],[-76.923049999999989,57.786110000000065],[-77.147231999999974,58.022765999999933],[-77.246658000000025,58.07388300000008],[-77.279723999999987,58.084435000000042],[-77.317504999999983,58.091934000000037],[-77.34944200000001,58.101936000000023],[-77.444442999999978,58.152489000000003],[-77.451110999999969,58.171379000000115],[-77.446655000000021,58.173882000000106],[-77.441100999999946,58.182770000000062],[-77.444152999999972,58.187767000000008],[-77.454453000000001,58.196381000000031],[-77.467223999999987,58.203323000000125],[-77.487777999999935,58.212769000000094],[-77.571670999999981,58.248047000000099],[-77.645843999999954,58.278603000000032],[-77.81527699999998,58.327217000000019],[-77.851944000000003,58.334991000000002],[-77.883895999999993,58.339989000000003],[-77.914443999999946,58.345543000000021],[-77.939163000000008,58.35305000000011],[-77.955276000000026,58.358604000000128],[-78.012512000000015,58.378601000000003],[-78.024445000000014,58.384163000000115],[-78.02806099999998,58.386940000000038],[-78.031386999999938,58.391380000000026],[-78.062682999999993,58.417309000000103],[-78.130553999999961,58.462769000000037],[-78.355559999999969,58.601661999999976],[-78.397231999999917,58.620827000000133],[-78.419998000000021,58.62721300000004],[-78.425277999999992,58.626099000000067],[-78.428329000000019,58.623604000000057],[-78.427779999999984,58.611107000000061],[-78.426101999999958,58.606102000000021],[-78.347778000000005,58.536659000000043],[-78.389724999999885,58.544716000000051],[-78.549163999999905,58.603881999999999],[-78.563889000000017,58.609993000000088],[-78.568618999999956,58.614441000000056],[-78.573897999999929,58.630547000000035],[-78.574722000000008,58.635269000000108],[-78.570006999999976,58.673050000000103],[-78.563889000000017,58.676940999999999],[-78.555831999999953,58.677773000000059],[-78.543883999999991,58.678046999999992],[-78.514724999999942,58.67943600000001],[-78.469727000000034,58.695541000000105],[-78.467223999999987,58.701660000000118],[-78.48832699999997,58.786385000000053],[-78.50556899999998,58.835266000000104],[-78.511672999999917,58.839157],[-78.516402999999968,58.843323000000055],[-78.538605000000018,58.886940000000095],[-78.571395999999879,58.957214000000079],[-78.570557000000008,58.961380000000133],[-78.561935000000005,58.965828000000101],[-78.552215999999987,58.968048000000124],[-78.396392999999932,58.964714000000129],[-78.361663999999962,58.958603000000039],[-78.352492999999924,58.956657000000007],[-78.346389999999985,58.953605999999979],[-78.344451999999876,58.949432000000115],[-78.344726999999978,58.946655000000021],[-78.345276000000013,58.944710000000043],[-78.348342999999943,58.942214999999976],[-78.366394000000014,58.920273000000122],[-78.363892000000021,58.912490999999989],[-78.357773000000009,58.910270999999966],[-78.345839999999953,58.909714000000065],[-78.338333000000034,58.912766000000033],[-78.310821999999973,58.927216000000101],[-78.304717999999923,58.931106999999997],[-78.205565999999976,59.050545000000113],[-78.127486999999974,59.108330000000024],[-78.08666999999997,59.156654000000003],[-78.093886999999995,59.193047000000035],[-78.098617999999988,59.196655000000135],[-78.101943999999946,59.200828999999999],[-78.103881999999999,59.205826000000116],[-78.092772999999909,59.214995999999985],[-77.961120999999935,59.258331000000112],[-77.949721999999952,59.261939999999925],[-77.930283000000031,59.26527399999992],[-77.884445000000028,59.271935000000042],[-77.860000999999954,59.272217000000126],[-77.843613000000005,59.275551000000121],[-77.828887999999949,59.281105000000082],[-77.824448000000018,59.283606999999961],[-77.68499799999995,59.393326000000116],[-77.677215999999987,59.399994000000106],[-77.678328999999962,59.401932000000045],[-77.779175000000009,59.426102000000014],[-77.787216000000001,59.426658999999916],[-77.798049999999989,59.426384000000098],[-77.831389999999942,59.414711000000068],[-77.880279999999914,59.39916199999999],[-77.887512000000015,59.397491000000116],[-77.896956999999986,59.397217000000012],[-77.902221999999995,59.398880000000077],[-77.905838000000017,59.401100000000099],[-77.910277999999948,59.405548000000067],[-77.912506000000008,59.415267999999969],[-77.910552999999879,59.425551999999982],[-77.872771999999998,59.491935999999953],[-77.867492999999911,59.5],[-77.86111499999987,59.503883000000087],[-77.84056099999998,59.513054000000068],[-77.798889000000031,59.524993999999992],[-77.779175000000009,59.52887700000008],[-77.769454999999937,59.529160000000047],[-77.749999999999886,59.532211000000075],[-77.721389999999928,59.539719000000105],[-77.724716000000001,59.593880000000013],[-77.755004999999926,59.628326000000072],[-77.762786999999889,59.631378000000041],[-77.767501999999922,59.634994999999947],[-77.797774999999945,59.670272999999952],[-77.801102000000014,59.675270000000069],[-77.798614999999927,59.679993000000081],[-77.773894999999982,59.709717000000069],[-77.761672999999973,59.709991000000002],[-77.731948999999986,59.70777099999998],[-77.710555999999883,59.704712000000029],[-77.585228000000029,59.66921200000013],[-77.53988599999991,59.653381000000138],[-77.535392999999942,59.651379000000077],[-77.524390999999923,59.644714000000135],[-77.518889999999885,59.639381000000128],[-77.513229000000024,59.630546999999979],[-77.513725000000022,59.620215999999971],[-77.514893000000029,59.614044000000035],[-77.464721999999995,59.587212000000022],[-77.460006999999962,59.582771000000093],[-77.454177999999956,59.579162999999994],[-77.444992000000013,59.576385000000016],[-77.426940999999943,59.571381000000031],[-77.353607000000011,59.563605999999936],[-77.322509999999909,59.562767000000008],[-77.313889000000017,59.564995000000124],[-77.311935000000005,59.566939999999931],[-77.316956000000005,59.56999200000007],[-77.344161999999983,59.576942000000088],[-77.427994000000012,59.619049000000075],[-77.433334000000002,59.620543999999938],[-77.441665999999998,59.624717999999973],[-77.502335000000016,59.678215000000023],[-77.542496000000028,59.747490000000084],[-77.541945999999996,59.750274999999931],[-77.533065999999963,59.754714999999976],[-77.432769999999948,59.784163999999976],[-77.412780999999939,59.787773000000129],[-77.389449999999954,59.788886999999932],[-77.333618000000001,59.78527100000008],[-77.311660999999958,59.785552999999936],[-77.30471799999998,59.787216000000058],[-77.298889000000031,59.789719000000048],[-77.293609999999887,59.793610000000115],[-77.296111999999937,59.801933000000076],[-77.301392000000021,59.811104],[-77.363616999999863,59.890830999999991],[-77.368056999999965,59.894714000000079],[-77.378051999999968,59.901382000000069],[-77.385559000000001,59.904433999999981],[-77.427489999999977,59.914710999999954],[-77.206954999999994,60.042770000000019],[-77.070006999999919,60.064156000000082],[-76.848052999999936,60.099159000000043],[-76.775833000000034,60.131659999999954],[-76.770843999999954,60.136383000000137],[-76.758895999999993,60.159157000000107],[-76.808608999999933,60.159714000000008],[-76.828339000000028,60.157493999999986],[-76.846114999999998,60.152214000000129],[-76.852492999999981,60.148330999999985],[-76.857772999999952,60.143883000000017],[-76.860549999999932,60.137771999999984],[-76.857498000000021,60.132767000000115],[-76.854172000000005,60.121658000000025],[-76.85943599999996,60.116936000000123],[-76.866942999999992,60.113883999999985],[-76.889724999999999,60.112495000000024],[-76.924437999999896,60.111664000000019],[-76.950561999999934,60.112213000000111],[-76.962783999999999,60.113608999999997],[-77.00389100000001,60.121933000000013],[-77.031386999999881,60.129714999999976],[-77.055556999999965,60.138602999999989],[-77.074172999999973,60.142769000000044],[-77.111938000000009,60.146942000000024],[-77.173888999999974,60.150268999999923],[-77.187499999999943,60.150826000000052],[-77.199996999999939,60.150826000000052],[-77.199722000000008,60.145270999999923],[-77.194716999999969,60.129158000000075],[-77.232498000000021,60.053879000000109],[-77.272781000000009,60.039993000000095],[-77.315825999999959,60.030548000000067],[-77.519164999999987,60.044159000000036],[-77.540282999999988,60.048050000000103],[-77.557219999999973,60.052773000000059],[-77.592223999999987,60.064156000000082],[-77.600280999999939,60.108604000000128],[-77.595275999999899,60.112495000000024],[-77.581680000000006,60.118881000000101],[-77.558043999999938,60.126656000000025],[-77.549164000000019,60.129158000000075],[-77.496947999999918,60.156097000000045],[-77.470276000000013,60.213325999999995],[-77.473617999999931,60.216934000000094],[-77.602782999999931,60.329994000000056],[-77.639724999999942,60.362213000000054],[-77.647506999999905,60.365273000000116],[-77.658339999999953,60.368050000000039],[-77.683060000000012,60.367767000000072],[-77.692489999999964,60.369438000000116],[-77.708344000000011,60.375824000000023],[-77.743606999999997,60.393326000000059],[-77.747222999999963,60.396942000000138],[-77.747756999999922,60.408134000000132],[-77.740829000000019,60.423607000000004],[-77.736937999999952,60.428879000000109],[-77.71945199999999,60.447211999999979],[-77.691939999999931,60.466660000000104],[-77.567504999999926,60.529716000000008],[-77.479995999999915,60.54055000000011],[-77.430832000000009,60.540275999999949],[-77.419723999999917,60.541107000000011],[-77.413329999999974,60.544159000000093],[-77.436385999999914,60.554436000000067],[-77.464447000000007,60.561935000000062],[-77.486114999999927,60.56638300000003],[-77.521666999999979,60.570274000000097],[-77.549438000000009,60.571381000000031],[-77.573623999999938,60.570549000000085],[-77.598617999999931,60.563606000000107],[-77.631942999999978,60.551933000000076],[-77.640563999999983,60.550270000000012],[-77.65055799999999,60.548882000000049],[-77.670273000000009,60.549721000000034],[-77.680831999999953,60.552216000000044],[-77.704453000000001,60.561661000000129],[-77.787216000000001,60.59665700000005],[-77.829453000000001,60.633605999999929],[-77.833892999999932,60.639434999999992],[-77.831679999999949,60.644714000000135],[-77.821670999999867,60.651931999999931],[-77.775832999999977,60.671104000000128],[-77.722504000000015,60.69193300000012],[-77.716399999999965,60.694434999999999],[-77.610001000000011,60.755554000000075],[-77.515839000000028,60.830551000000014],[-77.512512000000015,60.833602999999925],[-77.511672999999973,60.83638000000002],[-77.53195199999999,60.835266000000047],[-77.571670999999981,60.828330999999991],[-77.708054000000004,60.795547000000113],[-77.856383999999935,60.764442000000088],[-77.920546999999999,60.791382000000112],[-77.903885000000002,60.812492000000077],[-77.889998999999989,60.818886000000134],[-77.883330999999941,60.823325999999952],[-77.887222000000008,60.825829000000113],[-77.896392999999875,60.828049000000135],[-77.909163999999976,60.82888000000014],[-77.975280999999939,60.822769000000051],[-78.078612999999905,60.806099000000131],[-78.116942999999992,60.798050000000103],[-78.125823999999966,60.795547000000113],[-78.172500999999954,60.787216000000058],[-78.17971799999998,60.786942000000124],[-78.18638599999997,60.788047999999947],[-78.190552000000025,60.788887000000102],[-78.192764000000011,60.790833000000021],[-78.171660999999915,60.854713000000061],[-78.15943900000002,60.867210000000057],[-77.954726999999991,61.000831999999946],[-77.925551999999925,61.01888300000013],[-77.889175000000023,61.038048000000117],[-77.873610999999926,61.045547000000056],[-77.858046999999942,61.051101999999958],[-77.853881999999942,61.052215999999987],[-77.846664000000033,61.052490000000091],[-77.701675000000023,61.217491000000109],[-77.724441999999954,61.254439999999988],[-77.739990000000034,61.298607000000061],[-77.746658000000025,61.337494000000106],[-77.761123999999938,61.410271000000023],[-77.678878999999995,61.461104999999975],[-77.620834000000002,61.462493999999992],[-77.56361400000003,61.466660000000047],[-77.560546999999929,61.468047999999953],[-77.542496000000028,61.479430999999977],[-77.543335000000013,61.483047000000056],[-77.548339999999939,61.486107000000118],[-77.613892000000021,61.504166000000055],[-77.596114999999941,61.555824000000143],[-77.572784000000013,61.549995000000138],[-77.517226999999934,61.539719000000048],[-77.478607000000011,61.536385000000053],[-77.475005999999951,61.539161999999976],[-77.474715999999944,61.541664000000026],[-77.480285999999921,61.548882000000049],[-77.581389999999999,61.600548000000117],[-77.589171999999962,61.604439000000013],[-77.616500999999971,61.606327000000078],[-77.627997999999991,61.605995000000121],[-77.667496000000028,61.603049999999996],[-77.690825999999959,61.602218999999991],[-77.702498999999989,61.602776000000063],[-77.710555999999883,61.60582700000009],[-77.744155999999975,61.64027400000009],[-77.816665999999998,61.684989999999914],[-77.884445000000028,61.68582200000003],[-77.898894999999925,61.686378000000047],[-77.931380999999931,61.69193300000012],[-77.975829999999974,61.702774000000034],[-77.982223999999974,61.70665699999995],[-77.992492999999968,61.714714000000129],[-78.00306699999993,61.728325000000098],[-78.006119000000012,61.733046999999999],[-78.011947999999961,61.748604000000057],[-78.074447999999904,61.917213000000004],[-78.077498999999989,61.940544000000045],[-78.081389999999999,61.951103000000103],[-78.091675000000009,61.965271000000143],[-78.110001000000011,61.984161000000086],[-78.120269999999948,61.99193600000001],[-78.137787000000003,62.009163000000001],[-78.141387999999949,62.020546000000024],[-78.143616000000009,62.03138000000007],[-78.15943900000002,62.149994000000049],[-78.161666999999966,62.169159000000036],[-78.157776000000013,62.267494000000056],[-78.15583799999996,62.278328000000101],[-78.149733999999967,62.287216000000114],[-78.103058000000033,62.337494000000049],[-78.085007000000019,62.353325000000041],[-78.023894999999982,62.393326000000059],[-78.016402999999968,62.39388300000013],[-78.008056999999894,62.390549000000135],[-77.996657999999968,62.388046000000145],[-77.983063000000016,62.388329000000113],[-77.96305799999999,62.392768999999987],[-77.711394999999925,62.468048000000124],[-77.687209999999993,62.476654000000053],[-77.555556999999965,62.536110000000008],[-77.535278000000005,62.54694400000011],[-77.508347000000015,62.561661000000072],[-77.354996000000028,62.558044000000109],[-77.073623999999938,62.534163999999976],[-76.92582699999997,62.526382000000012],[-76.756957999999997,62.506943000000092],[-76.746947999999975,62.504997000000003],[-76.655562999999972,62.469986000000063],[-76.498610999999869,62.44110100000006],[-76.401947000000007,62.427490000000091],[-76.317779999999914,62.412209000000132],[-76.143065999999919,62.379158000000018],[-75.709732000000031,62.296387000000038],[-75.719214999999963,62.242493000000024],[-75.739562999999919,62.236160000000041],[-75.819884999999999,62.205657999999971],[-75.878875999999991,62.168602000000135],[-75.891113000000018,62.161933999999974],[-75.895003999999915,62.158599999999979],[-75.890839000000028,62.156937000000084],[-75.835830999999985,62.158043000000077],[-75.826949999999954,62.158882000000062],[-75.772399999999948,62.177215999999987],[-75.770720999999924,62.180049999999994],[-75.765052999999909,62.184718999999973],[-75.760887000000025,62.187050000000113],[-75.756057999999882,62.188713000000007],[-75.705062999999996,62.203216999999995],[-75.656882999999993,62.216544999999996],[-75.579177999999899,62.242218000000037],[-75.573897999999929,62.244155999999975],[-75.556945999999925,62.252777000000037],[-75.552779999999927,62.256660000000011],[-75.550277999999935,62.260826000000066],[-75.539443999999889,62.268326000000002],[-75.493606999999997,62.293326999999977],[-75.486937999999952,62.296387000000038],[-75.478881999999999,62.298607000000061],[-75.472777999999948,62.299438000000066],[-75.402221999999938,62.306381000000044],[-75.356383999999991,62.310546999999985],[-75.321945000000028,62.311104000000057],[-75.307495000000017,62.310271999999941],[-75.184432999999956,62.292220999999984],[-75.015563999999983,62.264999000000046],[-75,62.262245000000064],[-74.938323999999909,62.250274999999988],[-74.918610000000001,62.245544000000052],[-74.89805599999994,62.240273000000002],[-74.889998999999989,62.237495000000024],[-74.882216999999912,62.233604000000128],[-74.873885999999857,62.226097000000038],[-74.767226999999878,62.161102000000085],[-74.700835999999867,62.131104000000107],[-74.693054000000018,62.127769000000058],[-74.668883999999991,62.119156000000089],[-74.620833999999888,62.107215999999994],[-74.598052999999936,62.104164000000083],[-74.571670999999981,62.10305000000011],[-74.556380999999988,62.104713000000004],[-74.553054999999972,62.106102000000021],[-74.553878999999995,62.108046999999999],[-74.558608999999876,62.111938000000066],[-74.618880999999931,62.132492000000013],[-74.662216000000001,62.146660000000054],[-74.686110999999983,62.155823000000055],[-74.700287000000003,62.16276600000009],[-74.75111400000003,62.19110100000006],[-74.758895999999993,62.199158000000068],[-74.759734999999921,62.20138500000013],[-74.759734999999921,62.20638300000013],[-74.756393000000003,62.212212000000136],[-74.725829999999917,62.244995000000131],[-74.717498999999918,62.247771999999998],[-74.700287000000003,62.250832000000059],[-74.678328999999962,62.253608999999983],[-74.645844000000011,62.253608999999983],[-74.579453000000001,62.251938000000109],[-74.525833000000034,62.246940999999993],[-74.473617999999931,62.24332400000003],[-74.461394999999982,62.243880999999931],[-74.428878999999938,62.247771999999998],[-74.410004000000015,62.251389000000131],[-74.383895999999936,62.2586060000001],[-74.141677999999956,62.326660000000004],[-73.981383999999991,62.377769000000001],[-73.97444200000001,62.386108000000036],[-73.969727000000034,62.390830999999991],[-73.94027699999998,62.412209000000132],[-73.888901000000033,62.440543999999932],[-73.83805799999999,62.457497000000046],[-73.688048999999978,62.479988000000048],[-73.678878999999995,62.479988000000048],[-73.65972899999997,62.475265999999976],[-73.648345999999947,62.468322999999998],[-73.642501999999922,62.463608000000136],[-73.502791999999999,62.386658000000068],[-73.369995000000017,62.363609000000054],[-73.227218999999877,62.318054000000075],[-73.211394999999925,62.312767000000008],[-73.206664999999987,62.308884000000035],[-73.204178000000013,62.303878999999995],[-73.202788999999996,62.298882000000106],[-73.207229999999925,62.285828000000038],[-73.210280999999952,62.281936999999971],[-73.210830999999985,62.275826000000052],[-73.209732000000031,62.270828000000051],[-73.204178000000013,62.261382999999967],[-73.191939999999875,62.253608999999983],[-73.178054999999972,62.246101000000124],[-73.131942999999978,62.225266000000033],[-73.070006999999976,62.197487000000024],[-72.899445000000014,62.138328999999999],[-72.723891999999921,62.142220000000066],[-72.626663000000008,62.115547000000049],[-72.61721799999998,62.108604000000071],[-72.596114999999884,62.049164000000019],[-72.618713000000014,61.974212999999963],[-72.619888000000003,61.970878999999968],[-72.665717999999913,61.928382999999997],[-72.689986999999917,61.891936999999984],[-72.748610999999983,61.856384000000105],[-72.724716000000001,61.845267999999976],[-72.612503000000004,61.804993000000081],[-72.602782999999931,61.804160999999965],[-72.596114999999884,61.805549999999982],[-72.591674999999952,61.809989999999971],[-72.587783999999886,61.82027400000004],[-72.622771999999941,61.861382000000106],[-72.628875999999991,61.873047000000042],[-72.609557999999993,61.88771400000013],[-72.610893000000033,61.893714999999986],[-72.611397000000011,61.900047000000086],[-72.610222000000022,61.905380000000093],[-72.607551999999998,61.910049000000015],[-72.597548999999958,61.920211999999992],[-72.593886999999995,61.92321400000003],[-72.587226999999984,61.924376999999993],[-72.581222999999966,61.923378000000127],[-72.519729999999925,61.920546999999999],[-72.448607999999979,61.901382000000012],[-72.396666999999923,61.889435000000049],[-72.386948000000018,61.887771999999984],[-72.345551,61.884437999999989],[-72.321945000000028,61.883881000000088],[-72.256957999999997,61.876938000000109],[-72.235001000000011,61.872215000000097],[-72.205840999999964,61.86332700000014],[-72.200835999999924,61.860275000000001],[-72.041381999999999,61.722488000000112],[-72.01005600000002,61.675270000000012],[-72.038054999999986,61.624709999999993],[-72.080565999999976,61.601936000000023],[-72.087783999999999,61.598877000000073],[-72.095839999999953,61.596099999999979],[-72.113892000000021,61.595543000000077],[-72.12388599999997,61.596382000000006],[-72.160004000000015,61.605270000000019],[-72.194153000000028,61.615829000000076],[-72.227492999999981,61.619987000000037],[-72.236663999999962,61.619438000000059],[-72.254456000000005,61.615546999999992],[-72.271118000000001,61.609161000000086],[-72.303328999999906,61.570830999999998],[-72.303878999999938,61.568885999999964],[-72.303328999999906,61.56721500000009],[-72.083618000000001,61.582496999999933],[-72.057220000000029,61.586655000000064],[-71.980285999999978,61.599998000000085],[-71.978333000000021,61.601387000000102],[-71.967772999999966,61.609436000000073],[-71.940825999999959,61.648331000000042],[-71.936660999999958,61.65554800000001],[-71.933608999999933,61.663605000000132],[-71.933060000000012,61.668602000000078],[-71.933884000000035,61.674164000000019],[-71.936660999999958,61.677773000000002],[-71.941375999999991,61.681106999999997],[-71.946884000000011,61.688380999999993],[-71.950385999999867,61.688713000000121],[-71.953888000000006,61.690716000000123],[-71.956557999999916,61.693047000000092],[-71.956885999999884,61.694213999999988],[-71.956054999999935,61.698883000000137],[-71.950546000000031,61.701218000000097],[-71.948883000000023,61.701549999999997],[-71.945221000000004,61.701714000000095],[-71.928878999999995,61.705826000000116],[-71.819457999999941,61.688599000000124],[-71.795273000000009,61.682213000000047],[-71.644729999999925,61.639435000000105],[-71.575011999999901,61.608604000000014],[-71.571670999999867,61.605552999999986],[-71.545546999999999,61.571938000000102],[-71.546111999999937,61.566940000000102],[-71.549437999999896,61.558884000000035],[-71.560271999999941,61.557212999999933],[-71.629714999999976,61.548607000000061],[-71.635009999999966,61.545830000000137],[-71.652221999999995,61.543053000000043],[-71.663054999999929,61.54193900000007],[-71.751113999999973,61.538048000000003],[-71.789444000000003,61.521934999999928],[-71.746384000000035,61.47137500000008],[-71.746947999999975,61.465827999999988],[-71.802779999999984,61.446938000000046],[-71.817504999999983,61.442764000000011],[-71.875548999999921,61.436103999999943],[-71.885558999999944,61.432769999999948],[-71.887787000000003,61.430824000000086],[-71.887511999999958,61.428046999999992],[-71.879439999999988,61.422492999999974],[-71.873046999999929,61.419716000000108],[-71.853333000000021,61.414436000000023],[-71.700561999999991,61.405823000000055],[-71.684722999999963,61.404990999999939],[-71.676101999999958,61.37221500000004],[-71.67193599999996,61.330551000000128],[-71.598891999999978,61.254166000000055],[-71.53083799999996,61.213608000000022],[-71.389998999999989,61.137772000000098],[-71.295836999999892,61.148605000000089],[-71.286666999999909,61.149719000000061],[-71.279175000000009,61.151100000000099],[-71.174712999999997,61.13999200000012],[-71.011397999999986,61.121657999999968],[-70.966948999999943,61.113883999999985],[-70.945830999999941,61.108887000000095],[-70.928329000000019,61.102493000000038],[-70.921936000000017,61.09693900000002],[-70.921386999999982,61.09137700000008],[-70.773330999999985,61.08166499999993],[-70.656386999999995,61.050545000000056],[-70.553054999999972,61.024994000000049],[-70.539718999999991,61.055824000000086],[-70.535278000000005,61.05943300000007],[-70.419998000000021,61.08526599999999],[-70.41361999999998,61.086655000000007],[-70.315551999999911,61.094994000000042],[-70.165008999999998,61.088043000000084],[-70.146117999999888,61.084717000000069],[-70.141387999999949,61.08277099999998],[-70.107223999999917,61.064438000000109],[-70.085830999999985,60.954993999999999],[-70.088057999999876,60.89777400000014],[-69.927490000000034,60.807770000000005],[-69.914444000000003,60.80860100000001],[-69.901107999999965,60.81221000000005],[-69.888061999999934,60.819160000000068],[-69.856383999999991,60.838326000000109],[-69.850554999999986,60.841934000000037],[-69.84973100000002,60.846656999999993],[-69.851395000000025,60.849716000000001],[-69.858886999999982,60.851936000000023],[-69.869445999999925,60.850829999999974],[-69.883620999999948,60.845268000000033],[-69.894729999999925,60.855552999999929],[-69.833327999999995,60.889992000000007],[-69.826110999999969,60.893326000000002],[-69.778885000000002,60.91137700000013],[-69.756957999999941,60.918884000000105],[-69.750838999999928,60.919715999999994],[-69.741104000000007,60.9180530000001],[-69.738051999999925,60.915543000000071],[-69.743332000000009,60.906936999999971],[-69.75140399999998,60.898879999999963],[-69.750564999999995,60.894440000000145],[-69.74610899999999,60.884720000000073],[-69.740554999999972,60.881377999999927],[-69.71055599999994,60.873878000000047],[-69.688599000000011,60.871658000000025],[-69.677215999999987,60.871101000000124],[-69.658614999999998,60.876938000000109],[-69.649993999999879,60.8836060000001],[-69.645843999999954,60.893051000000128],[-69.643889999999942,60.903320000000008],[-69.649169999999913,60.913879000000065],[-69.655563000000029,60.9222180000001],[-69.671660999999915,60.934433000000013],[-69.680831999999953,60.943047000000035],[-69.688599000000011,60.951660000000004],[-69.689437999999882,60.956100000000049],[-69.689712999999983,60.96166199999999],[-69.680557000000022,61.014159999999947],[-69.679442999999935,61.019440000000031],[-69.676665999999955,61.025551000000121],[-69.656661999999926,61.053604000000064],[-69.653884999999946,61.056938000000059],[-69.613051999999925,61.079163000000051],[-69.599990999999989,61.081940000000145],[-69.554168999999945,61.080550999999957],[-69.528609999999958,61.076385000000073],[-69.519729999999925,61.073326000000122],[-69.514450000000011,61.069442999999978],[-69.511397999999929,61.06610100000006],[-69.508347000000015,61.060822000000087],[-69.492767000000015,61.031937000000028],[-69.468886999999995,60.994995000000017],[-69.465285999999935,60.990273000000116],[-69.453613000000018,60.974991000000045],[-69.368057000000022,60.903046000000074],[-69.368606999999997,60.811104],[-69.371933000000013,60.80443600000001],[-69.380554000000018,60.794716000000108],[-69.386672999999973,60.790550000000053],[-69.404448999999943,60.783332999999914],[-69.421386999999925,60.778046000000018],[-69.438598999999954,60.774994000000049],[-69.496657999999968,60.764442000000088],[-69.533065999999963,60.757217000000026],[-69.591675000000009,60.739158999999972],[-69.615829000000019,60.730270000000075],[-69.708618000000001,60.686935000000119],[-69.716109999999958,60.682770000000119],[-69.71055599999994,60.675270000000069],[-69.705001999999979,60.671936000000073],[-69.695830999999998,60.663879000000065],[-69.656386999999995,60.595543000000077],[-69.654174999999952,60.584991000000116],[-69.654174999999952,60.581383000000017],[-69.656951999999933,60.574715000000026],[-69.6875,60.551383999999985],[-69.693603999999937,60.54694400000011],[-69.702224999999885,60.544440999999949],[-69.748610999999983,60.539719000000048],[-69.797774999999945,60.53443900000002],[-69.813888999999904,60.530548000000124],[-69.822234999999978,60.52777100000003],[-69.826110999999969,60.525551000000007],[-69.824448000000018,60.522490999999945],[-69.787506000000008,60.480545000000006],[-69.78443900000002,60.478043000000071],[-69.778335999999967,60.475266000000033],[-69.762222000000008,60.470268000000033],[-69.74888599999997,60.461662000000103],[-69.721664000000033,60.368881000000044],[-69.722504000000015,60.364158999999972],[-69.727782999999988,60.35193600000008],[-69.744445999999982,60.340546000000018],[-69.751953000000015,60.336380000000133],[-69.756667999999934,60.331940000000145],[-69.764724999999999,60.323607999999979],[-69.766952999999944,60.318328999999949],[-69.768065999999862,60.312210000000107],[-69.764724999999999,60.307495000000074],[-69.758895999999993,60.304710000000057],[-69.696380999999974,60.278877000000136],[-69.606383999999991,60.232765000000029],[-69.605269999999905,60.2227630000001],[-69.605835000000013,60.218596999999988],[-69.610001000000011,60.208327999999995],[-69.614166000000012,60.202492000000063],[-69.636977999999999,60.179047000000025],[-69.601943999999946,60.183052000000089],[-69.594161999999983,60.180824000000143],[-69.593886999999995,60.175827000000027],[-69.603606999999954,60.10305000000011],[-69.624709999999993,60.067497000000117],[-69.636948000000018,60.065268999999944],[-69.706664999999987,60.057495000000131],[-69.837218999999948,60.019713999999965],[-69.892226999999934,59.99971800000003],[-70.217223999999931,60.007216999999969],[-70.296393999999907,60.011196000000041],[-70.336120999999935,60.004440000000102],[-70.488051999999868,59.993607000000111],[-70.505004999999926,59.992493000000138],[-70.53472899999997,59.991936000000067],[-70.556945999999925,59.992767000000072],[-70.579726999999934,59.994712999999933],[-70.593062999999972,59.996658000000139],[-70.770844000000011,60.028046000000131],[-70.945830999999941,60.063048999999978],[-70.900283999999999,60.040276000000063],[-70.631103999999993,59.985824999999977],[-70.610549999999932,59.980820000000108],[-70.585007000000019,59.971931000000041],[-70.566955999999948,59.968597000000045],[-70.507232999999985,59.96665999999999],[-70.475829999999974,59.968323000000112],[-70.33805799999999,59.976379000000009],[-70.236938000000009,59.986938000000066],[-70.227218999999934,59.986655999999982],[-70.218613000000005,59.984160999999972],[-70.197495000000004,59.974158999999986],[-70.164718999999991,59.962494000000106],[-70.112503000000004,59.949715000000026],[-70.086120999999991,59.946381000000088],[-70.06138599999997,59.94499200000007],[-70.049987999999871,59.945267000000058],[-70.030837999999903,59.948043999999982],[-69.947768999999994,59.958885000000123],[-69.758895999999993,59.96776600000004],[-69.726944000000003,59.963608000000079],[-69.718886999999938,59.959717000000012],[-69.600554999999872,59.833054000000004],[-69.605559999999912,59.777214000000129],[-69.610001000000011,59.728600000000142],[-69.540833000000021,59.671104000000014],[-69.604995999999971,59.588325999999995],[-69.61332699999997,59.588325999999995],[-69.62777699999998,59.583878000000027],[-69.658889999999985,59.572495000000004],[-69.679442999999935,59.563605999999936],[-69.698043999999982,59.553047000000106],[-69.718613000000005,59.537773000000016],[-69.729720999999927,59.52777100000003],[-69.748336999999935,59.50999500000006],[-69.759445000000028,59.493880999999988],[-69.761123999999938,59.484161000000086],[-69.759445000000028,59.481102000000078],[-69.756393000000003,59.478600000000029],[-69.728333000000021,59.479713000000118],[-69.703888000000006,59.481934000000024],[-69.698607999999922,59.481377000000123],[-69.697495000000004,59.480545000000006],[-69.669448999999929,59.455551000000014],[-69.665832999999964,59.451659999999947],[-69.649445000000014,59.428879000000109],[-69.645279000000016,59.419159000000036],[-69.631667999999877,59.377769000000058],[-69.631377999999927,59.374992000000134],[-69.639998999999875,59.361107000000061],[-69.646392999999989,59.358887000000038],[-69.677779999999927,59.356941000000006],[-69.736664000000019,59.345267999999976],[-69.744155999999975,59.343322999999998],[-69.75778200000002,59.330826000000002],[-69.758347000000015,59.320273999999984],[-69.75111400000003,59.311104000000114],[-69.746947999999861,59.307770000000119],[-69.738601999999958,59.305266999999958],[-69.645003999999915,59.29833200000013],[-69.631103999999993,59.298881999999992],[-69.626663000000008,59.29972100000009],[-69.616393999999957,59.304436000000123],[-69.550277999999992,59.329720000000123],[-69.445830999999998,59.35443900000007],[-69.43582200000003,59.3555530000001],[-69.412506000000008,59.354995999999971],[-69.259445000000028,59.326660000000061],[-69.249724999999955,59.323607999999979],[-69.238327000000027,59.259720000000129],[-69.235001000000011,59.23943300000002],[-69.234725999999966,59.233879000000059],[-69.238051999999925,59.229431000000091],[-69.244445999999982,59.224433999999974],[-69.285827999999924,59.208327999999995],[-69.366394000000014,59.190826000000129],[-69.37388599999997,59.189430000000073],[-69.404998999999975,59.190269000000058],[-69.419158999999979,59.192490000000134],[-69.420272999999952,59.196098000000063],[-69.417496000000028,59.202217000000076],[-69.414443999999946,59.212494000000049],[-69.416655999999989,59.219711000000018],[-69.420837000000006,59.223045000000013],[-69.429717999999923,59.224709000000018],[-69.439437999999996,59.224433999999974],[-69.448607999999979,59.2227630000001],[-69.470276000000013,59.213882000000012],[-69.512222000000008,59.192764000000068],[-69.530562999999972,59.18221299999999],[-69.537505999999894,59.172493000000088],[-69.540282999999988,59.166381999999999],[-69.541107000000011,59.161659000000043],[-69.537215999999944,59.123047000000042],[-69.533065999999963,59.110825000000034],[-69.527785999999992,59.106658999999979],[-69.52055399999989,59.104439000000127],[-69.511397999999929,59.103324999999984],[-69.505568999999923,59.104163999999969],[-69.49499499999996,59.109993000000145],[-69.484436000000017,59.121375999999998],[-69.474716000000001,59.128043999999932],[-69.46305799999999,59.12943300000012],[-69.453887999999949,59.128326000000015],[-69.384170999999981,59.118880999999931],[-69.367492999999911,59.116386000000091],[-69.359725999999966,59.112770000000069],[-69.349166999999909,59.104996000000028],[-69.345276000000013,59.095543000000021],[-69.344161999999983,59.091103000000032],[-69.352782999999988,59.080826000000059],[-69.431945999999982,59.025269000000094],[-69.466110000000015,59.044159000000036],[-69.493331999999953,59.037498000000085],[-69.475280999999939,58.971931000000041],[-69.457503999999915,58.915824999999984],[-69.454726999999991,58.90638000000007],[-69.453887999999949,58.895828000000108],[-69.454177999999956,58.892220000000009],[-69.456389999999999,58.884163000000001],[-69.460006999999962,58.878876000000105],[-69.547500999999897,58.808043999999995],[-69.557495000000017,58.80360399999995],[-69.587783999999942,58.796660999999972],[-69.611114999999984,58.792220999999984],[-69.656386999999995,58.787773000000016],[-69.670836999999949,58.792220999999984],[-69.680831999999953,58.800269999999955],[-69.711944999999957,58.848877000000073],[-69.714721999999938,58.85833000000008],[-69.716109999999958,58.864715999999987],[-69.702788999999996,58.876381000000094],[-69.672226000000023,58.89138000000014],[-69.668610000000001,58.899437000000091],[-69.668334999999956,58.902771000000087],[-69.668334999999956,58.92582700000014],[-69.671660999999915,58.930550000000096],[-69.709441999999967,58.972762999999986],[-69.848342999999943,59.047217999999987],[-69.865279999999927,59.052773000000059],[-69.869155999999919,59.053046999999992],[-69.872771999999998,59.050827000000027],[-69.87388599999997,59.041107000000125],[-69.874160999999958,59.034163999999919],[-69.87388599999997,59.02915999999999],[-69.865554999999972,58.977768000000026],[-69.832779000000016,58.951660000000061],[-69.815826000000015,58.82388300000008],[-69.972777999999892,58.808601000000067],[-70.153610000000015,58.777488999999946],[-70.158889999999985,58.761107999999979],[-70.049728000000016,58.743606999999997],[-69.974716000000001,58.755554000000132],[-69.931106999999997,58.733047000000056],[-69.910552999999936,58.68804200000011],[-69.864440999999999,58.617493000000138],[-69.861663999999962,58.614998000000128],[-69.818892999999946,58.588599999999985],[-69.813048999999921,58.589157000000057],[-69.799437999999952,58.59887700000013],[-69.793335000000013,58.603881999999999],[-69.724441999999954,58.668883999999991],[-69.625,58.743881000000101],[-69.608046999999999,58.754714999999976],[-69.581680000000006,58.765831000000105],[-69.570847000000015,58.769440000000145],[-69.544723999999974,58.773323000000062],[-69.507507000000032,58.774712000000079],[-69.498885999999857,58.778602999999919],[-69.445540999999878,58.808327000000133],[-69.418883999999878,58.825553999999954],[-69.411666999999966,58.830276000000026],[-69.410277999999948,58.83998900000006],[-69.405838000000017,58.850273000000129],[-69.394729999999925,58.856659000000036],[-69.381942999999922,58.861381999999992],[-69.348891999999978,58.871658000000082],[-69.279175000000009,58.888046000000145],[-69.153884999999946,58.899993999999992],[-69.129989999999964,58.901657000000114],[-69.098343,58.899162000000103],[-69.031676999999888,58.893326000000002],[-68.99221799999998,58.883880999999974],[-68.841675000000009,58.891106000000036],[-68.756957999999997,58.912490999999989],[-68.656386999999938,58.900269000000037],[-68.637512000000015,58.896659999999997],[-68.601668999999958,58.885826000000122],[-68.396392999999989,58.816101000000117],[-68.390686000000017,58.811707000000013],[-68.360549999999932,58.781936999999914],[-68.355835000000013,58.774437000000034],[-68.357772999999952,58.764717000000132],[-68.360275000000001,58.759437999999989],[-68.366393999999957,58.687492000000077],[-68.34584000000001,58.626937999999996],[-68.323059000000001,58.58526599999999],[-68.290832999999907,58.541107000000011],[-68.216659999999933,58.490829000000076],[-68.209732000000031,58.462494000000049],[-68.204726999999991,58.453323000000069],[-68.203063999999983,58.441658000000018],[-68.204178000000013,58.436935000000062],[-68.226943999999946,58.376380999999981],[-68.244720000000029,58.33776899999998],[-68.256667999999991,58.323607999999979],[-68.285827999999924,58.294998000000135],[-68.289992999999924,58.28916200000009],[-68.309157999999911,58.253326000000072],[-68.322509999999966,58.22693600000008],[-68.34584000000001,58.169991000000039],[-68.348052999999936,58.159714000000065],[-68.347777999999948,58.15387700000008],[-68.344161999999983,58.141663000000051],[-68.341385000000002,58.133331000000055],[-68.344161999999983,58.127487000000087],[-68.350554999999929,58.12193300000007],[-68.46665999999999,58.045546999999942],[-68.477218999999934,58.039992999999981],[-68.503615999999909,58.031380000000013],[-68.528609999999958,58.029434000000094],[-68.729889000000014,57.99971800000003],[-68.874161000000015,57.969154000000003],[-69.127212999999983,57.899436999999921],[-69.135009999999909,57.896942000000081],[-69.181380999999988,57.878044000000045],[-69.202498999999989,57.868599000000131],[-69.221389999999928,57.858886999999982],[-69.262511999999958,57.833603000000039],[-69.357773000000009,57.774162000000047],[-69.369048999999961,57.765251000000092],[-69.363892000000021,57.765830999999935],[-69.339721999999938,57.773323000000062],[-69.304992999999968,57.786659000000043],[-69.298339999999996,57.789436000000137],[-69.210280999999952,57.829437000000098],[-69.190825999999959,57.840546000000018],[-69.172775000000001,57.851661999999976],[-69.111937999999896,57.885825999999952],[-68.965285999999878,57.933875999999998],[-68.904175000000009,57.949715000000083],[-68.695723999999984,57.987713000000099],[-68.678894000000014,57.989716000000101],[-68.667388999999957,57.990383000000008],[-68.634720000000016,57.988879999999995],[-68.62239099999988,57.989379999999983],[-68.545272999999952,58.000549000000035],[-68.495833999999945,58.013328999999999],[-68.416945999999939,58.034439000000134],[-68.404175000000009,58.039719000000048],[-68.31361400000003,58.103049999999996],[-68.308883999999978,58.108047000000113],[-68.304992999999911,58.113884000000041],[-68.302490000000034,58.119155999999975],[-68.299987999999928,58.127487000000087],[-68.300277999999878,58.132492000000127],[-68.30471799999998,58.146384999999952],[-68.305557000000022,58.149993999999992],[-68.307220000000029,58.164436000000137],[-68.306106999999997,58.181106999999997],[-68.305267000000015,58.186104000000057],[-68.301102000000014,58.198043999999982],[-68.295273000000009,58.209991000000116],[-68.284164000000033,58.219986000000063],[-68.230835000000013,58.26888300000013],[-68.18582200000003,58.360549999999989],[-68.168335000000013,58.414711000000125],[-68.166655999999989,58.424438000000066],[-68.166945999999996,58.435822000000144],[-68.169998000000021,58.446655000000135],[-68.172775000000001,58.454993999999999],[-68.178054999999972,58.469711000000132],[-68.178329000000019,58.480270000000019],[-68.171386999999925,58.489990000000091],[-68.139175000000023,58.521103000000096],[-68.135009999999852,58.524162000000047],[-68.013061999999991,58.573607999999922],[-68.003341999999975,58.576385000000016],[-67.983321999999987,58.573051000000021],[-67.969161999999983,58.565826000000015],[-67.959166999999979,58.558044000000052],[-67.896118000000001,58.500548999999978],[-67.893889999999999,58.496658000000082],[-67.892226999999991,58.491379000000109],[-67.891953000000001,58.483604000000014],[-67.895003999999915,58.476936000000023],[-67.901108000000022,58.467209000000082],[-67.908051,58.458046000000081],[-67.914444000000003,58.453323000000069],[-67.919448999999929,58.445540999999935],[-67.920837000000006,58.439430000000073],[-67.924163999999962,58.41276600000009],[-67.92332499999992,58.403046000000018],[-67.908339999999953,58.360825000000034],[-67.906113000000005,58.356941000000006],[-67.903610000000015,58.353607000000011],[-67.893340999999964,58.346656999999993],[-67.868056999999965,58.332214000000079],[-67.864166000000012,58.328880000000083],[-67.857498000000021,58.320273999999984],[-67.894500999999934,58.287163000000078],[-67.896659999999883,58.281158000000062],[-67.90449499999994,58.26766200000003],[-67.913329999999917,58.25616100000002],[-67.919341999999972,58.250159999999994],[-67.926330999999948,58.245491000000015],[-67.934829999999977,58.241161000000034],[-67.946999000000005,58.235992000000124],[-67.974990999999989,58.220993000000021],[-68.047501000000011,58.170547000000056],[-68.065826000000015,58.159431000000097],[-68.095839999999953,58.138602999999989],[-68.101105000000018,58.133049000000028],[-68.127486999999917,58.084717000000126],[-68.129989999999964,58.07888000000014],[-68.128325999999959,58.073608000000036],[-68.125548999999978,58.071105999999986],[-68.115828999999962,58.071938000000046],[-68.101105000000018,58.077773999999977],[-68.006667999999934,58.131935000000055],[-67.991668999999945,58.146103000000096],[-67.978333000000021,58.163605000000132],[-67.876944999999978,58.243050000000039],[-67.801392000000021,58.296661000000086],[-67.815551999999968,58.308883999999978],[-67.823897999999872,58.317215000000033],[-67.829178000000013,58.326385000000073],[-67.830565999999919,58.331383000000073],[-67.828888000000006,58.349716000000114],[-67.819732999999871,58.393608000000029],[-67.817229999999995,58.40526600000004],[-67.813323999999909,58.416100000000085],[-67.787505999999951,58.464439000000027],[-67.783066000000019,58.468048000000067],[-67.775008999999898,58.471099999999979],[-67.764450000000011,58.470543000000077],[-67.723891999999978,58.458885000000066],[-67.669448999999986,58.431938000000116],[-67.667496000000028,58.427489999999977],[-67.669998000000021,58.42193599999996],[-67.679992999999968,58.41276600000009],[-67.691939999999988,58.404433999999924],[-67.696945000000028,58.399437000000034],[-67.704726999999991,58.389160000000061],[-67.737212999999997,58.326942000000145],[-67.738892000000021,58.320831000000112],[-67.737212999999997,58.315543999999989],[-67.732497999999964,58.311661000000015],[-67.698043999999925,58.284995999999978],[-67.660827999999981,58.264442000000031],[-67.646117999999944,58.253326000000072],[-67.642775999999913,58.248604],[-67.652495999999985,58.214714000000129],[-67.654175000000009,58.210548000000017],[-67.728607000000011,57.976654000000053],[-67.713897999999858,57.923050000000046],[-67.710281000000009,57.97554800000006],[-67.708343999999954,57.982491000000039],[-67.659438999999963,58.110275000000058],[-67.653609999999958,58.122765000000015],[-67.64527899999996,58.134437999999989],[-67.591949,58.200828999999999],[-67.578339000000028,58.21527100000003],[-67.566100999999946,58.223602000000085],[-67.481383999999935,58.273880000000077],[-67.46665999999999,58.279716000000121],[-67.332779000000016,58.31610100000006],[-67.17222599999991,58.376380999999981],[-67.168609999999944,58.378044000000102],[-67.15194699999995,58.376656000000025],[-67.137512000000015,58.373046999999985],[-67.116652999999985,58.363327000000083],[-67.106948999999986,58.3555530000001],[-67.095550999999944,58.348877000000016],[-67.09056099999998,58.35054800000006],[-66.995834000000002,58.439430000000073],[-66.991669000000002,58.445267000000001],[-66.989989999999977,58.45138500000013],[-66.986664000000019,58.458046000000081],[-66.978881999999999,58.468323000000055],[-66.951401000000033,58.498603999999943],[-66.944153000000028,58.501937999999939],[-66.928054999999972,58.501663000000121],[-66.887221999999952,58.485550000000103],[-66.876937999999939,58.479156000000046],[-66.875548999999864,58.473877000000073],[-66.878052000000025,58.468596999999988],[-66.801101999999958,58.473602000000028],[-66.629714999999976,58.50360900000004],[-66.651671999999962,58.542770000000132],[-66.551940999999999,58.71138000000002],[-66.469727000000034,58.81638300000003],[-66.465012000000002,58.819992000000013],[-66.388610999999969,58.850548000000117],[-66.366652999999928,58.848044999999956],[-66.357773000000009,58.846099999999979],[-66.349990999999932,58.843048000000067],[-66.350280999999939,58.837212000000022],[-66.348891999999978,58.831940000000088],[-66.344161999999926,58.827773999999977],[-66.11471599999993,58.699714999999969],[-66.106110000000001,58.684989999999971],[-66.077224999999999,58.654434000000094],[-66.072234999999921,58.650825999999995],[-66.067779999999914,58.648880000000077],[-66.054168999999945,58.646102999999982],[-65.945540999999935,58.616936000000067],[-65.938888999999961,58.613883999999928],[-65.93582200000003,58.609718000000044],[-65.93582200000003,58.604713000000004],[-65.938598999999954,58.594437000000084],[-65.941939999999988,58.582770999999923],[-66.021941999999967,58.486938000000009],[-66.08944699999995,58.365273000000002],[-66.091385000000002,58.358887000000095],[-66.091385000000002,58.354164000000083],[-66.073059000000001,58.327217000000019],[-66.065552000000025,58.320273999999984],[-66.058883999999978,58.320273999999984],[-66.052779999999927,58.34693900000002],[-66.051392000000021,58.352493000000038],[-66.045546999999942,58.363052000000096],[-66.041671999999949,58.368050000000096],[-66.030562999999972,58.376380999999981],[-66.02305599999994,58.379714999999976],[-66.015014999999948,58.381934999999999],[-65.988051999999982,58.384437999999989],[-65.979172000000005,58.386107999999922],[-65.972777999999948,58.388046000000088],[-65.965012000000002,58.391936999999928],[-65.960280999999895,58.396103000000039],[-65.920272999999952,58.44582400000013],[-65.920837000000006,58.449432000000002],[-65.926666000000012,58.456099999999992],[-65.932219999999973,58.458885000000066],[-65.94027699999998,58.461661999999933],[-65.96166999999997,58.464714000000072],[-65.980559999999912,58.470268000000033],[-65.982497999999964,58.4741590000001],[-65.981948999999929,58.480545000000006],[-65.980559999999912,58.483047000000113],[-65.887512000000015,58.577774000000034],[-65.884170999999981,58.580826000000116],[-65.876937999999882,58.581940000000088],[-65.879989999999964,58.62721300000004],[-65.945540999999935,58.665267999999969],[-66.032226999999978,58.710548000000074],[-66.101394999999968,58.771103000000039],[-66.103881999999999,58.773604999999918],[-66.081954999999994,58.80971500000004],[-66.037215999999944,58.85166200000009],[-65.990111999999954,58.852661000000012],[-65.984954999999957,58.851494000000059],[-65.952277999999865,58.836822999999981],[-65.845839999999953,58.826660000000004],[-65.839721999999995,58.827217000000076],[-65.797501000000011,58.847488000000055],[-65.792770000000019,58.853325000000041],[-65.790282999999988,58.857773000000009],[-65.789443999999946,58.861938000000009],[-65.791381999999999,58.865829000000076],[-65.794998000000021,58.86693600000001],[-65.80610699999994,58.866660999999965],[-65.833327999999995,58.864715999999987],[-65.861938000000009,58.863327000000027],[-65.880279999999914,58.864440999999999],[-65.940445000000011,58.879105000000038],[-65.952606000000003,58.88126799999992],[-65.958115000000021,58.882935000000032],[-65.964775000000031,58.887440000000083],[-65.968276999999887,58.893440000000055],[-65.988602000000014,58.903603000000032],[-65.885559000000001,59.001938000000052],[-65.777495999999985,59.029990999999995],[-65.695266999999888,59.043610000000058],[-65.673049999999989,59.046104000000014],[-65.660278000000005,59.044159000000036],[-65.654174999999952,59.042496000000085],[-65.634673999999904,59.033217999999977],[-65.632492000000013,59.031216000000086],[-65.614166000000012,59.019440000000088],[-65.565001999999936,58.993607000000111],[-65.514450000000011,58.984718000000044],[-65.5,58.983330000000137],[-65.49499499999996,58.984718000000044],[-65.493332000000009,58.987495000000138],[-65.49499499999996,58.991936000000067],[-65.509444999999971,59.008330999999998],[-65.516402999999968,59.010826000000009],[-65.533614999999998,59.014717000000076],[-65.543059999999969,59.015549000000021],[-65.553054999999972,59.017493999999999],[-65.56082200000003,59.020827999999995],[-65.571388000000013,59.039108000000112],[-65.572891000000027,59.044106000000113],[-65.570221000000004,59.045772999999997],[-65.568054000000018,59.046776000000023],[-65.532776000000013,59.063881000000094],[-65.518616000000009,59.066666000000112],[-65.510284000000013,59.066940000000045],[-65.506392999999946,59.066382999999973],[-65.492492999999968,59.061378000000104],[-65.454726999999991,59.042221000000097],[-65.340285999999992,59.03833000000003],[-65.330565999999976,59.038048000000117],[-65.324721999999952,59.038887000000102],[-65.317504999999983,59.041382000000112],[-65.319732999999985,59.047217999999987],[-65.333618000000001,59.059990000000028],[-65.344726999999978,59.064712999999983],[-65.354171999999949,59.067497000000117],[-65.533553999999924,59.077663000000143],[-65.53687999999994,59.074665000000095],[-65.546721999999988,59.071831000000088],[-65.564383999999961,59.070163999999977],[-65.577056999999968,59.069996000000117],[-65.58406100000002,59.070999000000143],[-65.586563000000012,59.072159000000056],[-65.651947000000007,59.079163000000108],[-65.715011999999945,59.148331000000042],[-65.718062999999972,59.153046000000074],[-65.740829000000019,59.214714000000072],[-65.742492999999911,59.219437000000084],[-65.743056999999965,59.228043000000014],[-65.744995000000017,59.259720000000129],[-65.744719999999973,59.263054000000125],[-65.743056999999965,59.265830999999991],[-65.731948999999986,59.269066000000009],[-65.706664999999987,59.268326000000059],[-65.685271999999884,59.264442000000031],[-65.676102000000014,59.261108000000036],[-65.646118000000001,59.244713000000104],[-65.587509000000011,59.20249200000012],[-65.612503000000004,59.237495000000081],[-65.614715999999873,59.243607000000054],[-65.614166000000012,59.246941000000049],[-65.581680000000006,59.37721300000004],[-65.572509999999966,59.378601000000003],[-65.570006999999976,59.378326000000129],[-65.551940999999999,59.372765000000072],[-65.499160999999958,59.352219000000105],[-65.48332199999993,59.345542999999964],[-65.476105000000018,59.338882000000069],[-65.471114999999941,59.327492000000007],[-65.453338999999971,59.316939999999988],[-65.383895999999993,59.281661999999983],[-65.372771999999998,59.276657000000114],[-65.366652999999872,59.274993999999992],[-65.36111499999987,59.274712000000136],[-65.357223999999974,59.277214000000015],[-65.356658999999922,59.282768000000033],[-65.437774999999988,59.393883000000017],[-65.495269999999891,59.433876000000055],[-65.559433000000013,59.481658999999979],[-65.56138599999997,59.486107000000118],[-65.557495000000017,59.487770000000069],[-65.549438000000009,59.48943300000002],[-65.542220999999984,59.489990000000091],[-65.360000999999954,59.481658999999979],[-65.347778000000005,59.480820000000051],[-65.260559000000001,59.466385000000116],[-65.19766199999998,59.450493000000051],[-65.195830999999998,59.447659000000044],[-65.176940999999999,59.440269000000001],[-65.170273000000009,59.434433000000126],[-65.141953000000001,59.415825000000041],[-65.126663000000008,59.40776800000009],[-65.119995000000017,59.40526600000004],[-65.060271999999998,59.384438000000102],[-65.041381999999942,59.378601000000003],[-65.017775999999969,59.373046999999985],[-65.005844000000025,59.371933000000013],[-64.995543999999995,59.372490000000084],[-64.98332199999993,59.376380999999981],[-65.031386999999938,59.392769000000044],[-65.075835999999981,59.408043000000077],[-65.111114999999984,59.420546999999942],[-65.118880999999988,59.423882000000049],[-65.141113000000018,59.434433000000126],[-65.147231999999974,59.43804200000011],[-65.151397999999972,59.443046999999979],[-65.156386999999938,59.451659999999947],[-65.158996999999886,59.460827000000108],[-65.16194200000001,59.466660000000104],[-65.168059999999969,59.470543000000021],[-65.22084000000001,59.48832700000014],[-65.290832999999964,59.506660000000011],[-65.308608999999933,59.50999500000006],[-65.330001999999865,59.509437999999989],[-65.388901000000033,59.50750000000005],[-65.411666999999966,59.509437999999989],[-65.419998000000021,59.516936999999984],[-65.462783999999886,59.578049000000021],[-65.494155999999975,59.626937999999996],[-65.501677999999913,59.63888500000013],[-65.527785999999992,59.716933999999981],[-65.501952999999958,59.747215000000097],[-65.433318999999983,59.798049999999932],[-65.374999999999943,59.828049000000135],[-65.33555599999994,59.84665700000005],[-65.333892999999932,59.847214000000122],[-65.323623999999995,59.845543000000077],[-65.236114999999984,59.819381999999962],[-65.21945199999999,59.814377000000093],[-65.205947999999978,59.808548000000087],[-65.203444999999931,59.806881000000033],[-65.198775999999953,59.802879000000019],[-65.195281999999963,59.797218000000044],[-65.158614999999998,59.782211000000018],[-65.152785999999992,59.779990999999995],[-65.136123999999995,59.776657],[-65.053054999999972,59.763611000000083],[-65.033065999999963,59.761383000000137],[-65.006667999999991,59.760277000000087],[-64.988602000000014,59.761940000000038],[-64.983886999999982,59.762771999999927],[-64.983063000000016,59.764160000000061],[-64.989165999999955,59.765831000000105],[-65.055556999999965,59.778328000000101],[-65.132766999999944,59.79694400000011],[-65.161391999999978,59.817490000000134],[-65.199393999999927,59.835659000000078],[-65.202713000000017,59.837326000000019],[-65.206054999999992,59.840492000000097],[-65.230835000000013,59.880546999999979],[-65.231948999999986,59.885826000000122],[-65.226104999999961,59.888603000000046],[-65.206389999999999,59.888603000000046],[-65.143340999999907,59.94999700000011],[-65.126098999999954,60.011108000000036],[-65.110001000000011,60.043052999999986],[-65.029723999999931,60.077217000000019],[-64.921111999999937,60.194992000000013],[-64.834166999999979,60.323051000000078],[-64.832229999999925,60.328605999999979],[-64.834441999999967,60.334434999999985],[-64.846389999999928,60.345543000000134],[-64.858336999999949,60.352492999999981],[-64.857223999999974,60.359436000000017],[-64.854445999999996,60.361107000000061],[-64.846114999999998,60.362769999999955],[-64.83555599999994,60.363327000000083],[-64.65306099999998,60.34693900000002],[-64.641677999999899,60.344711000000018],[-64.610274999999945,60.336380000000133],[-64.576674999999966,60.322768999999994],[-64.533249000000012,60.302498000000014],[-64.475600999999983,60.281609000000003],[-64.466919000000019,60.278602999999976],[-64.431090999999981,60.258105999999941],[-64.432593999999995,60.255608000000052],[-64.43460099999993,60.255108000000064],[-64.446091000000024,60.254771999999946],[-64.453093999999908,60.256271000000027],[-64.462424999999939,60.259273999999948],[-64.477591999999959,60.265609999999981],[-64.477218999999991,60.260551000000135],[-64.557495000000017,60.281105000000082],[-64.580291999999929,60.286110000000122],[-64.613051999999982,60.289436000000137],[-64.643065999999976,60.287498000000028],[-64.721114999999941,60.261108000000036],[-64.725829999999974,60.258331000000112],[-64.758056999999951,60.235825000000091],[-64.759445000000028,60.231102000000135],[-64.752501999999879,60.228600000000029],[-64.745269999999948,60.228325000000041],[-64.736937999999952,60.230545000000063],[-64.685546999999985,60.250832000000116],[-64.646118000000001,60.265830999999991],[-64.634170999999981,60.268883000000073],[-64.596389999999985,60.266937000000041],[-64.574448000000018,60.264999000000103],[-64.554169000000002,60.262772000000041],[-64.536391999999921,60.2586060000001],[-64.421676999999988,60.215656000000024],[-64.419501999999966,60.213661000000002],[-64.376937999999996,60.160545000000013],[-64.465011999999945,60.084991000000002],[-64.469161999999869,60.08277099999998],[-64.476944000000003,60.079720000000009],[-64.491378999999938,60.074714999999912],[-64.504455999999948,60.072495000000117],[-64.515015000000005,60.071938000000046],[-64.654998999999918,60.053604000000064],[-64.80471799999998,60.007216999999969],[-64.8125,60.004165999999998],[-64.823333999999988,59.997772000000111],[-64.826675000000023,59.994712999999933],[-64.827498999999989,59.986382000000049],[-64.820007000000032,59.979431000000091],[-64.811935000000005,59.978325000000098],[-64.796660999999972,59.980270000000075],[-64.735274999999945,60.001106000000107],[-64.490828999999906,60.05943300000007],[-64.410277999999948,60.111107000000118],[-64.396392999999989,60.121933000000013],[-64.392226999999991,60.124161000000015],[-64.385833999999932,60.125267000000008],[-64.379990000000021,60.125267000000008],[-64.37388599999997,60.123604000000114],[-64.367766999999958,60.119713000000047],[-64.366104000000007,60.117493000000024],[-64.36500499999994,60.109993000000145],[-64.374611000000016,60.033829000000082],[-64.375281999999856,60.028324000000055],[-64.394729999999981,59.941658000000075],[-64.396956999999929,59.937767000000008],[-64.408889999999985,59.932495000000074],[-64.450561999999934,59.925270000000012],[-64.462218999999948,59.922493000000088],[-64.491942999999992,59.913605000000132],[-64.506957999999997,59.907211000000075],[-64.514724999999999,59.901932000000102],[-64.513901000000033,59.896103000000096],[-64.506393000000003,59.891936999999984],[-64.499435000000005,59.891663000000051],[-64.481948999999872,59.894714000000079],[-64.376098999999954,59.9180530000001],[-64.367766999999958,59.920273000000122],[-64.363327000000027,59.922493000000088],[-64.360549999999932,59.924995000000024],[-64.320281999999963,60.004107999999974],[-64.322112999999945,60.006439000000114],[-64.324119999999994,60.011604000000091],[-64.32428699999997,60.014107000000024],[-64.322112999999945,60.024605000000008],[-64.320449999999937,60.027270999999985],[-64.317443999999909,60.028103000000044],[-64.265014999999948,60.048050000000103],[-64.216659999999933,60.039993000000095],[-64.173614999999984,60.028328000000045],[-64.166945999999996,60.024994000000049],[-64.160827999999981,60.01638800000012],[-64.150283999999999,59.985268000000076],[-64.150283999999999,59.982208000000014],[-64.165833000000021,59.850548000000117],[-64.17721599999993,59.785552999999936],[-64.180831999999896,59.781662000000097],[-64.193053999999961,59.775825999999995],[-64.202498999999932,59.77416199999999],[-64.220000999999968,59.77416199999999],[-64.236664000000019,59.779716000000008],[-64.244720000000029,59.784996000000035],[-64.25140399999998,59.787498000000141],[-64.257507000000032,59.78943600000008],[-64.261948000000018,59.789161999999976],[-64.264450000000011,59.787498000000141],[-64.266662999999994,59.77915999999999],[-64.261123999999995,59.764717000000132],[-64.255004999999926,59.756660000000124],[-64.21305799999999,59.717766000000097],[-64.197768999999994,59.705269000000101],[-64.173888999999974,59.688598999999954],[-64.163894999999968,59.684158000000082],[-64.151672000000019,59.680824000000086],[-64.129989999999964,59.676659000000086],[-64.057769999999948,59.625267000000122],[-64.116942999999935,59.517494000000056],[-64.047501000000011,59.549721000000034],[-64.040833000000021,59.553604000000007],[-64.033324999999991,59.563880999999981],[-64.034438999999907,59.573608000000092],[-64.034438999999907,59.582771000000093],[-64.029723999999874,59.599433999999974],[-64.024719000000005,59.609993000000031],[-64.019454999999937,59.618599000000131],[-64.011123999999938,59.624992000000077],[-64.004729999999995,59.626381000000094],[-63.99722300000002,59.626656000000139],[-63.90055099999995,59.619987000000037],[-63.885559000000001,59.618881000000044],[-63.876105999999993,59.615829000000076],[-63.865554999999915,59.609993000000031],[-63.731666999999959,59.526099999999985],[-63.724166999999966,59.517769000000101],[-63.722495999999978,59.513885000000073],[-63.723884999999996,59.506660000000011],[-63.785278000000005,59.426102000000014],[-63.807837999999947,59.420437000000106],[-63.810172999999963,59.41944100000012],[-63.814502999999945,59.418101999999976],[-63.866393999999957,59.421104000000014],[-63.90694400000001,59.421660999999915],[-63.947776999999974,59.419716000000108],[-64.000564999999995,59.41443600000008],[-64.018341000000021,59.410545000000013],[-64.033324999999991,59.406654000000117],[-64.050277999999992,59.399994000000106],[-64.061110999999983,59.393883000000017],[-64.065826000000015,59.388046000000031],[-64.062209999999993,59.38249200000007],[-64.052779999999984,59.379433000000063],[-63.805167999999924,59.368164000000093],[-63.790145999999993,59.370293000000004],[-63.786652000000004,59.371792000000084],[-63.78264999999999,59.374126000000103],[-63.751395999999943,59.37582400000008],[-63.748111999999935,59.333878000000084],[-63.75644699999998,59.30838],[-63.768280000000004,59.28788000000003],[-63.77044699999999,59.284381999999994],[-63.773444999999981,59.282215000000122],[-63.780944999999974,59.278213999999991],[-63.814162999999951,59.249435000000005],[-63.824722000000008,59.24610100000001],[-63.825499999999977,59.244377000000043],[-63.82527899999991,59.243324000000086],[-63.813889000000017,59.240829000000076],[-63.777942999999993,59.263938999999993],[-63.76677699999999,59.264275000000055],[-63.760940999999946,59.265434000000027],[-63.755942999999945,59.266773000000001],[-63.739112999999975,59.273605000000032],[-63.730441999999925,59.280769000000021],[-63.723777999999925,59.287436999999954],[-63.718776999999932,59.293941000000075],[-63.716113999999891,59.300934000000098],[-63.71527900000001,59.303768000000105],[-63.71527900000001,59.306438000000071],[-63.71594199999987,59.309437000000059],[-63.713775999999996,59.315605000000005],[-63.710608999999863,59.318107999999995],[-63.658332999999971,59.358046999999999],[-63.649993999999992,59.362494999999967],[-63.543059999999912,59.34804500000007],[-63.535277999999948,59.344436999999971],[-63.393332999999927,59.264999000000103],[-63.357506000000001,59.208046000000081],[-63.356392000000028,59.204993999999999],[-63.358054999999922,59.198043999999982],[-63.366661000000022,59.186377999999991],[-63.412773000000016,59.135826000000066],[-63.425560000000019,59.126381000000038],[-63.441108999999926,59.119438000000002],[-63.476944000000003,59.104439000000127],[-63.563613999999973,59.073326000000122],[-63.580001999999922,59.067497000000117],[-63.589721999999938,59.065543999999989],[-63.731392000000028,59.056270999999981],[-63.741055000000017,59.055770999999993],[-63.74872199999993,59.056934000000126],[-63.753890999999896,59.058266000000003],[-63.760222999999939,59.062767000000122],[-63.812217999999973,59.065826000000072],[-63.934440999999936,59.081108000000086],[-63.948333999999988,59.07888000000014],[-63.966110000000015,59.074714999999969],[-63.98833499999995,59.068329000000062],[-64.045546999999999,59.02416199999999],[-64.04722599999991,59.019440000000088],[-64.043883999999991,59.015273999999977],[-64.039443999999946,59.013885000000016],[-63.912216000000001,59.000549000000035],[-63.801719999999989,59.013992000000144],[-63.798388999999986,59.011329999999987],[-63.766395999999986,59.012772000000098],[-63.759444999999971,59.012497000000053],[-63.734443999999939,59.014998999999989],[-63.508057000000008,59.052773000000059],[-63.381667999999877,59.098045000000127],[-63.372771999999941,59.101104999999961],[-63.365554999999915,59.101104999999961],[-63.309440999999993,59.09415400000006],[-63.293335000000013,59.091377000000136],[-63.134170999999981,59.058327000000077],[-63.124999999999943,59.055267000000015],[-63.121940999999993,59.051384000000098],[-63.122771999999998,59.045547000000113],[-63.126944999999921,59.041382000000112],[-63.133330999999941,59.038048000000117],[-63.159438999999907,59.029990999999995],[-63.175277999999992,59.026939000000084],[-63.185271999999998,59.026381999999955],[-63.216942000000017,59.027489000000116],[-63.238892000000021,59.030548000000067],[-63.323333999999932,59.027771000000143],[-63.336112999999955,59.024994000000049],[-63.335555999999997,59.021935000000099],[-63.264450000000011,58.985549999999989],[-63.213889999999992,58.977211000000125],[-63.195273999999984,58.979713000000004],[-63.185271999999998,58.980270000000075],[-63.173057999999912,58.979713000000004],[-63.167503000000011,58.970825000000048],[-63.160552999999993,58.926384000000041],[-63.163054999999929,58.920273000000122],[-63.236389000000031,58.876937999999996],[-63.313331999999946,58.861107000000004],[-63.325004999999976,58.85582700000009],[-63.312774999999988,58.853049999999996],[-63.294723999999974,58.85083000000003],[-63.19027699999998,58.854996000000085],[-63.112777999999992,58.878043999999989],[-63.033332999999971,58.873878000000104],[-62.924170999999944,58.821381000000031],[-62.918334999999956,58.817497000000003],[-62.90694400000001,58.80471],[-62.904167000000029,58.799995000000138],[-62.847495999999978,58.690543999999989],[-62.845276000000013,58.684989999999971],[-62.842223999999987,58.669991000000095],[-62.843612999999948,58.659430999999984],[-62.847777999999948,58.653045999999961],[-62.915832999999907,58.600272999999959],[-62.974998000000028,58.576660000000061],[-63.169167000000016,58.503052000000139],[-63.334109999999896,58.455768999999975],[-63.334609999999941,58.45227100000011],[-63.337108999999941,58.448437000000126],[-63.373444000000006,58.417435000000069],[-63.38528100000002,58.41027100000008],[-63.39910900000001,58.405273000000079],[-63.486388999999974,58.37082700000002],[-63.522498999999982,58.361107000000118],[-63.537506000000008,58.354164000000083],[-63.583060999999987,58.311378000000047],[-63.587776000000019,58.305549999999982],[-63.58943899999997,58.30082700000014],[-63.584998999999925,58.298881999999992],[-63.579726999999991,58.298606999999947],[-63.571670999999924,58.299995000000081],[-63.555274999999938,58.305267000000015],[-63.533057999999983,58.314438000000109],[-63.428223000000003,58.369049000000132],[-63.392386999999928,58.388381999999979],[-63.378558999999939,58.399044000000004],[-63.364219999999932,58.410049000000015],[-63.351555000000019,58.418716000000018],[-63.286391999999978,58.456657000000064],[-63.28082999999998,58.459160000000054],[-63.264724999999942,58.463051000000121],[-63.241669000000002,58.466385000000116],[-63.213615000000004,58.469437000000028],[-63.148612999999955,58.476379000000122],[-63.13277399999987,58.477211000000068],[-63.124442999999872,58.475266000000033],[-63.096947,58.461936999999978],[-63.089721999999938,58.458327999999938],[-63.086113000000012,58.454993999999999],[-63.037506000000008,58.453048999999965],[-62.763335999999981,58.480820000000051],[-62.636664999999937,58.501389000000017],[-62.620551999999975,58.504997000000117],[-62.610001000000011,58.503882999999973],[-62.58943899999997,58.499718000000144],[-62.573615999999959,58.493880999999988],[-62.566108999999926,58.490546999999992],[-62.56138599999997,58.487495000000081],[-62.557502999999997,58.482491000000095],[-62.556389000000024,58.478043000000127],[-62.619719999999973,58.376938000000052],[-62.619445999999982,58.310272000000055],[-62.623054999999965,58.30443600000001],[-62.634170999999981,58.297775000000058],[-62.708611000000019,58.276100000000042],[-62.77666499999998,58.268599999999992],[-62.828056000000004,58.252220000000079],[-62.661666999999966,58.26998900000001],[-62.658607000000018,58.270271000000037],[-62.654442000000017,58.270271000000037],[-62.609725999999966,58.256660000000068],[-62.597778000000005,58.251663000000008],[-62.592772999999966,58.248604],[-62.582503999999858,58.23443600000013],[-62.581116000000009,58.221931000000041],[-62.58277899999996,58.216934000000094],[-62.584441999999967,58.214439000000084],[-62.631942999999865,58.185265000000129],[-62.638054000000011,58.181938000000002],[-62.653053,58.175270000000012],[-62.661384999999996,58.173049999999989],[-62.689163000000008,58.169991000000039],[-62.719718999999941,58.169715999999994],[-62.740279999999927,58.171936000000017],[-62.773887999999886,58.176941000000056],[-62.783889999999928,58.176659000000029],[-62.822226999999998,58.174713000000111],[-62.841666999999973,58.1722180000001],[-62.965004000000022,58.15387700000008],[-63.012221999999952,58.135551000000078],[-63.016662999999937,58.126098999999954],[-63.023887999999999,58.118880999999988],[-63.045279999999934,58.108886999999982],[-63.126944999999921,58.086936999999978],[-63.205558999999994,58.065826000000072],[-63.21166999999997,58.062492000000077],[-63.211387999999999,58.060272000000111],[-63.208892999999989,58.057770000000005],[-63.19027699999998,58.053047000000049],[-63.140838999999971,58.048882000000049],[-63.146998999999994,58.036831000000006],[-63.15582999999998,58.026939000000084],[-63.167777999999942,58.021103000000039],[-63.193329000000006,58.014717000000132],[-63.267220000000009,58.007217000000026],[-63.275275999999963,58.005554000000132],[-63.30471799999998,57.996940999999936],[-63.341666999999973,57.981102000000021],[-63.340835999999967,57.979988000000048],[-63.329726999999991,57.980270000000132],[-63.15166499999998,57.993606999999997],[-63.128882999999973,57.997771999999998],[-63.107779999999991,58.007774000000097],[-63.101944000000003,58.01249700000011],[-63.098884999999939,58.017769000000044],[-63.097778000000005,58.019714000000022],[-63.09833500000002,58.026939000000084],[-63.099998000000028,58.033051000000057],[-63.101944000000003,58.036942000000124],[-63.101668999999902,58.044159000000036],[-63.097778000000005,58.052216000000044],[-63.094718999999941,58.057495000000017],[-63.089164999999866,58.06221000000005],[-62.946662999999944,58.124161000000015],[-62.940276999999924,58.125824000000136],[-62.886390999999946,58.137496999999996],[-62.838051000000007,58.144997000000046],[-62.832222000000002,58.14527099999998],[-62.829445000000021,58.143326000000002],[-62.77277399999997,58.129158000000132],[-62.652221999999995,58.118599000000074],[-62.646111000000019,58.119155999999975],[-62.643058999999994,58.119986999999981],[-62.612502999999947,58.137771999999984],[-62.59944200000001,58.145546000000024],[-62.560828999999956,58.156654000000003],[-62.515838999999914,58.169158999999922],[-62.491942999999992,58.174163999999962],[-62.46665999999999,58.175552000000096],[-62.452781999999956,58.175270000000012],[-62.448051000000021,58.1722180000001],[-62.446388000000013,58.168327000000033],[-62.447776999999917,58.164154000000053],[-62.463000999999963,58.151047000000062],[-62.469666000000018,58.145718000000045],[-62.478333000000021,58.141212000000053],[-62.486168000000021,58.136547000000064],[-62.503890999999953,58.123604000000114],[-62.519447000000014,58.111937999999952],[-62.529166999999916,58.102776000000063],[-62.531386999999995,58.095268000000033],[-62.514450000000011,58.057495000000017],[-62.506392999999946,58.055267000000072],[-62.498054999999908,58.057213000000104],[-62.49138599999992,58.061378000000104],[-62.486664000000019,58.066940000000045],[-62.484443999999939,58.072220000000129],[-62.485557999999912,58.081107999999915],[-62.488051999999925,58.086105000000032],[-62.488891999999908,58.091103000000032],[-62.488051999999925,58.09665700000005],[-62.482772999999952,58.100273000000072],[-62.444827999999916,58.106720000000053],[-62.413054999999929,58.110825000000091],[-62.375,58.112770000000069],[-62.368889000000024,58.111664000000019],[-62.363892000000021,58.108604000000014],[-62.317779999999971,58.052489999999977],[-62.307502999999883,58.039161999999976],[-62.306945999999982,58.031104999999968],[-62.309722999999963,58.028603000000089],[-62.38144699999998,58.008327000000065],[-62.394112000000007,58.003658000000087],[-62.406280999999979,58.002827000000082],[-62.41311300000001,58.003658000000087],[-62.437613999999883,58.010159000000101],[-62.450443000000007,58.011993000000132],[-62.500838999999928,58.008049000000142],[-62.51916499999993,58.006943000000092],[-62.528335999999967,58.005554000000132],[-62.545279999999934,58.000549000000035],[-62.648055999999997,57.958328000000051],[-62.655273000000022,57.953605999999979],[-62.65972099999999,57.94860100000011],[-62.672774999999945,57.929993000000024],[-62.664443999999946,57.928604000000064],[-62.655273000000022,57.929993000000024],[-62.640838999999971,57.935264999999958],[-62.636116000000015,57.938598999999954],[-62.620833999999945,57.947487000000137],[-62.611670999999944,57.951660000000061],[-62.577498999999989,57.962212000000079],[-62.537780999999882,57.971100000000092],[-62.512504999999919,57.972487999999998],[-62.455165999999963,57.968212000000051],[-62.448001999999974,57.967708999999957],[-62.325004999999919,57.956100000000106],[-62.268332999999984,57.948875000000044],[-62.200278999999966,57.935822000000087],[-62.148887999999999,57.974990999999932],[-62.145279000000016,57.974159000000043],[-62.12749500000001,57.968048000000124],[-62.116111999999987,57.962493999999992],[-62.083610999999962,57.944992000000127],[-62.079726999999934,57.942763999999954],[-62.072226999999998,57.931107000000054],[-62.05972300000002,57.897774000000027],[-62.060828999999956,57.889992000000063],[-62.062774999999931,57.886658000000068],[-62.115279999999984,57.854164000000026],[-62.131942999999978,57.84276600000004],[-62.138053999999954,57.835823000000005],[-62.139167999999927,57.831940000000088],[-62.125274999999988,57.806938000000002],[-62.120833999999888,57.800827000000083],[-62.119995000000017,57.799994999999967],[-62.107779999999991,57.789719000000105],[-62.08916499999998,57.780548000000124],[-62.085830999999985,57.779433999999981],[-62.079169999999976,57.779433999999981],[-62.061110999999926,57.781936999999971],[-62.046394000000021,57.785828000000038],[-62.033332999999914,57.787216000000114],[-62.018058999999937,57.783607000000131],[-61.996666000000005,57.772217000000069],[-61.99138599999992,57.767769000000101],[-61.889998999999989,57.666382000000112],[-61.883330999999998,57.645546000000081],[-61.883057000000008,57.63749700000011],[-61.884444999999971,57.626938000000052],[-61.888610999999969,57.622490000000084],[-61.89805599999994,57.616386000000034],[-62.071670999999981,57.563605999999993],[-62.192222999999899,57.535828000000095],[-62.30860899999999,57.490546999999992],[-62.421386999999982,57.482207999999957],[-62.431945999999868,57.484717999999987],[-62.531113000000005,57.506943000000035],[-62.541388999999981,57.507500000000107],[-62.544723999999974,57.504440000000045],[-62.545279999999934,57.50110600000005],[-62.533332999999914,57.492218000000094],[-62.520553999999947,57.484993000000031],[-62.46444699999995,57.454437000000098],[-62.457222000000002,57.451103000000103],[-62.377220000000023,57.421936000000017],[-62.365279999999927,57.419715999999994],[-62.353888999999981,57.418326999999977],[-62.335830999999928,57.419440999999949],[-62.230552999999986,57.443604000000107],[-62.173331999999959,57.463608000000022],[-62.167220999999984,57.464439000000084],[-62.060828999999956,57.456383000000017],[-62.039725999999973,57.453323000000125],[-61.891388000000006,57.411934000000031],[-61.816948000000025,57.376938000000109],[-61.803054999999915,57.369155999999975],[-61.801391999999908,57.363052000000096],[-61.803054999999915,57.358887000000095],[-61.863892000000021,57.285553000000107],[-61.894164999999987,57.269440000000088],[-61.937499999999943,57.252220000000079],[-61.944999999999936,57.250832000000003],[-61.953888000000006,57.249435000000062],[-61.997779999999977,57.25638600000002],[-62.017219999999952,57.256943000000092],[-62.026389999999992,57.255829000000119],[-62.023613000000012,57.251663000000008],[-62.015839000000028,57.243050000000039],[-62.005004999999869,57.236655999999982],[-61.858894000000021,57.167770000000132],[-61.852500999999961,57.165268000000083],[-61.664444000000003,57.143883000000073],[-61.65555599999999,57.143051000000014],[-61.565551999999968,57.149719000000005],[-61.515555999999947,57.15638000000007],[-61.490836999999999,57.159431000000097],[-61.478881999999999,57.159431000000097],[-61.458892999999989,57.154709000000025],[-61.441665999999884,57.148604999999975],[-61.39305899999988,57.124709999999993],[-61.380279999999914,57.117210000000114],[-61.363892000000021,57.097214000000122],[-61.358336999999949,57.087494000000049],[-61.355559999999969,57.016388000000006],[-61.370833999999945,56.978600000000142],[-61.378052000000025,56.982208000000071],[-61.393332999999984,56.983047000000056],[-61.479720999999984,56.983604000000128],[-61.487777999999935,56.981658999999979],[-61.495551999999861,56.979430999999977],[-61.516395999999929,56.970267999999976],[-61.535560999999973,56.961104999999975],[-61.546668999999952,56.954437000000041],[-61.639998999999932,56.883881000000031],[-61.645003999999915,56.878326000000129],[-61.648337999999967,56.873046999999929],[-61.650832999999921,56.866936000000067],[-61.65277900000001,56.855826999999977],[-61.65277900000001,56.845543000000134],[-61.65055099999995,56.840828000000101],[-61.646111000000019,56.826942000000088],[-61.646111000000019,56.821106000000043],[-61.650276000000019,56.816666000000055],[-61.661384999999996,56.809433000000013],[-61.676392000000021,56.802773000000002],[-61.782391000000018,56.794441000000006],[-61.799224999999922,56.792937999999992],[-61.816886999999952,56.793610000000001],[-61.823558999999989,56.794441000000006],[-61.834556999999961,56.796108000000117],[-61.844559000000004,56.798943000000008],[-61.892226999999934,56.798607000000118],[-61.906386999999938,56.795273000000122],[-61.908606999999961,56.789162000000033],[-61.902221999999938,56.714156999999943],[-61.899993999999992,56.707214000000135],[-61.897223999999937,56.703049000000135],[-61.889998999999989,56.698044000000095],[-61.886115999999959,56.698044000000095],[-61.877776999999924,56.713051000000121],[-61.87027699999993,56.726936000000023],[-61.833667999999932,56.741993000000093],[-61.830832999999927,56.745327000000088],[-61.824996999999996,56.746826000000112],[-61.811504000000014,56.746826000000112],[-61.793335000000013,56.746826000000112],[-61.780498999999963,56.745658999999989],[-61.772834999999986,56.744160000000136],[-61.76266899999996,56.741325000000074],[-61.716392999999925,56.738045000000113],[-61.702498999999989,56.730820000000051],[-61.696944999999971,56.724709000000132],[-61.701667999999984,56.713325999999938],[-61.71055599999994,56.705551000000071],[-61.721106999999961,56.701103000000103],[-61.734443999999996,56.697212000000036],[-61.75417299999998,56.697487000000024],[-61.765006999999969,56.6988750000001],[-61.773055999999997,56.701103000000103],[-61.798339999999996,56.710823000000005],[-61.808334000000002,56.712212000000136],[-61.821670999999924,56.709717000000126],[-61.825004999999919,56.706657000000064],[-61.821670999999924,56.701660000000004],[-61.799171000000001,56.682770000000005],[-61.792503000000011,56.680824000000143],[-61.732215999999937,56.663322000000107],[-61.681670999999994,56.653603000000089],[-61.674445999999932,56.653046000000018],[-61.658889999999985,56.647774000000084],[-61.649726999999984,56.641662999999994],[-61.649993999999936,56.635268999999994],[-61.658607000000018,56.627487000000031],[-61.672500999999954,56.619986999999924],[-61.680557000000022,56.618050000000096],[-61.688889000000017,56.617210000000057],[-61.699164999999994,56.617767000000129],[-61.835555999999997,56.631660000000124],[-61.911667000000023,56.642769000000044],[-61.992774999999938,56.66027100000008],[-62.010001999999872,56.664153999999996],[-62.066947999999911,56.678604000000121],[-62.311110999999983,56.735550000000046],[-62.479995999999971,56.77388000000002],[-62.498885999999914,56.779716000000064],[-62.504448000000025,56.783607000000131],[-62.505004999999926,56.788886999999988],[-62.501944999999978,56.791939000000127],[-62.486114999999984,56.796104000000128],[-62.468886999999995,56.798607000000118],[-62.326392999999996,56.812767000000008],[-62.227492999999868,56.816666000000055],[-62.18999500000001,56.81332400000008],[-62.138335999999924,56.81082200000003],[-62.068335999999988,56.817214999999976],[-62.059440999999879,56.818603999999993],[-62.051665999999955,56.820549000000142],[-62.042502999999954,56.826942000000088],[-62.043334999999956,56.829994000000056],[-62.049445999999875,56.832496999999989],[-62.066947999999911,56.834434999999928],[-62.234726000000023,56.836937000000034],[-62.381667999999991,56.830276000000083],[-62.478606999999954,56.846657000000107],[-62.488891999999908,56.849434000000031],[-62.498885999999914,56.850548000000003],[-62.508338999999921,56.849998000000141],[-62.517219999999952,56.848045000000013],[-62.53194400000001,56.843605000000025],[-62.543892000000028,56.837212000000022],[-62.546950999999922,56.834717000000012],[-62.570281999999963,56.798607000000118],[-62.57389099999989,56.792770000000132],[-62.538337999999953,56.775551000000064],[-62.503058999999951,56.762214999999912],[-62.356109999999887,56.722214000000122],[-62.162773000000016,56.672768000000076],[-62.02277399999997,56.627487000000031],[-62.005279999999971,56.616936000000123],[-62.117500000000007,56.623046999999985],[-62.175003000000004,56.623877999999991],[-62.235557999999969,56.623604000000057],[-62.241111999999873,56.62332200000003],[-62.239722999999969,56.617210000000057],[-62.224715999999944,56.609161000000029],[-62.192222999999899,56.602493000000038],[-62.105003000000011,56.59693900000002],[-62.046394000000021,56.595825000000048],[-62.036117999999874,56.595267999999976],[-61.901389999999935,56.58776899999998],[-61.729439000000013,56.574440000000095],[-61.715004000000022,56.572220000000073],[-61.70805399999989,56.568886000000077],[-61.701110999999969,56.560822000000087],[-61.690833999999995,56.548050000000046],[-61.666663999999969,56.540549999999996],[-61.658332999999971,56.537498000000085],[-61.655273000000022,56.533882000000006],[-61.653327999999931,56.53054800000001],[-61.652221999999995,56.526100000000042],[-61.653327999999931,56.520546000000081],[-61.656661999999926,56.510826000000009],[-61.662216000000001,56.506104000000107],[-61.680282999999974,56.496658000000139],[-61.689163000000008,56.494713000000104],[-61.754723000000013,56.484993000000031],[-61.773055999999997,56.484718000000044],[-61.80388599999992,56.487770000000125],[-61.878052000000025,56.497772000000111],[-61.951942000000031,56.505554000000075],[-62.038612000000001,56.505271999999991],[-62.046950999999922,56.50471500000009],[-62.05471799999998,56.502495000000067],[-62.061667999999997,56.499435000000005],[-62.075561999999934,56.49193600000001],[-62.08306099999993,56.486938000000009],[-62.085273999999913,56.483046999999942],[-62.082222000000002,56.481659000000036],[-62.076667999999984,56.479987999999992],[-62.070838999999978,56.481102000000135],[-62.024170000000026,56.48443600000013],[-61.976386999999988,56.483330000000137],[-61.965278999999896,56.481934000000081],[-61.952224999999999,56.475822000000107],[-61.946945000000028,56.471100000000035],[-61.956164999999942,56.464050000000043],[-61.958831999999973,56.461048000000005],[-61.961333999999965,56.459717000000012],[-61.966003000000001,56.458549000000005],[-61.979835999999978,56.455551000000071],[-61.999724999999955,56.44999700000011],[-62.010284000000013,56.44999700000011],[-62.019996999999989,56.451102999999932],[-62.048888999999974,56.457214000000022],[-62.05972300000002,56.458603000000039],[-62.069999999999993,56.459160000000111],[-62.124999999999886,56.457214000000022],[-62.139998999999932,56.452217000000132],[-62.143058999999994,56.449158000000125],[-62.139167999999927,56.444709999999986],[-62.124999999999886,56.43832400000008],[-62.117500000000007,56.435546999999985],[-62.083327999999995,56.423325000000034],[-62.073059000000001,56.420546999999999],[-61.984726000000023,56.415268000000026],[-61.963717999999972,56.415657000000067],[-61.956889999999987,56.417823999999939],[-61.909720999999934,56.413879000000065],[-61.798057999999912,56.39527099999998],[-61.790840000000003,56.392494000000056],[-61.661384999999996,56.270271000000093],[-61.678332999999952,56.269161000000111],[-61.679169000000002,56.267993999999987],[-61.686835999999971,56.266994000000011],[-61.702834999999993,56.265327000000127],[-61.749999999999943,56.261329999999987],[-61.760665999999958,56.261662000000115],[-61.772166999999968,56.263493000000096],[-61.777167999999961,56.265327000000127],[-61.779671000000008,56.267493999999999],[-61.778335999999967,56.268661000000122],[-61.775001999999972,56.268826000000104],[-61.765166999999963,56.268162000000018],[-61.756667999999934,56.266994000000011],[-61.746001999999919,56.267493999999999],[-61.741000999999926,56.269161000000111],[-61.753616000000022,56.273048000000017],[-61.753059000000007,56.277770999999973],[-61.769996999999933,56.284163999999976],[-61.800835000000006,56.28943600000008],[-61.878608999999926,56.298607000000004],[-61.888610999999969,56.299164000000076],[-62.029723999999987,56.305267000000015],[-62.074447999999961,56.296386999999982],[-62.080001999999979,56.293610000000115],[-62.080832999999984,56.292496000000142],[-62.076110999999912,56.284996000000035],[-62.016395999999986,56.238883999999985],[-62.011672999999917,56.235825000000034],[-62.003890999999953,56.233604000000071],[-61.956947000000014,56.220825000000048],[-61.938331999999946,56.215827999999931],[-61.919448999999986,56.212212000000079],[-61.910278000000005,56.212493999999936],[-61.802054999999939,56.216381000000069],[-61.769889999999975,56.218048000000124],[-61.575004999999976,56.216933999999981],[-61.575561999999991,56.211937000000034],[-61.578612999999905,56.206940000000145],[-61.579726999999991,56.199158000000011],[-61.575279000000023,56.19609800000012],[-61.560279999999921,56.194434999999999],[-61.53583500000002,56.196381000000088],[-61.450553999999954,56.204994000000056],[-61.411941999999954,56.214714000000129],[-61.40444199999996,56.217491000000052],[-61.380279999999914,56.22304500000007],[-61.361670999999944,56.223602000000142],[-61.350837999999953,56.222214000000065],[-61.345550999999944,56.218322999999998],[-61.33083299999987,56.181938000000059],[-61.330284000000006,56.176659000000029],[-61.33555599999994,56.172767999999962],[-61.343329999999924,56.170547000000056],[-61.377220000000023,56.168602000000078],[-61.383613999999909,56.164711000000011],[-61.397223999999881,56.155823000000055],[-61.406104999999911,56.146102999999925],[-61.452498999999932,56.062767000000008],[-61.452224999999999,56.056937999999946],[-61.448607999999979,56.052772999999945],[-61.413886999999932,56.037773000000016],[-61.411384999999882,56.037497999999971],[-61.397498999999982,56.041107000000011],[-61.382773999999927,56.047493000000088],[-61.356391999999971,56.058327000000133],[-61.346663999999919,56.061377999999991],[-61.34027900000001,56.063049000000035],[-61.324721999999952,56.065269000000058],[-61.315552000000025,56.065544000000045],[-61.24361399999998,56.047493000000088],[-61.239722999999969,56.045273000000066],[-61.23750299999989,56.042770000000075],[-61.240554999999972,56.040276000000006],[-61.265838999999971,56.02276599999999],[-61.273613000000012,56.020828000000051],[-61.282500999999968,56.019714000000079],[-61.310279999999977,56.018600000000106],[-61.357223999999974,56.018600000000106],[-61.388610999999912,56.021934999999985],[-61.419167000000016,56.027214000000129],[-61.438605999999993,56.027489000000003],[-61.489997999999957,56.02027099999998],[-61.501395999999943,56.014442000000145],[-61.503890999999896,56.010551000000078],[-61.503615999999965,56.006942999999978],[-61.421943999999996,55.963882000000126],[-61.415001000000018,55.960274000000027],[-61.399170000000026,55.958602999999925],[-61.389998999999989,55.958885000000009],[-61.38138600000002,55.960274000000027],[-61.328055999999947,55.964157000000114],[-61.254722999999956,55.967491000000109],[-61.154442000000017,55.971375000000137],[-61.143616000000009,55.970543000000021],[-61.125556999999958,55.968596999999932],[-61.117774999999938,55.966103000000032],[-61.113616999999977,55.962493999999992],[-61.074448000000018,55.928329000000076],[-61.073891000000003,55.923050000000103],[-61.076667999999984,55.906937000000084],[-61.094111999999939,55.895606999999984],[-61.156386999999995,55.891937000000098],[-61.165276000000006,55.892220000000066],[-61.181670999999994,55.89916199999999],[-61.194999999999993,55.892220000000066],[-61.201667999999984,55.884163000000115],[-61.198607999999922,55.876380999999981],[-61.192771999999934,55.869437999999946],[-61.104445999999939,55.845543000000134],[-61.095275999999899,55.843880000000013],[-61.085274000000027,55.843322999999941],[-61.077224999999999,55.843880000000013],[-61.068061999999998,55.845543000000134],[-61.039665000000014,55.850937000000044],[-61.035999000000004,55.853271000000063],[-61.027168000000017,55.857273000000077],[-60.946105999999986,55.865829000000133],[-60.917220999999927,55.864441000000056],[-60.782500999999968,55.854164000000083],[-60.762221999999952,55.851386999999988],[-60.755561999999998,55.849434000000031],[-60.741669000000002,55.843048000000124],[-60.729720999999927,55.829436999999984],[-60.729163999999969,55.824440000000038],[-60.730826999999977,55.808044000000052],[-60.734443999999996,55.801212000000021],[-60.736941999999999,55.797382000000027],[-60.74222599999996,55.790549999999939],[-60.774719000000005,55.772491000000002],[-60.80777699999993,55.755271999999934],[-60.880554000000018,55.749161000000072],[-60.879439999999988,55.732765000000029],[-60.765006999999969,55.728042999999957],[-60.756393000000003,55.729431000000091],[-60.746947999999975,55.731659000000036],[-60.740279999999984,55.734161000000086],[-60.727218999999877,55.739990000000091],[-60.721663999999976,55.744713000000104],[-60.7016109999999,55.763443000000109],[-60.668891999999971,55.795830000000024],[-60.656386999999938,55.812767000000008],[-60.647223999999937,55.822768999999994],[-60.639998999999989,55.825554000000011],[-60.631667999999991,55.826660000000061],[-60.623885999999914,55.824996999999939],[-60.615279999999927,55.821937999999989],[-60.601943999999946,55.814713000000097],[-60.597777999999892,55.80943300000007],[-60.598052999999993,55.804436000000123],[-60.605835000000013,55.733879000000059],[-60.615836999999999,55.686935000000062],[-60.629722999999899,55.638329000000056],[-60.668059999999969,55.589432000000102],[-60.655555999999933,55.584435000000042],[-60.606109999999944,55.622489999999914],[-60.60222599999986,55.626656000000025],[-60.59027900000001,55.644714000000079],[-60.544167000000016,55.726936000000023],[-60.527221999999881,55.760551000000135],[-60.527495999999985,55.765830999999991],[-60.525557999999933,55.77693899999997],[-60.519446999999957,55.78804800000006],[-60.514449999999954,55.793610000000001],[-60.503059000000007,55.803046999999935],[-60.487777999999878,55.808601000000124],[-60.483611999999994,55.809158000000025],[-60.339995999999985,55.786384999999939],[-60.334998999999982,55.784439000000077],[-60.328888000000006,55.781661999999983],[-60.327224999999885,55.772766000000047],[-60.329444999999964,55.761383000000023],[-60.337775999999963,55.748604],[-60.380553999999961,55.691933000000063],[-60.406386999999995,55.674713000000054],[-60.463218999999924,55.666046000000108],[-60.472720999999979,55.663212000000101],[-60.493889000000024,55.658043000000134],[-60.499999999999943,55.654160000000047],[-60.50389100000001,55.648330999999985],[-60.525001999999972,55.610550000000046],[-60.531112999999948,55.597214000000065],[-60.532218999999884,55.591660000000104],[-60.531859999999938,55.588195999999982],[-60.515006999999969,55.599715999999944],[-60.506110999999919,55.611664000000019],[-60.495002999999997,55.621101000000124],[-60.481383999999991,55.627769000000114],[-60.440334000000007,55.620216000000084],[-60.426167000000021,55.618217000000072],[-60.420334000000025,55.616379000000052],[-60.415501000000006,55.61454800000007],[-60.322776999999917,55.578330999999991],[-60.31639100000001,55.573883000000023],[-60.31639100000001,55.57027400000004],[-60.319449999999961,55.530823000000055],[-60.321670999999981,55.509995000000004],[-60.426318999999978,55.448204000000089],[-60.442210999999986,55.427696000000026],[-60.437774999999988,55.399437000000091],[-60.478332999999907,55.347488000000055],[-60.472771000000023,55.347771000000023],[-60.451392999999939,55.357216000000108],[-60.42610899999994,55.376656000000082],[-60.420837000000006,55.382210000000043],[-60.418335000000013,55.386107999999979],[-60.415275999999949,55.394714000000079],[-60.417777999999942,55.402771000000087],[-60.422501000000011,55.407211000000075],[-60.425003000000004,55.411377000000016],[-60.423614999999984,55.421378999999945],[-60.418335000000013,55.427490000000034],[-60.413054999999986,55.431664000000069],[-60.349167000000023,55.475822000000107],[-60.331673000000023,55.486655999999982],[-60.319449999999961,55.491378999999995],[-60.268607999999972,55.502495000000124],[-60.253890999999953,55.503052000000025],[-60.213889999999992,55.489433000000076],[-60.203613000000018,55.483604000000071],[-60.201667999999984,55.478600000000085],[-60.195548999999971,55.431381000000101],[-60.265839000000028,55.409156999999993],[-60.274169999999913,55.408043000000021],[-60.284171999999955,55.408600000000092],[-60.295279999999934,55.411102000000142],[-60.305274999999881,55.411659000000043],[-60.313332000000003,55.411102000000142],[-60.354720999999927,55.394997000000046],[-60.468886999999938,55.285827999999981],[-60.49888599999997,55.253325999999959],[-60.538054999999929,55.200546000000145],[-60.499999999999943,55.218047999999953],[-60.488892000000021,55.227210999999954],[-60.482215999999994,55.231658999999922],[-60.476386999999988,55.2347180000001],[-60.468329999999924,55.237495000000024],[-60.37388599999997,55.260551000000021],[-60.365836999999942,55.260826000000066],[-60.355277999999998,55.259437999999989],[-60.348610000000008,55.255829000000119],[-60.348052999999936,55.250549000000092],[-60.353057999999976,55.244995000000074],[-60.512222000000008,55.120543999999938],[-60.587776000000019,55.088599999999929],[-60.616660999999965,55.077217000000132],[-60.636116000000015,55.066665999999998],[-60.670554999999979,55.044715999999994],[-60.681113999999923,55.004715000000033],[-60.683326999999906,54.994995000000131],[-60.592773000000022,55.058884000000091],[-60.475273000000016,55.124435000000005],[-60.266395999999986,55.240547000000106],[-60.259170999999924,55.244155999999919],[-60.252501999999993,55.246384000000091],[-60.176108999999997,55.270827999999995],[-60.079781000000025,55.249602999999979],[-60.073776000000009,55.247940000000028],[-60.072776999999974,55.245106000000021],[-60.110778999999923,55.199268000000075],[-60.123610999999926,55.156380000000127],[-60.146392999999932,55.137214999999969],[-60.157218999999941,55.128601000000117],[-60.187217999999973,55.108046999999999],[-60.204445000000021,55.107498000000021],[-60.212776000000019,55.108604000000071],[-60.220551,55.106384000000048],[-60.282776000000013,55.057770000000062],[-60.288337999999953,55.053321999999923],[-60.295006000000001,55.041382000000056],[-60.296950999999922,55.03443900000002],[-60.296668999999952,55.024993999999992],[-60.293892000000028,55.019440000000145],[-60.284171999999955,55.024437000000091],[-60.152495999999985,55.102776000000119],[-60.124442999999928,55.120270000000005],[-60.09944200000001,55.136658000000068],[-60.088332999999921,55.145827999999938],[-60.083884999999952,55.152214000000072],[-60.051223999999934,55.182381000000134],[-60.04571900000002,55.193046999999979],[-60.044723999999917,55.196711999999991],[-60.042721000000029,55.199883],[-60.039718999999877,55.203213000000005],[-60.036057000000028,55.206383000000073],[-60.021888999999987,55.218547999999942],[-60.015223999999989,55.221546000000046],[-60.009224000000017,55.221214000000089],[-59.964721999999938,55.235549999999989],[-59.939437999999939,55.233047000000056],[-59.922774999999945,55.233047000000056],[-59.916945999999939,55.233879000000115],[-59.912497999999971,55.238883999999985],[-59.890838999999971,55.265549000000021],[-59.868332000000009,55.291381999999999],[-59.863891999999964,55.296104000000071],[-59.851394999999968,55.303047000000049],[-59.80750299999994,55.324164999999937],[-59.795279999999991,55.327492000000063],[-59.779167000000029,55.329720000000066],[-59.776108000000022,55.329162999999937],[-59.715003999999965,55.276099999999929],[-59.711945000000014,55.269714000000022],[-59.713332999999977,55.256103999999993],[-59.729439000000013,55.205269000000101],[-59.732497999999964,55.197211999999979],[-59.735832000000016,55.194153000000142],[-59.742774999999938,55.191376000000048],[-59.831389999999999,55.162491000000045],[-59.847495999999978,55.158043000000077],[-59.863891999999964,55.154160000000104],[-59.897781000000009,55.151382000000126],[-59.918334999999956,55.155265999999983],[-59.94027699999998,55.162766000000033],[-59.950553999999897,55.164436000000023],[-59.962775999999963,55.161102000000028],[-59.967215999999951,55.158599999999979],[-59.970832999999914,55.15554800000001],[-59.973327999999867,55.147491000000059],[-59.968055999999933,55.119156000000032],[-59.963615000000004,55.110275000000115],[-59.80083499999995,55.108887000000038],[-59.795279999999991,55.109160999999972],[-59.615836999999999,55.13638300000008],[-59.57028200000002,55.159988000000055],[-59.531386999999995,55.181380999999988],[-59.487777999999992,55.181380999999988],[-59.430557000000022,55.151931999999988],[-59.428336999999999,55.149719000000005],[-59.427223000000026,55.139992000000063],[-59.427779999999927,55.135826000000009],[-59.431945999999925,55.129433000000006],[-59.438605999999936,55.123604],[-59.49610899999999,55.078331000000105],[-59.539169000000015,55.049163999999962],[-59.593886999999995,55.020828000000051],[-59.610831999999959,55.012771999999984],[-59.716659999999933,54.955826000000059],[-59.802165999999943,54.887268000000006],[-59.823996999999963,54.851105000000132],[-59.939163000000008,54.758888000000013],[-59.944160000000011,54.755554000000018],[-59.945549000000028,54.753052000000139],[-59.944160000000011,54.749718000000144],[-59.938605999999936,54.746383999999978],[-59.919166999999959,54.741379000000109],[-59.90943900000002,54.740829000000076],[-59.888610999999855,54.743324000000143],[-59.882499999999936,54.744995000000017],[-59.797500999999954,54.781661999999983],[-59.791114999999991,54.78555300000005],[-59.788612000000001,54.789436000000023],[-59.790282999999874,54.794158999999979],[-59.79099999999994,54.822658999999987],[-59.794166999999959,54.828159000000142],[-59.79466599999995,54.830994000000032],[-59.793830999999898,54.839992999999993],[-59.79099999999994,54.846825000000024],[-59.784339999999929,54.857658000000015],[-59.772002999999927,54.869492000000037],[-59.754722999999899,54.897491000000116],[-59.729995999999971,54.907493999999986],[-59.703888000000006,54.910545000000013],[-59.688888999999961,54.913605000000075],[-59.674445999999989,54.919990999999982],[-59.618331999999953,54.948600999999996],[-59.411110000000008,55.056381000000101],[-59.293891999999971,55.169716000000108],[-59.165275999999949,55.234993000000088],[-59.161384999999996,55.236938000000123],[-59.154716000000008,55.235549999999989],[-59.144164999999987,55.228043000000071],[-59.139442000000031,55.223877000000016],[-59.131110999999919,55.215546000000074],[-59.127494999999954,55.205826000000002],[-59.124999999999943,55.196380999999917],[-59.124442999999872,55.186103999999943],[-59.149440999999911,55.16182699999996],[-59.15060799999992,55.158992999999953],[-59.155276999999955,55.152156999999931],[-59.161277999999982,55.146823999999924],[-59.168609999999944,55.141827000000035],[-59.176608999999985,55.137989000000061],[-59.205276000000026,55.13116100000002],[-59.20911000000001,55.129822000000047],[-59.240279999999927,55.111382000000049],[-59.25278499999996,55.102492999999981],[-59.363335000000006,55.015830999999991],[-59.37471800000003,55.006386000000077],[-59.383056999999951,54.998047000000042],[-59.386390999999946,54.993049999999982],[-59.391113000000018,54.982208000000128],[-59.391387999999949,54.980270000000019],[-59.388610999999969,54.97665400000011],[-59.384170999999924,54.973319999999944],[-59.37471800000003,54.972763000000043],[-59.369164000000012,54.975266000000033],[-59.275001999999915,55.021659999999997],[-59.262504999999862,55.028327999999988],[-59.250838999999985,55.035828000000038],[-59.237220999999977,55.048332000000073],[-59.242500000000007,55.061104000000057],[-59.243057000000022,55.06638300000003],[-59.240836999999999,55.071106000000043],[-59.236663999999962,55.07749200000012],[-59.133330999999941,55.120491000000015],[-59.051666000000012,55.153320000000065],[-59.035277999999892,55.156937000000028],[-59.023613000000012,55.15665400000006],[-58.960555999999883,55.134995000000004],[-58.956107999999915,55.130271999999991],[-58.955832999999984,55.126381000000094],[-58.955832999999984,55.10083000000003],[-58.958336000000031,55.09165999999999],[-58.961670000000026,55.085265999999933],[-58.971106999999961,55.071106000000043],[-58.980277999999998,55.059990000000084],[-59.005561999999998,55.032767999999976],[-59.001944999999978,55.017769000000101],[-58.972495999999978,54.995544000000052],[-58.947220000000016,54.985550000000046],[-58.907218999999941,54.963882000000126],[-58.896950000000004,54.95638300000013],[-58.894164999999873,54.952773999999977],[-58.895279000000016,54.947769000000108],[-58.90055099999995,54.943878000000041],[-58.90694400000001,54.940269000000001],[-58.964721999999881,54.917496000000142],[-59.013061999999991,54.896103000000039],[-59.015556000000004,54.892220000000066],[-59.013618000000008,54.889717000000132],[-58.904167000000029,54.844711000000075],[-58.838332999999977,54.832497000000046],[-58.832503999999972,54.831940000000145],[-58.824172999999973,54.834434999999985],[-58.694442999999978,54.820549000000028],[-58.685271999999941,54.815543999999989],[-58.560828999999956,54.776100000000042],[-58.443610999999919,54.77388000000002],[-58.398887999999943,54.78472099999999],[-58.391944999999964,54.787498000000085],[-58.379997000000003,54.789993000000095],[-58.328056000000004,54.792496000000085],[-58.243331999999953,54.794716000000051],[-58.196663000000001,54.795272999999952],[-58.191108999999983,54.794158999999979],[-58.188332000000003,54.792496000000085],[-58.18721800000003,54.788605000000018],[-58.188605999999936,54.783051],[-58.19388600000002,54.777771000000087],[-58.196944999999971,54.773322999999948],[-58.198607999999979,54.767768999999987],[-58.184166000000005,54.751662999999951],[-58.173332000000016,54.745544000000109],[-58.145554000000004,54.739716000000044],[-58.110001000000011,54.737213000000054],[-58.001395999999943,54.73333000000008],[-57.945548999999971,54.739989999999977],[-57.935554999999965,54.741104000000121],[-57.910552999999936,54.74193600000001],[-57.855002999999954,54.737495000000081],[-57.847495999999921,54.735550000000103],[-57.842498999999918,54.731377000000009],[-57.831947000000014,54.71776600000004],[-57.789725999999916,54.68221299999999],[-57.78556100000003,54.679161000000079],[-57.713057999999933,54.643051000000128],[-57.700835999999981,54.637215000000083],[-57.693610999999976,54.634720000000073],[-57.676392000000021,54.630272000000105],[-57.660278000000005,54.628043999999932],[-57.642226999999991,54.628043999999932],[-57.626388999999961,54.629990000000021],[-57.577781999999956,54.638885000000073],[-57.574172999999973,54.640274000000034],[-57.569725000000005,54.644440000000145],[-57.567223000000013,54.648331000000042],[-57.559165999999948,54.655822999999998],[-57.545836999999949,54.661659000000043],[-57.539168999999902,54.662209000000075],[-57.456389999999999,54.650826000000052],[-57.450553999999954,54.649993999999936],[-57.444716999999969,54.647217000000069],[-57.355834999999956,54.590271000000087],[-57.352782999999874,54.587493999999992],[-57.347495999999921,54.579437000000041],[-57.346947,54.574714999999969],[-57.348610000000008,54.566940000000045],[-57.380828999999949,54.507499999999993],[-57.385276999999917,54.503326000000129],[-57.396949999999947,54.495827000000133],[-57.427222999999969,54.487770000000012],[-57.484726000000023,54.482491000000039],[-57.493057000000022,54.483330000000137],[-57.519447000000014,54.483879000000115],[-57.590836000000024,54.484160999999972],[-57.618056999999965,54.483604000000071],[-57.672774999999888,54.479988000000048],[-57.694999999999993,54.475548000000003],[-57.702224999999942,54.47304500000007],[-57.704169999999976,54.470543000000134],[-57.705275999999969,54.466933999999981],[-57.700554000000011,54.45915999999994],[-57.686942999999928,54.458885000000123],[-57.658332999999971,54.463051000000007],[-57.587775999999963,54.467208999999968],[-57.487777999999935,54.47304500000007],[-57.47222099999999,54.473602000000142],[-57.449996999999939,54.467491000000052],[-57.442497000000003,54.464996000000042],[-57.425277999999992,54.45915999999994],[-57.421111999999994,54.455826000000002],[-57.421669000000009,54.453605999999979],[-57.523330999999985,54.417213000000061],[-57.621666000000005,54.383605999999929],[-57.629439999999988,54.381660000000068],[-57.660827999999924,54.376937999999996],[-57.678336999999999,54.375267000000122],[-57.695273999999927,54.374992000000077],[-57.715552999999943,54.376937999999996],[-57.743056999999965,54.380821000000083],[-57.783332999999971,54.388329000000113],[-57.797226000000023,54.38888500000013],[-57.876105999999936,54.386658000000068],[-57.910278000000005,54.385269000000051],[-58.050277999999878,54.377487000000087],[-58.146392999999989,54.365273000000059],[-58.154166999999973,54.363327000000027],[-58.172501000000011,54.357498000000021],[-58.185271999999941,54.351661999999919],[-58.248055000000022,54.320274000000097],[-58.259726999999998,54.312766999999951],[-58.261947999999961,54.311104000000057],[-58.259170999999981,54.30971500000004],[-58.253333999999995,54.308884000000035],[-58.221107000000018,54.311661000000129],[-58.197495000000004,54.31638300000003],[-58.108337000000006,54.328049000000021],[-58.098609999999951,54.327217000000076],[-58.095832999999971,54.325828999999999],[-58.233886999999982,54.254166000000055],[-58.24722300000002,54.252777000000037],[-58.344161999999926,54.244438000000002],[-58.383056999999894,54.241104000000007],[-58.410278000000005,54.241661000000136],[-58.417220999999984,54.242493000000024],[-58.431388999999967,54.242218000000037],[-58.453888000000006,54.23721299999994],[-58.566108999999926,54.204163000000108],[-58.579169999999976,54.199996999999996],[-58.601394999999968,54.186104],[-58.611945999999989,54.178329000000076],[-58.628882999999973,54.169716000000108],[-58.6444469999999,54.165267999999969],[-58.692771999999991,54.151657],[-58.724715999999944,54.145271000000093],[-58.756949999999961,54.141106000000093],[-58.771110999999962,54.13999200000012],[-58.797782999999981,54.139717000000076],[-58.833611000000019,54.145827999999995],[-58.842773000000022,54.145827999999995],[-58.860001000000011,54.144714000000022],[-58.915276000000006,54.138603000000103],[-58.928336999999942,54.13638300000008],[-59.114165999999955,54.103881999999999],[-59.190551999999968,54.087212000000079],[-59.248336999999992,54.071937999999989],[-59.27944199999996,54.064438000000109],[-59.376105999999993,54.046943999999996],[-59.434440999999936,54.0472180000001],[-59.470275999999956,54.051659000000029],[-59.510001999999929,54.059433000000013],[-59.534446999999943,54.05832700000002],[-59.561385999999914,54.05332199999998],[-59.575561999999991,54.049438000000123],[-59.582221999999945,54.046387000000095],[-59.586945000000014,54.0430530000001],[-59.588608000000022,54.040549999999939],[-59.584723999999994,54.035271000000137],[-59.517220000000009,53.997214999999983],[-59.509726999999998,53.995544000000109],[-59.494445999999982,53.996383999999978],[-59.265839000000028,54.023048000000074],[-59.049445999999932,54.057495000000074],[-58.877220000000023,54.094993999999986],[-58.703055999999947,54.124161000000129],[-58.431113999999923,54.217209000000025],[-58.426392000000021,54.221931000000097],[-58.417502999999954,54.228043000000071],[-58.406386999999938,54.229713000000061],[-58.379439999999931,54.229988000000105],[-58.371940999999936,54.228043000000071],[-58.374442999999928,54.224434000000088],[-58.449722000000008,54.154434000000094],[-58.605003000000011,54.044158999999979],[-58.610282999999981,54.041663999999912],[-58.632499999999936,54.035271000000137],[-58.654998999999975,54.031661999999983],[-58.678054999999915,54.029160000000104],[-58.704445000000021,54.027214000000015],[-58.721663999999919,54.027489000000003],[-58.749167999999997,54.031105000000082],[-58.759170999999981,54.032767999999976],[-58.768058999999937,54.034995999999978],[-58.779723999999931,54.037773000000072],[-58.80750299999994,54.043327000000033],[-58.835830999999928,54.0472180000001],[-58.879997000000003,54.044998000000078],[-58.937499999999943,54.041663999999912],[-59.002501999999936,54.032494000000042],[-59.038611999999944,54.02693899999997],[-59.041388999999981,54.026100000000042],[-59.042777999999942,54.022766000000047],[-59.040557999999862,54.021751000000052],[-59.006950000000018,54.018051000000014],[-58.951942000000031,54.014717000000019],[-58.944159999999954,54.01527400000009],[-58.92583499999995,54.014717000000019],[-58.922500999999954,54.013885000000073],[-58.919448999999929,54.010826000000122],[-58.923057999999969,54.007216999999969],[-58.954169999999976,53.983879000000002],[-58.963057999999933,53.977767999999969],[-58.980826999999977,53.966385000000116],[-59.008338999999921,53.955268999999987],[-59.015838999999971,53.953323000000125],[-59.047782999999981,53.948326000000009],[-59.072226999999941,53.947487000000024],[-59.115279999999871,53.946381000000031],[-59.12222300000002,53.945267000000058],[-59.172774999999945,53.934990000000028],[-59.201392999999996,53.927489999999977],[-59.331946999999957,53.888329000000056],[-59.345551,53.883049000000142],[-59.363891999999908,53.872215000000097],[-59.369445999999982,53.867493000000024],[-59.393616000000009,53.8555530000001],[-59.43638599999997,53.837493999999992],[-59.463332999999977,53.830551000000014],[-59.480277999999998,53.82777400000009],[-59.527221999999995,53.822495000000117],[-59.543892000000028,53.8211060000001],[-59.596107000000018,53.819160000000011],[-59.62388599999997,53.82027400000004],[-59.635833999999988,53.820831000000112],[-59.698607999999979,53.829437000000041],[-59.716659999999933,53.831939999999975],[-59.728049999999996,53.835266000000047],[-59.755561999999941,53.838600000000042],[-59.798339999999939,53.843322999999998],[-59.807776999999874,53.84388000000007],[-59.825835999999981,53.842766000000097],[-59.852782999999988,53.839432000000102],[-59.872498000000007,53.833603000000096],[-59.877219999999966,53.83027600000014],[-59.880553999999961,53.825272000000041],[-59.989165999999955,53.779716000000121],[-60.082779000000016,53.762497000000053],[-60.121108999999933,53.625267000000065],[-60.11999499999996,53.611381999999992],[-60.11361699999992,53.602493000000095],[-60.110000999999954,53.598877000000073],[-60.105002999999954,53.594711000000132],[-60.087501999999915,53.583602999999982],[-60.068061999999998,53.573326000000009],[-60.064444999999978,53.569716999999969],[-60.063332000000003,53.565826000000072],[-60.064444999999978,53.560272000000111],[-60.069724999999949,53.555550000000039],[-60.075004999999919,53.553047000000049],[-60.133888000000013,53.528328000000101],[-60.138335999999981,53.528603000000089],[-60.347495999999978,53.626938000000109],[-60.358611999999994,53.634438000000046],[-60.361670999999944,53.639717000000019],[-60.364448999999979,53.648331000000042],[-60.368056999999965,53.652771000000087],[-60.382499999999936,53.662490999999989],[-60.390556000000004,53.665543000000071],[-60.503059000000007,53.705826000000116],[-60.511115999999959,53.708327999999995],[-60.560279999999977,53.718323000000112],[-60.648613000000012,53.737376999999981],[-60.670612000000006,53.740047000000061],[-60.705115999999975,53.744881000000021],[-60.75894900000003,53.761718999999971],[-60.769943000000012,53.765381000000104],[-60.856948999999986,53.792770000000019],[-60.887222000000008,53.751389000000074],[-60.880279999999914,53.713051000000007],[-60.834723999999937,53.721375000000023],[-60.757724999999994,53.713768000000016],[-60.747222999999963,53.71276499999999],[-60.654891999999961,53.698768999999913],[-60.644225999999946,53.696937999999989],[-60.537223999999924,53.678329000000019],[-60.511947999999961,53.669716000000051],[-60.446563999999967,53.644852000000128],[-60.431670999999994,53.639160000000118],[-60.360282999999981,53.606658999999979],[-60.354445999999996,53.603882000000112],[-60.342223999999931,53.596099999999979],[-60.334166999999979,53.589156999999943],[-60.323333999999988,53.581665000000044],[-60.298614999999927,53.568054000000075],[-60.278884999999946,53.558601000000067],[-60.253616000000022,53.549995000000138],[-60.103614999999934,53.500549000000092],[-60.106392000000028,53.457497000000046],[-60.123328999999956,53.456100000000106],[-60.138054000000011,53.453605999999979],[-60.202224999999999,53.433600999999953],[-60.40582999999998,53.364158999999972],[-60.413329999999974,53.357773000000009],[-60.412216000000001,53.349716000000058],[-60.404998999999975,53.334160000000111],[-60.395835999999974,53.331383000000017],[-60.391113000000018,53.331107999999972],[-60.301392000000021,53.336380000000133],[-60.230826999999977,53.343323000000112],[-60.216109999999901,53.345824999999991],[-60.203888000000006,53.349716000000058],[-60.198607999999865,53.350548000000003],[-60.188605999999993,53.350548000000003],[-60.18332700000002,53.349433999999974],[-60.176665999999898,53.346382000000062],[-60.175002999999947,53.343048000000067],[-60.174720999999977,53.338043000000027],[-60.180831999999896,53.329993999999999],[-60.190833999999938,53.321937999999932],[-60.202224999999999,53.313605999999936],[-60.208892999999989,53.310546999999985],[-60.283332999999914,53.289436000000137],[-60.295836999999949,53.286659000000043],[-60.333885000000009,53.280548000000124],[-60.367217999999923,53.27777100000003],[-60.389724999999999,53.27693899999997],[-60.418335000000013,53.269440000000145],[-60.416663999999969,53.268326000000002],[-60.398055999999997,53.265549000000078],[-60.316108999999926,53.264160000000061],[-60.289444000000003,53.263885000000073],[-60.133613999999966,53.283607000000131],[-60.024719000000005,53.354996000000142],[-59.953887999999949,53.406937000000028],[-59.931945999999925,53.42582700000014],[-59.84194199999996,53.476379000000065],[-59.821670999999981,53.471656999999993],[-59.806106999999997,53.471100000000092],[-59.798057999999969,53.472214000000065],[-59.789168999999958,53.474434000000088],[-59.785003999999958,53.477210999999954],[-59.783614999999998,53.481102000000021],[-59.78472899999997,53.485268000000133],[-59.799170999999944,53.491378999999995],[-59.823615999999959,53.49332400000003],[-59.858611999999994,53.496101000000124],[-59.89916999999997,53.516936999999928],[-59.901108000000022,53.519714000000022],[-59.898337999999967,53.52416199999999],[-59.893058999999994,53.528603000000089],[-59.875556999999958,53.534996000000035],[-59.855835000000013,53.536942000000124],[-59.847495999999978,53.536658999999986],[-59.80999799999995,53.529716000000008],[-59.773613000000012,53.517769000000044],[-59.763061999999934,53.515274000000034],[-59.755561999999941,53.514998999999989],[-59.740279999999984,53.515831000000105],[-59.621108999999933,53.527214000000129],[-59.605834999999956,53.529716000000008],[-59.560829000000012,53.540550000000053],[-59.53082999999998,53.548882000000049],[-59.517501999999979,53.553878999999938],[-59.478333000000021,53.572769000000108],[-59.329726999999991,53.65387700000008],[-59.162216000000001,53.671379000000115],[-59.079726999999934,53.680550000000096],[-59.074172999999917,53.683051999999975],[-59.023887999999999,53.713882000000012],[-59.01916499999993,53.719154000000117],[-59.010833999999932,53.744438000000116],[-59.010559000000001,53.746658000000139],[-59.018889999999999,53.749161000000129],[-59.035003999999958,53.74721500000004],[-59.041388999999981,53.748604],[-59.046111999999937,53.75277699999998],[-59.06527699999998,53.791107000000068],[-59.066390999999896,53.794998000000135],[-59.058334000000002,53.803322000000037],[-59.049445999999932,53.810822000000087],[-59.042777999999942,53.81499500000001],[-58.870276999999987,53.904709000000139],[-58.550277999999935,54.009163000000001],[-58.326110999999969,54.046271999999988],[-58.216942000000017,54.071770000000129],[-58.204612999999995,54.074604000000136],[-58.19377499999996,54.075939000000062],[-58.180446999999958,54.075436000000025],[-58.156780000000026,54.071434000000011],[-58.15060799999992,54.069438999999988],[-58.028610000000015,54.079720000000123],[-57.951942000000031,54.070831000000055],[-57.938605999999993,54.070273999999984],[-57.815552000000025,54.066101000000003],[-57.797501000000011,54.066101000000003],[-57.789443999999946,54.068603999999993],[-57.786391999999921,54.071662999999944],[-57.786117999999988,54.075271999999984],[-57.789443999999946,54.079720000000123],[-57.805556999999908,54.086654999999951],[-57.851668999999958,54.100273000000016],[-57.869720000000029,54.103050000000053],[-58.07650000000001,54.124489000000096],[-58.152495999999928,54.129158000000018],[-58.167163999999957,54.127827000000025],[-58.181503000000021,54.124660000000006],[-58.195830999999998,54.120159000000115],[-58.210834999999918,54.113995000000102],[-58.214668000000017,54.111828000000003],[-58.216994999999997,54.110493000000076],[-58.223000000000013,54.103992000000062],[-58.226832999999942,54.101826000000074],[-58.229831999999931,54.100822000000107],[-58.236834999999928,54.099327000000073],[-58.245166999999981,54.099158999999986],[-58.254332999999974,54.101322000000096],[-58.415276000000006,54.135269000000108],[-58.4183349999999,54.139717000000076],[-58.417220999999984,54.143051000000071],[-58.383613999999966,54.189712999999983],[-58.379439999999931,54.193877999999984],[-58.373885999999914,54.198326000000122],[-58.367500000000007,54.201934999999935],[-58.355559999999912,54.20638300000013],[-58.203613000000018,54.234161000000029],[-58.177779999999984,54.236938000000123],[-58.030829999999924,54.235550000000046],[-58.003058999999951,54.233879000000002],[-57.99361399999998,54.230819999999994],[-57.973609999999951,54.221656999999993],[-57.961112999999898,54.217766000000097],[-57.935271999999998,54.211662000000103],[-57.866660999999965,54.197769000000051],[-57.856392000000028,54.196098000000006],[-57.659163999999919,54.199432000000002],[-57.468329999999924,54.193877999999984],[-57.428336999999885,54.18249499999996],[-57.384170999999981,54.150543000000027],[-57.385559000000001,54.145827999999995],[-57.389998999999989,54.141106000000093],[-57.383613999999966,54.128875999999991],[-57.370833999999945,54.106384000000048],[-57.367774999999995,54.10193600000008],[-57.323333999999988,54.039719000000105],[-57.221106999999961,53.918326999999977],[-57.115279999999984,53.838600000000042],[-57.092773000000022,53.831664999999987],[-57.083611000000019,53.828605999999979],[-57.079726999999991,53.826660000000118],[-57.076392999999996,53.823051000000078],[-57.077498999999932,53.819442999999978],[-57.151389999999992,53.735824999999977],[-57.302498000000014,53.679161000000079],[-57.314720000000023,53.676383999999985],[-57.387504999999976,53.658325000000048],[-57.429169000000002,53.647491000000002],[-57.484169000000009,53.631660000000011],[-57.49111199999993,53.628876000000048],[-57.52305599999994,53.612495000000081],[-57.538894999999968,53.602218999999991],[-57.544448999999986,53.597771000000023],[-57.549995000000024,53.591934000000037],[-57.550551999999982,53.587494000000049],[-57.545279999999991,53.584717000000126],[-57.541114999999991,53.585266000000104],[-57.533332999999914,53.587494000000049],[-57.52777900000001,53.591377000000136],[-57.49361399999998,53.609436000000073],[-57.479720999999984,53.61332700000014],[-57.458054000000004,53.617493000000081],[-57.444716999999969,53.618599000000074],[-57.373610999999926,53.606658999999979],[-57.316665999999998,53.579720000000009],[-57.313613999999973,53.573608000000036],[-57.303054999999915,53.530823000000112],[-57.302498000000014,53.526382000000012],[-57.303329000000019,53.509437999999932],[-57.305557000000022,53.49971800000003],[-57.306664000000012,53.496384000000091],[-57.317779999999971,53.47554800000006],[-57.328887999999949,53.461937000000091],[-57.332503999999915,53.458328000000051],[-57.345832999999914,53.450546000000088],[-57.336945000000014,53.440269000000114],[-57.316390999999953,53.435822000000087],[-57.303329000000019,53.43332700000002],[-57.297501000000011,53.433052000000032],[-57.289169000000015,53.433875999999998],[-57.283332999999971,53.438598999999954],[-57.293616999999983,53.467766000000097],[-57.285277999999948,53.477485999999999],[-57.281386999999995,53.479430999999977],[-57.248610999999983,53.494156000000089],[-57.23750299999989,53.498604000000057],[-57.130279999999971,53.593880000000127],[-57.111389000000031,53.621658000000082],[-57.06138599999997,53.671379000000115],[-57.014724999999942,53.711380000000133],[-56.973610000000008,53.724434000000031],[-56.959442000000024,53.728325000000098],[-56.926391999999964,53.730270000000075],[-56.916663999999969,53.728600000000085],[-56.860832000000016,53.722488000000112],[-56.797226000000023,53.719986000000063],[-56.660827999999924,53.720543000000134],[-56.62222300000002,53.733604000000071],[-56.628608999999983,53.741936000000067],[-56.628333999999995,53.744156000000032],[-56.626105999999936,53.745827000000133],[-56.603332999999964,53.759163000000058],[-56.483611999999994,53.782494000000099],[-56.464691000000016,53.782272000000034],[-56.448333999999988,53.777771000000143],[-56.431670999999994,53.764442000000031],[-56.426948999999979,53.757216999999969],[-56.413886999999988,53.727768000000026],[-56.414443999999946,53.721931000000041],[-56.415275999999949,53.720543000000134],[-56.421669000000009,53.716933999999924],[-56.429169000000002,53.71527100000003],[-56.438048999999921,53.71527100000003],[-56.446944999999971,53.716933999999924],[-56.482773000000009,53.718048000000124],[-56.506393000000003,53.716933999999924],[-56.521666999999979,53.714714000000129],[-56.544448999999986,53.709717000000012],[-56.662215999999944,53.679993000000024],[-56.680283000000031,53.672768000000133],[-56.627220000000023,53.650826000000052],[-56.618057000000022,53.647491000000002],[-56.340552999999943,53.588325999999938],[-56.320281999999963,53.585266000000104],[-56.225554999999872,53.577217000000076],[-56.21665999999999,53.577217000000076],[-56.205832999999984,53.581665000000044],[-56.15582999999998,53.591660000000104],[-56.078613000000018,53.58387799999997],[-56.069167999999934,53.582771000000037],[-56.031386999999995,53.57638500000013],[-56.027221999999995,53.575272000000041],[-55.991385999999977,53.552216000000044],[-55.978881999999942,53.542221000000097],[-55.990836999999942,53.510277000000087],[-55.996947999999918,53.505272000000048],[-56.008780999999942,53.503666000000067],[-56.01294699999994,53.503993999999977],[-56.017444999999952,53.505996999999979],[-56.018611999999962,53.508495000000096],[-56.021110999999962,53.513054000000011],[-56.022498999999982,53.516388000000006],[-56.047501000000011,53.533607000000075],[-56.063332000000003,53.540833000000021],[-56.145836000000031,53.553047000000049],[-56.208892999999989,53.559433000000126],[-56.242500000000007,53.559990000000028],[-56.258338999999921,53.559158000000139],[-56.264724999999999,53.555550000000039],[-56.266113000000018,53.549995000000138],[-56.263335999999924,53.540276000000119],[-56.259170999999924,53.537773000000129],[-56.145553999999947,53.500000000000114],[-56.115279999999927,53.491936000000123],[-56.077498999999932,53.483330000000024],[-56.037780999999995,53.461655000000007],[-56.027442999999948,53.454326999999978],[-55.965552999999943,53.40915700000005],[-55.965836000000024,53.40554800000001],[-55.96944400000001,53.400542999999971],[-56.00417299999998,53.388045999999974],[-56.025275999999963,53.37971500000009],[-56.03167000000002,53.376099000000011],[-56.03833800000001,53.367493000000138],[-56.029998999999975,53.365273000000116],[-56.020835999999974,53.364158999999972],[-56.013061999999991,53.364440999999999],[-56.001396,53.366661000000022],[-55.988051999999982,53.369713000000104],[-55.981383999999935,53.373047000000099],[-55.969497999999874,53.380775000000028],[-55.959723999999937,53.390273999999977],[-55.953132999999923,53.392441000000019],[-55.938605999999936,53.395271000000037],[-55.925116999999943,53.396133000000134],[-55.912216000000001,53.394997000000103],[-55.893616000000009,53.389717000000076],[-55.881385999999964,53.382767000000001],[-55.808051999999975,53.340546000000018],[-55.807456999999943,53.284966000000111],[-55.745834000000002,53.249435000000119],[-55.747498000000007,53.143607999999972],[-55.749442999999985,53.139717000000076],[-55.754172999999923,53.134995000000004],[-55.833312999999919,53.097931000000017],[-55.879856000000018,53.073795000000018],[-55.91194200000001,53.028327999999988],[-55.926666000000012,53.023323000000119],[-55.934440999999936,53.021660000000054],[-55.943329000000006,53.021102999999925],[-55.964447000000007,53.021660000000054],[-55.990836999999942,53.024162000000103],[-56.008338999999978,53.02748900000006],[-56.025001999999972,53.033606999999961],[-56.034172000000012,53.036110000000122],[-56.056106999999997,53.038329999999974],[-56.160278000000005,53.033606999999961],[-56.165833000000021,53.032768000000033],[-56.166945999999996,53.029434000000037],[-56.165276000000006,53.024993999999992],[-56.040840000000003,53.005829000000062],[-55.958611000000019,52.99610100000001],[-55.949439999999981,52.994995000000017],[-55.889442000000031,52.969154000000117],[-55.885276999999974,52.966384999999946],[-55.834166999999979,52.921936000000017],[-55.80471799999998,52.877213000000097],[-55.803328999999962,52.839431999999931],[-55.803885999999977,52.831940000000031],[-55.808051999999975,52.82638500000013],[-55.841109999999958,52.827217000000019],[-55.879165999999941,52.824165000000107],[-55.973610000000008,52.810547000000099],[-55.987777999999992,52.806099000000131],[-56.060829000000012,52.766106000000093],[-55.964721999999938,52.681664000000069],[-55.96055599999994,52.679161000000136],[-55.950553999999897,52.677216000000101],[-55.933608999999933,52.675552000000096],[-55.918335000000013,52.677490000000034],[-55.874717999999973,52.68332700000002],[-55.786948999999993,52.683601000000124],[-55.779167000000029,52.682495000000074],[-55.77305599999994,52.679161000000136],[-55.768889999999942,52.674995000000024],[-55.740836999999999,52.646385000000009],[-55.73860899999994,52.64276899999993],[-55.739998000000014,52.639434999999935],[-55.757506999999919,52.614440999999999],[-55.769447000000014,52.608047000000113],[-55.792777999999998,52.60166200000009],[-55.888892999999996,52.608047000000113],[-55.898613000000012,52.609993000000031],[-55.939940999999976,52.628268999999989],[-55.958777999999995,52.635604999999941],[-56.032775999999956,52.654709000000025],[-56.048889000000031,52.656096999999932],[-56.075004999999919,52.655822999999998],[-56.108611999999937,52.655266000000097],[-56.122771999999941,52.651100000000042],[-56.123885999999857,52.647491000000002],[-56.119720000000029,52.643326000000002],[-56.112007000000006,52.641036999999983],[-56.099060000000009,52.641006000000118],[-56.071945000000028,52.644714000000135],[-56.06361400000003,52.644714000000135],[-56.054442999999992,52.643608000000086],[-55.982773000000009,52.622490000000028],[-55.974998000000028,52.619713000000104],[-55.970832999999914,52.615546999999992],[-55.972770999999966,52.610825000000091],[-55.985275000000001,52.602218999999991],[-56.039169000000015,52.584991000000059],[-56.155777,52.557438000000104],[-56.172611000000018,52.553608000000111],[-56.186110999999983,52.550938000000031],[-56.200779000000011,52.550938000000031],[-56.253058999999951,52.543884000000048],[-56.297500999999954,52.563606000000107],[-56.315552000000025,52.572219999999959],[-56.322501999999986,52.574715000000026],[-56.333327999999995,52.576942000000088],[-56.356391999999971,52.580276000000026],[-56.456389999999942,52.592765999999983],[-56.478607000000011,52.594437000000028],[-56.496871999999939,52.594147000000021],[-56.452782000000013,52.56888600000002],[-56.444160000000011,52.565826000000129],[-56.28055599999999,52.534996000000092],[-56.262221999999952,52.531662000000097],[-56.19755600000002,52.525105000000053],[-56.153556999999921,52.526103999999918],[-55.988892000000021,52.506386000000077],[-55.829726999999934,52.51249700000011],[-55.761390999999946,52.498878000000047],[-55.751395999999943,52.496101000000124],[-55.746947999999975,52.493881000000101],[-55.743057000000022,52.490829000000019],[-55.735001000000011,52.478599999999972],[-55.734169000000009,52.474709000000075],[-55.735832000000016,52.469154000000003],[-55.764450000000011,52.45388000000014],[-55.767501999999922,52.451103000000046],[-55.766395999999986,52.447769000000051],[-55.732772999999952,52.442215000000033],[-55.706107999999915,52.441658000000132],[-55.676666000000012,52.441658000000132],[-55.656661999999983,52.441933000000006],[-55.648612999999955,52.439712999999983],[-55.645554000000004,52.437492000000077],[-55.642775999999969,52.432770000000005],[-55.642775999999969,52.427773000000059],[-55.641669999999976,52.368881000000044],[-55.641944999999964,52.363883999999928],[-55.643332999999984,52.358330000000137],[-55.647780999999952,52.354164000000026],[-55.65444199999996,52.351661999999976],[-55.782501000000025,52.334160000000111],[-55.825004999999976,52.343048000000124],[-55.92861199999993,52.369438000000116],[-56.068335999999931,52.407210999999961],[-56.173614999999984,52.438881000000038],[-56.180556999999965,52.440826000000072],[-56.194442999999922,52.442215000000033],[-56.196945000000028,52.439987000000087],[-56.195273999999984,52.435822000000087],[-56.191382999999973,52.431107000000054],[-56.181388999999967,52.423050000000103],[-56.169448999999986,52.416100000000029],[-55.956664999999987,52.350272999999959],[-55.857779999999991,52.325271999999984],[-55.707222000000002,52.248329000000126],[-55.677222999999969,52.208327999999938],[-55.68638599999997,52.109436000000017],[-55.696945000000028,52.088326000000052],[-55.701667999999927,52.082214000000079],[-55.896666999999923,51.950828999999999],[-56.023330999999985,51.901932000000102],[-56.203330999999935,51.793326999999977],[-56.209723999999994,51.789719000000048],[-56.235832000000016,51.783607000000075],[-56.346663999999976,51.759720000000016],[-56.468886999999995,51.709434999999985],[-56.689720000000023,51.592216000000008],[-56.764450000000011,51.548607000000061],[-56.804169000000002,51.507773999999984],[-56.805832000000009,51.502219999999966],[-56.808891000000017,51.496384000000091],[-56.813613999999973,51.491661000000136],[-56.942771999999991,51.427489999999921],[-56.949721999999952,51.424713000000054],[-56.956947000000014,51.423050000000103],[-57.005561999999941,51.41944100000012],[-57.078056000000004,51.41443600000008],[-57.104239999999947,51.412674000000095],[-57.142226999999991,51.424164000000076],[-57.232215999999937,51.498604000000114],[-57.237777999999992,51.502219999999966],[-57.247222999999963,51.504166000000055],[-57.255561999999998,51.504439999999988],[-57.263617999999894,51.503608999999983],[-57.421386999999925,51.480545000000006],[-57.437774999999988,51.461105000000032],[-57.43638599999997,51.45638300000013],[-57.440833999999938,51.449997000000053],[-57.447495000000004,51.447487000000024],[-57.454720000000009,51.445541000000105],[-57.58666199999999,51.429718000000094],[-57.602225999999916,51.428047000000049],[-57.676665999999955,51.429993000000081],[-57.685828999999956,51.430824000000086],[-57.688605999999936,51.435547000000099],[-57.692497000000003,51.455268999999987],[-57.691939999999931,51.461105000000032],[-57.689437999999939,51.466385000000059],[-57.705275999999969,51.469437000000028],[-57.730826999999863,51.471099999999922],[-57.748054999999965,51.472214000000122],[-57.883888000000013,51.392493999999999],[-57.889998999999989,51.388885000000016],[-57.942771999999991,51.356102000000021],[-57.954720000000009,51.34804500000007],[-57.966110000000015,51.338599999999985],[-57.975554999999986,51.328330999999935],[-57.986664000000019,51.319442999999978],[-58.006950000000018,51.31249200000002],[-58.021384999999952,51.308884000000091],[-58.211387999999943,51.271659999999997],[-58.297225999999966,51.268599999999992],[-58.305556999999965,51.268599999999992],[-58.324448000000018,51.272217000000126],[-58.407776000000013,51.295547000000056],[-58.620551999999975,51.277214000000015],[-58.628051999999968,51.275551000000064],[-58.675003000000004,51.255271999999991],[-58.680000000000007,51.250000000000057],[-58.680556999999908,51.244156000000032],[-58.680000000000007,51.234161000000086],[-58.678336999999999,51.229431000000091],[-58.675559999999905,51.224991000000045],[-58.671111999999937,51.220824999999991],[-58.665549999999996,51.216934000000094],[-58.635833999999932,51.197769000000108],[-58.621383999999978,51.191100999999946],[-58.592223999999931,51.18471500000004],[-58.61333499999995,51.157494000000042],[-58.618606999999997,51.153046000000074],[-58.630554000000018,51.145828000000051],[-58.713615000000004,51.106102000000078],[-58.726944000000003,51.099998000000028],[-58.733329999999967,51.09804500000007],[-58.785278000000005,51.088042999999971],[-58.914718999999991,51.052490000000091],[-58.928054999999972,51.048607000000004],[-58.990836999999885,51.021935000000099],[-59.003333999999938,51.015549000000021],[-59.006110999999976,51.009719999999959],[-59.003616000000022,51.004440000000102],[-58.99888599999997,51.001106000000107],[-58.990279999999984,50.998046999999985],[-58.981383999999935,50.99721500000004],[-58.975272999999959,51.000832000000003],[-58.96832999999998,51.002495000000124],[-58.959441999999967,51.001663000000008],[-58.954720000000009,50.996658000000139],[-58.952498999999989,50.992493000000138],[-58.946662999999944,50.833878000000027],[-58.948051000000021,50.828331000000048],[-59.010559000000001,50.754166000000055],[-59.015282000000013,50.748604000000114],[-59.041672000000005,50.751389000000131],[-59.061385999999914,50.755554000000132],[-59.068335999999988,50.759163000000115],[-59.087218999999948,50.775268999999923],[-59.093055999999933,50.78943600000008],[-59.09444400000001,50.799438000000066],[-59.094718999999941,50.815269000000058],[-59.118889000000024,50.803604000000121],[-59.15582999999998,50.771103000000039],[-59.186385999999914,50.74221799999998],[-59.228881999999999,50.738327000000083],[-59.397223999999994,50.657211000000132],[-59.454444999999964,50.621933000000126],[-59.459723999999937,50.61721],[-59.51916499999993,50.552773000000002],[-59.570556999999951,50.493607000000054],[-59.580001999999922,50.482765000000029],[-59.585274000000027,50.478043000000127],[-59.591667000000029,50.475266000000033],[-59.598610000000008,50.473602000000028],[-59.733611999999937,50.444992000000013],[-59.778336000000024,50.438881000000094],[-59.803885999999977,50.438881000000094],[-59.810555000000022,50.437492000000134],[-59.816108999999926,50.433876000000055],[-59.821670999999981,50.429436000000067],[-59.872222999999963,50.381103999999993],[-59.881667999999934,50.371658000000025],[-59.881667999999934,50.366386000000091],[-59.858893999999964,50.329436999999984],[-59.853888999999924,50.326102999999989],[-59.844718999999998,50.324440000000095],[-59.837775999999963,50.326102999999989],[-59.834723999999881,50.338043000000084],[-59.834998999999982,50.343322999999998],[-59.830832999999984,50.349434000000088],[-59.824722000000008,50.351662000000033],[-59.815001999999993,50.349159000000043],[-59.813331999999946,50.344154000000003],[-59.817223000000013,50.33277099999998],[-59.827498999999989,50.323607999999979],[-59.833885000000009,50.319160000000011],[-59.860282999999981,50.310547000000042],[-59.905273000000022,50.291107000000068],[-60.005004999999983,50.248878000000104],[-60.114448999999922,50.233046999999942],[-60.147781000000009,50.274162000000103],[-60.184440999999993,50.279716000000121],[-60.236945999999989,50.268051000000014],[-60.291671999999949,50.245270000000005],[-60.298614999999927,50.243324000000143],[-60.324447999999961,50.244713000000104],[-60.360001000000011,50.250831999999946],[-60.404442000000017,50.251389000000074],[-60.458892999999989,50.251106000000107],[-60.48332999999991,50.250831999999946],[-60.491668999999945,50.250548999999978],[-60.498610999999926,50.248604],[-60.511672999999973,50.242493000000138],[-60.522223999999881,50.234718000000044],[-60.52694699999995,50.229156000000103],[-60.583611000000019,50.208327999999995],[-60.591666999999973,50.208046000000138],[-60.674445999999989,50.219986000000006],[-60.710555999999997,50.2227630000001],[-60.838607999999965,50.214995999999985],[-61.052222999999969,50.215546000000018],[-61.289443999999946,50.199158000000125],[-61.427779999999984,50.171379000000115],[-61.505561999999941,50.152489000000003],[-61.583610999999905,50.132492000000127],[-61.650832999999921,50.109993000000145],[-61.720832999999914,50.091934000000037],[-61.731612999999982,50.101936000000023],[-61.742106999999976,50.105270000000019],[-61.746277000000021,50.107269000000031],[-61.748280000000022,50.109940000000051],[-61.712104999999951,50.12226899999996],[-61.703780999999992,50.124771000000067],[-61.699443999999971,50.125435000000095],[-61.694442999999922,50.125435000000095],[-61.671386999999982,50.136940000000095],[-61.620551999999918,50.147491000000002],[-61.593055999999876,50.155266000000097],[-61.579726999999991,50.160820000000058],[-61.574447999999904,50.165543000000071],[-61.571945000000028,50.171661000000029],[-61.573891000000003,50.181664000000069],[-61.577224999999999,50.186104000000057],[-61.58916499999998,50.188880999999981],[-61.593612999999948,50.185546999999985],[-61.602225999999916,50.174438000000066],[-61.607779999999991,50.170829999999967],[-61.622222999999963,50.166100000000142],[-61.731833999999935,50.144268000000125],[-61.746997999999905,50.144431999999995],[-61.757503999999983,50.14527099999998],[-61.761832999999967,50.147269999999992],[-61.763663999999949,50.149768999999992],[-61.762999999999977,50.153271000000018],[-61.760665999999958,50.157097000000078],[-61.794448999999986,50.159431000000097],[-61.795279999999991,50.169991000000039],[-61.796950999999979,50.174713000000111],[-61.804442999999992,50.183326999999963],[-61.848884999999996,50.222488000000112],[-61.864723000000026,50.228600000000085],[-61.898338000000024,50.233604000000071],[-61.907218999999941,50.234160999999972],[-61.963332999999977,50.236107000000004],[-61.977218999999991,50.231934000000081],[-61.989723000000026,50.226379000000009],[-61.996666000000005,50.224158999999986],[-62.004172999999923,50.223045000000013],[-62.202498999999989,50.23443600000013],[-62.268889999999999,50.259720000000129],[-62.317779999999971,50.281380000000127],[-62.328056000000004,50.283882000000006],[-62.397498999999982,50.294441000000063],[-62.404167000000029,50.29222100000004],[-62.415549999999939,50.28472099999999],[-62.425560000000019,50.275269000000037],[-62.42999999999995,50.269714000000135],[-62.439994999999954,50.260551000000135],[-62.446105999999986,50.257500000000107],[-62.572226999999941,50.274712000000136],[-62.746947999999918,50.28472099999999],[-63.112502999999947,50.291382000000112],[-63.158332999999971,50.260277000000031],[-63.159163999999976,50.25471500000009],[-63.228607000000011,50.234718000000044],[-63.236663999999962,50.23443600000013],[-63.371940999999993,50.236655999999982],[-63.469443999999953,50.257216999999969],[-63.565552000000025,50.264159999999947],[-63.616660999999908,50.266663000000108],[-63.649726999999928,50.272766000000047],[-63.687499999999886,50.282494000000099],[-63.693885999999964,50.291939000000013],[-63.698607999999979,50.295272999999952],[-63.707503999999972,50.297775000000058],[-63.803328999999906,50.311661000000015],[-63.821388000000013,50.312209999999993],[-63.976104999999961,50.305549999999982],[-64.067229999999995,50.29222100000004],[-64.127776999999924,50.271935000000042],[-64.140563999999927,50.266937000000041],[-64.154175000000009,50.262497000000053],[-64.162215999999944,50.262214999999969],[-64.215285999999935,50.264999000000103],[-64.234726000000023,50.266937000000041],[-64.262787000000003,50.271660000000054],[-64.365279999999984,50.29222100000004],[-64.37388599999997,50.294998000000135],[-64.402221999999995,50.307495000000131],[-64.417770000000019,50.313048999999921],[-64.436661000000015,50.317772000000105],[-64.446105999999986,50.319160000000011],[-64.455001999999922,50.319442999999978],[-64.46305799999999,50.319160000000011],[-64.470839999999953,50.317772000000105],[-64.510009999999966,50.303046999999992],[-64.611938000000009,50.281380000000127],[-64.628052000000025,50.279160000000104],[-64.659438999999963,50.277214000000015],[-64.725006000000008,50.274436999999978],[-64.899993999999936,50.270828000000108],[-65.180557000000022,50.28555300000005],[-65.189986999999917,50.2866590000001],[-65.222777999999948,50.297775000000058],[-65.237503000000004,50.303879000000052],[-65.242492999999854,50.307769999999948],[-65.275009000000011,50.308044000000052],[-65.464447000000007,50.299437999999952],[-65.486663999999962,50.295272999999952],[-65.521666999999979,50.285828000000095],[-65.589995999999985,50.275269000000037],[-65.690552000000025,50.261108000000036],[-65.747771999999998,50.256943000000035],[-65.829453000000001,50.253326000000072],[-65.845839999999953,50.258888000000013],[-65.864440999999999,50.26888300000013],[-65.876389000000017,50.276382000000126],[-65.898055999999883,50.284995999999978],[-65.918059999999969,50.288329999999974],[-65.952498999999932,50.288887000000045],[-65.974166999999966,50.283882000000006],[-65.986937999999896,50.278328000000045],[-65.993057000000022,50.275269000000037],[-66.004180999999903,50.268326000000059],[-66.024718999999948,50.251389000000074],[-66.043334999999956,50.222214000000008],[-66.083327999999995,50.193603999999937],[-66.089721999999881,50.191375999999991],[-66.163329999999974,50.197212000000036],[-66.314163000000008,50.209717000000012],[-66.406386999999938,50.239989999999977],[-66.40695199999999,50.245270000000005],[-66.412215999999944,50.260551000000135],[-66.416945999999996,50.264442000000031],[-66.423049999999932,50.267768999999987],[-66.433318999999983,50.269714000000135],[-66.441665999999941,50.269157000000064],[-66.456389999999999,50.26638800000012],[-66.469727000000034,50.261939999999981],[-66.494720000000029,50.249435000000005],[-66.511948000000018,50.239158999999972],[-66.700835999999924,50.102493000000095],[-66.723327999999924,50.078331000000048],[-66.861937999999896,50.022491000000116],[-66.882492000000013,50.016662999999994],[-66.896118000000001,50.011940000000038],[-66.920273000000009,50.000275000000101],[-66.942489999999907,49.985825000000034],[-66.958617999999944,49.974709000000075],[-66.963622999999984,49.969154000000003],[-66.966399999999965,49.963326000000052],[-66.975280999999995,49.943603999999993],[-66.975829999999974,49.937767000000065],[-66.965560999999923,49.919441000000063],[-66.963332999999977,49.914711000000011],[-67.016402999999855,49.854712999999947],[-67.061385999999857,49.841377000000023],[-67.065276999999924,49.845543000000077],[-67.073897999999929,49.848045000000013],[-67.095839999999896,49.843605000000139],[-67.115829000000019,49.836655000000121],[-67.121658000000025,49.833327999999995],[-67.137222000000008,49.821381000000031],[-67.146666999999979,49.812492000000134],[-67.151397999999915,49.806937999999946],[-67.162216000000001,49.79055000000011],[-67.174164000000019,49.764717000000132],[-67.238892000000021,49.590546000000074],[-67.240828999999962,49.578880000000083],[-67.241378999999995,49.56749700000006],[-67.240828999999962,49.556655999999975],[-67.239990000000034,49.551659000000029],[-67.235000999999954,49.53555300000005],[-67.228881999999999,49.510277000000031],[-67.229171999999949,49.483047000000113],[-67.230834999999956,49.476936000000023],[-67.233886999999982,49.47026800000009],[-67.369155999999975,49.332771000000037],[-67.375,49.327217000000019],[-67.386123999999995,49.322220000000073],[-67.402785999999878,49.3211060000001],[-67.420273000000009,49.321663000000001],[-67.438599000000011,49.324440000000095],[-67.473617999999988,49.326660000000118],[-67.569732999999985,49.329994000000113],[-67.577498999999989,49.329163000000108],[-67.706389999999999,49.312767000000065],[-67.939163000000008,49.287773000000129],[-67.975280999999995,49.284996000000035],[-68.119720000000029,49.271660000000054],[-68.127212999999983,49.269440000000031],[-68.131942999999922,49.266106000000093],[-68.136397999999929,49.260550999999964],[-68.138900999999919,49.25471500000009],[-68.140563999999927,49.248604000000057],[-68.143889999999885,49.23054500000012],[-68.180832000000009,49.12193300000007],[-68.184997999999894,49.116104000000064],[-68.189712999999927,49.112212999999997],[-68.194992000000013,49.10833000000008],[-68.201110999999912,49.105552999999986],[-68.221663999999976,49.100273000000072],[-68.369445999999982,49.069443000000035],[-68.442489999999964,49.095543000000077],[-68.571395999999993,49.061104],[-68.59056099999998,49.054161000000022],[-68.606948999999929,49.042496000000142],[-68.626099000000011,49.023880000000133],[-68.696380999999974,48.939987000000087],[-68.876937999999996,48.85193600000008],[-69.047775000000001,48.773048000000074],[-69.06082200000003,48.767494000000056],[-69.064437999999996,48.762496999999996],[-69.084732000000031,48.72165700000005],[-69.089446999999893,48.709435000000042],[-69.093612999999948,48.691933000000006],[-69.096114999999941,48.674995000000138],[-69.099441999999897,48.663322000000107],[-69.106109999999944,48.644996999999989],[-69.111937999999896,48.63249200000007],[-69.123885999999914,48.614716000000101],[-69.142501999999922,48.594994000000042],[-69.14805599999994,48.591102999999976],[-69.15972899999997,48.58526599999999],[-69.166397000000018,48.583328000000051],[-69.184158000000025,48.584717000000069],[-69.201675000000023,48.588599999999985],[-69.218612999999948,48.589713999999958],[-69.226669000000015,48.588882000000069],[-69.231383999999935,48.585548000000074],[-69.236388999999917,48.581108000000029],[-69.265288999999939,48.541663999999969],[-69.279448999999943,48.515831000000048],[-69.282776000000013,48.504166000000112],[-69.283324999999934,48.493049999999982],[-69.282500999999968,48.482490999999982],[-69.292770000000019,48.457771000000093],[-69.301102000000014,48.446655000000135],[-69.432769999999948,48.307770000000005],[-69.437774999999988,48.303047000000049],[-69.454726999999991,48.291939000000013],[-69.597777999999948,48.207497000000046],[-69.672775000000001,48.14388300000013],[-69.683884000000035,48.137772000000041],[-69.691375999999991,48.137496999999996],[-69.80082699999997,48.153603000000032],[-69.810271999999941,48.155822999999998],[-69.734725999999966,48.113609000000054],[-69.730285999999978,48.10943600000013],[-69.732498000000021,48.103607000000125],[-69.786391999999864,47.994713000000047],[-69.839447000000007,47.907210999999961],[-69.925827000000027,47.773048000000074],[-69.93582200000003,47.764441999999974],[-70.002227999999945,47.711936999999978],[-70.015563999999983,47.702773999999977],[-70.071945000000028,47.674713000000054],[-70.077498999999989,47.672493000000088],[-70.091109999999958,47.669159000000093],[-70.132767000000001,47.644996999999989],[-70.179992999999968,47.608330000000024],[-70.190276999999924,47.599159000000043],[-70.202498999999989,47.583053999999947],[-70.206116000000009,47.576660000000118],[-70.208343999999897,47.570549000000028],[-70.209441999999967,47.553879000000109],[-70.207503999999915,47.533051],[-70.208618000000001,47.527214000000072],[-70.217223999999931,47.508330999999998],[-70.225554999999929,47.496384000000035],[-70.2308349999999,47.492493000000138],[-70.299727999999959,47.466933999999924],[-70.341674999999952,47.460548000000017],[-70.461944999999901,47.429993000000024],[-70.502501999999993,47.390830999999991],[-70.555831999999953,47.322769000000108],[-70.56639100000001,47.304161000000022],[-70.568618999999956,47.298049999999932],[-70.571120999999948,47.281104999999968],[-70.574172999999973,47.274437000000034],[-70.586120999999991,47.257773999999927],[-70.699431999999945,47.126099000000011],[-70.721664000000033,47.101387000000102],[-70.733063000000016,47.095543000000134],[-70.792496000000028,47.068329000000119],[-70.817504999999926,47.058884000000035],[-70.823623999999938,47.056938000000002],[-70.866942999999935,47.051383999999985],[-70.893341000000021,47.045273000000066],[-70.923049999999932,47.032211000000075],[-70.973617999999988,47.003326000000015],[-71.113616999999863,46.912491000000045],[-71.182495000000017,46.864158999999972],[-71.197495000000004,46.852493000000038],[-71.198607999999979,46.846382000000119],[-71.299164000000019,46.742218000000094],[-71.291945999999996,46.744156000000032],[-71.279723999999931,46.749161000000072],[-71.209441999999967,46.782494000000099],[-71.19888299999991,46.788887000000045],[-71.188888999999961,46.796661000000029],[-71.184432999999956,46.802773000000059],[-71.178329000000019,46.815269000000114],[-71.166396999999904,46.831108000000029],[-71.156112999999948,46.838882000000069],[-71.149993999999936,46.842491000000052],[-71.143615999999952,46.844711000000075],[-71.130554000000018,46.847487999999998],[-71.115279999999984,46.84887700000013],[-71.100280999999995,46.84887700000013],[-71.083327999999995,46.847487999999998],[-70.986937999999952,46.854164000000083],[-70.772232000000031,46.915825000000041],[-70.766402999999912,46.918884000000048],[-70.755004999999983,46.936652999999978],[-70.744445999999925,46.943320999999912],[-70.737502999999947,46.946098000000006],[-70.638061999999991,46.981658999999979],[-70.618880999999931,46.988045000000056],[-70.604996000000028,46.990273000000059],[-70.575012000000015,46.993324000000086],[-70.553328999999962,46.998047000000042],[-70.541381999999942,47.00249500000001],[-70.530288999999925,47.007773999999984],[-70.506957999999997,47.02027099999998],[-70.486389000000031,47.033607000000131],[-70.461120999999935,47.053604000000007],[-70.334166999999923,47.15554800000001],[-70.310271999999941,47.176659000000086],[-70.273055999999997,47.213608000000136],[-70.111114999999984,47.340546000000131],[-70.078888000000006,47.361106999999947],[-70.048888999999974,47.386107999999979],[-70.044158999999922,47.390830999999991],[-70.040833000000021,47.397217000000069],[-70.039992999999868,47.402771000000087],[-69.967498999999975,47.505829000000062],[-69.90194699999995,47.537216000000001],[-69.896392999999932,47.541107000000068],[-69.805832000000009,47.613052000000096],[-69.65943900000002,47.744713000000104],[-69.639998999999875,47.762772000000041],[-69.593063000000029,47.808884000000091],[-69.556655999999862,47.856384000000048],[-69.556380999999931,47.866661000000022],[-69.544158999999979,47.883605999999986],[-69.526672000000019,47.90415999999999],[-69.508057000000008,47.924438000000009],[-69.498885999999857,47.933875999999998],[-69.469727000000034,47.961937000000091],[-69.450561999999991,47.979155999999989],[-69.429169000000002,47.995270000000119],[-69.418335000000013,48.001389000000131],[-69.411666999999966,48.003326000000015],[-69.275283999999942,48.067772000000048],[-69.11610399999995,48.178604000000064],[-69.101943999999946,48.192764000000125],[-69.08666999999997,48.204994000000056],[-69.054168999999888,48.228600000000142],[-69.016402999999968,48.254165999999998],[-68.968613000000005,48.279990999999995],[-68.940552000000025,48.294998000000021],[-68.831679999999892,48.344711000000132],[-68.695267000000001,48.396385000000123],[-68.541381999999999,48.451385000000016],[-68.529448999999943,48.457214000000022],[-68.519164999999987,48.464157],[-68.513061999999877,48.469437000000084],[-68.496947999999918,48.490273000000116],[-68.473891999999978,48.515549000000135],[-68.469161999999869,48.520271000000037],[-68.453613000000018,48.532494000000099],[-68.434433000000013,48.541663999999969],[-68.422501000000011,48.545272999999952],[-68.407776000000013,48.548050000000046],[-68.375823999999852,48.546386999999925],[-68.368606999999997,48.547493000000145],[-68.354445999999996,48.551384000000041],[-68.348342999999886,48.554161000000136],[-68.336670000000026,48.561661000000015],[-68.283324999999991,48.600273000000016],[-68.236937999999952,48.625549000000035],[-68.211120999999935,48.636658000000125],[-68.193328999999892,48.643051000000071],[-68.179168999999945,48.646660000000111],[-68.15695199999999,48.64916199999999],[-68.125548999999978,48.648330999999985],[-68.111938000000009,48.651382000000012],[-67.973617999999988,48.695541000000105],[-67.709441999999854,48.793884000000105],[-67.531386999999995,48.859160999999972],[-67.209732000000031,48.935822000000087],[-67.087783999999999,48.960823000000119],[-67.067504999999983,48.966933999999981],[-67.015838999999971,48.986938000000123],[-66.991669000000002,48.999160999999958],[-66.960830999999985,49.011940000000038],[-66.922775000000001,49.026657000000057],[-66.916397000000018,49.028877000000023],[-66.722503999999958,49.08998900000006],[-66.421660999999915,49.162765999999976],[-66.306106999999997,49.186935000000119],[-66.225005999999951,49.200829000000056],[-66.089172000000019,49.218597000000045],[-66.074172999999973,49.219711000000018],[-65.832503999999915,49.231377000000009],[-65.678328999999962,49.245543999999995],[-65.496947999999975,49.261664999999994],[-65.447219999999959,49.262215000000026],[-65.394454999999994,49.259719999999959],[-65.359726000000023,49.256660000000124],[-64.996947999999918,49.220267999999919],[-64.916655999999989,49.20665699999995],[-64.825561999999934,49.187767000000008],[-64.805831999999953,49.18332700000002],[-64.795273000000009,49.176102000000128],[-64.791945999999939,49.171661000000029],[-64.774718999999948,49.159987999999998],[-64.763335999999924,49.154160000000047],[-64.748885999999914,49.148048000000074],[-64.731948999999986,49.142220000000009],[-64.660827999999867,49.123047000000042],[-64.641112999999962,49.118880999999988],[-64.606658999999922,49.117210000000114],[-64.58805799999999,49.112212999999997],[-64.376388999999961,48.997771999999998],[-64.235549999999989,48.910271000000023],[-64.221663999999976,48.898331000000098],[-64.21444699999995,48.889434999999992],[-64.208892999999989,48.880547000000035],[-64.152221999999938,48.764999000000046],[-64.152495999999985,48.759995000000117],[-64.158050999999944,48.75610400000005],[-64.167769999999962,48.758331000000055],[-64.208892999999989,48.782767999999976],[-64.213332999999977,48.786659000000043],[-64.229995999999971,48.797493000000088],[-64.244155999999975,48.803604000000007],[-64.290282999999931,48.821106000000043],[-64.298889000000031,48.823883000000137],[-64.315552000000025,48.828880000000026],[-64.377212999999927,48.846382000000062],[-64.395844000000011,48.851105000000075],[-64.512222000000008,48.87471000000005],[-64.530562999999916,48.87721300000004],[-64.548888999999917,48.878326000000072],[-64.543335000000013,48.873604],[-64.532775999999956,48.866936000000067],[-64.464447000000007,48.824440000000038],[-64.374161000000015,48.787773000000016],[-64.266662999999994,48.713326000000109],[-64.256957999999997,48.706099999999992],[-64.173049999999932,48.639435000000049],[-64.16194200000001,48.627487000000031],[-64.160004000000015,48.622765000000129],[-64.166945999999996,48.621376000000112],[-64.193053999999961,48.623604000000057],[-64.24110399999995,48.622215000000097],[-64.255004999999926,48.618599000000017],[-64.260833999999875,48.615828999999962],[-64.265288999999996,48.610825000000034],[-64.269729999999981,48.604713000000061],[-64.274718999999948,48.592766000000097],[-64.280563000000029,48.575271999999984],[-64.282500999999911,48.569160000000011],[-64.283324999999877,48.563605999999993],[-64.279174999999952,48.554161000000136],[-64.273330999999928,48.550545000000056],[-64.264174999999909,48.549164000000019],[-64.245834000000002,48.546661000000086],[-64.219161999999983,48.528327999999988],[-64.246384000000035,48.488044999999943],[-64.322509999999852,48.437210000000107],[-64.426392000000021,48.404160000000047],[-64.493057000000022,48.394440000000145],[-64.506667999999991,48.391663000000051],[-64.586945000000014,48.36832400000003],[-64.68638599999997,48.338326000000109],[-64.731383999999878,48.274712000000022],[-64.750290000000007,48.245827000000133],[-64.753890999999953,48.239989999999977],[-64.760559000000001,48.227211000000125],[-64.768065999999976,48.202774000000034],[-64.771392999999989,48.196381000000088],[-64.778610000000015,48.19499200000007],[-64.87332200000003,48.180550000000096],[-64.931670999999994,48.171661000000029],[-64.972503999999958,48.135269000000051],[-65.15306099999998,48.052216000000044],[-65.196654999999964,48.033607000000075],[-65.202788999999996,48.031380000000013],[-65.270003999999972,48.012771999999984],[-65.305832000000009,48.005554000000132],[-65.326950000000011,48.002220000000136],[-65.455565999999976,48.000274999999988],[-65.463897999999972,48.002777000000037],[-65.472778000000005,48.011383000000137],[-65.478607000000011,48.019714000000079],[-65.484726000000023,48.033882000000119],[-65.491104000000007,48.042496000000142],[-65.504181000000017,48.048882000000049],[-65.689162999999951,48.093879999999956],[-65.764449999999897,48.109993000000031],[-65.888900999999919,48.199158000000011],[-65.904175000000009,48.205826000000002],[-65.949996999999939,48.191101000000003],[-65.956389999999999,48.188881000000038],[-66.006957999999997,48.159156999999993],[-66.024718999999948,48.139160000000118],[-66.129714999999919,48.107216000000108],[-66.242767000000015,48.109161000000086],[-66.396392999999932,48.114998000000071],[-66.406386999999938,48.116385999999977],[-66.432495000000017,48.118599000000131],[-66.47084000000001,48.119438000000059],[-66.477782999999988,48.118049999999982],[-66.484160999999972,48.115546999999992],[-66.495543999999995,48.10943600000013],[-66.506392999999946,48.102218999999991],[-66.52555799999999,48.085548000000017],[-66.529998999999918,48.080551000000071],[-66.667220999999984,48.028328000000101],[-66.673614999999984,48.026099999999985],[-66.763717999999983,48.00622599999997],[-66.843703999999946,47.996650999999986],[-66.842498999999975,47.992218000000037],[-66.83666999999997,47.988884000000041],[-66.828888000000006,47.98721299999994],[-66.749999999999943,47.979988000000105],[-66.728881999999942,47.984436000000073],[-66.610824999999977,48.011107999999979],[-66.584731999999974,48.019440000000145],[-66.573333999999988,48.025826000000052],[-66.540558000000033,48.036385000000109],[-66.434433000000013,48.067497000000003],[-66.420273000000009,48.070549000000085],[-66.364165999999955,48.073326000000009],[-66.356658999999922,48.073326000000009],[-66.350829999999917,48.069717000000026],[-66.349990999999932,48.06471300000004],[-66.259170999999981,47.999435000000119],[-66.042220999999984,47.935822000000087],[-65.988892000000021,47.923881999999992],[-65.970276000000013,47.92083000000008],[-65.936935000000005,47.92083000000008],[-65.922225999999966,47.922768000000019],[-65.90695199999999,47.923325000000091],[-65.880279999999914,47.920547000000113],[-65.843886999999995,47.911377000000073],[-65.818619000000012,47.903877000000023],[-65.811385999999914,47.900825999999995],[-65.793609999999944,47.890831000000048],[-65.772780999999952,47.876380999999924],[-65.757506999999976,47.865273000000116],[-65.746383999999978,47.852775999999949],[-65.725005999999894,47.82749199999995],[-65.718613000000005,47.818886000000077],[-65.714447000000007,47.809433000000013],[-65.713622999999984,47.804161000000079],[-65.696944999999971,47.733047000000113],[-65.671936000000017,47.645828000000051],[-65.667770000000019,47.641380000000083],[-65.634734999999978,47.62082700000002],[-65.628326000000015,47.623046999999985],[-65.389998999999989,47.736107000000004],[-65.332779000000016,47.766937000000041],[-65.253890999999953,47.801659000000029],[-65.240829000000019,47.806655999999975],[-65.202788999999996,47.818603999999993],[-65.167496000000028,47.825271999999984],[-65.044723999999974,47.844436999999914],[-65.020844000000011,47.844993999999986],[-64.985000999999954,47.84137700000008],[-64.815552000000025,47.811104000000114],[-64.805557000000022,47.808884000000091],[-64.797226000000023,47.806381000000101],[-64.719161999999983,47.764441999999974],[-64.713332999999977,47.761108000000036],[-64.676665999999955,47.735550000000103],[-64.670273000000009,47.726936000000023],[-64.67332499999992,47.720268000000033],[-64.679442999999992,47.716659999999933],[-64.703612999999905,47.706940000000031],[-64.803328999999962,47.630547000000092],[-64.859725999999966,47.576660000000118],[-64.870093999999995,47.536293000000057],[-64.87110899999999,47.515831000000048],[-64.870270000000005,47.510826000000009],[-64.875548999999978,47.460823000000062],[-64.880828999999949,47.432495000000074],[-64.886397999999986,47.414154000000053],[-64.910004000000015,47.353049999999996],[-65.138061999999991,47.192215000000033],[-65.226944000000003,47.140831000000048],[-65.238327000000027,47.134720000000129],[-65.263335999999924,47.124435000000005],[-65.339721999999938,47.099433999999974],[-65.364165999999955,47.089714000000072],[-65.369994999999903,47.086655000000121],[-65.365279999999871,47.082771000000093],[-65.218886999999881,47.053604000000007],[-65.101105000000018,47.076942000000088],[-65.017226999999934,47.091377000000023],[-64.805557000000022,47.083054000000061],[-64.798614999999927,47.079993999999999],[-64.802779999999927,46.993049999999926],[-64.803328999999962,46.987495000000024],[-64.807220000000029,46.981658999999979],[-64.812209999999993,46.977768000000083],[-64.818068999999923,46.9741590000001],[-64.835830999999985,46.965827999999988],[-64.857223999999974,46.95277399999992],[-64.871933000000013,46.939430000000016],[-64.880279999999914,46.930549999999982],[-64.892226999999991,46.91443600000008],[-64.896117999999944,46.908882000000062],[-64.89916999999997,46.902489000000116],[-64.904998999999975,46.883606000000043],[-64.906386999999995,46.872490000000084],[-64.904998999999975,46.851105000000132],[-64.903609999999901,46.840827999999931],[-64.877212999999983,46.791107000000068],[-64.863891999999964,46.774436999999921],[-64.818068999999923,46.72165700000005],[-64.748610999999983,46.702773999999977],[-64.740279999999984,46.70249200000012],[-64.726394999999911,46.696381000000031],[-64.72084000000001,46.693047000000035],[-64.713332999999977,46.684158000000139],[-64.711120999999991,46.679993000000138],[-64.708617999999944,46.669991000000039],[-64.705001999999979,46.638329000000056],[-64.67332499999992,46.500832000000003],[-64.66194200000001,46.468048000000124],[-64.650833000000034,46.460548000000074],[-64.621933000000013,46.427216000000101],[-64.613616999999977,46.414435999999966],[-64.611938000000009,46.409714000000065],[-64.615004999999996,46.392494000000113],[-64.613051999999982,46.366104000000064],[-64.504181000000017,46.240273000000002],[-64.402221999999995,46.233047000000056],[-64.237503000000004,46.229155999999989],[-64.116942999999935,46.181938000000059],[-64.035552999999993,46.182213000000104],[-63.970832999999914,46.180549999999982],[-63.954444999999964,46.178046999999992],[-63.830283999999949,46.146385000000066],[-63.822226999999998,46.14388299999996],[-63.776389999999935,46.121101000000067],[-63.77305599999994,46.117493000000138],[-63.771111000000019,46.112769999999955],[-63.772498999999868,46.108046999999999],[-63.776947000000007,46.103325000000098],[-63.783057999999983,46.099716000000058],[-63.799445999999989,46.091377000000023],[-63.805557000000022,46.089157000000057],[-63.886391000000003,46.06082200000003],[-63.892501999999922,46.058884000000091],[-63.919448999999929,46.053047000000106],[-63.926948999999922,46.052490000000034],[-63.988608999999997,46.051933000000133],[-64.023330999999985,46.057495000000074],[-64.06806899999998,46.059433000000013],[-64.072509999999966,46.054710000000057],[-64.093886999999995,46.021659999999997],[-64.065001999999879,46.004715000000033],[-64.042785999999978,45.991898000000049],[-64.012512000000015,46.005829000000006],[-64.005279999999914,46.005554000000018],[-63.913054999999986,45.979987999999935],[-63.864166000000012,45.961105000000032],[-63.859443999999996,45.951934999999992],[-63.861389000000031,45.94582400000013],[-63.846106999999961,45.930824000000143],[-63.714721999999995,45.840546000000074],[-63.669998000000021,45.818054000000018],[-63.664161999999976,45.815268999999944],[-63.645836000000031,45.833328000000051],[-63.631667999999991,45.859436000000017],[-63.600280999999995,45.869986999999924],[-63.580558999999937,45.874435000000119],[-63.482498000000021,45.877213000000097],[-63.474441999999954,45.876938000000052],[-63.457221999999888,45.874160999999958],[-63.420279999999934,45.864997999999957],[-63.406661999999926,45.858887000000095],[-63.403884999999946,45.854439000000127],[-63.42861199999993,45.823607999999979],[-63.434440999999936,45.820831000000112],[-63.441108999999926,45.819442999999978],[-63.456107999999972,45.818886000000077],[-63.488051999999925,45.820831000000112],[-63.513335999999981,45.82416500000005],[-63.520835999999974,45.823883000000023],[-63.525832999999977,45.819992000000127],[-63.52666499999998,45.814438000000109],[-63.523612999999898,45.809989999999971],[-63.515556000000004,45.807213000000047],[-63.506950000000018,45.805824000000086],[-63.433608999999933,45.799438000000009],[-63.425560000000019,45.799164000000076],[-63.34332999999998,45.797492999999974],[-63.328338999999971,45.79833200000013],[-63.287223999999981,45.805549999999982],[-63.281113000000005,45.807769999999948],[-63.274170000000026,45.808883999999978],[-63.251113999999973,45.809714999999983],[-63.235000999999954,45.80860100000001],[-63.229439000000013,45.804993000000081],[-63.233329999999967,45.799438000000009],[-63.238892000000021,45.796386999999982],[-63.313889000000017,45.769440000000031],[-63.319725000000005,45.768051000000071],[-63.355835000000013,45.764442000000031],[-63.372222999999906,45.76638800000012],[-63.379997000000003,45.766106000000036],[-63.381942999999978,45.759995000000004],[-63.376663000000008,45.755829000000062],[-63.361114999999984,45.745543999999938],[-63.354445999999939,45.742493000000138],[-63.31361400000003,45.736938000000066],[-63.282501000000025,45.733330000000137],[-63.189719999999966,45.73443600000013],[-63.120833999999945,45.759438000000102],[-63.090552999999943,45.790276000000063],[-63.082779000000016,45.80332199999998],[-62.993888999999967,45.796386999999982],[-62.985275000000001,45.794998000000135],[-62.958336000000031,45.788887000000045],[-62.723610000000008,45.764160000000004],[-62.677779999999984,45.764160000000004],[-62.557220000000029,45.674713000000111],[-62.503890999999953,45.627487000000087],[-62.461944999999957,45.612495000000081],[-62.250281999999913,45.708327999999995],[-62.092772999999966,45.781105000000139],[-62.035003999999958,45.820831000000112],[-62.015006999999912,45.836655000000007],[-61.973327999999981,45.867210000000057],[-61.931388999999967,45.884720000000016],[-61.925559999999962,45.886107999999922],[-61.917503000000011,45.885551000000021],[-61.903052999999886,45.87943300000012],[-61.89805599999994,45.875267000000008],[-61.896110999999962,45.871101000000124],[-61.89805599999994,45.865273000000002],[-61.903327999999988,45.861382000000106],[-61.914718999999934,45.8555530000001],[-61.919448999999986,45.851105000000132],[-61.923332000000016,45.845543000000021],[-61.925559999999962,45.839432000000102],[-61.925277999999992,45.834434999999985],[-61.889998999999989,45.701385000000016],[-61.885558999999887,45.690544000000102],[-61.88138600000002,45.686653000000035],[-61.792228999999907,45.639160000000118],[-61.783332999999971,45.636658000000011],[-61.735000999999897,45.623322000000087],[-61.724998000000028,45.62082700000002],[-61.618056999999965,45.610550000000046],[-61.603888999999924,45.635269000000051],[-61.569999999999936,45.669991000000039],[-61.565001999999936,45.673882000000106],[-61.559165999999948,45.676659000000029],[-61.546111999999994,45.681106999999997],[-61.526107999999965,45.685265000000129],[-61.504447999999968,45.686935000000062],[-61.488892000000021,45.686935000000062],[-61.471382000000006,45.682495000000074],[-61.466110000000015,45.678878999999995],[-61.396392999999932,45.626656000000082],[-61.386947999999961,45.618880999999988],[-61.353427999999951,45.56971400000009],[-61.316146999999944,45.533173000000033],[-61.260001999999929,45.510277000000087],[-61.232356999999979,45.46119299999998],[-61.294167000000016,45.434714999999926],[-61.36500499999994,45.404160000000104],[-61.368057000000022,45.413879000000122],[-61.374717999999973,45.416938999999957],[-61.388610999999912,45.41415400000011],[-61.400832999999977,45.410820000000115],[-61.413329999999974,45.406937000000028],[-61.462219000000005,45.384438000000046],[-61.477492999999924,45.373047000000099],[-61.481666999999959,45.367767000000015],[-61.478881999999999,45.363327000000027],[-61.463889999999992,45.346939000000134],[-61.457222000000002,45.343605000000139],[-61.226386999999932,45.344154000000117],[-61.153327999999874,45.348327999999981],[-61.139441999999974,45.348877000000073],[-61.131667999999991,45.348327999999981],[-61.047225999999966,45.335548000000017],[-60.996391000000017,45.32749200000012],[-60.980552999999986,45.324440000000038],[-60.970551,45.321663000000115],[-60.966110000000015,45.318329000000119],[-60.964721999999995,45.313049000000035],[-60.96527900000001,45.295546999999999],[-60.970276000000013,45.269714000000079],[-61.050834999999893,45.231102000000078],[-61.0777819999999,45.219437000000028],[-61.090278999999953,45.215546000000131],[-61.109726000000023,45.210823000000119],[-61.123329000000012,45.208602999999925],[-61.139724999999942,45.210823000000119],[-61.142226999999991,45.215271000000087],[-61.222220999999934,45.23832700000014],[-61.267501999999979,45.246384000000091],[-61.313056999999901,45.242766999999958],[-61.323890999999946,45.236107000000118],[-61.360000999999954,45.209991000000059],[-61.373610999999926,45.196380999999974],[-61.373328999999956,45.191101000000117],[-61.365554999999972,45.188324000000023],[-61.349723999999981,45.186935000000005],[-61.340836000000024,45.184433000000126],[-61.344161999999869,45.178047000000049],[-61.34944200000001,45.174438000000009],[-61.355002999999954,45.171660999999915],[-61.384445000000028,45.15915700000005],[-61.397498999999982,45.156097000000045],[-61.450835999999924,45.145546000000081],[-61.458611000000019,45.144714000000022],[-61.543891999999971,45.141662999999994],[-61.638053999999954,45.120270000000062],[-61.724715999999944,45.091660000000047],[-61.898338000000024,45.024993999999992],[-62.026664999999923,44.984717999999987],[-62.087775999999963,44.97026800000009],[-62.286391999999921,44.928047000000049],[-62.391944999999964,44.908325000000048],[-62.476386999999875,44.895546000000138],[-62.521942000000024,44.850829999999974],[-62.546111999999937,44.821663000000001],[-62.641388000000006,44.809158000000082],[-62.795005999999887,44.780548000000067],[-62.801108999999997,44.778603000000089],[-62.813888999999961,44.750832000000003],[-62.809998000000007,44.734718000000044],[-62.851111999999944,44.718323000000112],[-62.928611999999873,44.733879000000115],[-63.012779000000023,44.773323000000005],[-63.020554000000004,44.773880000000077],[-63.055557000000022,44.772766000000104],[-63.0625,44.771378000000027],[-63.061942999999928,44.76638800000012],[-63.060279999999977,44.761664999999994],[-63.057502999999997,44.757217000000026],[-63.043616999999927,44.739989999999977],[-63.017776000000026,44.722488000000112],[-63.012504999999919,44.713326000000052],[-63.011948000000018,44.708046000000138],[-63.013618000000008,44.702774000000034],[-63.018332999999927,44.697487000000081],[-63.048339999999996,44.676102000000128],[-63.05471799999998,44.673325000000034],[-63.104445999999996,44.746658000000139],[-63.115279999999871,44.731377000000009],[-63.118331999999953,44.724991000000102],[-63.138335999999981,44.693047000000092],[-63.142776000000026,44.688599000000124],[-63.283057999999926,44.627212999999983],[-63.439994999999954,44.590828000000045],[-63.448883000000023,44.593048000000067],[-63.49500299999994,44.614715999999987],[-63.526336999999955,44.63610099999994],[-63.535167999999999,44.642769000000101],[-63.545334000000025,44.652107000000058],[-63.556999000000019,44.66160600000012],[-63.615836999999942,44.70249199999995],[-63.635001999999986,44.711380000000133],[-63.642775999999913,44.714157000000057],[-63.651107999999965,44.715546000000018],[-63.658332999999971,44.714995999999985],[-63.660552999999936,44.708328000000051],[-63.649444999999957,44.686104000000114],[-63.640556000000004,44.673050000000046],[-63.635559000000001,44.668884000000105],[-63.627776999999924,44.666382000000056],[-63.606110000000001,44.668884000000105],[-63.598610000000008,44.667770000000132],[-63.591942000000017,44.664711000000011],[-63.583611000000019,44.656936999999971],[-63.564223999999911,44.620769999999993],[-63.558220000000006,44.613266000000124],[-63.555388999999934,44.607769000000019],[-63.546059000000014,44.588604000000032],[-63.520835999999974,44.512771999999984],[-63.520279000000016,44.507773999999984],[-63.525276000000019,44.495270000000119],[-63.533332999999971,44.484993000000145],[-63.542777999999942,44.476379000000065],[-63.553054999999915,44.469711000000075],[-63.570838999999921,44.461937000000091],[-63.631110999999919,44.435822000000087],[-63.638610999999912,44.436935000000005],[-63.90694400000001,44.495270000000119],[-63.913611999999887,44.498604000000114],[-63.924171000000001,44.506103999999993],[-63.932502999999997,44.513329000000056],[-63.935555000000022,44.517494000000056],[-63.94388600000002,44.536110000000065],[-63.938605999999936,44.616104000000064],[-63.937774999999931,44.621658000000082],[-63.928054999999858,44.642220000000009],[-63.919166999999959,44.651657000000114],[-63.914443999999889,44.65554800000001],[-63.908607000000018,44.678047000000106],[-64.008347000000015,44.647491000000002],[-64.045272999999952,44.635826000000122],[-64.055266999999958,44.619438000000059],[-64.065551999999911,44.595268000000033],[-64.063888999999961,44.590545999999961],[-64.059158000000025,44.581665000000044],[-64.054992999999968,44.577773999999977],[-64.039443999999946,44.572495000000004],[-64.033614999999941,44.563049000000035],[-64.009170999999981,44.513329000000056],[-64.010009999999966,44.507773999999984],[-64.083069000000023,44.466660000000047],[-64.091949,44.46888000000007],[-64.110549999999989,44.478324999999984],[-64.121657999999968,44.485268000000133],[-64.125548999999978,44.510551000000021],[-64.123610999999926,44.527489000000116],[-64.119720000000029,44.53943600000008],[-64.121657999999968,44.544159000000093],[-64.127486999999917,44.552773000000116],[-64.135833999999988,44.560546999999929],[-64.146118000000001,44.568329000000062],[-64.170273000000009,44.586105000000032],[-64.200835999999981,44.576384999999959],[-64.305267000000015,44.533332999999971],[-64.337509000000011,44.411933999999974],[-64.346664000000033,44.362495000000138],[-64.346114999999998,44.357215999999994],[-64.329726999999934,44.328880000000026],[-64.311110999999926,44.319159999999954],[-64.303328999999962,44.316666000000055],[-64.295273000000009,44.316101000000003],[-64.290557999999976,44.31999200000007],[-64.292220999999984,44.324715000000026],[-64.299987999999928,44.32749200000012],[-64.305557000000022,44.330826000000116],[-64.309433000000013,44.335548000000017],[-64.307770000000005,44.340828000000101],[-64.301102000000014,44.341933999999924],[-64.273620999999878,44.330276000000083],[-64.260558999999944,44.324164999999994],[-64.239440999999943,44.294158999999922],[-64.253341999999918,44.27526899999998],[-64.258056999999951,44.269989000000123],[-64.283324999999877,44.253052000000082],[-64.319457999999997,44.264717000000019],[-64.355835000000013,44.273323000000119],[-64.391113000000018,44.253326000000015],[-64.428054999999915,44.228325000000041],[-64.432220000000029,44.223602000000028],[-64.444716999999912,44.190269000000001],[-64.616394000000014,44.133049000000142],[-64.61860699999994,44.071937999999989],[-64.666397000000018,43.990273000000116],[-64.671386999999982,43.986382000000049],[-64.732223999999917,43.951660000000004],[-64.738051999999925,43.949432000000058],[-64.745269999999948,43.948874999999987],[-64.776397999999972,43.950828999999999],[-64.80610699999994,43.950546000000031],[-64.812774999999931,43.949432000000058],[-64.818068999999923,43.946381000000031],[-64.832229999999925,43.926102000000128],[-64.881103999999993,43.838882000000126],[-64.906386999999995,43.800544999999943],[-65.030562999999972,43.704163000000051],[-65.066665999999941,43.696381000000088],[-65.242217999999923,43.679161000000136],[-65.325835999999867,43.674995000000024],[-65.375274999999874,43.575272000000098],[-65.449158000000011,43.55971500000004],[-65.453338999999971,43.554993000000138],[-65.475829999999974,43.505829000000006],[-65.481383999999991,43.464439000000027],[-65.496947999999975,43.490829000000019],[-65.548049999999932,43.556099000000017],[-65.559433000000013,43.568054000000075],[-65.568618999999956,43.570274000000097],[-65.575561999999991,43.569717000000026],[-65.584732000000031,43.560271999999941],[-65.591385000000002,43.549721000000034],[-65.603881999999999,43.534721000000104],[-65.612212999999997,43.526099999999985],[-65.617492999999968,43.523604999999975],[-65.646118000000001,43.511940000000038],[-65.67332499999992,43.506103999999993],[-65.712783999999999,43.498604000000114],[-65.720550999999944,43.499161000000015],[-65.72582999999986,43.50249500000001],[-65.777221999999995,43.562492000000134],[-65.783324999999934,43.571106000000043],[-65.783889999999985,43.576385000000016],[-65.781951999999933,43.587769000000094],[-65.778885000000002,43.599998000000085],[-65.773055999999997,43.612770000000125],[-65.771117999999944,43.624435000000005],[-65.769454999999937,43.64138000000014],[-65.768065999999919,43.658043000000021],[-65.768340999999964,43.668883999999991],[-65.769729999999868,43.679161000000136],[-65.77555799999999,43.688324000000136],[-65.868880999999988,43.786385000000053],[-65.907775999999956,43.821663000000058],[-65.912215999999887,43.825272000000041],[-65.918610000000001,43.828331000000048],[-65.932770000000005,43.827217000000019],[-65.938888999999961,43.824997000000053],[-65.942490000000021,43.819443000000035],[-65.956115999999895,43.776100000000099],[-65.968886999999995,43.719436999999971],[-65.971663999999976,43.71276899999998],[-65.975006000000008,43.707214000000079],[-65.983063000000016,43.697768999999994],[-66.013335999999867,43.691658000000132],[-66.020553999999947,43.69110100000006],[-66.029449,43.731659000000093],[-66.030562999999972,43.736107000000061],[-66.033614999999998,43.740273000000002],[-66.042220999999984,43.748046999999985],[-66.080841000000021,43.768051000000071],[-66.088607999999965,43.768326000000116],[-66.09445199999999,43.766106000000093],[-66.107772999999952,43.753326000000129],[-66.121658000000025,43.762215000000026],[-66.135559000000001,43.78943600000008],[-66.166945999999939,43.858603999999957],[-66.168059999999912,43.863051999999925],[-66.168059999999912,43.895546000000024],[-66.167495999999971,43.901382000000069],[-66.165832999999964,43.907211000000075],[-66.151947000000007,43.919159000000093],[-66.150283999999942,43.925270000000012],[-66.149993999999936,43.93082400000003],[-66.14916999999997,44.001106000000107],[-66.14973399999991,44.011108000000036],[-66.181945999999925,44.067497000000117],[-66.204453000000001,44.086655000000007],[-66.190552000000025,44.150543000000027],[-66.187774999999931,44.161934000000031],[-66.118606999999997,44.338043000000027],[-66.093886999999881,44.367493000000138],[-66.089995999999985,44.371658000000139],[-66.037505999999951,44.423325000000091],[-65.976943999999946,44.477485999999999],[-65.967223999999987,44.486107000000118],[-65.95666499999993,44.491661000000079],[-65.950286999999946,44.493050000000096],[-65.944442999999978,44.489716000000101],[-65.938048999999921,44.491104000000007],[-65.865828999999962,44.538886999999988],[-65.841674999999952,44.568604000000107],[-65.841384999999946,44.574164999999994],[-65.844451999999876,44.578331000000048],[-65.848891999999978,44.582213999999965],[-65.855270000000019,44.585823000000005],[-65.862777999999878,44.586936999999978],[-65.931106999999997,44.582213999999965],[-65.943053999999961,44.577773999999977],[-65.958617999999944,44.567497000000003],[-66.004456000000005,44.535827999999981],[-66.03472899999997,44.514717000000132],[-66.12332200000003,44.448875000000044],[-66.177779999999927,44.396660000000054],[-66.185821999999973,44.387214999999969],[-66.190552000000025,44.383330999999998],[-66.197220000000016,44.386108000000036],[-66.198607999999979,44.412766000000033],[-66.191100999999946,44.423325000000091],[-66.103058000000033,44.500000000000114],[-66.068068999999923,44.524994000000106],[-65.971663999999976,44.591934000000094],[-65.820220999999947,44.654434000000037],[-65.816726999999958,44.655768999999964],[-65.808722999999929,44.651936000000092],[-65.802895000000035,44.644604000000072],[-65.796394000000021,44.624268000000029],[-65.796897999999942,44.617603000000145],[-65.797897000000034,44.613937000000021],[-65.756957999999941,44.615273000000059],[-65.756393000000003,44.609993000000031],[-65.753066999999987,44.60582700000009],[-65.745270000000005,44.605552999999986],[-65.697220000000016,44.612495000000081],[-65.690276999999924,44.614440999999999],[-65.68499799999995,44.61693600000001],[-65.625274999999988,44.658882000000006],[-65.522507000000019,44.737769999999955],[-65.548614999999984,44.733879000000115],[-65.682616999999937,44.693156999999928],[-65.686278999999956,44.691825999999935],[-65.690276999999924,44.691162000000077],[-65.695441999999957,44.691825999999935],[-65.704116999999997,44.69499200000007],[-65.706116000000009,44.697654999999997],[-65.707114999999988,44.700489000000005],[-65.707450999999992,44.703487000000052],[-65.705947999999978,44.707489000000066],[-65.700942999999938,44.713157999999964],[-65.697937000000024,44.71549200000004],[-65.717772999999966,44.721931000000041],[-65.658339999999953,44.758605999999986],[-65.646956999999929,44.765273999999977],[-65.299987999999928,44.928329000000133],[-65.202498999999989,44.973877000000073],[-65.114166000000012,45.011665000000107],[-64.934158000000025,45.100273000000016],[-64.918059999999912,45.111107000000061],[-64.879439999999988,45.130820999999969],[-64.861938000000009,45.139717000000076],[-64.814712999999983,45.158043000000077],[-64.808608999999933,45.16027100000008],[-64.777221999999995,45.169990999999982],[-64.744995000000017,45.178329000000076],[-64.710830999999985,45.183876000000055],[-64.590285999999935,45.208046000000024],[-64.550551999999925,45.216660000000104],[-64.468886999999938,45.242766999999958],[-64.451400999999976,45.249435000000119],[-64.434432999999899,45.25750000000005],[-64.417770000000019,45.266663000000051],[-64.397506999999962,45.281105000000025],[-64.393889999999999,45.28694200000001],[-64.391952999999944,45.292770000000132],[-64.391113000000018,45.298332000000073],[-64.393065999999862,45.303322000000094],[-64.401671999999962,45.311104000000057],[-64.406951999999933,45.314438000000052],[-64.413895000000025,45.317497000000003],[-64.430832000000009,45.322220000000016],[-64.454726999999934,45.323608000000092],[-64.462218999999948,45.323051000000021],[-64.470839999999953,45.324440000000038],[-64.488051999999982,45.329162999999994],[-64.494719999999973,45.332214000000022],[-64.489165999999955,45.335266000000104],[-64.465835999999911,45.334717000000012],[-64.440552000000025,45.331665000000044],[-64.353057999999919,45.316101000000003],[-64.338333000000034,45.310271999999941],[-64.327498999999989,45.303322000000094],[-64.321395999999936,45.294715999999994],[-64.317779999999914,45.285271000000137],[-64.317229999999881,45.280273000000136],[-64.317779999999914,45.274437000000034],[-64.321944999999914,45.269714000000079],[-64.327498999999989,45.266936999999984],[-64.343062999999972,45.256103999999993],[-64.353333000000021,45.239159000000029],[-64.385833999999932,45.145546000000081],[-64.380279999999857,45.131104000000107],[-64.363891999999964,45.101386999999988],[-64.359725999999966,45.097487999999942],[-64.352218999999934,45.09804500000007],[-64.346953999999982,45.101105000000075],[-64.337219000000005,45.108604000000071],[-64.333892999999932,45.115272999999945],[-64.334441999999967,45.120270000000062],[-64.333327999999995,45.131660000000124],[-64.329178000000013,45.13638300000008],[-64.324387000000002,45.139343000000054],[-64.31138599999997,45.141380000000026],[-64.295836999999949,45.141380000000026],[-64.244155999999975,45.123877999999991],[-64.221114999999941,45.110549999999989],[-64.210280999999952,45.103607000000011],[-64.157226999999978,45.056938000000002],[-64.146956999999986,45.044441000000063],[-64.14555399999989,45.034720999999934],[-64.154449,44.98443600000013],[-64.156386999999938,44.978325000000041],[-64.116942999999935,45.009163000000058],[-64.114165999999955,45.046661000000029],[-64.121933000000013,45.058044000000052],[-64.136397999999929,45.074440000000038],[-64.141678000000013,45.078605999999979],[-64.162505999999894,45.092216000000008],[-64.188323999999909,45.104713000000004],[-64.192490000000021,45.108604000000071],[-64.198607999999865,45.11721],[-64.198882999999967,45.122490000000084],[-64.195830999999941,45.150543000000027],[-64.16361999999998,45.185265000000015],[-64.152785999999992,45.192764000000011],[-64.118331999999953,45.208885000000009],[-64.106110000000001,45.213326000000109],[-64.099990999999932,45.215271000000087],[-64.065826000000015,45.222214000000122],[-64.008057000000008,45.236381999999992],[-63.982215999999937,45.243049999999926],[-63.956664999999987,45.251388999999961],[-63.805831999999953,45.301933000000133],[-63.596107000000018,45.315544000000102],[-63.470832999999857,45.321663000000115],[-63.384170999999924,45.35083000000003],[-63.371940999999993,45.354996000000142],[-63.365554999999915,45.357773000000009],[-63.360832000000016,45.360824999999977],[-63.36860699999994,45.36360900000011],[-63.738892000000021,45.396660000000054],[-63.755561999999941,45.398048000000131],[-63.797226000000023,45.392768999999987],[-63.837775999999963,45.385551000000135],[-63.988051999999982,45.384438000000046],[-64.040558000000033,45.401100000000042],[-64.044998000000021,45.404434000000037],[-64.061110999999983,45.409714000000122],[-64.069732999999985,45.410271000000023],[-64.083618000000001,45.409430999999984],[-64.16332999999986,45.403877000000136],[-64.214721999999995,45.399719000000005],[-64.312774999999931,45.39138000000014],[-64.357772999999952,45.38110400000005],[-64.529998999999975,45.408043000000021],[-64.674164000000019,45.383049000000085],[-64.815825999999959,45.348602000000085],[-64.929442999999992,45.324440000000038],[-64.937209999999993,45.326942000000088],[-64.938048999999921,45.332214000000022],[-64.936661000000015,45.343323000000112],[-64.933318999999983,45.355553000000043],[-64.917769999999905,45.408599999999922],[-64.909163999999976,45.418052999999986],[-64.831389999999942,45.479155999999932],[-64.765563999999983,45.505554000000132],[-64.699157999999954,45.531104999999968],[-64.568893000000003,45.604163999999969],[-64.470550999999944,45.670273000000122],[-64.430282999999974,45.715546000000018],[-64.332229999999925,45.76888300000013],[-64.331680000000006,45.763611000000026],[-64.326110999999969,45.749435000000005],[-64.296660999999915,45.763328999999942],[-64.283066000000019,45.776656999999943],[-64.27555799999999,45.799995000000081],[-64.27305599999994,45.811661000000015],[-64.270003999999915,45.828880000000083],[-64.272933999999964,45.835754000000065],[-64.273620999999878,45.838599999999985],[-64.276671999999962,45.842766000000097],[-64.324722000000008,45.879990000000021],[-64.33277899999996,45.882767000000058],[-64.347778000000005,45.881934999999999],[-64.361388999999974,45.879158000000075],[-64.366942999999992,45.876380999999981],[-64.367766999999958,45.870544000000052],[-64.363327000000027,45.866661000000079],[-64.354720999999927,45.865547000000106],[-64.357498000000021,45.851105000000132],[-64.418059999999912,45.796104000000014],[-64.478332999999907,45.750549000000035],[-64.49722300000002,45.783882000000006],[-64.489990000000034,45.794998000000135],[-64.488051999999982,45.801102000000014],[-64.489165999999955,45.811378000000047],[-64.49221799999998,45.815543999999989],[-64.597335999999984,45.922104000000047],[-64.681945999999868,46.021659999999997],[-64.686935000000005,46.041382000000056],[-64.690551999999968,46.050827000000083],[-64.694991999999957,46.054710000000057],[-64.736937999999952,46.083878000000084],[-64.747498000000007,46.090546000000018],[-64.754456000000005,46.089157000000057],[-64.764450000000011,46.083054000000118],[-64.706389999999999,45.994713000000104],[-64.701949999999954,45.990829000000076],[-64.648009999999942,45.933047999999928],[-64.631171999999992,45.922718000000032],[-64.628998000000024,45.920383000000072],[-64.601180999999997,45.881550000000118],[-64.601180999999997,45.877384000000006],[-64.601340999999991,45.873881999999981],[-64.602844000000005,45.86721399999999],[-64.604507000000012,45.863552000000084],[-64.583069000000023,45.826942000000145],[-64.756392999999946,45.622489999999971],[-64.772506999999962,45.609993000000145],[-64.778335999999967,45.607216000000051],[-64.785827999999924,45.610275000000058],[-64.791381999999999,45.613609000000054],[-64.796660999999972,45.622489999999971],[-64.801665999999955,45.626381000000038],[-64.808334000000002,45.629715000000033],[-64.817229999999938,45.632492000000127],[-64.825287000000003,45.633331000000055],[-64.847504000000015,45.633331000000055],[-64.884445000000028,45.631660000000011],[-64.904175000000009,45.627769000000114],[-64.941375999999991,45.602218999999991],[-64.947219999999959,45.598045000000127],[-64.961945000000014,45.586105000000032],[-64.976395000000025,45.572494999999947],[-64.986663999999962,45.564437999999996],[-64.99722300000002,45.557213000000104],[-65.015015000000005,45.548882000000049],[-65.047501000000011,45.539161999999976],[-65.104445999999939,45.524994000000106],[-65.138335999999924,45.517769000000044],[-65.152221999999938,45.516106000000093],[-65.164444000000003,45.513054000000011],[-65.220551,45.493881000000101],[-65.326675000000023,45.457497000000046],[-65.339447000000007,45.452216999999962],[-65.368057000000022,45.437767000000065],[-65.394454999999994,45.419441000000063],[-65.421386999999925,45.402771000000087],[-65.53195199999999,45.342490999999995],[-65.883620999999948,45.209160000000054],[-65.889998999999989,45.207497000000103],[-65.903609999999958,45.205551000000014],[-65.910827999999981,45.205268999999987],[-65.918883999999935,45.206099999999992],[-65.98332199999993,45.219711000000132],[-65.989989999999977,45.223045000000127],[-66.09060699999992,45.295657999999946],[-66.092940999999939,45.297989000000086],[-66.094611999999984,45.300659000000053],[-66.091605999999956,45.303824999999961],[-66.083892999999932,45.34276600000004],[-66.078063999999927,45.345543000000077],[-66.05749499999996,45.348602000000085],[-66.045273000000009,45.353325000000041],[-66.029449,45.364158999999916],[-66.015288999999996,45.377769000000001],[-66.003066999999987,45.394997000000103],[-66.000838999999985,45.401100000000042],[-65.99722300000002,45.417770000000019],[-65.994445999999982,45.455550999999957],[-65.994445999999982,45.460823000000062],[-66.002501999999993,45.461662000000047],[-66.008346999999901,45.458885000000123],[-66.19027699999998,45.339432000000045],[-66.193329000000006,45.333603000000039],[-66.193329000000006,45.328331000000105],[-66.190552000000025,45.323883000000137],[-66.179169000000002,45.305823999999973],[-66.176102000000014,45.301933000000133],[-66.145279000000016,45.279160000000047],[-66.14166999999992,45.259769000000006],[-66.137000999999941,45.259270000000129],[-66.113997999999981,45.25877400000013],[-66.113509999999906,45.237770000000069],[-66.147232000000031,45.19221500000009],[-66.205565999999976,45.163878999999952],[-66.21665999999999,45.15915700000005],[-66.427779999999984,45.084991000000002],[-66.459732000000031,45.106102000000021],[-66.459732000000031,45.111382000000106],[-66.461120999999935,45.116104000000007],[-66.468063000000029,45.129714999999976],[-66.488891999999908,45.149994000000049],[-66.496384000000035,45.149719000000061],[-66.531386999999995,45.147217000000012],[-66.537505999999951,45.145271000000093],[-66.55999799999995,45.133330999999998],[-66.571395999999936,45.126656000000139],[-66.586120999999991,45.116936000000067],[-66.608046999999942,45.104164000000083],[-66.642226999999991,45.086380000000133],[-66.648055999999997,45.083603000000039],[-66.754729999999881,45.055550000000096],[-66.792496000000028,45.055267000000129],[-66.77694699999995,45.086380000000133],[-66.776107999999965,45.09137700000008],[-66.777785999999992,45.096100000000035],[-66.783065999999963,45.099716000000114],[-66.965560999999923,45.17943600000001],[-67.021941999999854,45.170273000000009],[-67.027221999999995,45.168052999999986],[-67.046386999999982,45.126938000000052],[-67.129439999999988,45.172217999999987],[-67.186934999999949,45.19221500000009],[-67.206542999999897,45.18303700000007],[-67.236114999999927,45.193877999999984],[-67.25306699999993,45.199432000000002],[-67.261123999999995,45.201103000000046],[-67.267775999999969,45.200546000000145],[-67.275009000000011,45.1988750000001],[-67.287215999999944,45.194153000000028],[-67.290557999999976,45.182770000000005],[-67.290282999999988,45.177489999999921],[-67.292220999999927,45.166100000000085],[-67.296386999999925,45.160820000000001],[-67.301391999999964,45.156937000000084],[-67.306655999999862,45.153320000000122],[-67.318893000000003,45.148605000000089],[-67.325561999999991,45.147491000000116],[-67.333069000000023,45.147491000000116],[-67.341948999999943,45.149994000000049],[-67.354172000000005,45.156097000000045],[-67.403884999999946,45.194435000000055],[-67.408050999999944,45.198325999999952],[-67.422500999999954,45.214996000000099],[-67.455275999999969,45.263054000000068],[-67.462783999999999,45.276099999999985],[-67.465011999999888,45.281105000000025],[-67.465285999999992,45.286385000000109],[-67.464172000000019,45.29193900000007],[-67.450561999999934,45.333054000000061],[-67.485001000000011,45.489159000000029],[-67.485275000000001,45.494438000000002],[-67.482772999999952,45.500274999999931],[-67.478881999999885,45.504439999999931],[-67.467772999999966,45.510826000000066],[-67.43638599999997,45.521378000000027],[-67.421936000000017,45.523323000000005],[-67.415832999999964,45.525269000000094],[-67.410827999999924,45.529990999999995],[-67.406951999999876,45.578049000000135],[-67.408889999999985,45.582214000000135],[-67.412505999999951,45.586936999999978],[-67.424163999999962,45.594711000000132],[-67.453888000000006,45.612495000000081],[-67.462219000000005,45.614715999999987],[-67.46945199999999,45.613051999999982],[-67.486114999999984,45.603607000000068],[-67.499999999999943,45.60166200000009],[-67.515015000000005,45.601105000000018],[-67.573897999999986,45.611664000000019],[-67.656661999999983,45.630546999999922],[-67.664443999999946,45.6336060000001],[-67.791107000000011,45.693047000000092],[-67.796660999999915,45.696098000000063],[-67.799164000000019,45.701102999999932],[-67.804442999999992,45.731377000000009],[-67.806380999999988,45.78472099999999],[-67.786666999999909,45.888329000000056],[-67.772507000000019,45.957496999999933],[-67.779174999999952,46.283332999999971],[-67.788894999999968,46.787773000000072],[-67.791671999999949,46.921379000000059],[-67.794998000000021,47.06999200000007],[-67.85972599999991,47.097488000000112],[-67.874161000000015,47.103607000000125],[-67.892226999999991,47.114440999999999],[-67.948607999999922,47.166382000000112],[-67.951400999999976,47.17083000000008],[-67.955841000000021,47.179993000000081],[-67.957229999999925,47.184989999999971],[-67.961944999999957,47.194153000000142],[-67.968886999999938,47.20277400000009],[-68.18582200000003,47.332771000000037],[-68.208617999999944,47.341660000000104],[-68.244995000000017,47.351936000000023],[-68.306655999999919,47.364440999999943],[-68.323059000000001,47.365829000000076],[-68.337219000000005,47.363609000000054],[-68.348891999999921,47.359992999999974],[-68.367766999999958,47.351105000000018],[-68.373046999999929,47.347214000000122],[-68.564712999999927,47.289719000000048],[-68.761948000000018,47.232764999999972],[-68.787505999999951,47.224709000000075],[-68.831679999999892,47.208884999999952],[-68.887786999999946,47.188042000000053],[-68.895279000000016,47.189987000000087],[-68.958618000000001,47.217209000000025],[-68.965285999999878,47.220543000000021],[-69.023894999999925,47.250274999999931],[-69.036117999999988,47.257217000000026],[-69.044998000000021,47.264442000000088],[-69.049164000000019,47.274437000000034],[-69.053054999999972,47.28943600000008],[-69.053588999999931,47.293777000000091],[-69.054992999999854,47.299438000000066],[-69.055266999999958,47.30471],[-69.056106999999997,47.336655000000064],[-69.055556999999965,47.347488000000055],[-69.052490000000034,47.380546999999979],[-69.049437999999952,47.392219999999952],[-69.045837000000006,47.398604999999975],[-69.043610000000001,47.404709000000025],[-69.039444000000003,47.416939000000127],[-69.038329999999974,47.422493000000088],[-69.039992999999981,47.427490000000034],[-69.048614999999984,47.435546999999985],[-69.055556999999965,47.438599000000124],[-69.123885999999914,47.458327999999995],[-69.132766999999944,47.459991000000116],[-69.232498000000021,47.471375000000023],[-69.239623999999992,47.464413000000093],[-69.305267000000015,47.40026899999998],[-69.423614999999984,47.283332999999971],[-69.653884999999946,47.055267000000129],[-69.712509000000011,46.996940999999993],[-69.84722899999997,46.862213000000111],[-69.992767000000015,46.715828000000045],[-70.009170999999867,46.698043999999982],[-70.026947000000007,46.587493999999992],[-70.038605000000018,46.509995000000004],[-70.044158999999922,46.474991000000102],[-70.047775000000001,46.453880000000083],[-70.050551999999982,46.438599000000124],[-70.06361400000003,46.424164000000019],[-70.068893000000003,46.419716000000051],[-70.075286999999946,46.417770000000132],[-70.081389999999999,46.417770000000132],[-70.088057999999876,46.414993000000038],[-70.119155999999975,46.393608000000086],[-70.200287000000003,46.336380000000077],[-70.242492999999911,46.279160000000047],[-70.287780999999939,46.203049000000135],[-70.305556999999908,46.078880000000083],[-70.3125,45.985825000000091],[-70.309722999999963,45.980820000000051],[-70.303329000000019,45.977767999999969],[-70.293883999999991,45.975548000000117],[-70.278335999999967,45.975266000000033],[-70.260559000000001,45.971374999999966],[-70.253615999999909,45.968323000000055],[-70.248336999999935,45.964714000000072],[-70.23971599999993,45.956657000000064],[-70.238051999999982,45.951934999999992],[-70.255004999999983,45.913048000000003],[-70.258895999999993,45.907493999999986],[-70.263335999999981,45.90277100000003],[-70.393889999999942,45.778046000000131],[-70.466659999999933,45.711937000000034],[-70.555267000000015,45.672768000000133],[-70.576949999999954,45.660820000000058],[-70.631942999999978,45.627769000000114],[-70.693054000000018,45.571938000000046],[-70.720276000000013,45.528328000000101],[-70.725280999999995,45.49971800000003],[-70.724715999999944,45.49471299999999],[-70.712783999999999,45.477768000000026],[-70.704726999999934,45.469154000000003],[-70.689437999999939,45.458046000000024],[-70.86860699999994,45.246101000000124],[-70.873046999999985,45.241379000000052],[-70.878600999999946,45.238601999999958],[-70.886123999999995,45.238045000000056],[-71.021118000000001,45.326660000000004],[-71.085128999999995,45.307708999999988],[-71.139998999999932,45.253052000000082],[-71.146392999999989,45.25249500000001],[-71.170272999999952,45.253883000000087],[-71.189163000000008,45.257773999999984],[-71.211669999999913,45.266105999999979],[-71.233063000000016,45.274993999999936],[-71.239715999999987,45.278046000000074],[-71.264449999999954,45.290833000000077],[-71.280562999999972,45.301933000000133],[-71.288604999999961,45.304436000000067],[-71.302779999999984,45.303047000000106],[-71.314712999999927,45.299438000000066],[-71.327498999999932,45.294441000000006],[-71.424438000000009,45.25],[-71.408614999999998,45.223045000000127],[-71.402221999999938,45.21915400000006],[-71.398894999999982,45.215546000000131],[-71.396118000000001,45.210548000000131],[-71.395843999999954,45.205268999999987],[-71.398620999999991,45.199432000000002],[-71.43249499999996,45.130272000000048],[-71.436110999999926,45.125267000000008],[-71.459166999999979,45.102776000000006],[-71.482772999999952,45.083878000000084],[-71.493056999999965,45.075271999999984],[-71.496383999999921,45.068886000000077],[-71.49888599999997,45.057213000000047],[-71.497222999999963,45.041663999999969],[-71.494155999999975,45.020546000000024],[-71.55471799999998,45.019989000000123],[-71.892776000000026,45.019157000000064],[-72.049987999999985,45.019440000000031],[-72.271652000000017,45.018775999999946],[-72.459166999999866,45.017494000000113],[-72.510283999999956,45.017212000000029],[-72.778884999999946,45.020828000000108],[-72.956389999999942,45.018326000000059],[-73.337173000000007,45.01186400000006],[-73.346114999999998,45.011383000000023],[-73.352997000000016,45.009421999999972],[-73.359267999999986,45.010063000000059],[-73.376662999999951,45.011108000000036],[-73.622771999999941,45.006660000000068],[-73.91164399999991,45.000000000000057],[-74.249161000000015,44.992218000000094],[-74.682021999999904,45.006714000000102],[-74.75111400000003,45.002220000000023],[-74.769729999999925,45.006386000000134],[-74.785827999999981,45.011383000000023],[-74.81220999999988,45.01776899999993],[-74.828887999999949,45.019157000000064],[-74.850280999999939,45.016663000000108],[-74.990829000000019,44.986655999999925],[-75.00140399999998,44.980545000000063],[-75.170546999999999,44.898604999999975],[-75.278060999999923,44.857216000000051],[-75.301666000000012,44.846656999999993],[-75.317779999999857,44.837212000000136],[-75.395843999999954,44.785827999999924],[-75.537216000000001,44.691376000000048],[-75.5625,44.673882000000106],[-75.618057000000022,44.634995000000117],[-75.628051999999968,44.627769000000001],[-75.682495000000017,44.588043000000027],[-75.736114999999927,44.546387000000038],[-75.801940999999999,44.491104000000007],[-75.81138599999997,44.483047000000056],[-75.820557000000008,44.474990999999989],[-75.824722000000008,44.469986000000119],[-75.828338999999971,44.446655000000078],[-75.834166999999979,44.43443300000007],[-75.841109999999901,44.423050000000103],[-75.849441999999954,44.414711000000068],[-75.864166000000012,44.402771000000143],[-75.879990000000021,44.393326000000059],[-75.904449,44.384995000000004],[-75.966109999999958,44.364158999999972],[-75.982177999999919,44.358864000000096],[-75.997771999999998,44.355270000000075],[-76.019454999999937,44.353325000000098],[-76.034728999999913,44.353050000000053],[-76.046950999999979,44.349716000000058],[-76.057769999999948,44.344993999999986],[-76.064437999999939,44.341377000000023],[-76.363373000000024,44.150992999999971],[-76.410278000000005,44.121101000000124],[-76.43472300000002,44.104713000000061],[-76.439986999999974,44.099434000000088],[-76.531386999999995,43.983046999999942],[-76.569457999999997,43.934157999999968],[-76.583618000000001,43.915824999999927],[-76.697494999999947,43.768600000000049],[-76.801940999999999,43.633605999999986],[-76.816955999999948,43.633049000000085],[-76.974166999999909,43.634438000000046],[-77.288329999999917,43.636658000000068],[-77.582779000000016,43.638603000000046],[-77.729996000000028,43.639160000000118],[-77.857773000000009,43.639434999999992],[-77.887222000000008,43.639434999999992],[-78.388061999999934,43.638329000000113],[-78.663054999999986,43.637497000000053],[-78.724715999999944,43.629433000000006],[-78.938323999999909,43.553878999999995],[-79.02806099999998,43.521934999999985],[-79.095275999999956,43.497771999999998],[-79.18472300000002,43.465546000000131],[-79.132216999999969,43.382492000000013],[-79.066787999999974,43.279400000000066],[-79.054169000000002,43.262496999999996],[-79.053328999999962,43.256660000000068],[-79.044997999999964,43.165543000000014],[-79.044723999999974,43.160545000000013],[-79.045836999999949,43.148880000000133],[-79.049438000000009,43.143883000000017],[-79.05972300000002,43.137215000000083],[-79.063613999999916,43.132210000000043],[-79.081115999999952,43.085548000000074],[-79.043334999999956,43.011664999999994],[-79.040832999999964,43.007774000000097],[-79.021666999999923,42.987213000000054],[-79.005843999999911,42.977211000000125],[-78.978606999999954,42.961380000000133],[-78.97193900000002,42.958046000000138],[-78.962783999999942,42.956383000000017],[-78.946655000000021,42.955551000000128],[-78.938599000000011,42.953322999999955],[-78.932770000000005,42.950829000000056],[-78.927490000000034,42.946937999999989],[-78.920273000000009,42.939156000000025],[-78.918335000000013,42.934715000000097],[-78.915282999999988,42.924164000000019],[-78.917220999999927,42.904991000000109],[-78.918335000000013,42.89888000000002],[-78.926665999999898,42.880546999999979],[-78.932219999999973,42.868324000000086],[-78.935271999999998,42.862495000000081],[-78.942490000000021,42.852493000000095],[-78.965835999999967,42.833602999999982],[-78.986937999999952,42.819992000000013],[-79.12110899999999,42.769157000000121],[-79.154448999999943,42.757217000000026],[-79.299437999999952,42.702492000000007],[-79.56645199999997,42.600708000000054],[-79.763427999999919,42.524703999999986],[-79.776672000000019,42.52027099999998],[-80.086120999999991,42.399994000000106],[-80.096953999999926,42.396385000000066],[-80.510283999999899,42.329163000000051],[-80.528548999999998,42.326617999999996],[-80.869155999999975,42.279160000000104],[-81.249161000000015,42.224991000000045],[-81.424437999999952,42.144997000000046],[-81.623610999999983,42.052773000000116],[-81.822234999999978,41.96027400000014],[-82.218062999999972,41.774437000000034],[-82.238891999999964,41.763885000000073],[-82.425277999999992,41.675551999999982],[-82.462783999999942,41.676102000000014],[-82.649993999999936,41.681938000000059],[-82.696654999999964,41.683875999999998],[-83.071944999999914,41.859717999999987],[-83.080841000000021,41.874992000000077],[-83.117415999999878,41.946194000000048],[-83.130828999999892,41.970543000000134],[-83.150283999999942,42.008330999999998],[-83.168609999999944,42.046104000000014],[-83.168335000000013,42.048050000000103],[-83.137222000000008,42.201385000000016],[-83.132492000000013,42.220824999999991],[-83.12332200000003,42.245827000000077],[-83.118056999999965,42.25777400000004],[-83.107772999999952,42.272766000000047],[-83.086959999999976,42.300545000000056],[-83.062209999999993,42.318603999999993],[-83.051940999999999,42.324715000000083],[-83.027221999999995,42.331940000000145],[-83.002227999999945,42.339157000000057],[-82.975829999999974,42.344711000000075],[-82.940551999999968,42.357498000000078],[-82.841384999999946,42.396941999999967],[-82.808884000000035,42.413322000000107],[-82.793609999999944,42.422768000000076],[-82.775283999999942,42.43721000000005],[-82.763061999999991,42.448600999999996],[-82.729996000000028,42.48333000000008],[-82.704453000000001,42.508331000000055],[-82.670273000000009,42.539993000000038],[-82.665282999999931,42.544158999999922],[-82.659103000000016,42.548195000000078],[-82.650756999999942,42.553642000000139],[-82.644973999999991,42.556411999999966],[-82.630553999999961,42.557495000000074],[-82.622222999999963,42.556656000000089],[-82.614166000000012,42.554710000000057],[-82.605835000000013,42.554161000000079],[-82.586394999999925,42.558601000000124],[-82.571670999999981,42.56888600000002],[-82.535827999999867,42.599434000000031],[-82.521392999999932,42.618881000000044],[-82.513335999999867,42.63638300000008],[-82.484726000000023,42.719154000000003],[-82.474716000000001,42.751663000000065],[-82.471114999999941,42.769989000000066],[-82.470551,42.782493999999986],[-82.47193900000002,42.793053000000043],[-82.473327999999924,42.797493000000031],[-82.480559999999912,42.812492000000134],[-82.481948999999929,42.823326000000009],[-82.481109999999944,42.829437000000098],[-82.464446999999893,42.898048000000074],[-82.462509000000011,42.904709000000025],[-82.418776999999977,43.018639000000064],[-82.404175000000009,43.049164000000076],[-82.322234999999978,43.21054799999996],[-82.252791999999943,43.346382000000119],[-82.228881999999942,43.391380000000026],[-82.146118000000001,43.553047000000106],[-82.130279999999971,43.585266000000104],[-82.214447000000007,43.952217000000132],[-82.331679999999949,44.460823000000119],[-82.430556999999965,44.882767000000115],[-82.543059999999969,45.355826999999977],[-82.629990000000021,45.396102999999982],[-82.665008999999998,45.411933999999917],[-82.954178000000013,45.54193900000007],[-83.050826999999913,45.585266000000047],[-83.11221299999994,45.612770000000069],[-83.270844000000011,45.683326999999963],[-83.500290000000007,45.784995999999978],[-83.597778000000005,45.827217000000019],[-83.523894999999982,45.918053000000043],[-83.487777999999992,45.961661999999933],[-83.447768999999994,46.011940000000095],[-83.474716000000001,46.036385000000109],[-83.483321999999987,46.043884000000105],[-83.566665999999998,46.098602000000085],[-83.577498999999989,46.105270000000075],[-83.596114999999998,46.114158999999972],[-83.610549999999932,46.119156000000089],[-83.627776999999867,46.123046999999929],[-83.663054999999872,46.126099000000067],[-83.830565999999862,46.126099000000067],[-83.846114999999941,46.124992000000134],[-83.883895999999936,46.102776000000119],[-83.888031000000012,46.096161000000109],[-83.892257999999913,46.092346000000134],[-83.898009999999942,46.08718900000008],[-83.917998999999952,46.073303000000124],[-83.923003999999935,46.070250999999985],[-83.936004999999966,46.065383999999995],[-83.942840999999987,46.066101000000003],[-83.952788999999996,46.068603999999993],[-83.958892999999932,46.071663000000115],[-83.962783999999999,46.075554000000011],[-84.076675000000023,46.203049000000135],[-84.089721999999938,46.220267999999976],[-84.099166999999909,46.232764999999972],[-84.105834999999956,46.247771999999998],[-84.15695199999999,46.391663000000108],[-84.15834000000001,46.396659999999997],[-84.160277999999948,46.424995000000024],[-84.154448999999943,46.445267000000115],[-84.149170000000026,46.457214000000079],[-84.139998999999989,46.474159000000043],[-84.121933000000013,46.498877999999991],[-84.118057000000022,46.512497000000053],[-84.118331999999953,46.518051000000071],[-84.119994999999903,46.523323000000005],[-84.12249799999995,46.527771000000143],[-84.126389000000017,46.531937000000084],[-84.132491999999957,46.53472099999999],[-84.192763999999954,46.546661000000086],[-84.408614999999884,46.508605999999986],[-84.428328999999962,46.503052000000025],[-84.434433000000013,46.500275000000101],[-84.454453000000001,46.486938000000066],[-84.459441999999967,46.482764999999915],[-84.463897999999972,46.478325000000098],[-84.474715999999944,46.463608000000079],[-84.479996000000028,46.46027400000014],[-84.486388999999974,46.458885000000123],[-84.494719999999973,46.458046000000138],[-84.512512000000015,46.45915999999994],[-84.529998999999975,46.461380000000133],[-84.565001999999993,46.466385000000002],[-84.775008999999955,46.653046000000074],[-84.787780999999995,46.68971300000004],[-84.806945999999925,46.748328999999956],[-84.825561999999877,46.806938000000059],[-84.83277899999996,46.829163000000051],[-84.856948999999986,46.902214000000072],[-84.872222999999963,46.909431000000041],[-84.917495999999971,46.928604000000121],[-85.354445999999996,47.111664000000076],[-85.464171999999905,47.157211000000132],[-85.738891999999964,47.270827999999995],[-85.839721999999938,47.31221000000005],[-86.014724999999942,47.383880999999917],[-86.051391999999964,47.39888000000002],[-86.466659999999933,47.567215000000033],[-86.568893000000003,47.608330000000024],[-86.884444999999971,47.734717999999987],[-87.201400999999976,47.860275000000115],[-87.341674999999952,47.915542999999957],[-87.444716999999969,47.955826000000002],[-88.188323999999966,48.244156000000089],[-88.368056999999908,48.31221000000005],[-88.645554000000004,48.264160000000004],[-88.691665999999941,48.255554000000075],[-88.974166999999909,48.139160000000118],[-89.323333999999988,47.993050000000096],[-89.356658999999979,47.979713000000061],[-89.447768999999937,48.003326000000015],[-89.493125999999961,48.003166000000078],[-89.556655999999975,48.001389000000131],[-89.573059000000001,48.001663000000065],[-89.57887299999993,48.00262500000008],[-89.583069000000023,48.003326000000015],[-89.598617999999931,48.006660000000011],[-89.603881999999999,48.00999500000006],[-89.608337000000006,48.014160000000061],[-89.614715999999987,48.016663000000051],[-89.750564999999995,48.029160000000047],[-89.760559000000001,48.029991000000052],[-89.838897999999972,48.01166500000005],[-89.862502999999947,48.000832000000059],[-89.888061999999991,47.991936000000123],[-89.895554000000004,47.989990000000034],[-89.903885000000002,47.989159000000029],[-89.911666999999966,47.991379000000052],[-89.982223999999974,48.016105999999979],[-89.993057000000022,48.02276599999999],[-90,48.030204999999967],[-90.000838999999985,48.031105000000025],[-90.032775999999956,48.069717000000026],[-90.056106999999997,48.100548000000117],[-90.059432999999956,48.104996000000085],[-90.065001999999936,48.10833000000008],[-90.081680000000006,48.111938000000009],[-90.12721299999987,48.119156000000032],[-90.146118000000001,48.121658000000082],[-90.156386999999938,48.122490000000028],[-90.279998999999975,48.113051999999982],[-90.740829000000019,48.090828000000045],[-90.758895999999993,48.094711000000018],[-90.769454999999937,48.099998000000085],[-90.778335999999967,48.107498000000021],[-90.838608000000022,48.184158000000025],[-90.841674999999952,48.191658000000132],[-90.843063000000029,48.205826000000002],[-90.83805799999999,48.208603000000039],[-90.833625999999924,48.209099000000094],[-90.829726999999991,48.212493999999936],[-90.829192999999975,48.214638000000093],[-90.828887999999949,48.221656999999936],[-90.830291999999929,48.225548000000003],[-90.832503999999915,48.227211000000125],[-90.849166999999909,48.233879000000115],[-90.868606999999997,48.237495000000138],[-90.898055999999883,48.236656000000039],[-90.928329000000019,48.228600000000142],[-90.969161999999926,48.214714000000129],[-91.126098999999954,48.154991000000109],[-91.14916999999997,48.144157000000064],[-91.192489999999964,48.114998000000071],[-91.232223999999974,48.087769000000094],[-91.24888599999997,48.079437000000098],[-91.269454999999994,48.07388300000008],[-91.283324999999991,48.071381000000031],[-91.311661000000015,48.069160000000124],[-91.325561999999991,48.069717000000026],[-91.34722899999997,48.068054000000075],[-91.381377999999984,48.061661000000129],[-91.392226999999934,48.056099000000017],[-91.418335000000013,48.041107000000011],[-91.462783999999942,48.057770000000062],[-91.573623999999995,48.093048000000067],[-91.645142000000021,48.098343000000114],[-91.6875,48.144714000000135],[-91.729720999999984,48.187209999999936],[-91.734160999999915,48.190543999999932],[-91.739715999999987,48.193321000000026],[-91.756957999999997,48.194434999999999],[-91.776107999999965,48.194153000000142],[-91.791672000000005,48.195267000000115],[-91.850554999999986,48.203880000000083],[-91.940276999999924,48.23054500000012],[-91.956589000000008,48.23663300000004],[-91.97084000000001,48.244437999999946],[-91.985824999999977,48.255829000000119],[-91.997771999999998,48.266662999999994],[-92.007232999999985,48.27915999999999],[-92.008895999999993,48.28276800000009],[-92.011123999999938,48.292496000000085],[-92.011672999999917,48.297493000000031],[-92.013335999999924,48.304993000000081],[-92.020554000000004,48.322769000000051],[-92.02806099999998,48.336105000000032],[-92.035552999999993,48.343605000000082],[-92.041945999999939,48.347771000000023],[-92.051940999999943,48.353882000000056],[-92.141678000000013,48.357216000000051],[-92.162216000000001,48.356658999999979],[-92.257232999999928,48.346939000000077],[-92.265014999999892,48.343605000000082],[-92.276107999999965,48.337493999999992],[-92.280288999999982,48.332771000000037],[-92.285827999999981,48.326103000000046],[-92.300551999999925,48.304993000000081],[-92.300827000000027,48.298050000000103],[-92.297225999999966,48.28943600000008],[-92.288604999999961,48.276100000000099],[-92.283614999999998,48.263885000000016],[-92.283065999999963,48.256660000000124],[-92.285552999999936,48.250549000000035],[-92.290282999999988,48.246658000000139],[-92.306716999999935,48.241592000000026],[-92.331680000000006,48.234160999999972],[-92.351943999999946,48.228325000000098],[-92.356658999999979,48.228600000000142],[-92.361664000000019,48.231102000000021],[-92.369155999999975,48.238883999999985],[-92.426392000000021,48.311661000000072],[-92.455275999999969,48.394157000000007],[-92.582229999999981,48.441375999999991],[-92.697768999999994,48.485268000000076],[-92.715285999999935,48.541382000000056],[-92.943054000000018,48.621101000000067],[-92.953063999999927,48.62332200000003],[-92.966109999999958,48.624991999999963],[-93.244995000000017,48.640549000000021],[-93.308883999999978,48.630272000000048],[-93.322509999999966,48.628044000000102],[-93.40834000000001,48.608604000000128],[-93.449996999999996,48.597214000000065],[-93.456664999999987,48.594994000000042],[-93.458618000000001,48.592491000000052],[-93.458618000000001,48.589432000000102],[-93.456116000000009,48.583054000000118],[-93.452788999999996,48.579436999999984],[-93.449721999999952,48.570549000000028],[-93.449996999999996,48.56749700000006],[-93.454177999999899,48.559714999999926],[-93.46055599999994,48.55332199999998],[-93.465835999999911,48.54972099999992],[-93.476394999999968,48.544158999999979],[-93.489440999999999,48.539718999999991],[-93.503066999999874,48.537498000000085],[-93.65695199999999,48.51527399999992],[-93.664444000000003,48.514999000000103],[-93.724166999999966,48.51388500000013],[-93.778610000000015,48.51638800000012],[-93.793059999999969,48.517768999999987],[-93.800277999999935,48.520271000000037],[-93.803604000000007,48.524712000000136],[-93.805557000000022,48.532211000000132],[-93.80972300000002,48.550270000000069],[-93.817779999999971,48.581940000000145],[-93.820007000000032,48.590546000000074],[-93.830001999999979,48.612770000000012],[-93.833327999999995,48.616386000000034],[-93.842498999999975,48.623604000000057],[-93.851944000000003,48.626938000000052],[-93.865554999999972,48.630272000000048],[-93.880553999999961,48.630272000000048],[-93.885283999999899,48.630272000000048],[-94.063888999999961,48.638046000000031],[-94.111937999999896,48.641106000000093],[-94.134170999999867,48.642769000000044],[-94.235275000000001,48.653046000000018],[-94.250564999999995,48.656097000000045],[-94.252791999999886,48.65776800000009],[-94.25418099999996,48.660545000000013],[-94.252228000000002,48.671379000000059],[-94.252228000000002,48.679993000000138],[-94.256667999999934,48.687767000000122],[-94.263061999999991,48.694153000000028],[-94.271117999999888,48.699158000000068],[-94.278610000000015,48.702492000000063],[-94.291107000000011,48.706099999999992],[-94.305832000000009,48.708328000000108],[-94.390563999999927,48.711105000000032],[-94.406112999999948,48.711105000000032],[-94.414169000000015,48.709991000000059],[-94.433318999999983,48.701934999999992],[-94.453613000000018,48.695824000000073],[-94.460555999999997,48.694435000000112],[-94.476395000000025,48.693878000000041],[-94.500838999999985,48.696938000000046],[-94.523894999999925,48.701934999999992],[-94.605835000000013,48.724433999999917],[-94.637221999999952,48.739159000000086],[-94.643616000000009,48.743049999999982],[-94.689986999999917,48.774712000000079],[-94.699996999999996,48.782767999999976],[-94.706664999999987,48.79055000000011],[-94.709441999999967,48.803047000000106],[-94.711120999999991,48.846382000000062],[-94.710007000000019,48.855270000000075],[-94.709075999999982,48.857948000000135],[-94.705001999999979,48.862770000000125],[-94.700287000000003,48.868881000000044],[-94.699722000000008,48.871101000000067],[-94.700287000000003,48.895271000000037],[-94.701675000000023,48.909714000000122],[-94.704178000000013,48.924438000000009],[-94.707503999999972,48.941932999999949],[-94.71665999999999,48.970543000000021],[-94.720550999999887,48.978874000000076],[-94.727218999999934,48.99221799999998],[-94.732773000000009,49.001663000000065],[-94.745270000000005,49.028603000000089],[-94.766952999999944,49.075554000000125],[-94.797774999999945,49.155822999999998],[-94.798889000000031,49.159156999999993],[-94.804717999999866,49.17971799999998],[-94.806655999999975,49.193603999999993],[-94.81527699999998,49.29332700000009],[-94.815552000000025,49.306099000000131],[-94.818344000000025,49.309989999999971],[-94.821944999999971,49.312767000000065],[-94.922775000000001,49.355827000000033],[-94.935927999999933,49.360297999999943],[-94.946380999999974,49.36221299999994],[-94.958617999999944,49.361664000000019],[-94.96556099999998,49.360275000000001],[-94.998610999999983,49.357498000000078],[-95.025833000000034,49.357498000000078],[-95.078063999999927,49.359161000000029],[-95.085662999999954,49.360023000000126],[-95.120834000000002,49.364998000000014],[-95.142501999999922,49.371658000000025],[-95.152785999999935,49.376656000000025],[-95.154174999999952,49.366386000000091],[-95.154448999999886,49.333328000000108],[-95.153960999999981,49.173332000000073],[-95.154174999999952,48.999435000000119],[-95.26655599999998,48.999977000000001],[-97.219940000000008,48.999718000000087],[-97.502791999999943,48.999435000000119],[-97.635833999999988,48.999435000000119],[-97.801940999999999,49.000000000000114],[-97.969161999999926,49.000274999999988],[-98.26916499999993,49.000274999999988],[-98.502227999999889,48.999435000000119],[-98.868606999999997,49.000000000000114],[-99.335555999999997,48.999435000000119],[-99.835555999999997,49.000000000000114],[-100.00222799999995,49.000000000000114],[-100.50195300000001,48.999718000000087],[-101.06916799999999,49.000000000000114],[-101.30222299999997,49.000274999999988],[-101.367233,48.998787000000107],[-101.46888699999994,48.999435000000119],[-102.16887699999995,49.000000000000114],[-102.33556399999998,48.999435000000119],[-102.53555299999994,49.000274999999988],[-102.76834099999996,48.999435000000119],[-103.03527800000001,48.999435000000119],[-103.16832699999992,48.999435000000119],[-103.26889,49.000000000000114],[-103.43554699999993,49.000274999999988],[-103.53527800000001,48.999435000000119],[-103.73528299999987,48.999435000000119],[-104.033096,49.000251999999989],[-104.13527699999986,48.999718000000087],[-104.33500699999996,48.999435000000119],[-104.83500700000002,48.999435000000119],[-105.00140399999998,48.999435000000119],[-105.26834100000002,49.000000000000114],[-105.70221699999996,48.999435000000119],[-105.93554699999999,48.999435000000119],[-106.03472899999991,48.999435000000119],[-106.13527699999997,48.999435000000119],[-106.26862299999993,48.999435000000119],[-106.46806300000003,48.999435000000119],[-106.73554999999993,48.999435000000119],[-107.33528100000001,49.000000000000114],[-107.43499800000001,49.000000000000114],[-107.63474300000001,48.999435000000119],[-107.73554999999993,48.999435000000119],[-107.80110199999996,48.999435000000119],[-108.16887700000001,48.999435000000119],[-108.33500699999996,48.999435000000119],[-108.53472899999997,48.999435000000119],[-108.6677699999999,48.999435000000119],[-108.83473200000003,48.999435000000119],[-109.33473200000003,48.999435000000119],[-109.63474299999996,48.999435000000119],[-109.801941,48.999435000000119],[-109.96777299999997,48.999718000000087],[-109.99965700000001,49.000603000000126],[-110.10138699999999,48.999435000000119],[-110.20111099999991,48.999435000000119],[-110.30166599999995,49.000000000000114],[-110.36776699999996,49.000000000000114],[-110.50110599999988,49.000000000000114],[-110.66777000000002,49.000000000000114],[-110.76862299999993,48.999435000000119],[-111.36833199999995,48.999435000000119],[-111.80110199999996,48.999435000000119],[-112.03472899999997,48.999435000000119],[-112.16832699999998,48.999435000000119],[-112.234734,49.000000000000114],[-112.33500699999996,49.000000000000114],[-112.43499799999995,49.000000000000114],[-112.53500399999996,49.000000000000114],[-112.60166900000002,49.000000000000114],[-112.93472300000002,49.000000000000114],[-113.03443900000002,49.000000000000114],[-113.23416099999997,48.999435000000119],[-113.36833200000001,48.999435000000119],[-113.567497,48.999435000000119],[-114.03443899999991,48.999435000000119],[-114.05985999999996,49.000603000000126],[-114.33500700000002,48.999435000000119],[-114.46749899999992,48.999435000000119],[-114.53472899999991,49.000000000000114],[-114.63390399999997,49.000000000000114],[-114.90110800000002,48.999435000000119],[-115.03415699999999,48.999435000000119],[-115.16750299999995,48.999435000000119],[-115.36805700000002,49.000000000000114],[-115.46806300000003,49.000000000000114],[-115.56723,49.000000000000114],[-115.60138699999987,48.999435000000119],[-115.734444,48.999435000000119],[-116.04833999999994,48.999718000000087],[-117.00140399999998,48.999718000000087],[-117.03662099999997,49.003128000000117],[-117.06722999999994,48.999718000000087],[-117.20084399999996,48.999435000000119],[-117.234734,49.000000000000114],[-117.30055199999993,49.000000000000114],[-117.567497,49.000000000000114],[-117.83444199999991,49.000000000000114],[-117.86749299999997,48.999435000000119],[-118.00083899999998,48.999435000000119],[-118.13417099999998,48.999435000000119],[-118.36805699999996,48.999435000000119],[-118.76777600000003,48.999435000000119],[-118.96749899999992,48.999435000000119],[-119.13417099999987,48.999435000000119],[-119.26722699999999,48.999435000000119],[-119.46777299999985,48.999435000000119],[-119.86749299999991,48.999435000000119],[-119.93415800000002,48.999435000000119],[-120.03415699999999,48.999435000000119],[-120.53472899999997,48.999435000000119],[-121.08497599999993,48.999718000000087],[-122.10056299999997,49.000000000000114],[-122.33389299999993,49.000000000000114],[-122.43360899999993,49.000000000000114],[-122.56667299999992,49.000000000000114],[-122.69999699999994,49.000000000000114],[-122.76030000000003,48.999435000000119],[-122.81360599999994,49.005272000000048],[-122.83112299999999,49.008606000000043],[-122.86250299999989,49.022217000000012],[-122.87777699999998,49.032211000000018],[-122.87970699999994,49.034438999999963],[-122.88110399999999,49.038605000000075],[-122.87748699999986,49.049438000000066],[-122.87609900000001,49.051383999999928],[-122.87249799999989,49.054436000000067],[-122.86416600000001,49.061661000000129],[-122.85888699999992,49.067497000000003],[-122.85804699999994,49.072769000000108],[-122.859444,49.077217000000076],[-122.86638599999998,49.081107999999972],[-122.87444299999999,49.083602999999982],[-122.89998600000001,49.087211999999965],[-122.91887700000001,49.087211999999965],[-122.94167299999992,49.082496999999933],[-123.02194199999997,49.051658999999972],[-123.03916900000002,49.042496000000142],[-123.04666099999997,49.033332999999971],[-123.048607,49.027214000000129],[-123.04833999999994,49.022491000000116],[-123.04778299999998,49.018326000000116],[-123.03916900000002,49.005272000000048],[-123.03431699999999,48.999435000000119],[-123.09374999999994,48.999435000000119],[-123.11332699999997,49.036658999999986],[-123.13890099999998,49.107216000000108],[-123.14835399999998,49.10833000000008],[-123.20500199999998,49.123603999999943],[-123.20973200000003,49.127212999999983],[-123.247772,49.265273999999977],[-123.24889399999995,49.273605000000032],[-123.24749800000001,49.275551000000121],[-123.09449799999993,49.283938999999975],[-123.00933800000001,49.281944000000067],[-122.94332900000001,49.284164000000089],[-122.92360699999995,49.28833000000003],[-122.91251399999999,49.29332700000009],[-122.87917299999998,49.339157000000114],[-122.87499999999994,49.351387000000045],[-122.85388199999994,49.429993000000138],[-122.85278299999999,49.436104000000057],[-122.85333300000002,49.438880999999924],[-122.86054999999993,49.447487000000024],[-122.87082700000002,49.457214000000022],[-122.87638899999996,49.455551000000071],[-122.87832600000002,49.449432000000058],[-122.876938,49.429993000000138],[-122.87721299999993,49.414992999999981],[-122.88110399999999,49.40277100000003],[-122.88583399999993,49.391936999999984],[-122.90139799999992,49.360550000000046],[-122.91555800000003,49.342216000000064],[-122.93138099999999,49.328049000000135],[-123.00538599999999,49.319549999999992],[-123.03671999999989,49.313217000000009],[-123.04521899999992,49.312550000000044],[-123.06339299999996,49.313217000000009],[-123.08023100000003,49.315547999999978],[-123.23638900000003,49.338882000000069],[-123.25418099999996,49.384720000000016],[-123.25666799999993,49.512772000000041],[-123.25334199999992,49.523048000000131],[-123.24722299999996,49.534995999999978],[-123.20162199999999,49.615715000000137],[-123.1558379999999,49.676102000000014],[-123.15416700000003,49.67943600000001],[-123.15222199999994,49.685547000000099],[-123.15361000000001,49.690269000000001],[-123.15972899999997,49.699158000000068],[-123.16471899999993,49.702217000000019],[-123.16777000000002,49.702217000000019],[-123.17027300000001,49.701103000000046],[-123.24194299999999,49.660544999999956],[-123.24804699999993,49.648605000000089],[-123.24804699999993,49.639717000000076],[-123.26677699999999,49.617378000000031],[-123.26594499999999,49.610382000000129],[-123.265106,49.607880000000023],[-123.26494600000001,49.603713999999968],[-123.26576999999997,49.598381000000131],[-123.26812000000001,49.595551000000114],[-123.27095799999995,49.593215999999984],[-123.27977799999991,49.590050000000019],[-123.34333800000002,49.561378000000047],[-123.38110399999999,49.556655999999975],[-123.39444699999996,49.551933000000133],[-123.43028299999997,49.538329999999974],[-123.48306300000002,49.516663000000108],[-123.49249299999997,49.509720000000129],[-123.495003,49.506943000000035],[-123.49610899999993,49.500275000000045],[-123.49416399999996,49.468596999999988],[-123.491669,49.463608000000022],[-123.48777799999993,49.46054799999996],[-123.47778299999993,49.455268999999987],[-123.47416699999997,49.450828999999999],[-123.47332799999992,49.441101000000117],[-123.47609699999998,49.421936000000017],[-123.47666899999996,49.419159000000093],[-123.48194899999993,49.409988000000112],[-123.48665599999993,49.406097000000045],[-123.506958,49.389435000000049],[-123.512787,49.386383000000137],[-123.51944699999996,49.383881000000088],[-123.52694700000001,49.382210000000043],[-123.53555299999994,49.381378000000097],[-123.54499800000002,49.383331000000055],[-123.60109699999987,49.397490999999945],[-123.60610999999994,49.399994000000106],[-123.67555199999998,49.425269999999955],[-123.77500900000001,49.458327999999995],[-123.85500299999995,49.468879999999956],[-123.86165599999993,49.46665999999999],[-123.88082899999995,49.466385000000116],[-123.88890100000003,49.468048000000067],[-123.89611799999994,49.470543000000077],[-123.95973200000003,49.510551000000135],[-123.96362299999993,49.513329000000113],[-123.98860200000001,49.541663999999969],[-124.06806899999992,49.633881000000031],[-124.07055700000001,49.638046000000031],[-124.07112099999995,49.644440000000088],[-124.07028199999991,49.649719000000061],[-124.05915800000002,49.671104000000014],[-124.03250100000002,49.713882000000126],[-124.02861000000001,49.71915400000006],[-124.021118,49.726379000000065],[-124.00527999999997,49.735825000000034],[-123.99833699999999,49.738884000000041],[-123.987213,49.743050000000096],[-123.97528099999994,49.745270000000119],[-123.95694700000001,49.746101000000124],[-123.94748700000002,49.744995000000131],[-123.94055199999997,49.742493000000024],[-123.93443299999996,49.739432999999963],[-123.92971799999992,49.735825000000034],[-123.876938,49.683327000000077],[-123.83306900000002,49.627486999999974],[-123.82917799999996,49.616936000000067],[-123.82444800000002,49.595825000000048],[-123.82277699999997,49.585548000000074],[-123.82333399999999,49.581383000000073],[-123.82224300000001,49.573051000000078],[-123.79972800000002,49.519440000000031],[-123.79444899999993,49.510277000000031],[-123.78971899999999,49.506660000000068],[-123.78250099999997,49.504166000000112],[-123.77639799999992,49.503882999999973],[-123.76972999999998,49.504715000000033],[-123.76640299999991,49.506660000000068],[-123.76390100000003,49.509438000000046],[-123.76139799999999,49.513329000000113],[-123.75389100000001,49.537773000000072],[-123.76862299999993,49.561935000000119],[-123.77139299999999,49.572220000000073],[-123.77223200000003,49.581940000000145],[-123.77027900000002,49.588043000000084],[-123.74017300000003,49.602599999999995],[-123.73733500000003,49.605270000000075],[-123.73517599999991,49.606937000000016],[-123.69599899999997,49.623604000000057],[-123.68683599999997,49.625603000000069],[-123.67283599999996,49.625271000000112],[-123.63890099999998,49.634995000000004],[-123.61501299999992,49.639160000000004],[-123.56331599999999,49.667213000000118],[-123.54695100000004,49.677215999999987],[-123.53751399999993,49.684990000000028],[-123.53362300000003,49.689712999999983],[-123.53167699999995,49.695541000000105],[-123.53222699999998,49.700546000000145],[-123.53388999999993,49.701934999999992],[-123.54167199999989,49.701103000000046],[-123.54998799999998,49.693877999999984],[-123.56054699999993,49.686935000000005],[-123.57195299999995,49.680824000000086],[-123.58556399999992,49.676102000000014],[-123.67578100000003,49.653046000000018],[-123.69061299999993,49.651051000000109],[-123.73978399999999,49.645882000000029],[-123.75010700000001,49.64521400000001],[-123.79666099999997,49.638328999999999],[-123.80387899999999,49.640831000000048],[-123.8125,49.647491000000116],[-123.93499800000001,49.768326000000002],[-123.93749999999989,49.77276599999999],[-123.93582200000003,49.778046000000074],[-123.93055699999996,49.785271000000137],[-123.91999800000002,49.792495999999971],[-123.88890100000003,49.819717000000026],[-123.88500999999997,49.823608000000092],[-123.88249199999996,49.82749200000012],[-123.87970699999994,49.832771000000093],[-123.87638900000002,49.842215999999951],[-123.87332200000003,49.864158999999916],[-123.87249799999995,49.87110100000001],[-123.872772,49.877212999999983],[-123.88500999999997,49.914993000000095],[-123.889183,49.922767999999962],[-123.89417300000002,49.92721599999993],[-123.90139799999992,49.928879000000052],[-123.91082799999998,49.930275000000108],[-123.920547,49.928604000000064],[-123.92999299999997,49.929718000000037],[-123.93720999999994,49.932213000000047],[-123.94193999999999,49.936104000000114],[-123.94860799999998,49.943877999999927],[-123.95472699999999,49.953049000000078],[-123.95889299999999,49.962212000000079],[-123.929779,49.985321000000056],[-123.929283,49.989493999999979],[-123.92544599999997,49.994156000000089],[-123.92044099999998,49.997325999999987],[-123.88160700000003,50.01499600000011],[-123.87343599999986,50.018326000000116],[-123.860771,50.021660000000111],[-123.85294299999998,50.022995000000037],[-123.84310199999999,50.023659000000123],[-123.80832699999996,50.040276000000119],[-123.79611199999994,50.04444100000012],[-123.75334199999998,50.07638500000013],[-123.74861099999998,50.080276000000026],[-123.74445300000002,50.086936999999921],[-123.74944299999999,50.09665700000005],[-123.82140399999997,50.152213999999958],[-123.83056599999998,50.156936999999971],[-123.846947,50.163321999999994],[-123.97778299999993,50.213882000000012],[-123.98500100000001,50.216103000000089],[-123.99054699999999,50.215828000000101],[-123.99109599999986,50.21166199999999],[-123.98832699999997,50.207496999999989],[-123.96056399999998,50.180550000000096],[-123.94695300000001,50.169441000000006],[-123.93720999999994,50.163321999999994],[-123.92388899999992,50.158600000000092],[-123.90583800000002,50.15638000000007],[-123.88806199999988,50.152489000000003],[-123.882767,50.150826000000052],[-123.87165800000002,50.145546000000024],[-123.80915799999997,50.099998000000085],[-123.8125,50.090546000000131],[-123.81639099999995,50.086105000000032],[-123.85716200000002,50.066883000000132],[-123.86933099999993,50.058048000000099],[-123.87499999999994,50.054214000000115],[-123.87899799999997,50.052380000000085],[-123.916,50.039883000000088],[-123.95465899999988,50.029217000000074],[-123.99526999999989,50.011664999999994],[-123.99916099999996,50.00638600000002],[-124,50.000275000000101],[-123.99916099999996,49.990547000000106],[-123.99526999999989,49.961662000000047],[-123.99249299999997,49.942764000000125],[-123.99109599999986,49.937209999999993],[-123.98860200000001,49.931664000000126],[-123.97972099999998,49.916663999999969],[-123.96721600000001,49.906380000000127],[-123.95140100000003,49.895828000000108],[-123.91972399999992,49.877769000000001],[-123.91471899999993,49.873878000000104],[-123.91111799999999,49.869713000000104],[-123.922234,49.834435000000099],[-123.92639199999996,49.825828999999999],[-123.97277799999989,49.80471],[-123.97833299999996,49.803047000000106],[-123.98581699999994,49.802772999999945],[-123.99194299999994,49.804436000000067],[-124.00418100000002,49.810546999999985],[-124.01012400000002,49.834602000000075],[-124.00862100000001,49.841938000000084],[-124.00728600000002,49.856769999999983],[-124.01806599999998,49.909156999999993],[-124.02166699999987,49.91415400000011],[-124.029449,49.920547000000056],[-124.037781,49.922493000000145],[-124.04222099999998,49.921379000000002],[-124.04472399999997,49.917496000000028],[-124.068893,49.878876000000105],[-124.07195299999995,49.873322000000087],[-124.07028199999991,49.869156000000032],[-124.06261399999988,49.846328999999912],[-124.05877700000002,49.841991000000007],[-124.05860899999999,49.838325999999995],[-124.06028000000003,49.835158999999976],[-124.08444199999991,49.799164000000133],[-124.09028599999999,49.795830000000137],[-124.14555399999995,49.779716000000008],[-124.17694099999989,49.773604999999975],[-124.18582199999997,49.77276599999999],[-124.2702789999999,49.768051000000128],[-124.40416700000003,49.763329000000056],[-124.41361999999998,49.763610999999969],[-124.42916899999994,49.766388000000006],[-124.43639400000001,49.768883000000073],[-124.51194800000002,49.796104000000071],[-124.52166699999992,49.804161000000079],[-124.52443699999998,49.808327000000133],[-124.52583300000003,49.813880999999981],[-124.52583300000003,49.831665000000044],[-124.52749599999987,49.837212000000022],[-124.53278399999999,49.844437000000084],[-124.57195299999995,49.874435000000005],[-124.59137699999997,49.883049000000085],[-124.63221699999997,49.899436999999921],[-124.702789,49.934989999999971],[-124.74194299999999,49.958328000000051],[-124.77306399999992,49.985825000000034],[-124.80332900000002,50.020271000000093],[-124.82556199999999,50.051384000000098],[-124.82972699999999,50.061935000000005],[-124.828056,50.066666000000112],[-124.82140400000003,50.069160000000068],[-124.81304899999992,50.067496999999946],[-124.80695300000002,50.06360600000005],[-124.76722699999988,50.036385000000053],[-124.70333900000003,49.995543999999995],[-124.66805999999991,50.07027400000004],[-124.61694299999999,50.179161000000079],[-124.60193599999997,50.234993000000031],[-124.60138699999993,50.238884000000098],[-124.60417200000001,50.243881000000044],[-124.63110399999999,50.279716000000121],[-124.63890100000003,50.286942000000067],[-124.665009,50.303879000000052],[-124.708618,50.318329000000006],[-124.71362299999987,50.321937999999989],[-124.71501199999994,50.327492000000007],[-124.65778399999994,50.386108000000092],[-124.65194699999989,50.389160000000061],[-124.62609899999995,50.398330999999985],[-124.60193599999997,50.40277100000003],[-124.58055100000001,50.399990000000116],[-124.57555400000001,50.39899400000013],[-124.57122800000002,50.397495000000106],[-124.54998799999993,50.393883000000017],[-124.53362300000003,50.395827999999995],[-124.51999699999999,50.399994000000106],[-124.43415800000002,50.431664000000012],[-124.42054699999994,50.43721000000005],[-124.39862099999999,50.450545999999974],[-124.38305700000001,50.462212000000136],[-124.36138900000003,50.479713000000118],[-124.35193600000002,50.487495000000081],[-124.34805299999999,50.492218000000037],[-124.34528399999988,50.497489999999971],[-124.34777800000001,50.50249500000001],[-124.35527000000002,50.504997000000117],[-124.36389200000002,50.503882999999917],[-124.378601,50.499161000000015],[-124.38445299999995,50.49610100000001],[-124.39388999999989,50.488884000000041],[-124.39778099999995,50.484161000000086],[-124.40055799999993,50.478874000000133],[-124.404449,50.4741590000001],[-124.40915699999999,50.470268000000033],[-124.42749000000003,50.462212000000136],[-124.51834099999991,50.432212999999933],[-124.58383199999997,50.414051000000029],[-124.58833300000003,50.41338300000001],[-124.59999800000003,50.413048000000003],[-124.71167000000003,50.375549000000092],[-124.73916599999995,50.351936000000137],[-124.80332900000002,50.317772000000105],[-124.81582600000002,50.312209999999993],[-124.83000199999992,50.30943300000007],[-124.85056299999991,50.309714999999983],[-124.93916299999995,50.325271999999984],[-125.06388900000002,50.317772000000105],[-125.07224299999996,50.319442999999978],[-125.07833900000003,50.322495000000117],[-125.08416699999998,50.329719999999952],[-125.08889799999997,50.346382000000119],[-125.08750900000001,50.357215999999994],[-125.05666399999996,50.476936000000023],[-125.05194099999989,50.480820000000051],[-125.04499799999996,50.48333000000008],[-125.02667199999996,50.483047000000113],[-125.01806599999998,50.484161000000086],[-124.97112299999998,50.498047000000042],[-124.96528599999999,50.50110600000005],[-124.88082900000001,50.560546999999985],[-124.85973399999989,50.585823000000062],[-124.858047,50.590546000000018],[-124.85444599999994,50.691376000000105],[-124.86888099999999,50.764998999999989],[-124.87805200000003,50.811377999999991],[-124.86749299999997,50.817771999999991],[-124.78943599999991,50.88110400000005],[-124.78694199999995,50.884438000000046],[-124.78751399999993,50.889160000000118],[-124.79998799999998,50.91304800000006],[-124.80277999999998,50.9180530000001],[-124.80583200000001,50.920830000000024],[-124.81916799999993,50.926384000000041],[-124.84999099999993,50.935265000000129],[-124.85417200000001,50.935547000000042],[-124.86138900000003,50.928879000000052],[-124.92443800000001,50.834717000000126],[-124.9449919999999,50.775268999999923],[-124.91221599999994,50.699431999999945],[-124.90139799999997,50.630271999999991],[-124.90194700000001,50.62471000000005],[-124.90361000000001,50.619987000000094],[-124.91111799999999,50.611382000000049],[-124.92887899999994,50.596382000000062],[-125.02694700000001,50.540833000000077],[-125.09944200000001,50.5],[-125.10417199999989,50.496941000000049],[-125.11277799999999,50.487495000000081],[-125.11694299999999,50.478043000000127],[-125.118607,50.471930999999984],[-125.11193800000001,50.452492000000063],[-125.11138899999997,50.447769000000108],[-125.11221299999994,50.44221500000009],[-125.11472299999997,50.436935000000005],[-125.11945300000002,50.432770000000005],[-125.12526700000001,50.429718000000094],[-125.17027299999995,50.412491000000102],[-125.17777999999998,50.41137700000013],[-125.1875,50.412491000000102],[-125.195831,50.414711000000068],[-125.20221699999991,50.417213000000004],[-125.20722999999998,50.420830000000137],[-125.24610899999993,50.462212000000136],[-125.33612099999993,50.479713000000118],[-125.40361000000001,50.473602000000028],[-125.42166099999992,50.465271000000143],[-125.44275699999997,50.459435000000042],[-125.46028099999995,50.457214000000135],[-125.48832700000003,50.45638300000013],[-125.54444899999993,50.490379000000132],[-125.54811099999995,50.492050000000006],[-125.54928599999994,50.494549000000006],[-125.54961399999996,50.497547000000054],[-125.54911799999996,50.501545000000135],[-125.53222700000003,50.62721300000004],[-125.51944700000001,50.647217000000126],[-125.51194800000002,50.657211000000132],[-125.50723299999999,50.661102000000028],[-125.50055699999996,50.663048000000117],[-125.48194899999999,50.664993000000095],[-125.46749899999998,50.668602000000135],[-125.45612299999999,50.674995000000081],[-125.45140100000003,50.678879000000109],[-125.42804699999999,50.705551000000014],[-125.42555199999998,50.710823000000119],[-125.43277,50.713882000000069],[-125.44360399999999,50.714157000000114],[-125.45889299999993,50.713608000000136],[-125.46639999999996,50.713051000000064],[-125.47332799999998,50.709159999999997],[-125.53778099999994,50.669991000000095],[-125.54723399999995,50.661933999999974],[-125.55832699999996,50.648048000000131],[-125.56388900000002,50.637214999999969],[-125.56806899999998,50.62721300000004],[-125.57167099999998,50.611382000000049],[-125.57224300000001,50.605270000000075],[-125.5849,50.571323000000064],[-125.58206899999999,50.56582300000008],[-125.58039099999996,50.563656000000037],[-125.5800549999999,50.559994000000074],[-125.58623499999999,50.536659000000043],[-125.610229,50.489326000000062],[-125.61238900000001,50.486492000000055],[-125.63722200000001,50.445540999999935],[-125.65167200000002,50.441375999999934],[-125.69249000000002,50.429993000000138],[-125.700287,50.428047000000049],[-125.70584099999996,50.427773000000116],[-125.71611000000001,50.432212999999933],[-125.84665699999994,50.502777000000094],[-125.86472300000003,50.495269999999948],[-125.93028299999992,50.473602000000028],[-125.95221700000002,50.468880000000127],[-125.968613,50.468880000000127],[-126.06331599999999,50.470825000000104],[-126.15915699999999,50.484992999999974],[-126.19332900000001,50.490273000000059],[-126.26777599999997,50.504997000000117],[-126.27500899999995,50.50750000000005],[-126.27916700000003,50.51166500000005],[-126.2808379999999,50.515830999999991],[-126.279449,50.520546000000024],[-126.27694700000001,50.524712000000079],[-126.22670699999998,50.536285000000021],[-126.18665299999998,50.548405000000059],[-126.18559999999997,50.566322000000014],[-126.23805199999998,50.591377000000023],[-126.25167799999991,50.609718000000044],[-126.26418299999995,50.615547000000049],[-126.27500899999995,50.627486999999974],[-126.27471899999995,50.631660000000068],[-126.266953,50.634720000000129],[-126.02006499999999,50.66188000000011],[-126.014725,50.662048000000141],[-125.90856200000002,50.664046999999982],[-125.73832699999997,50.682213000000104],[-125.69387799999993,50.704712000000029],[-125.62249799999995,50.750000000000114],[-125.61776700000001,50.754166000000055],[-125.54305999999991,50.863884000000098],[-125.53778099999994,50.87193300000007],[-125.51000999999997,50.921661000000029],[-125.50723299999999,50.926941000000113],[-125.50556899999998,50.93332700000002],[-125.50666799999993,50.945541000000048],[-125.50834699999996,50.951102999999989],[-125.55166600000001,51.042221000000097],[-125.56555200000003,51.056380999999988],[-125.58167999999995,51.072220000000129],[-125.59306299999997,51.07888000000014],[-125.610817,51.087769000000037],[-125.63390400000003,51.096939000000077],[-125.63722200000001,51.096382000000006],[-125.63890100000003,51.090271000000087],[-125.639183,51.077217000000019],[-125.63806199999999,51.06610100000006],[-125.58332799999999,50.974709000000018],[-125.61028299999987,50.89888000000002],[-125.69110099999995,50.771378000000084],[-125.73110999999989,50.735550000000046],[-125.81527699999987,50.707214000000079],[-125.96383700000001,50.688660000000084],[-126.12516799999997,50.678989000000115],[-126.13100400000002,50.678658000000098],[-126.133667,50.678825000000074],[-126.13799999999998,50.681827999999996],[-126.13917500000002,50.683495000000107],[-126.22222899999991,50.69110100000006],[-126.21362299999993,50.70388000000014],[-126.20889299999999,50.70777099999998],[-126.20333899999997,50.711104999999975],[-126.11165599999993,50.753883000000087],[-126.19888299999997,50.85582700000009],[-126.26944700000001,50.858047000000113],[-126.37609899999995,50.855270000000019],[-126.39750699999996,50.848602000000028],[-126.40306099999998,50.845268000000033],[-126.42166099999997,50.829437000000098],[-126.42748999999992,50.826103000000103],[-126.43415799999997,50.823608000000092],[-126.44304699999998,50.821663000000058],[-126.49333199999995,50.81638300000003],[-126.55277999999998,50.834717000000126],[-126.55695300000002,50.838882000000126],[-126.55972299999996,50.843880000000127],[-126.557503,50.876656000000082],[-126.55359599999991,50.881377999999984],[-126.53611799999999,50.898048000000074],[-126.531387,50.901932000000102],[-126.50110599999999,50.916099999999972],[-126.49445300000002,50.9180530000001],[-126.48332199999999,50.919158999999979],[-126.47471599999994,50.917496000000028],[-126.468613,50.914436000000137],[-126.46444700000001,50.910271000000137],[-126.45805399999995,50.907211000000075],[-126.36833200000001,50.901932000000102],[-126.35833700000001,50.901382000000069],[-126.24638400000003,50.898604999999975],[-126.22582999999997,50.898604999999975],[-126.21028100000001,50.902771000000087],[-126.20445299999994,50.90554800000001],[-126.18388399999992,50.918602000000078],[-126.17555199999993,50.92582700000014],[-126.17027299999995,50.936653000000035],[-126.17166099999997,50.946381000000088],[-126.17471299999988,50.950546000000088],[-126.17777999999998,50.951385000000016],[-126.181107,50.950829000000056],[-126.18888899999996,50.948875000000044],[-126.20028699999989,50.942490000000021],[-126.20500199999992,50.93832400000008],[-126.21556099999998,50.931106999999997],[-126.228882,50.926102000000128],[-126.24553700000001,50.923325000000034],[-126.30860899999999,50.925270000000012],[-126.412216,50.936104000000114],[-126.42639200000002,50.938599000000124],[-126.5625,50.907767999999976],[-126.56833599999993,50.903877000000136],[-126.58084099999996,50.898604999999975],[-126.66139199999998,50.868049999999982],[-126.67777999999998,50.866385999999977],[-126.72165699999994,50.876099000000011],[-126.80638099999999,50.909156999999993],[-126.81916799999999,50.915824999999984],[-126.90261799999996,50.905098000000066],[-126.90595199999996,50.90410200000008],[-126.91711399999997,50.903439000000105],[-127.01471700000002,50.903877000000136],[-127.04804999999993,50.910271000000137],[-127.08556399999998,50.921378999999945],[-127.112213,50.931106999999997],[-127.1641689999999,50.932495000000074],[-127.17639200000002,50.929161000000079],[-127.17999299999991,50.92582700000014],[-127.17804699999994,50.920273000000122],[-127.17166099999992,50.917496000000028],[-127.06276699999995,50.885269000000051],[-127.01883700000002,50.868267000000003],[-127.00765999999993,50.867939000000035],[-126.976158,50.870438000000036],[-126.97166400000003,50.869938000000047],[-126.96916999999991,50.869105999999931],[-126.96599600000002,50.86693600000001],[-126.96681999999998,50.864101000000062],[-127.01471700000002,50.819443000000092],[-127.02250700000002,50.817497000000003],[-127.03333299999997,50.817771999999991],[-127.047234,50.821663000000058],[-127.05776999999995,50.828048999999965],[-127.06166100000002,50.832213999999965],[-127.06696299999993,50.835823000000005],[-127.07333399999993,50.838882000000126],[-127.13276699999994,50.862212999999997],[-127.243607,50.896659999999997],[-127.33444199999997,50.906936999999971],[-127.39862099999993,50.926384000000041],[-127.43055699999991,50.940544000000102],[-127.53527800000001,51.000549000000035],[-127.53832999999997,51.005554000000075],[-127.53806299999997,51.008330999999998],[-127.502792,51.097487999999998],[-127.495003,51.0991590000001],[-127.47749299999992,51.097487999999998],[-127.43582199999997,51.082771000000037],[-127.40888999999987,51.071938000000046],[-127.39306599999992,51.064712999999983],[-127.38137799999998,51.059714999999983],[-127.3683319999999,51.055267000000015],[-127.354446,51.051659000000086],[-127.33056599999998,51.048331999999959],[-127.24249299999997,51.041382000000112],[-127.23610699999995,51.041107000000125],[-127.21861299999995,51.040832999999964],[-127.09612299999998,51.043883999999991],[-126.99873400000001,51.058883999999978],[-126.97956099999999,51.062881000000118],[-126.94840199999999,51.067050999999992],[-126.87339800000001,51.072883999999988],[-126.86672999999996,51.072716000000128],[-126.82656899999995,51.067050999999992],[-126.81689499999987,51.064716000000033],[-126.69167299999998,51.110550000000046],[-126.68694299999999,51.114716000000101],[-126.65278599999999,51.149994000000106],[-126.65139799999997,51.153320000000008],[-126.65110799999997,51.157494000000042],[-126.654449,51.185822000000144],[-126.65527299999997,51.187766999999951],[-126.65834000000001,51.192764000000068],[-126.66251399999993,51.194992000000013],[-126.67582700000003,51.193878000000041],[-126.67916899999994,51.192764000000068],[-126.68167099999994,51.188599000000067],[-126.68250299999994,51.176383999999985],[-126.68167099999994,51.172768000000076],[-126.68331899999998,51.165268000000026],[-126.68831599999999,51.157211000000075],[-126.69666299999994,51.14777400000014],[-126.71749899999998,51.132767000000115],[-126.84055299999989,51.094936000000075],[-126.84654999999992,51.093105000000094],[-126.85589599999997,51.092102000000068],[-126.927887,51.084938000000079],[-127.14111299999996,51.060272000000055],[-127.19249000000002,51.057213000000104],[-127.20667300000002,51.056380999999988],[-127.23832700000003,51.056938000000059],[-127.32668299999995,51.059714999999983],[-127.34084299999989,51.060822000000087],[-127.35916099999992,51.063323999999966],[-127.38861099999991,51.068054000000018],[-127.49273700000003,51.114883000000077],[-127.50985000000003,51.117359000000135],[-127.53376000000003,51.108082000000138],[-127.556107,51.099998000000028],[-127.63194299999998,51.091934000000037],[-127.64943699999998,51.092216000000064],[-127.66665599999988,51.095268000000033],[-127.67944299999988,51.101105000000132],[-127.78999299999992,51.165543000000014],[-127.79611199999994,51.197212000000036],[-127.79583700000001,51.202217000000076],[-127.787216,51.226097000000095],[-127.78472899999991,51.231376999999952],[-127.76194800000002,51.249435000000005],[-127.59973100000002,51.289435999999966],[-127.59306300000003,51.290833000000134],[-127.56555199999997,51.293052999999929],[-127.53999299999998,51.294441000000063],[-127.45140099999998,51.291939000000127],[-127.4036099999999,51.282494000000099],[-127.37554899999998,51.274437000000091],[-127.36472299999997,51.274162000000103],[-127.23110999999994,51.286110000000122],[-127.22222899999991,51.287216000000001],[-127.21444699999995,51.290549999999996],[-127.20388800000001,51.298607000000118],[-127.14334100000002,51.318329000000006],[-127.13305699999989,51.325554000000068],[-127.12693799999994,51.334991000000002],[-127.11776700000001,51.357498000000078],[-127.11110699999989,51.37721300000004],[-127.10973399999995,51.383330999999998],[-127.11028299999992,51.389717000000076],[-127.11582899999996,51.391662999999994],[-127.12249800000001,51.389160000000004],[-127.13054699999998,51.381934999999942],[-127.13417099999998,51.37721300000004],[-127.14417300000002,51.358046999999999],[-127.18250299999994,51.326942000000145],[-127.18804899999998,51.323607999999979],[-127.20834400000001,51.315826000000015],[-127.24749800000001,51.306380999999931],[-127.28056300000003,51.301102000000128],[-127.29055800000003,51.300545000000056],[-127.36749299999991,51.298881999999935],[-127.39584400000001,51.30221599999993],[-127.45221699999996,51.315826000000015],[-127.462784,51.341660000000047],[-127.55444299999999,51.332497000000046],[-127.57000699999998,51.328605999999979],[-127.75499699999989,51.319442999999978],[-127.76390100000003,51.319442999999978],[-127.77250699999996,51.3211060000001],[-127.77887699999997,51.324715000000083],[-127.78415699999994,51.333054000000118],[-127.78778099999994,51.34887700000013],[-127.78307299999994,51.356941000000006],[-127.77834300000001,51.361107000000061],[-127.74109599999997,51.380272000000048],[-127.72749299999998,51.385551000000021],[-127.69332899999995,51.390831000000048],[-127.68443300000001,51.390831000000048],[-127.65055799999999,51.408043000000077],[-127.55166600000001,51.468323000000055],[-127.51583900000003,51.519157000000007],[-127.51306199999993,51.529991000000052],[-127.512787,51.535552999999993],[-127.515289,51.5472180000001],[-127.521118,51.563880999999981],[-127.51640299999997,51.587769000000094],[-127.51500699999985,51.593880000000013],[-127.50890399999997,51.604712999999947],[-127.50055700000001,51.61360900000011],[-127.48805199999998,51.619438000000116],[-127.44444299999998,51.629990000000078],[-127.37609900000001,51.644997000000103],[-127.32584400000002,51.651382000000126],[-127.23332199999999,51.662490999999989],[-127.09584000000001,51.668052999999986],[-126.95344499999999,51.658325000000104],[-126.94693799999993,51.657657999999969],[-126.93778199999997,51.655327000000057],[-126.88377400000002,51.649494000000061],[-126.708054,51.641937000000041],[-126.66332999999986,51.64888000000002],[-126.65527299999997,51.651382000000126],[-126.620003,51.679993000000024],[-126.60694899999993,51.706940000000145],[-126.60527000000002,51.713051000000064],[-126.60582699999992,51.719436999999971],[-126.60777300000001,51.724990999999932],[-126.63555899999989,51.769714000000022],[-126.63944999999995,51.773880000000133],[-126.66027800000001,51.792221000000097],[-126.66528299999999,51.772491000000116],[-126.66665599999999,51.766388000000006],[-126.66251399999993,51.747215000000097],[-126.65387699999991,51.732491000000039],[-126.64362299999999,51.719154000000003],[-126.63999899999999,51.709991000000002],[-126.64138800000001,51.705269000000101],[-126.64388999999994,51.701102999999989],[-126.64750700000002,51.697768999999994],[-126.69304699999998,51.664711000000011],[-126.703056,51.664436000000023],[-126.91521499999999,51.682438000000047],[-126.96421799999996,51.686604000000102],[-126.97788199999997,51.690605000000062],[-127.05387899999988,51.697768999999994],[-127.07501199999996,51.697768999999994],[-127.14055599999995,51.694435000000055],[-127.27416999999997,51.68332700000002],[-127.3999859999999,51.669716000000051],[-127.41583300000002,51.665824999999984],[-127.42582699999997,51.666663999999969],[-127.43222000000003,51.66832700000009],[-127.43554699999987,51.671103999999957],[-127.43971299999993,51.674712999999997],[-127.44167299999992,51.680275000000108],[-127.42748999999998,51.731934000000138],[-127.364441,51.768326000000116],[-127.36193800000001,51.771660000000111],[-127.359444,51.777214000000072],[-127.33917200000002,51.839156999999943],[-127.33721899999989,51.851387000000045],[-127.33999599999999,51.861106999999947],[-127.34555099999994,51.864159000000086],[-127.35109699999992,51.863609000000054],[-127.35694899999999,51.860275000000058],[-127.44833399999987,51.777214000000072],[-127.57195299999989,51.706940000000145],[-127.58556399999986,51.677773000000059],[-127.54638699999992,51.627486999999917],[-127.55860899999999,51.543884000000105],[-127.56111099999998,51.538605000000132],[-127.57417299999997,51.518883000000073],[-127.58139,51.509437999999989],[-127.63583399999999,51.460548000000131],[-127.640289,51.458602999999925],[-127.65915699999999,51.457497000000103],[-127.70639,51.45638300000013],[-127.71639999999996,51.457214000000135],[-127.72389199999992,51.459435000000042],[-127.73029300000002,51.463051000000121],[-127.75473,51.479988000000105],[-127.75917099999992,51.484161000000029],[-127.76083399999993,51.48971599999993],[-127.75974300000001,51.494438000000059],[-127.74416400000001,51.498329000000126],[-127.712784,51.504439999999988],[-127.787216,51.560271999999941],[-127.87416099999996,51.663322000000051],[-127.87805200000003,51.673881999999992],[-127.88999899999999,51.798332000000016],[-127.88944999999995,51.807770000000005],[-127.886124,51.852218999999991],[-127.88474299999996,51.858604000000014],[-127.86971999999997,51.89527099999998],[-127.86609599999997,51.899993999999992],[-127.86165599999987,51.904160000000047],[-127.83306899999997,51.919991000000039],[-127.82055699999995,51.926659000000029],[-127.79638699999998,51.938599000000124],[-127.78971899999999,51.941101000000003],[-127.76611300000002,51.946937999999932],[-127.73805199999993,51.949715000000026],[-127.66443600000002,51.953880000000026],[-127.65527299999997,52.040276000000063],[-127.65387699999991,52.046386999999982],[-127.65139799999997,52.051659000000086],[-127.64527900000002,52.061934999999949],[-127.62943999999999,52.088326000000052],[-127.62581599999999,52.093047999999953],[-127.61749299999997,52.101936000000137],[-127.58029199999993,52.129158000000075],[-127.52555799999993,52.147217000000012],[-127.49944299999993,52.151657000000057],[-127.48055999999997,52.151099999999929],[-127.47721899999999,52.150543000000027],[-127.46528599999988,52.143883000000017],[-127.46140300000002,52.133049000000142],[-127.46250899999995,52.112495000000024],[-127.46611000000001,52.107773000000122],[-127.47556299999997,52.099716000000114],[-127.48249799999996,52.09693900000002],[-127.49833699999999,52.093322999999998],[-127.50834700000001,52.093322999999998],[-127.51834100000002,52.094436999999971],[-127.52722199999994,52.095825000000048],[-127.53500400000001,52.098877000000016],[-127.55277999999998,52.101105000000132],[-127.56276700000001,52.100829999999917],[-127.57167099999998,52.098877000000016],[-127.58444199999991,52.093605000000082],[-127.58889799999992,52.089714000000015],[-127.61416600000001,52.035828000000095],[-127.61332699999997,52.032494000000099],[-127.59416199999998,52.035553000000107],[-127.58612099999993,52.038048000000117],[-127.42083700000001,52.120270000000119],[-127.43360899999999,52.131659999999954],[-127.45056199999999,52.169159000000093],[-127.45249899999988,52.173882000000049],[-127.45305599999995,52.179993000000138],[-127.44972199999995,52.182770000000062],[-127.37609900000001,52.216934000000037],[-127.35417199999995,52.224709000000132],[-127.33138999999994,52.230270000000019],[-127.30027799999993,52.228325000000041],[-127.29110700000001,52.229431000000034],[-127.28443900000002,52.231934000000024],[-127.24526999999995,52.248878000000104],[-127.23944099999994,52.252220000000023],[-127.19304699999998,52.290833000000077],[-127.18582200000003,52.300270000000012],[-127.17749000000003,52.309715000000097],[-127.17166099999992,52.31249200000002],[-127.16361999999987,52.314156000000025],[-127.04276999999996,52.309158000000025],[-127.01251200000002,52.306381000000101],[-127.00499699999995,52.303604000000007],[-126.99861099999993,52.298607000000118],[-126.96444700000001,52.271659999999997],[-126.94526699999994,52.25610400000005],[-126.93804899999986,52.246941000000049],[-126.93611099999998,52.241379000000109],[-126.93554699999999,52.235268000000019],[-126.82749899999999,52.128044000000102],[-126.75195300000001,52.078605999999979],[-126.71193700000003,52.044441000000063],[-126.69415300000003,52.028877000000136],[-126.691101,52.023880000000077],[-126.68388399999998,51.999717999999973],[-126.67804699999994,51.990547000000049],[-126.67388899999997,51.986382000000049],[-126.66944899999999,51.983604000000071],[-126.66832699999998,51.985549999999932],[-126.66776999999996,51.991104000000121],[-126.66583300000002,52.031380000000127],[-126.66665599999999,52.036384999999996],[-126.66972399999997,52.041939000000013],[-126.73805199999987,52.113052000000096],[-126.76363399999991,52.13249200000007],[-126.81722999999988,52.166100000000085],[-126.83112299999999,52.17193599999996],[-126.85555999999997,52.178047000000049],[-126.86305199999993,52.181107000000111],[-126.88027999999986,52.190544000000045],[-126.90055799999999,52.205268999999987],[-126.90666199999993,52.215271000000143],[-126.94082600000002,52.303879000000052],[-126.94027699999998,52.31082200000003],[-126.93611099999998,52.32249500000006],[-126.932503,52.327217000000132],[-126.92083700000001,52.333603000000039],[-126.87361099999998,52.350830000000087],[-126.82084700000001,52.363883999999928],[-126.81416299999995,52.365273000000116],[-126.78888699999999,52.369987000000094],[-126.77667199999996,52.370270000000062],[-126.76194800000002,52.370543999999995],[-126.73638900000003,52.366386000000034],[-126.73166700000002,52.367767000000072],[-126.73249800000002,52.373877999999991],[-126.73665599999998,52.378044000000045],[-126.75167799999991,52.388328999999999],[-126.76363399999991,52.393326000000059],[-126.79277000000002,52.395546000000081],[-126.91027799999995,52.373877999999991],[-126.92610200000001,52.370827000000133],[-126.94110099999995,52.366386000000034],[-126.948036,52.363883999999928],[-126.95973199999997,52.357215999999994],[-126.96972699999998,52.34165999999999],[-126.97444200000001,52.337768999999923],[-126.98137699999995,52.33526599999999],[-127.00279199999994,52.334991000000116],[-127.08249699999993,52.334991000000116],[-127.14111299999996,52.348045000000013],[-127.15778399999999,52.352492999999981],[-127.18639400000001,52.380820999999969],[-127.22805800000003,52.453049000000135],[-127.23610699999995,52.505554000000132],[-127.23665599999998,52.51166500000005],[-127.23416099999997,52.517211999999972],[-127.19695299999995,52.549995000000138],[-127.18639400000001,52.557770000000062],[-127.08112299999993,52.613051999999982],[-127.07417299999997,52.616385999999977],[-127.05915800000002,52.620827000000077],[-127.00446299999999,52.626937999999996],[-126.99638399999998,52.62860100000006],[-126.989441,52.631935000000055],[-126.97972099999998,52.639434999999935],[-126.97609699999998,52.64388300000013],[-126.924713,52.714714000000129],[-126.92223399999995,52.718880000000013],[-126.92166099999997,52.725822000000107],[-126.92250100000001,52.731102000000021],[-126.966949,52.828606000000036],[-126.97112300000003,52.832771000000037],[-126.975281,52.835548000000131],[-126.98332199999987,52.837769000000037],[-127.01777599999991,52.845543000000021],[-127.02139299999993,52.82777400000009],[-127.01834100000002,52.823608000000036],[-127.00778199999996,52.808883999999978],[-126.98082699999992,52.724434000000031],[-126.98111,52.717491000000052],[-126.98528299999992,52.707497000000046],[-127.04250300000001,52.64777399999997],[-127.04737899999992,52.643462999999997],[-127.05561799999998,52.641815000000065],[-127.13445300000001,52.60943600000013],[-127.24054699999988,52.557770000000062],[-127.25723299999999,52.545830000000137],[-127.28083799999996,52.509162999999944],[-127.28222700000003,52.503052000000082],[-127.28028899999993,52.497489999999914],[-127.27610800000002,52.49332400000003],[-127.26528899999988,52.485550000000046],[-127.25805699999995,52.477211000000011],[-127.25834699999996,52.47304500000007],[-127.26194800000002,52.467491000000109],[-127.26666299999988,52.464157000000114],[-127.33345800000001,52.433895000000007],[-127.40082599999994,52.424431000000141],[-127.46541599999995,52.395477000000085],[-127.48935699999987,52.362072000000126],[-127.61165599999998,52.294716000000051],[-127.61833200000001,52.291939000000127],[-127.72138999999993,52.274712000000079],[-127.73055999999997,52.273604999999975],[-127.739441,52.27388000000002],[-127.74610899999999,52.276657000000114],[-127.75029000000001,52.281661999999983],[-127.80471799999998,52.248878000000104],[-127.84277299999997,52.2241590000001],[-127.84528399999999,52.219437000000028],[-127.85249299999987,52.209991000000059],[-127.85833699999995,52.206657000000064],[-127.86389200000002,52.207496999999933],[-127.86916399999996,52.211105000000032],[-127.87110899999999,52.216385000000116],[-127.87304699999999,52.223320000000001],[-127.90527299999991,52.27887700000008],[-127.86776700000001,52.494995000000074],[-127.86776700000001,52.500549000000092],[-127.86971999999997,52.506103999999993],[-127.87499999999994,52.510276999999917],[-127.88166799999999,52.51249700000011],[-127.89195299999994,52.513329000000056],[-127.89998599999996,52.50999500000006],[-127.92488899999995,52.443886000000134],[-127.92971799999992,52.427547000000004],[-127.92854299999999,52.424213000000009],[-127.92588000000001,52.421215000000132],[-127.916718,52.414879000000099],[-127.90905800000002,52.407382999999982],[-127.90589099999988,52.401549999999986],[-127.90538800000002,52.39788400000009],[-127.95694700000001,52.324440000000038],[-127.96389799999997,52.321663000000115],[-127.97277800000001,52.323326000000066],[-127.995003,52.330551000000128],[-128.00805699999989,52.336937000000034],[-128.01251200000002,52.341102999999919],[-128.05721999999997,52.394713999999965],[-128.05917399999998,52.400269000000094],[-128.06832899999995,52.447769000000051],[-128.06695599999995,52.45388000000014],[-128.05944799999992,52.470267999999976],[-128.05111699999992,52.478874000000076],[-128.0419619999999,52.487770000000012],[-128.03250100000002,52.495270000000119],[-128.00945999999999,52.508606000000043],[-127.97721899999999,52.519714000000079],[-127.96916199999993,52.521660000000111],[-127.96140300000002,52.519440000000145],[-127.95612299999993,52.515831000000105],[-127.89611799999994,52.542220999999984],[-127.89138800000001,52.546387000000038],[-127.88778699999995,52.551102000000071],[-127.87998999999991,52.574164999999994],[-127.87970699999994,52.579720000000066],[-127.88751200000002,52.577773999999977],[-128.0291749999999,52.541664000000083],[-128.04083300000002,52.535827999999981],[-128.09973099999991,52.503052000000082],[-128.1049349999999,52.492382000000077],[-128.11831699999999,52.465546000000074],[-128.14834599999995,52.422217999999987],[-128.22500599999989,52.330826000000116],[-128.23330699999997,52.321937999999989],[-128.27862499999998,52.280822999999998],[-128.28332499999993,52.276657000000114],[-128.28890999999999,52.273323000000119],[-128.29583700000001,52.270828000000108],[-128.30499299999997,52.269439999999975],[-128.39388999999989,52.291382000000056],[-128.32971199999992,52.380271999999991],[-128.29751599999992,52.400543000000027],[-128.29083300000002,52.401657],[-128.28085299999992,52.400825999999995],[-128.27416999999997,52.39804799999996],[-128.267517,52.396660000000054],[-128.260559,52.399161999999933],[-128.25585899999999,52.403320000000065],[-128.22442599999994,52.459717000000069],[-128.22192399999989,52.465271000000087],[-128.22055099999994,52.471375000000137],[-128.22109999999992,52.484436000000073],[-128.22860700000001,52.523048000000017],[-128.23055999999997,52.528328000000101],[-128.23831200000001,52.536658999999986],[-128.24221799999998,52.547775000000115],[-128.24194299999999,52.55471],[-128.23916600000001,52.566940000000102],[-128.18527199999988,52.671104000000128],[-128.14584399999995,52.719986000000063],[-128.120544,52.757217000000026],[-128.13165300000003,52.876381000000038],[-128.17001299999998,52.856658999999979],[-128.17501800000002,52.851935999999966],[-128.22305299999994,52.812492000000077],[-128.22888199999994,52.80860100000001],[-128.23525999999993,52.805824000000086],[-128.24972500000001,52.801384000000098],[-128.2744449999999,52.799438000000009],[-128.30029300000001,52.800270000000125],[-128.33999600000004,52.805549999999982],[-128.42611699999998,52.817497000000117],[-128.43612699999994,52.818886000000134],[-128.441101,52.822769000000051],[-128.48776199999986,52.873604000000114],[-128.49359100000004,52.882767000000115],[-128.495544,52.887496999999939],[-128.49887100000001,52.903602999999976],[-128.50640899999996,52.96305099999995],[-128.51556399999998,53.019988999999953],[-128.53973400000001,53.131934999999942],[-128.62554899999992,53.202217000000019],[-128.66140699999994,53.202217000000019],[-128.66082799999992,53.196938000000046],[-128.66305499999999,53.190826000000072],[-128.66723599999995,53.187492000000077],[-128.67666600000001,53.187767000000122],[-128.68527199999994,53.189430000000016],[-128.70111099999997,53.195541000000105],[-128.78832999999997,53.239715999999987],[-128.79473899999999,53.243324000000086],[-128.84887699999996,53.275826000000052],[-128.85888699999998,53.283607000000131],[-128.86639400000001,53.292220999999984],[-128.86944600000004,53.2972180000001],[-128.87832599999996,53.31638300000003],[-128.88558999999998,53.374378000000092],[-128.88798499999996,53.424965000000043],[-128.92186000000004,53.453601999999989],[-128.95916699999998,53.502777000000037],[-128.97332799999998,53.547493000000031],[-128.97277799999995,53.553047000000049],[-128.966095,53.556099000000131],[-128.80499299999997,53.569992000000013],[-128.79501300000004,53.568604000000107],[-128.78832999999997,53.564995000000067],[-128.78332499999999,53.561104],[-128.77972399999987,53.556938000000116],[-128.69250499999998,53.485268000000133],[-128.55862399999995,53.413879000000122],[-128.52362099999999,53.396660000000054],[-128.44601399999999,53.413158000000124],[-128.44517499999995,53.415993000000071],[-128.42950399999989,53.429824999999994],[-128.18972799999989,53.459991000000002],[-128.15945399999993,53.455826000000002],[-128.14862099999993,53.453605999999979],[-128.13192699999996,53.448875000000044],[-128.105255,53.440543999999989],[-128.09387199999998,53.433052000000032],[-128.07081600000004,53.394114999999942],[-128.03488200000004,53.369289000000038],[-128.00598099999996,53.34705699999995],[-127.95195000000001,53.326102999999932],[-127.94999699999988,53.321381000000031],[-127.951683,53.309990000000084],[-127.95388799999995,53.304161000000079],[-127.95694700000001,53.28138000000007],[-127.95527600000003,53.265830999999991],[-127.95111099999997,53.256386000000077],[-127.94611399999985,53.252220000000023],[-127.87526700000001,53.224433999999917],[-127.87027,53.222763000000043],[-127.868607,53.233879000000002],[-127.86776700000001,53.239715999999987],[-127.87138399999998,53.244155999999975],[-127.92259999999993,53.273685],[-127.93297599999994,53.293323999999927],[-127.92408,53.318153000000109],[-127.92593399999993,53.330750000000023],[-127.98805199999998,53.353881999999942],[-128.07165499999991,53.431380999999988],[-128.09387199999998,53.451935000000105],[-128.12692300000003,53.481102000000021],[-128.16528299999993,53.483879000000115],[-128.18331899999993,53.484161000000029],[-128.30139199999991,53.478324999999927],[-128.45187399999992,53.50332300000008],[-128.45339999999999,53.499656999999956],[-128.45640600000002,53.496822000000066],[-128.48156700000004,53.487987999999916],[-128.49021900000002,53.485325000000046],[-128.53340100000003,53.478324999999927],[-128.54457100000002,53.478992000000062],[-128.54937699999994,53.480823999999927],[-128.81304899999992,53.619155999999975],[-128.81664999999998,53.623322000000087],[-128.81805399999996,53.644714000000079],[-128.81750499999993,53.65026899999998],[-128.81390399999998,53.656936999999971],[-128.808899,53.661659000000043],[-128.78417999999988,53.675552000000096],[-128.77279699999997,53.733330000000137],[-128.79388399999988,53.764998999999932],[-128.79333500000001,53.770546000000081],[-128.79110699999995,53.776657],[-128.77056899999991,53.79583000000008],[-128.67767300000003,53.839775000000088],[-128.67384300000003,53.84160600000007],[-128.66551200000004,53.844608000000107],[-128.66067499999997,53.845439999999996],[-128.65583799999996,53.843605000000082],[-128.64482099999987,53.837105000000122],[-128.64166299999994,53.834770000000049],[-128.60360699999995,53.842216000000064],[-128.59387199999998,53.839714000000015],[-128.47720299999997,53.828605999999979],[-128.47137499999997,53.832497000000046],[-128.47555499999999,53.842216000000064],[-128.48275799999999,53.850829999999917],[-128.48944099999994,53.854163999999912],[-128.49887100000001,53.856941000000006],[-128.51000999999991,53.859161000000029],[-128.53030399999994,53.861664000000019],[-128.53832999999992,53.860275000000001],[-128.54501299999998,53.857216000000051],[-128.55306999999988,53.856102000000078],[-128.61726399999992,53.868546000000094],[-128.65962199999996,53.882885000000101],[-128.662598,53.885216000000014],[-128.66461200000003,53.888218000000109],[-128.67903099999995,53.907524000000024],[-128.67869599999995,53.910857999999962],[-128.66686999999996,53.92285900000013],[-128.66072099999997,53.928524000000095],[-128.6480709999999,53.949432000000058],[-128.63946499999997,53.96054799999996],[-128.59832799999998,54.02693899999997],[-128.60055499999993,54.031661999999983],[-128.60916099999997,54.03138000000007],[-128.61663799999997,54.029160000000104],[-128.67861899999997,54.00360900000004],[-128.68527199999994,54.000832000000116],[-128.68890399999998,53.994156000000032],[-128.69555699999989,53.976097000000095],[-128.72283899999991,53.944046000000071],[-128.72499099999999,53.940216000000078],[-128.72766100000001,53.936710000000062],[-128.73100299999993,53.933547999999917],[-128.79943799999995,53.87499200000002],[-128.91528299999999,53.787216000000001],[-128.93194600000004,53.774711999999965],[-128.98361199999994,53.762214999999969],[-129.10497999999995,53.72026800000009],[-129.11804199999989,53.714157000000057],[-129.12359599999996,53.710274000000084],[-129.21749899999992,53.64027400000009],[-129.232483,53.625824000000136],[-129.23803699999991,53.61332700000014],[-129.239441,53.601936000000023],[-129.23693800000001,53.537216000000058],[-129.23138399999999,53.500832000000059],[-129.23443599999996,53.461937000000091],[-129.23498499999999,53.456100000000106],[-129.23748799999993,53.433600999999953],[-129.27279699999997,53.379158000000018],[-129.30334499999992,53.384994999999947],[-129.33389299999999,53.397491000000059],[-129.35360700000001,53.407768000000033],[-129.51861600000001,53.514998999999989],[-129.62914999999987,53.587769000000037],[-129.686127,53.630272000000105],[-129.83084099999996,53.74721500000004],[-129.86111499999998,53.765273999999977],[-129.912781,53.79833200000013],[-130.04501300000004,53.883049000000142],[-130.05029300000001,53.886940000000038],[-130.099152,53.941933000000063],[-130.10137899999995,53.946655000000135],[-130.09136999999987,54.066101000000003],[-130.09082000000001,54.071662999999944],[-130.07693499999993,54.114441000000056],[-130.07333399999999,54.120827000000133],[-130.06500199999999,54.132209999999986],[-130.05166600000001,54.148605000000089],[-130.04666099999997,54.153320000000122],[-129.86361699999998,54.213051000000064],[-129.84887700000002,54.217491000000109],[-129.83194000000003,54.219436999999971],[-129.78205899999995,54.210601999999938],[-129.72637899999995,54.200771000000088],[-129.69738799999993,54.194435000000055],[-129.68756099999996,54.19093300000003],[-129.64416499999999,54.181938000000059],[-129.63333099999994,54.179993000000081],[-129.6141659999999,54.178917000000069],[-129.591949,54.185822000000087],[-129.47082499999999,54.235825000000034],[-129.47000100000002,54.23721299999994],[-129.47442599999999,54.239990000000034],[-129.48275799999988,54.243050000000096],[-129.51141399999989,54.244155999999975],[-129.51889,54.241936000000123],[-129.56140099999993,54.226935999999966],[-129.56777999999997,54.223877000000016],[-129.68238799999995,54.221602999999959],[-129.68823199999997,54.223099000000104],[-129.77654999999993,54.234767999999974],[-129.83666999999997,54.23832700000014],[-129.8549799999999,54.238045000000056],[-129.87136799999996,54.235268000000133],[-129.966949,54.206940000000031],[-129.97997999999995,54.200829000000113],[-129.99166899999989,54.192764000000011],[-130.03750600000001,54.173050000000103],[-130.10443099999998,54.154434000000094],[-130.11331200000001,54.153877000000023],[-130.122772,54.154434000000094],[-130.13110399999999,54.157210999999961],[-130.19168099999996,54.193321000000083],[-130.22805800000003,54.258606000000043],[-130.238586,54.294998000000078],[-130.2611389999999,54.342765999999983],[-130.27584799999994,54.349716000000058],[-130.28250100000002,54.346382000000062],[-130.332764,54.329720000000066],[-130.34887700000002,54.326942000000088],[-130.39138799999995,54.330276000000083],[-130.45166,54.336655000000121],[-130.45916699999998,54.338600000000099],[-130.48111,54.364715999999987],[-130.48388699999998,54.401657000000114],[-130.47637899999989,54.430550000000096],[-130.47360199999997,54.43582200000003],[-130.43362400000001,54.496658000000139],[-130.42999299999997,54.562492000000077],[-130.43972799999989,54.612212999999997],[-130.44055200000003,54.617493000000024],[-130.43859900000001,54.623604000000114],[-130.43277,54.627487000000031],[-130.42556799999994,54.629715000000033],[-130.41665599999993,54.630272000000105],[-130.40750099999997,54.62860100000006],[-130.39779699999997,54.626381000000038],[-130.38946499999992,54.62332200000003],[-130.37554899999992,54.616661000000136],[-130.33215299999995,54.578552000000002],[-130.28167699999995,54.528381000000024],[-130.22277799999989,54.471931000000041],[-130.06304899999986,54.339989000000116],[-130.05776999999995,54.336105000000089],[-130.03723100000002,54.326103000000103],[-130.02084400000001,54.319992000000013],[-129.99304199999989,54.31221000000005],[-129.98275799999993,54.311104000000057],[-129.96581999999995,54.313049000000035],[-129.95916699999998,54.316100999999946],[-129.95584099999985,54.322495000000004],[-129.95971700000001,54.326942000000088],[-129.96722399999993,54.328880000000026],[-129.98165900000004,54.324439999999981],[-129.99054000000001,54.32388300000008],[-130.02362099999993,54.335548000000017],[-130.0386049999999,54.341934000000094],[-130.04388399999999,54.345824999999991],[-130.14779699999997,54.44193300000012],[-130.31382799999994,54.586269000000073],[-130.36721799999992,54.635268999999994],[-130.37222299999996,54.644714000000079],[-130.374146,54.654991000000052],[-130.36859100000004,54.667770000000132],[-130.35861199999999,54.677490000000034],[-130.35278299999999,54.681381000000101],[-130.33972199999999,54.687492000000134],[-130.32501200000002,54.692214999999976],[-130.24386599999997,54.707771000000093],[-130.23553499999997,54.709160000000111],[-130.22582999999997,54.708885000000066],[-130.17193599999996,54.703606000000093],[-130.16195700000003,54.701103000000103],[-130.15362500000003,54.698326000000009],[-130.10110499999996,54.671660999999972],[-130.075287,54.657767999999976],[-130.06887800000004,54.648604999999975],[-130.06500199999999,54.644440000000145],[-130.054169,54.636658000000011],[-130.02694699999989,54.623047000000042],[-130.00058000000001,54.61471599999993],[-129.98083500000001,54.609993000000145],[-129.959991,54.607498000000135],[-129.91027800000001,54.605552999999929],[-129.968323,54.62193300000007],[-130.00445599999989,54.632767000000115],[-130.02807599999994,54.641936999999984],[-130.19473299999999,54.723320000000001],[-130.20166,54.72693600000008],[-130.20111099999986,54.732490999999982],[-130.17388899999992,54.846656999999993],[-130.17111199999999,54.851662000000033],[-130.16583300000002,54.856659000000093],[-130.16082799999998,54.861382000000106],[-130.05835000000002,54.952773999999977],[-130.04583700000001,54.959991000000059],[-130.03195199999993,54.965271000000143],[-129.94694499999991,54.970490000000098],[-129.9362789999999,54.971153000000072],[-129.92394999999993,54.970322000000067],[-129.91810599999985,54.968826000000092],[-129.90977499999997,54.964661000000092],[-129.90745500000003,54.962158000000102],[-129.65444899999994,54.980545000000006],[-129.646973,54.982765000000029],[-129.64028899999994,54.985825000000091],[-129.62249799999995,54.997772000000055],[-129.62499999999994,55.00249500000001],[-129.79998799999998,55.006942999999978],[-129.86608899999999,55.006660000000011],[-129.87527499999999,55.00610400000005],[-129.883331,55.004715000000033],[-129.90585299999998,54.997772000000055],[-129.91390999999993,54.996383999999921],[-129.96487400000001,55.003436999999963],[-129.97171000000003,55.004608000000076],[-129.97905000000003,55.008938000000057],[-129.98138399999993,55.011608000000138],[-129.98104899999993,55.014938000000143],[-129.9963679999999,55.024162000000047],[-129.97555499999993,55.066939999999931],[-129.96139500000004,55.093323000000112],[-129.95638999999989,55.098045000000013],[-129.84750399999996,55.210548000000074],[-129.72665399999988,55.338600000000099],[-129.66300999999999,55.412212000000011],[-129.64334099999996,55.434158000000025],[-129.63723800000002,55.438042000000053],[-129.62222299999996,55.442490000000021],[-129.60525499999994,55.445267000000115],[-129.58471700000001,55.443878000000097],[-129.54110700000001,55.438042000000053],[-129.52389500000004,55.439987000000031],[-129.50863599999997,55.444434999999999],[-129.48831199999995,55.453605999999922],[-129.47610499999996,55.461380000000133],[-129.47164899999996,55.467209000000139],[-129.47109999999992,55.472762999999986],[-129.47500600000001,55.47693600000008],[-129.48416099999997,55.478600000000085],[-129.62027,55.459434999999985],[-129.63696299999998,55.45665699999995],[-129.679123,55.473156000000131],[-129.68611099999998,55.467491000000052],[-129.69662500000004,55.45399100000003],[-129.69979899999993,55.450993000000096],[-129.70428500000003,55.449661000000049],[-129.70979299999993,55.450657000000035],[-129.71211199999999,55.453327000000115],[-129.71362299999993,55.456161000000122],[-129.78695700000003,55.566666000000112],[-129.78582800000004,55.50277699999998],[-129.779449,55.493607000000111],[-129.77224699999999,55.47943099999992],[-129.78030399999994,55.359717999999987],[-129.78250100000002,55.353607000000068],[-129.81390399999987,55.289719000000048],[-129.81750499999998,55.283332999999971],[-129.90695199999988,55.168052999999986],[-129.911407,55.162491000000045],[-129.92083699999995,55.151931999999988],[-130.02835099999999,55.036385000000109],[-130.06832900000001,54.996941000000049],[-130.07443199999994,54.992767000000015],[-130.08166499999999,54.990546999999992],[-130.09082000000001,54.989990000000091],[-130.10055499999999,54.990546999999992],[-130.10833699999995,54.992493000000081],[-130.11361699999992,54.996383999999921],[-130.12777700000004,55.013885000000073],[-130.16027799999995,55.069717000000026],[-130.16223099999996,55.079993999999999],[-130.1600039999999,55.086105000000089],[-130.11859099999998,55.142493999999942],[-130.11416599999995,55.148331000000098],[-130.08084099999991,55.184714999999983],[-130.06390399999998,55.195266999999944],[-130.04528799999997,55.204163000000051],[-130.03918499999992,55.208046000000024],[-129.948059,55.276382000000012],[-129.94387799999998,55.282211000000018],[-129.94473300000004,55.287216000000058],[-129.94888300000002,55.295830000000137],[-129.96054100000003,55.308884000000035],[-130.00863599999997,55.370827000000077],[-130.101654,55.556380999999988],[-130.10360700000001,55.566666000000112],[-130.12887599999999,55.722214000000122],[-130.12942499999997,55.732765000000029],[-130.12887599999999,55.738602000000014],[-130.12609900000001,55.750275000000045],[-130.12191799999994,55.762496999999996],[-130.11639400000001,55.774993999999992],[-130.11276199999998,55.781661999999983],[-130.10833699999995,55.787216000000001],[-130.09109499999994,55.799995000000024],[-130.07916299999999,55.808044000000052],[-130.06722999999994,55.815826000000015],[-130.0552669999999,55.823883000000137],[-130.03945899999997,55.838326000000052],[-129.96664399999992,55.912209000000018],[-129.962219,55.917770000000019],[-129.96417199999991,55.928329000000076],[-129.97137499999985,55.931663999999955],[-129.97970599999985,55.932213000000104],[-129.99499500000002,55.927773000000059],[-130.0019529999999,55.924713000000054],[-130.00500499999993,55.921661000000086],[-130.01507600000002,55.909179999999992],[-130.01419099999998,56.023880000000133],[-130.0147399999999,56.025826000000052],[-130.0538939999999,56.075554000000011],[-130.08859299999995,56.118049999999982],[-130.22915599999993,56.090271000000143],[-130.36526499999991,56.123878000000104],[-130.44750999999991,56.206383000000073],[-130.46194499999996,56.235268000000133],[-130.48471099999995,56.239433000000133],[-130.53277599999996,56.246384000000035],[-130.5607149999999,56.250000000000114],[-130.62719699999997,56.258606000000043],[-130.720551,56.325554000000125],[-130.75585899999999,56.353049999999996],[-130.77444500000001,56.366104000000064],[-130.84722899999997,56.374435000000119],[-130.92001300000004,56.382492000000127],[-131.05499299999997,56.398048000000074],[-131.07055699999995,56.403602999999976],[-131.12582399999997,56.424163999999962],[-131.1444699999999,56.434715000000097],[-131.16473400000001,56.445267000000058],[-131.20526100000001,56.465828000000101],[-131.22137499999997,56.472488000000112],[-131.290009,56.500548999999978],[-131.31445299999996,56.509994999999947],[-131.53945899999991,56.596656999999993],[-131.55777,56.602219000000105],[-131.57888800000001,56.603324999999927],[-131.61111499999998,56.602219000000105],[-131.81610099999995,56.594994000000042],[-131.82415800000001,56.59693900000002],[-131.82861299999996,56.600830000000087],[-131.85803199999987,56.718880000000127],[-131.86361699999992,56.786110000000122],[-131.86053500000003,56.797775000000001],[-131.86138899999997,56.79972100000009],[-132.10305800000003,56.866661000000022],[-132.09194899999994,56.893607999999972],[-132.06195100000002,56.959717000000069],[-132.03668199999993,57.013054000000011],[-132.02749600000004,57.036385000000053],[-132.22109999999992,57.068054000000075],[-132.316956,57.083878000000027],[-132.33694500000001,57.088325999999995],[-132.32611099999997,57.100548000000117],[-132.26806599999986,57.16304800000006],[-132.25473,57.17471299999994],[-132.226654,57.204711999999972],[-132.35415599999988,57.354439000000127],[-132.36972000000003,57.37082700000002],[-132.37914999999992,57.37943300000012],[-132.45111099999986,57.435265000000072],[-132.471924,57.451103000000103],[-132.4927669999999,57.46665999999999],[-132.50363200000004,57.474158999999986],[-132.61944599999998,57.583328000000051],[-132.75250199999994,57.709435000000042],[-132.76113899999996,57.717765999999926],[-132.76889,57.72665400000011],[-132.78222700000003,57.745270000000119],[-132.79110699999995,57.7586060000001],[-132.79583700000001,57.768883000000073],[-132.79611199999999,57.773879999999963],[-132.80722000000003,57.787773000000016],[-132.81362899999988,57.795546999999999],[-132.82138099999992,57.804436000000067],[-132.87304699999999,57.855270000000075],[-132.88165299999997,57.86360900000011],[-132.92861900000003,57.90554800000001],[-132.93777499999999,57.913322000000051],[-132.96472199999999,57.93332700000002],[-132.99499500000002,57.951660000000061],[-133.03332499999988,57.978874000000076],[-133.04388399999999,57.986938000000066],[-133.05306999999993,57.99471299999999],[-133.058044,57.999435000000062],[-133.070831,58.012215000000026],[-133.08749399999999,58.033332999999971],[-133.09500100000002,58.047775000000115],[-133.10415599999999,58.073051000000135],[-133.10720800000001,58.083328000000108],[-133.11111500000004,58.093323000000055],[-133.13696299999998,58.135826000000122],[-133.18472299999991,58.176102000000128],[-133.19500700000003,58.184158000000025],[-133.21139499999998,58.196381000000031],[-133.23361199999999,58.211380000000133],[-133.3061219999999,58.257216999999969],[-133.36111499999993,58.28054800000001],[-133.43029799999994,58.359993000000088],[-133.408905,58.400268999999923],[-133.38790899999998,58.4120640000001],[-133.42999299999991,58.459160000000054],[-133.55889899999994,58.528046000000074],[-133.73580900000002,58.644713999999965],[-133.80834999999996,58.709991000000002],[-133.82693499999999,58.726097000000038],[-134.08749399999999,58.808327000000133],[-134.23110999999989,58.851936000000023],[-134.245544,58.856941000000063],[-134.32000699999998,58.916099999999972],[-134.32556199999999,58.920830000000024],[-134.33221400000002,58.929718000000037],[-134.33221400000002,58.935265000000129],[-134.32556199999999,58.971100000000035],[-134.37942499999991,59.049164000000076],[-134.38613899999996,59.058044000000109],[-134.45556599999998,59.122489999999971],[-134.46139499999992,59.126656000000025],[-134.47500599999989,59.1336060000001],[-134.53222700000003,59.132210000000043],[-134.56640599999997,59.130547000000092],[-134.65084799999994,59.185546999999985],[-134.67166099999997,59.200272000000098],[-134.67529300000001,59.214714000000072],[-134.68804899999992,59.243324000000086],[-134.73889199999991,59.250275000000045],[-134.95193499999993,59.279991000000109],[-135.09167499999995,59.426940999999999],[-135.07971199999992,59.4447100000001],[-135.06332399999997,59.458046000000081],[-135.03973399999995,59.466934000000037],[-135.03057899999999,59.46804800000001],[-135.02111799999994,59.471099999999922],[-135.01779199999999,59.498878000000047],[-135.01501500000001,59.54055000000011],[-135.01446499999997,59.567497000000003],[-135.09722899999997,59.621376000000055],[-135.12027,59.621658000000139],[-135.13275099999998,59.622765000000072],[-135.1541749999999,59.62721300000004],[-135.17749000000003,59.636939999999981],[-135.33612099999999,59.726654000000053],[-135.47360199999997,59.801933000000076],[-135.50613399999997,59.793884000000048],[-135.82333399999999,59.705550999999957],[-135.94915800000001,59.669158999999979],[-136.07138099999997,59.657494000000099],[-136.12081899999998,59.651656999999943],[-136.16000399999996,59.646660000000054],[-136.20776399999988,59.639434999999992],[-136.31054700000004,59.612495000000138],[-136.34387200000003,59.602776000000119],[-136.34637499999991,59.600548000000003],[-136.29834,59.583603000000039],[-136.23916600000001,59.561377999999991],[-136.23388699999992,59.525826000000052],[-136.29305999999991,59.476097000000038],[-136.29998799999993,59.471099999999922],[-136.37164300000001,59.452492000000063],[-136.46362299999993,59.469711000000132],[-136.46417199999996,59.414153999999996],[-136.46249399999994,59.37221500000004],[-136.46249399999994,59.302490000000091],[-136.46276899999998,59.289436000000023],[-136.48083499999996,59.261939999999925],[-136.49221799999998,59.249718000000144],[-136.55835000000002,59.186377999999991],[-136.58389299999988,59.163321999999937],[-136.61138900000003,59.164711000000125],[-136.71972699999998,59.165268000000026],[-136.80889899999994,59.165268000000026],[-136.88833599999998,59.131934999999999],[-136.94195599999995,59.109436000000073],[-136.96972700000003,59.098328000000095],[-137.03308100000004,59.077492000000063],[-137.25167799999997,59.006104000000107],[-137.29611199999999,58.989989999999977],[-137.31417799999997,58.981102000000021],[-137.33889799999997,58.965546000000074],[-137.39279199999999,58.928329000000019],[-137.42028800000003,58.91415400000011],[-137.42749000000003,58.911377000000016],[-137.44500699999998,58.907494000000099],[-137.46554600000002,58.906096999999932],[-137.47805800000003,58.907211000000132],[-137.48803699999996,58.909156999999993],[-137.49581899999998,58.911934000000088],[-137.50167799999991,58.916382000000056],[-137.50500499999993,58.920273000000122],[-137.50750700000003,58.925552000000096],[-137.50723299999999,58.937767000000008],[-137.50527999999997,58.944153000000142],[-137.49722299999996,58.964157000000057],[-137.48776199999992,58.982490999999982],[-137.47970599999996,58.998046999999985],[-137.49914599999994,59.041382000000112],[-137.54528799999997,59.143051000000128],[-137.566101,59.186935000000062],[-137.59082000000001,59.238602000000014],[-137.91027800000001,59.408043000000077],[-138.11776699999996,59.516663000000051],[-138.30361900000003,59.613052000000039],[-138.49108899999993,59.708328000000051],[-138.5386049999999,59.732208000000071],[-138.615814,59.77416199999999],[-138.64724699999999,59.805550000000039],[-138.65472399999993,59.81471300000004],[-138.66363499999989,59.829162999999937],[-138.66610699999995,59.834435000000042],[-138.66915900000004,59.844994000000099],[-138.67501799999997,59.86693600000001],[-138.69027700000004,59.906936999999971],[-138.97192399999994,59.978600000000085],[-139.04779099999996,59.997490000000028],[-139.11639400000001,60.041382000000112],[-139.161407,60.07027400000004],[-139.18890399999987,60.088882000000069],[-139.183899,60.102219000000105],[-139.15527299999997,60.154991000000052],[-139.13363600000002,60.194435000000112],[-139.12527499999993,60.207771000000093],[-139.08221399999996,60.287498000000028],[-139.06500199999988,60.330276000000083],[-139.06640600000003,60.344153999999946],[-139.06805399999996,60.352219000000048],[-139.51947000000001,60.344711000000018],[-139.67666599999995,60.340546000000018],[-139.77166699999992,60.292496000000028],[-139.86639400000001,60.244438000000059],[-139.91305499999987,60.220824999999934],[-139.97943099999998,60.187767000000122],[-140.005585,60.193878000000041],[-140.45083599999992,60.309715000000097],[-140.471924,60.283882000000006],[-140.493042,60.25777400000004],[-140.50195299999996,60.244713000000104],[-140.52139299999993,60.222214000000122],[-140.94638099999997,60.297775000000001],[-140.995544,60.307213000000047],[-141.00058000000001,60.366661000000022],[-141.00112899999999,60.399436999999978],[-141.00030500000003,60.933051999999975],[-141.00167799999991,60.966384999999946],[-141.00030500000003,62.733046999999942],[-141.00140399999998,63.099998000000141],[-141.00195299999996,63.83277099999998],[-141.00030500000003,63.966385000000059],[-141.00030500000003,64.199706999999989],[-141.00195299999996,65.132751000000098],[-141.00030500000003,65.166092000000049],[-141.00030500000003,65.232758000000047],[-141.00195299999996,65.699416999999983],[-141.00195299999996,66.099425999999994],[-141.00167799999991,66.499419999999986],[-141.00085399999995,66.666382000000112],[-141.00058000000001,66.866089000000102],[-141.00167799999991,67.066376000000105],[-141.00222799999995,67.299149000000057],[-141.00058000000001,67.532486000000119],[-141,67.732758000000103],[-141.00195299999996,67.865814000000057],[-141.00195299999996,68.065811000000053],[-141.00195299999996,68.23275799999999],[-141.00167799999991,68.532761000000107],[-141.00085399999995,68.965546000000018],[-141.00058000000001,69.432479999999941],[-141.00085399999995,69.532211000000018],[-141.00299100000001,69.642365000000098],[-140.98220800000001,69.642761000000007],[-140.90945399999998,69.639160000000118],[-140.83306900000002,69.635269000000051],[-140.81610099999995,69.6336060000001],[-140.79528799999997,69.627197000000081],[-140.77001999999999,69.621643000000063],[-140.73831200000001,69.617751999999996],[-140.61554000000001,69.60832199999993],[-140.48831200000001,69.599425999999994],[-140.39611799999994,69.596099999999979],[-140.26141399999995,69.596649000000127],[-140.21887200000003,69.600815000000011],[-140.17944299999988,69.606369000000029],[-140.12914999999998,69.614990000000091],[-140.10055499999999,69.617477000000008],[-140.08471700000001,69.618042000000003],[-139.94387800000004,69.618865999999969],[-139.92639199999991,69.618590999999981],[-139.88833599999998,69.616653000000042],[-139.81054699999999,69.606644000000017],[-139.78112799999997,69.602203000000088],[-139.605255,69.575546000000031],[-139.57611099999986,69.570830999999998],[-139.67001299999998,69.579162999999994],[-139.68472299999996,69.581375000000037],[-139.77639799999997,69.599716000000001],[-139.7647399999999,69.590820000000065],[-139.75668299999995,69.586655000000064],[-139.73165899999998,69.581099999999992],[-139.60665899999992,69.559417999999994],[-139.573059,69.556091000000038],[-139.5350039999999,69.553863999999976],[-139.351654,69.53637700000013],[-139.14306599999998,69.510817999999915],[-139.11639400000001,69.505554000000132],[-139.10833699999995,69.501663000000065],[-139.10137899999995,69.491364000000033],[-139.09222399999999,69.481658999999979],[-139.069458,69.463318000000129],[-139.05584699999991,69.454987000000074],[-139.04806499999995,69.450821000000133],[-138.975281,69.414993000000095],[-138.95748900000001,69.407486000000006],[-138.93945299999996,69.399994000000049],[-138.88275099999993,69.384720000000129],[-138.83361799999994,69.373306000000071],[-138.79916399999991,69.364150999999993],[-138.76916499999999,69.35386699999998],[-138.75140399999998,69.346375000000023],[-138.64389,69.291367000000037],[-138.62164300000001,69.273041000000035],[-138.61639400000001,69.268326000000002],[-138.60720799999996,69.2586060000001],[-138.60498000000001,69.247482000000048],[-138.44998199999992,69.229156000000046],[-138.26916499999999,69.196365000000071],[-138.25390599999997,69.188309000000004],[-138.21887200000003,69.173309000000074],[-138.17721599999993,69.159988000000112],[-138.14334099999996,69.150818000000072],[-138.06332399999997,69.129424999999969],[-138.03945899999997,69.123596000000134],[-138.00112899999993,69.115265000000022],[-137.69638099999992,69.049712999999997],[-137.59445199999999,69.027771000000143],[-137.41915900000004,68.988876000000005],[-137.25500499999998,68.948318000000086],[-137.22610499999996,68.944977000000051],[-137.19222999999994,68.943863000000079],[-137.13027999999986,68.944977000000051],[-136.9786069999999,68.931931000000134],[-136.97332799999998,68.927200000000028],[-136.966095,68.923309000000131],[-136.95416299999994,68.920258000000103],[-136.78973399999995,68.881927000000076],[-136.74554399999994,68.875259000000085],[-136.68249499999996,68.871918000000051],[-136.65972899999997,68.874984999999981],[-136.64279199999993,68.878036000000009],[-136.63751199999996,68.884155000000021],[-136.63082900000001,68.889160000000061],[-136.61999500000002,68.891936999999984],[-136.52224699999999,68.909149000000014],[-136.50836199999998,68.910262999999986],[-136.47747800000002,68.910812000000135],[-136.42059299999994,68.9015500000001],[-136.39306599999992,68.897217000000069],[-136.35861199999999,68.893874999999923],[-136.25585899999999,68.889435000000105],[-136.14501999999999,68.885817999999972],[-136.09722899999991,68.88220200000012],[-136.02780199999989,68.873032000000023],[-135.98666399999996,68.864990000000091],[-135.85879499999993,68.838974000000064],[-135.83166499999999,68.831940000000031],[-135.54055799999992,68.752486999999974],[-135.519745,68.74581900000004],[-135.49194299999988,68.735259999999982],[-135.48498499999999,68.731094000000098],[-135.45388799999995,68.709427000000062],[-135.40695199999993,68.679977000000122],[-135.36554000000001,68.675812000000121],[-135.21054099999998,68.661377000000016],[-135.1600039999999,68.657211000000132],[-135.14752199999998,68.658874999999966],[-135.14639299999993,68.663879000000122],[-135.21444699999995,68.693038999999999],[-135.25363200000004,68.706940000000145],[-135.34359699999993,68.737762000000032],[-135.48193400000002,68.809418000000107],[-135.50613399999997,68.832488999999953],[-135.500854,68.838593000000003],[-135.48666399999996,68.839431999999988],[-135.45306399999998,68.838042999999971],[-135.43917799999991,68.835541000000092],[-135.40499899999998,68.831940000000031],[-135.341949,68.831664999999987],[-135.33804299999997,68.834991000000059],[-135.34973099999996,68.838042999999971],[-135.42166099999997,68.848877000000016],[-135.49472000000003,68.854979999999955],[-135.52835099999993,68.856368999999972],[-135.56054700000004,68.860260000000039],[-135.59527600000001,68.86943100000002],[-135.60443099999998,68.873032000000023],[-135.61886599999997,68.881362999999965],[-135.62359600000002,68.886107999999979],[-135.61389199999991,68.889435000000105],[-135.33581499999997,68.917755000000113],[-135.241669,68.926926000000094],[-135.22720299999997,68.925537000000077],[-135.21554600000002,68.922484999999995],[-135.20861799999994,68.918319999999994],[-135.19665499999991,68.909714000000065],[-135.19168100000002,68.904984000000013],[-135.18695100000002,68.90026899999998],[-135.12191799999999,68.893326000000002],[-134.97747799999996,68.878311000000053],[-134.95111099999997,68.88108799999992],[-134.91723599999995,68.898041000000035],[-134.89474499999994,68.912490999999932],[-134.87777700000004,68.920822000000044],[-134.85803199999998,68.927765000000022],[-134.845551,68.929428000000144],[-134.81723,68.925812000000064],[-134.80334499999998,68.923035000000027],[-134.74581899999998,68.907486000000063],[-134.70889299999999,68.892761000000121],[-134.66946399999989,68.873305999999957],[-134.64169299999992,68.856644000000017],[-134.49554399999994,68.75221300000004]],[[-93.519729999999925,63.839432000000102],[-93.339995999999985,63.80832700000002],[-93.329726999999934,63.809715000000097],[-93.217498999999975,63.838599999999985],[-93.216110000000015,63.843605000000025],[-93.225006000000008,63.847771000000137],[-93.236389000000031,63.847487999999942],[-93.267501999999922,63.84276600000004],[-93.278884999999946,63.842491000000052],[-93.291671999999949,63.844994000000042],[-93.333892999999932,63.859160999999972],[-93.343338000000017,63.863052000000039],[-93.357498000000021,63.871376000000112],[-93.441939999999931,63.921660999999915],[-93.448883000000023,63.925827000000027],[-93.449721999999952,63.930824000000086],[-93.452498999999989,63.954437000000041],[-93.451110999999969,63.959717000000126],[-93.443329000000006,63.965546000000131],[-93.433884000000035,63.968596999999988],[-93.423614999999927,63.970825000000104],[-93.413054999999986,63.971930999999927],[-93.389998999999932,63.971656999999993],[-93.36471599999993,63.967491000000109],[-93.27305599999994,63.928047000000049],[-93.12222300000002,63.892493999999999],[-92.960281000000009,63.855826999999977],[-92.841675000000009,63.83526599999999],[-92.65194699999995,63.787498000000028],[-92.549728000000016,63.81082200000003],[-92.540558000000033,63.814713000000097],[-92.530563000000029,63.816939999999988],[-92.507506999999976,63.816383000000087],[-92.583892999999989,63.829436999999984],[-92.606948999999872,63.829720000000123],[-92.619155999999919,63.831383000000073],[-92.669158999999979,63.839989000000003],[-92.706954999999937,63.846656999999936],[-92.935546999999985,63.904990999999995],[-92.942489999999964,63.90915700000005],[-92.956116000000009,63.932770000000005],[-92.965285999999992,63.936652999999922],[-93.218886999999995,63.979431000000034],[-93.266113000000018,63.981934000000024],[-93.276397999999972,63.979713000000061],[-93.288054999999986,63.980545000000006],[-93.301102000000014,63.983047000000056],[-93.436661000000015,64.015274000000034],[-93.612212999999997,64.093048000000067],[-93.627212999999983,64.106369000000029],[-93.635009999999909,64.115265000000136],[-93.635833999999988,64.120255000000043],[-93.689986999999917,64.156096999999988],[-93.751677999999913,64.188873000000058],[-93.761123999999882,64.192748999999992],[-93.773055999999997,64.19358799999992],[-93.779723999999987,64.189697000000024],[-93.776947000000007,64.184981999999991],[-93.665008999999941,64.087204000000042],[-93.660004000000015,64.083054000000061],[-93.604172000000005,64.044434000000138],[-93.654723999999931,63.992493000000024],[-93.731673999999998,63.987212999999997],[-93.759170999999924,63.984161000000029],[-93.770553999999947,63.957771000000037],[-93.654449,63.896660000000111],[-93.59973100000002,63.870270000000062],[-93.55360399999995,63.850548000000003],[-93.533324999999991,63.84276600000004],[-93.519729999999925,63.839432000000102]],[[-70.783065999999963,48.380547000000092],[-70.782501000000025,48.348045000000127],[-70.768065999999919,48.35054800000006],[-70.548049999999989,48.356383999999991],[-70.498885999999914,48.353324999999984],[-70.464172000000019,48.3491590000001],[-70.383057000000008,48.331108000000086],[-70.332229999999981,48.316666000000112],[-70.272780999999952,48.298332000000016],[-70.237777999999992,48.282493999999986],[-70.210007000000019,48.269714000000022],[-70.198607999999979,48.26249700000011],[-70.06138599999997,48.239989999999977],[-70.040833000000021,48.244437999999946],[-70.025833000000034,48.246101000000067],[-70.017501999999865,48.245270000000062],[-69.995543999999995,48.239989999999977],[-69.936935000000005,48.221931000000041],[-69.920546999999885,48.216385000000002],[-69.828339000000028,48.166382000000056],[-69.838333000000034,48.173881999999935],[-69.84722899999997,48.181938000000002],[-69.861938000000009,48.198875000000044],[-69.871933000000013,48.212493999999936],[-69.879439999999931,48.220825000000048],[-69.884170999999981,48.224159000000043],[-69.95944199999991,48.269440000000088],[-69.977218999999991,48.274436999999978],[-69.985549999999989,48.274994000000049],[-69.993332000000009,48.274712000000022],[-70.043610000000001,48.267211999999915],[-70.099990999999989,48.267211999999915],[-70.131942999999978,48.269714000000022],[-70.151108000000022,48.274436999999978],[-70.167770000000019,48.279990999999995],[-70.272507000000019,48.325554000000125],[-70.420273000000009,48.361381999999992],[-70.427779999999984,48.361107000000118],[-70.635009999999966,48.390549000000078],[-70.727782999999874,48.415825000000098],[-70.739165999999955,48.423049999999989],[-70.751952999999958,48.42849300000006],[-70.761397999999929,48.431938000000002],[-70.779998999999975,48.435546999999985],[-70.954726999999991,48.459717000000012],[-70.980559999999912,48.462212000000022],[-71.012221999999952,48.46166199999999],[-71.025283999999886,48.457496999999989],[-71.048614999999927,48.445267000000058],[-71.047774999999888,48.444434999999942],[-71.031386999999995,48.443320999999969],[-70.906386999999938,48.423325000000034],[-70.799987999999985,48.401657000000057],[-70.785552999999879,48.395828000000051],[-70.781386999999881,48.391936999999984],[-70.779449,48.386940000000095],[-70.783065999999963,48.380547000000092]],[[-108.13890100000003,71.981658999999979],[-108.15583799999996,71.980820000000051],[-108.17415599999998,71.983322000000101],[-108.18720999999999,71.986649000000057],[-108.18916300000001,71.99192800000003],[-108.19972199999995,72.050537000000077],[-108.19027699999998,72.055542000000116],[-108.1702729999999,72.064423000000033],[-108.16027799999995,72.062759000000028],[-108.13417099999992,72.056091000000094],[-108.07444799999996,72.034149000000014],[-108.06416299999995,72.030272999999966],[-108.06220999999999,72.02526899999998],[-108.06304899999998,72.019440000000145],[-108.069458,72.013046000000088],[-108.07721700000002,72.007217000000082],[-108.10526999999996,71.992751999999996],[-108.12526700000001,71.983871000000022],[-108.13890100000003,71.981658999999979]],[[-85.84722899999997,72.294144000000074],[-85.837218999999948,72.288879000000009],[-85.837218999999948,72.262771999999927],[-85.851669000000015,72.241364000000033],[-85.877486999999917,72.221649000000014],[-85.889175000000023,72.218047999999953],[-85.90834000000001,72.217758000000117],[-85.981110000000001,72.236373999999955],[-86.005844000000025,72.243591000000094],[-86.061110999999983,72.261658000000125],[-86.096389999999985,72.276382000000012],[-86.107223999999917,72.283875000000023],[-86.110001000000011,72.289703000000145],[-86.101395000000025,72.293594000000041],[-86.093338000000017,72.294708000000014],[-86.067229999999995,72.293869000000029],[-86.005004999999983,72.296646000000123],[-85.863891999999964,72.297211000000004],[-85.84722899999997,72.294144000000074]],[[-78.735000999999954,72.365540000000124],[-78.75389100000001,72.363312000000008],[-78.81220999999988,72.365265000000079],[-78.830840999999964,72.364990000000091],[-78.854172000000005,72.362197999999978],[-78.874435000000005,72.358871000000079],[-78.889450000000011,72.354706000000078],[-78.91332999999986,72.345535000000098],[-78.920836999999949,72.341370000000097],[-78.93499799999995,72.336380000000077],[-78.950286999999946,72.334991000000059],[-79.053054999999972,72.360809000000017],[-79.075561999999934,72.403046000000074],[-79.075012000000015,72.409714000000065],[-79.070847000000015,72.414993000000038],[-79.066665999999998,72.420258000000103],[-79.044448999999929,72.426651000000049],[-79.00140399999998,72.438309000000118],[-78.97084000000001,72.445250999999985],[-78.955565999999919,72.444427000000019],[-78.950561999999991,72.442199999999957],[-78.946655000000021,72.440262000000018],[-78.939986999999917,72.435806000000127],[-78.846953999999926,72.415543000000071],[-78.833892999999989,72.411926000000108],[-78.740829000000019,72.374419999999986],[-78.731673999999941,72.36943100000002],[-78.735000999999954,72.365540000000124]],[[-79.508056999999951,72.348602000000028],[-79.533889999999985,72.346099999999979],[-79.555832000000009,72.346939000000077],[-79.572234999999978,72.349152000000061],[-79.581954999999994,72.35165399999994],[-79.59445199999999,72.356934000000024],[-79.609436000000017,72.36692800000003],[-79.624160999999901,72.379425000000026],[-79.683318999999983,72.430542000000116],[-79.586120999999991,72.453872999999987],[-79.576675000000023,72.456100000000049],[-79.552489999999921,72.451096000000121],[-79.541381999999999,72.444977000000051],[-79.529174999999952,72.439697000000024],[-79.502791999999886,72.429977000000122],[-79.46945199999999,72.423035000000027],[-79.43638599999997,72.418319999999994],[-79.42971799999998,72.411652000000004],[-79.440552000000025,72.37052900000009],[-79.446654999999907,72.364990000000091],[-79.455565999999919,72.359985000000052],[-79.470275999999956,72.355545000000006],[-79.508056999999951,72.348602000000028]],[[-79.993606999999997,72.413315000000125],[-80.009445000000028,72.410538000000031],[-80.022232000000031,72.413605000000132],[-80.124435000000005,72.506653000000028],[-80.130554000000018,72.512497000000053],[-80.133330999999941,72.519440000000031],[-80.129989999999907,72.523041000000092],[-80.11999499999996,72.526931999999988],[-80.112502999999947,72.526931999999988],[-80.063613999999973,72.523880000000077],[-80.036941999999897,72.51638800000012],[-79.921936000000017,72.463318000000072],[-79.916397000000018,72.458037999999988],[-79.926940999999999,72.447754000000145],[-79.939162999999951,72.436645999999996],[-79.956954999999994,72.426086000000055],[-79.978881999999885,72.417755000000113],[-79.993606999999997,72.413315000000125]],[[-110.46916199999993,72.569152999999972],[-110.48137699999995,72.565811000000053],[-110.54415899999998,72.569152999999972],[-110.57195300000001,72.575546000000145],[-110.58833299999998,72.583878000000141],[-110.593887,72.588592999999946],[-110.593887,72.594147000000135],[-110.576683,72.594986000000119],[-110.53888699999993,72.594986000000119],[-110.51666299999999,72.593322999999998],[-110.50446299999999,72.590820000000008],[-110.48249799999991,72.583603000000096],[-110.47444200000001,72.579437000000041],[-110.46888699999994,72.574706999999989],[-110.46916199999993,72.569152999999972]],[[-110.35582699999998,72.601929000000098],[-110.37304699999993,72.601379000000065],[-110.39499699999993,72.603043000000071],[-110.46417199999991,72.613312000000121],[-110.49472000000003,72.619141000000127],[-110.46916199999993,72.621368000000018],[-110.450287,72.621368000000018],[-110.39862099999993,72.618041999999946],[-110.35888699999992,72.614990000000034],[-110.34500100000002,72.611923000000104],[-110.34500100000002,72.606094000000098],[-110.35582699999998,72.601929000000098]],[[-108.510559,72.602768000000083],[-108.51999699999993,72.598038000000031],[-108.53778099999994,72.599426000000108],[-108.593613,72.61775200000011],[-108.604446,72.621643000000006],[-108.61221299999994,72.625809000000118],[-108.6141659999999,72.631088000000091],[-108.61361699999986,72.636657999999954],[-108.60388199999994,72.639435000000049],[-108.51722699999999,72.642487000000017],[-108.49665800000002,72.641372999999987],[-108.49194299999999,72.636657999999954],[-108.49416400000001,72.631927000000019],[-108.510559,72.602768000000083]],[[-110.30722000000003,72.630813999999987],[-110.36389199999996,72.630813999999987],[-110.39695699999993,72.636383000000137],[-110.41082799999998,72.639435000000049],[-110.40028399999994,72.643600000000049],[-110.36000100000001,72.648880000000133],[-110.31500199999999,72.651932000000045],[-110.28083799999996,72.642211999999972],[-110.281113,72.636383000000137],[-110.28999299999992,72.631653000000085],[-110.30722000000003,72.630813999999987]],[[-109.215012,72.790268000000083],[-109.22749299999992,72.787200999999982],[-109.24833699999999,72.788040000000137],[-109.37277199999994,72.806091000000094],[-109.41694599999988,72.815262000000075],[-109.41944899999993,72.820541000000048],[-109.37832600000002,72.828598],[-109.33389299999999,72.834990999999945],[-109.32028200000002,72.8316650000001],[-109.31220999999994,72.827484000000027],[-109.22444200000001,72.811096000000134],[-109.21056399999998,72.8077550000001],[-109.21166999999997,72.796371000000022],[-109.215012,72.790268000000083]],[[-95.735000999999954,72.798874000000012],[-95.753615999999909,72.796097000000088],[-95.771392999999932,72.799149],[-95.835555999999997,72.831100000000049],[-95.854172000000005,72.853591999999992],[-95.850829999999974,72.858321999999987],[-95.810546999999929,72.876647999999989],[-95.791106999999954,72.880264000000068],[-95.774170000000026,72.880264000000068],[-95.769164999999987,72.878036000000122],[-95.763061999999877,72.872482000000105],[-95.735275000000001,72.859985000000108],[-95.720550999999944,72.848037999999974],[-95.716949,72.84387200000009],[-95.714171999999905,72.838593000000117],[-95.71362299999987,72.832214000000079],[-95.718886999999938,72.809418000000051],[-95.725005999999951,72.803314],[-95.735000999999954,72.798874000000012]],[[-96.754181000000017,72.721374999999966],[-96.77027899999996,72.719710999999961],[-96.955275999999969,72.734146000000067],[-96.96945199999999,72.737761999999975],[-96.977782999999988,72.745254999999986],[-97.011123999999938,72.775818000000129],[-97.010283999999899,72.776657000000114],[-96.921386999999982,72.835815000000082],[-96.911117999999931,72.841094999999996],[-96.798614999999984,72.881363000000022],[-96.757232999999928,72.892761000000064],[-96.737212999999997,72.895264000000054],[-96.725554999999986,72.89498900000001],[-96.713332999999921,72.893326000000059],[-96.688323999999966,72.883330999999998],[-96.692215000000033,72.862762000000032],[-96.666945999999996,72.811096000000134],[-96.651672000000019,72.804152999999985],[-96.642501999999979,72.797760000000039],[-96.639998999999989,72.791655999999989],[-96.639998999999989,72.786652000000004],[-96.641388000000006,72.782211000000075],[-96.728058000000033,72.730545000000063],[-96.741378999999995,72.725539999999967],[-96.754181000000017,72.721374999999966]],[[-95.756957999999997,72.892487000000131],[-95.777495999999985,72.891937000000098],[-95.795272999999952,72.89498900000001],[-95.808334000000002,72.907210999999961],[-95.824721999999952,72.965271000000087],[-95.786666999999966,73.012496999999939],[-95.761672999999973,73.004714999999976],[-95.757232999999928,73.001663000000065],[-95.756118999999956,72.998596000000134],[-95.743606999999997,72.987762000000089],[-95.702498999999989,72.933593999999971],[-95.708343999999954,72.917206000000078],[-95.735549999999989,72.900543000000027],[-95.744445999999925,72.895827999999995],[-95.756957999999997,72.892487000000131]],[[-95.733886999999982,73.128860000000032],[-95.718062999999972,73.118042000000059],[-95.715835999999911,73.11192299999999],[-95.71556099999998,73.105545000000063],[-95.717772999999966,73.10026600000009],[-95.726395000000025,73.088881999999955],[-95.729171999999949,73.071105999999986],[-95.724715999999944,73.059142999999949],[-95.728332999999907,73.054428000000144],[-95.745543999999938,73.049423000000047],[-95.775283999999999,73.05525200000011],[-95.787216000000001,73.061920000000043],[-95.799437999999952,73.072769000000108],[-95.822509999999966,73.083054000000061],[-95.859726000000023,73.090820000000122],[-95.893341000000021,73.095824999999991],[-95.893065999999976,73.100815000000011],[-95.891112999999962,73.101089000000115],[-95.885009999999909,73.104706000000078],[-95.881942999999978,73.108597000000145],[-95.874709999999993,73.114150999999993],[-95.865279999999927,73.119979999999998],[-95.863051999999982,73.125259000000142],[-95.865279999999927,73.131363000000022],[-95.868332000000009,73.136383000000023],[-95.868880999999988,73.140548999999965],[-95.854995999999971,73.140548999999965],[-95.840835999999967,73.136658000000068],[-95.828888000000006,73.129974000000004],[-95.822509999999966,73.124695000000031],[-95.818343999999968,73.125533999999959],[-95.814163000000008,73.131087999999977],[-95.807495000000017,73.135544000000095],[-95.790833000000021,73.139434999999992],[-95.776397999999915,73.140548999999965],[-95.763335999999981,73.139709000000096],[-95.74499499999996,73.136658000000068],[-95.738892000000021,73.133880999999974],[-95.733886999999982,73.128860000000032]],[[-96.808333999999945,72.926376000000118],[-96.915282999999931,72.917755000000056],[-96.955275999999969,72.920531999999923],[-96.968338000000017,72.923874000000069],[-96.990554999999972,72.931090999999981],[-97.017776000000026,72.940536000000066],[-97.032227000000034,72.946640000000059],[-97.061385999999914,72.963318000000129],[-97.089721999999995,72.981658999999979],[-97.105834999999956,72.99832200000003],[-97.111938000000009,73.004714999999976],[-97.136947999999961,73.045822000000044],[-97.139724999999885,73.051926000000037],[-97.141953000000001,73.064148000000046],[-97.142775999999969,73.075272000000098],[-97.141112999999962,73.085541000000148],[-97.127776999999924,73.095824999999991],[-97.069732999999985,73.136932000000002],[-97.059432999999956,73.142212000000029],[-97.045546999999999,73.147491000000059],[-97.003341999999975,73.159714000000065],[-96.946944999999971,73.172484999999995],[-96.904449,73.179977000000122],[-96.848052999999993,73.187484999999981],[-96.809433000000013,73.189148000000102],[-96.786391999999978,73.18803400000013],[-96.771941999999967,73.181655999999975],[-96.755279999999971,73.175812000000121],[-96.653060999999923,73.136383000000023],[-96.602218999999934,73.099152000000117],[-96.580841000000021,73.081100000000049],[-96.575011999999901,73.074997000000053],[-96.568619000000012,73.062195000000088],[-96.565826000000015,73.056091000000038],[-96.564712999999983,73.050537000000077],[-96.565552000000025,73.044708000000014],[-96.573623999999995,73.033325000000048],[-96.636672999999973,72.965820000000065],[-96.643341000000021,72.96138000000002],[-96.65834000000001,72.954163000000108],[-96.697219999999959,72.941650000000038],[-96.743057000000022,72.933593999999971],[-96.765014999999948,72.930817000000047],[-96.808333999999945,72.926376000000118]],[[-96.90583799999996,73.220825000000048],[-96.924712999999997,73.218048000000124],[-96.944991999999957,73.218322999999941],[-96.984725999999966,73.220535000000041],[-97.040833000000021,73.228591999999992],[-97.079177999999956,73.235259999999982],[-97.106948999999929,73.242203000000131],[-97.117767000000015,73.249145999999939],[-97.115279999999927,73.253052000000025],[-97.090285999999878,73.261932000000058],[-97.058043999999995,73.269150000000081],[-97.035004000000015,73.272766000000104],[-96.977492999999981,73.273880000000077],[-96.967772999999966,73.273315000000082],[-96.968338000000017,73.267487000000131],[-96.951400999999976,73.239426000000037],[-96.909164000000033,73.238312000000064],[-96.896118000000001,73.237762000000032],[-96.886672999999917,73.231094000000041],[-96.889174999999966,73.224991000000102],[-96.90583799999996,73.220825000000048]],[[-113.99749799999995,72.799423000000104],[-114.01112399999994,72.79664600000001],[-114.06806899999998,72.795822000000044],[-114.15167200000002,72.798035000000027],[-114.20861799999994,72.796936000000073],[-114.22416699999997,72.794983000000116],[-114.23581699999994,72.791655999999989],[-114.35138699999993,72.747482000000048],[-114.35749800000002,72.74136400000009],[-114.35637700000001,72.735809000000017],[-114.33444199999997,72.693588000000034],[-114.327789,72.688873000000001],[-114.36582900000002,72.66276600000009],[-114.45168299999995,72.623032000000023],[-114.46501199999994,72.6202550000001],[-114.49553699999996,72.616379000000052],[-114.53138699999988,72.614990000000034],[-114.576683,72.60914600000001],[-114.58999599999993,72.606368999999916],[-114.60472099999998,72.60165400000011],[-114.55832700000002,72.560806000000014],[-114.42666600000001,72.556090999999981],[-114.38527699999986,72.555251999999996],[-114.35138699999993,72.557479999999941],[-114.33999599999999,72.560806000000014],[-114.33029199999999,72.565262000000075],[-114.32584400000002,72.571930000000066],[-114.12805200000003,72.626083000000051],[-114.10305800000003,72.632202000000063],[-114.06276699999995,72.640274000000034],[-113.99027999999998,72.651382000000012],[-113.91027800000001,72.659148999999957],[-113.89306599999998,72.660262999999986],[-113.88333099999988,72.657486000000063],[-113.89046499999995,72.648048000000017],[-113.89222699999999,72.640822999999955],[-113.88054699999992,72.637207000000103],[-113.858047,72.635817999999915],[-113.80666399999996,72.639160000000061],[-113.76222199999995,72.646103000000039],[-113.70834400000001,72.656937000000084],[-113.67138699999992,72.666656000000103],[-113.61277799999988,72.683868000000132],[-113.58750899999995,72.689971999999955],[-113.54666099999997,72.698029000000133],[-113.51611300000002,72.701934999999992],[-113.50611900000001,72.699141999999995],[-113.52084400000001,72.688034000000016],[-113.55055199999987,72.675262000000032],[-113.57250999999991,72.667480000000069],[-113.61945299999996,72.653594999999996],[-113.64277599999991,72.646652000000017],[-113.68776699999995,72.631927000000019],[-113.70944199999991,72.624145999999996],[-113.72917200000001,72.615540000000067],[-113.73082699999998,72.609421000000054],[-113.72193900000002,72.60554499999995],[-113.69972200000001,72.604155999999989],[-113.68443299999996,72.606094000000098],[-113.65750100000002,72.611374000000012],[-113.46639999999996,72.665268000000026],[-113.44275700000003,72.672211000000004],[-113.43639400000001,72.67804000000001],[-113.43167099999999,72.684708000000001],[-113.41000399999996,72.729431000000034],[-113.41332999999992,72.734711000000118],[-113.41972399999997,72.739150999999936],[-113.43138099999999,72.742751999999996],[-113.44860799999992,72.744979999999998],[-113.53527799999995,72.748871000000065],[-113.58029199999987,72.751663000000121],[-113.59750399999996,72.754166000000112],[-113.60637699999995,72.758331000000112],[-113.60804699999994,72.769439999999975],[-113.59889199999998,72.782760999999937],[-113.58249699999999,72.793045000000006],[-113.38694800000002,72.907486000000006],[-113.33139,72.935257000000092],[-113.30277999999998,72.948868000000061],[-113.26862299999999,72.960266000000047],[-113.14862099999999,72.994705000000067],[-113.06276699999989,73.00749200000007],[-113.02806099999998,73.009430000000009],[-113.00695799999994,73.008881000000088],[-112.823059,72.998871000000008],[-112.81139400000001,72.9952550000001],[-112.79472399999997,72.982208000000071],[-112.78582799999998,72.978317000000004],[-112.77139299999993,72.975266000000033],[-112.75418100000002,72.972763000000043],[-112.708618,72.969711000000132],[-112.64362299999993,72.966934000000037],[-112.60082999999986,72.963607999999965],[-112.56360599999994,72.959152000000074],[-112.51500699999991,72.951096000000007],[-112.5,72.947922000000119],[-112.47165699999994,72.941925000000026],[-112.44583099999994,72.935257000000092],[-112.41388699999993,72.924149000000057],[-112.387787,72.911102000000028],[-112.37638900000002,72.907760999999994],[-112.36193800000001,72.904709000000082],[-112.34472700000003,72.902205999999921],[-112.27944899999994,72.896941999999967],[-112.23777799999999,72.895537999999988],[-112.14195299999994,72.896378000000027],[-112.09834299999989,72.894150000000025],[-112.06166099999996,72.889434999999992],[-111.94776899999999,72.870529000000147],[-111.78333299999997,72.834717000000012],[-111.67582699999997,72.814697000000024],[-111.65888999999999,72.8119200000001],[-111.59416199999998,72.806641000000127],[-111.54055799999998,72.799423000000104],[-111.52639799999997,72.796371000000022],[-111.23693799999995,72.726379000000122],[-111.22582999999997,72.7227630000001],[-111.22000100000002,72.718323000000055],[-111.20249899999999,72.67053199999998],[-111.20527599999997,72.664429000000041],[-111.26278699999995,72.579163000000108],[-111.27694699999989,72.567490000000078],[-111.45221699999996,72.477768000000026],[-111.52778599999999,72.44999700000011],[-111.65110800000002,72.40887500000008],[-111.675003,72.402206000000035],[-111.736107,72.395264000000111],[-111.76999699999993,72.393600000000106],[-111.78527799999995,72.391936999999984],[-111.81220999999999,72.386658000000011],[-111.859734,72.373306000000014],[-111.890289,72.360535000000084],[-111.89890299999996,72.355545000000006],[-111.90556299999997,72.349716000000001],[-111.90167200000002,72.346099999999979],[-111.86250299999995,72.330551000000071],[-111.85138699999999,72.326934999999992],[-111.66388699999999,72.276382000000012],[-111.50446299999999,72.311920000000043],[-111.44499200000001,72.328873000000101],[-111.42443799999995,72.337204000000042],[-111.41915899999998,72.343871999999976],[-111.43305999999995,72.346939000000077],[-111.45140100000003,72.346939000000077],[-111.487213,72.336655000000064],[-111.51944700000001,72.334152000000074],[-111.5616609999999,72.336655000000064],[-111.578056,72.339156999999943],[-111.58917200000002,72.342758000000003],[-111.60582699999998,72.350815000000011],[-111.61165599999998,72.361099000000024],[-111.609444,72.367203000000075],[-111.58833299999998,72.376373000000115],[-111.37444299999993,72.446640000000002],[-111.350281,72.453322999999955],[-111.3094329999999,72.460815000000082],[-111.29387700000001,72.462768999999923],[-111.26583899999997,72.465546000000018],[-111.24889400000001,72.466385000000002],[-111.22860699999995,72.465546000000018],[-111.20249899999999,72.46026599999999],[-111.21333300000003,72.446930000000009],[-111.23277299999995,72.4369200000001],[-111.24500299999994,72.433594000000085],[-111.27223200000003,72.428588999999988],[-111.30139200000002,72.404160000000047],[-111.27749599999993,72.369979999999941],[-111.11277799999993,72.335266000000104],[-111.09528399999994,72.379700000000014],[-111.09137699999997,72.401932000000102],[-111.00446299999999,72.46527100000003],[-110.8691639999999,72.473312000000078],[-110.82444799999996,72.479156000000103],[-110.80304699999999,72.485259999999926],[-110.82501200000002,72.503875999999934],[-110.83332799999999,72.519150000000025],[-110.827789,72.525818000000015],[-110.73805199999993,72.565536000000009],[-110.72749299999998,72.569716999999912],[-110.71528599999999,72.573044000000039],[-110.70140100000003,72.575546000000145],[-110.68083199999995,72.574706999999989],[-110.66610700000001,72.573044000000039],[-110.53527799999995,72.546646000000067],[-110.52639799999992,72.526931999999988],[-110.57501199999996,72.51388500000013],[-110.59445199999993,72.50471500000009],[-110.60166899999996,72.498871000000065],[-110.60193600000002,72.493317000000104],[-110.59361299999989,72.489150999999993],[-110.55249000000003,72.47387700000013],[-110.53083800000002,72.46665999999999],[-110.35056299999997,72.428040000000067],[-110.32861299999996,72.426086000000055],[-110.30999799999995,72.426086000000055],[-110.30387899999999,72.430542000000116],[-110.31194299999993,72.434708000000057],[-110.41027799999995,72.462204000000099],[-110.50334199999998,72.484985000000108],[-110.514183,72.488585999999998],[-110.52250700000002,72.492752000000053],[-110.52778599999999,72.497482000000105],[-110.53056299999992,72.502486999999974],[-110.52333099999998,72.508330999999998],[-110.39639299999999,72.552200000000084],[-110.38417099999998,72.555542000000003],[-110.36527999999998,72.555542000000003],[-110.34333800000002,72.55386400000009],[-110.32389799999993,72.551650999999936],[-110.31304899999998,72.547760000000039],[-110.22028399999994,72.51388500000013],[-110.20140100000003,72.505829000000062],[-110.15527299999997,72.480270000000075],[-110.06139399999995,72.437484999999924],[-110.05055199999993,72.433868000000018],[-110.03999299999998,72.438034000000073],[-110.02194199999991,72.447754000000145],[-109.99889400000001,72.455261000000121],[-109.97112300000003,72.46026599999999],[-109.95249899999999,72.459991000000116],[-109.91972399999986,72.454711999999972],[-109.81388900000002,72.428314],[-109.79666099999992,72.426926000000094],[-109.78278399999999,72.429428000000144],[-109.77806099999998,72.434708000000057],[-109.78582799999992,72.438873000000058],[-109.80583199999995,72.445526000000029],[-109.83029199999999,72.452208999999982],[-110.04250300000001,72.50471500000009],[-110.22305299999999,72.545822000000101],[-110.23665599999998,72.548874000000069],[-110.24777199999994,72.552765000000136],[-110.25583599999987,72.55693100000002],[-110.252792,72.56303400000013],[-110.24221799999992,72.566940000000045],[-110.22165699999994,72.566086000000041],[-110.12082699999996,72.560257000000036],[-110.10417200000001,72.557754999999986],[-110.09056099999998,72.55442800000003],[-110.06889299999995,72.546936000000073],[-110.03888699999987,72.535538000000088],[-110.02278099999995,72.527206000000092],[-110.00361599999991,72.519440000000031],[-109.97112300000003,72.508330999999998],[-109.90499899999998,72.487198000000092],[-109.88861099999986,72.484711000000004],[-109.80943300000001,72.491653000000099],[-109.79527300000001,72.49414100000007],[-109.78472899999997,72.498322000000144],[-109.78278399999999,72.503051999999968],[-109.94275700000003,72.604155999999989],[-109.95889299999993,72.612762000000089],[-110.09306300000003,72.65637200000009],[-110.11332699999997,72.657211000000018],[-110.17111199999999,72.648330999999985],[-110.18666100000002,72.646652000000017],[-110.22112299999998,72.645264000000054],[-110.241669,72.646103000000039],[-110.25556899999998,72.649429000000055],[-110.26666299999999,72.653046000000018],[-110.283073,72.66137700000013],[-110.28832999999992,72.666091999999992],[-110.29110700000001,72.671097000000032],[-110.20973200000003,72.71775800000006],[-110.20056199999999,72.7227630000001],[-110.18831599999999,72.726089000000115],[-110.17083699999995,72.726928999999984],[-110.078079,72.727065999999979],[-110.04167200000001,72.722488000000055],[-110.03056300000003,72.718596999999988],[-109.99804699999999,72.701934999999992],[-109.98693800000001,72.698318000000029],[-109.85221899999993,72.665817000000118],[-109.83277899999996,72.663315000000068],[-109.81723,72.664992999999981],[-109.77084399999995,72.716385000000116],[-109.77027900000002,72.722214000000122],[-109.78138699999994,72.725815000000011],[-109.80082700000003,72.728043000000127],[-109.81973299999993,72.728043000000127],[-110.03111299999995,72.747757000000036],[-110.17887899999994,72.769149999999968],[-110.17138699999998,72.774993999999992],[-110.16832699999986,72.781097000000102],[-110.17083699999995,72.786101999999971],[-110.17639199999996,72.790817000000004],[-110.21166999999997,72.818328999999949],[-110.24526999999995,72.823607999999979],[-110.32640099999992,72.826385000000016],[-110.36638599999998,72.827208999999982],[-110.47666899999996,72.834990999999945],[-110.493607,72.83776899999998],[-110.53555299999994,72.847214000000008],[-110.54666099999997,72.850815000000068],[-110.56331599999999,72.859145999999953],[-110.74276699999996,72.957214000000135],[-110.75389099999995,72.966385000000059],[-110.75666799999993,72.971374999999966],[-110.75389099999995,72.977768000000083],[-110.74804699999993,72.984421000000054],[-110.74082900000002,72.989975000000072],[-110.73166700000002,72.994980000000112],[-110.70834400000001,73.002487000000031],[-110.69415300000003,73.004990000000021],[-110.67832899999991,73.006653000000142],[-110.61860699999994,73.011383000000137],[-110.51139799999993,73.015274000000034],[-110.432503,73.014435000000105],[-110.39083899999997,73.012496999999939],[-110.16610700000001,72.996094000000085],[-110.05110199999996,72.984711000000061],[-109.91887700000001,72.96804800000001],[-109.65943899999996,72.924988000000042],[-109.63445299999995,72.918045000000063],[-109.61805700000002,72.909424000000115],[-109.618607,72.903869999999927],[-109.62943999999993,72.899719000000061],[-109.66111799999999,72.896652000000131],[-109.69471699999997,72.894440000000088],[-109.724716,72.890549000000021],[-109.73889200000002,72.888046000000031],[-109.75,72.883881000000031],[-109.75472999999994,72.878585999999984],[-109.74665799999997,72.874420000000043],[-109.65862300000003,72.844711000000018],[-109.379707,72.770538000000101],[-109.22778299999993,72.761658000000068],[-109.05110200000001,72.680267000000072],[-109.02999899999998,72.647217000000012],[-109.04915599999993,72.604155999999989],[-109.045547,72.572495000000117],[-109.04332699999998,72.567490000000078],[-109.02861000000001,72.565536000000009],[-108.88249200000001,72.564423000000147],[-108.86527999999998,72.564987000000087],[-108.85109699999998,72.567490000000078],[-108.84194899999994,72.572495000000117],[-108.81916799999993,72.591095000000053],[-108.72277800000001,72.582763999999941],[-108.70361300000002,72.58027600000014],[-108.67666600000001,72.573883000000023],[-108.64472999999987,72.562485000000038],[-108.62138399999998,72.549988000000042],[-108.61638599999998,72.54525799999999],[-108.58805799999993,72.505554000000075],[-108.58944700000001,72.494431000000077],[-108.59638999999993,72.482208000000014],[-108.60278299999999,72.475540000000024],[-108.61054999999993,72.469986000000063],[-108.62470999999994,72.457489000000066],[-108.63722200000001,72.444427000000019],[-108.64499699999993,72.426651000000049],[-108.65055799999999,72.403595000000053],[-108.66361999999998,72.362761999999975],[-108.66278099999994,72.346374999999966],[-108.65834000000001,72.336105000000032],[-108.52416999999997,72.199706999999989],[-108.45500199999998,72.157211000000132],[-108.44415300000003,72.161102000000028],[-108.42832900000002,72.158325000000104],[-108.41805999999997,72.154434000000037],[-108.404449,72.14694199999991],[-108.40222199999994,72.141663000000108],[-108.39890300000002,72.113602000000071],[-108.39472999999998,72.042755000000113],[-108.39527900000002,72.036926000000108],[-108.396118,72.03137200000009],[-108.31639099999995,71.984146000000067],[-108.20417799999996,71.963882000000126],[-108.19138299999992,71.960541000000092],[-108.18666100000002,71.955826000000059],[-108.18276999999995,71.945525999999916],[-108.18971299999998,71.933318999999983],[-108.19611399999997,71.92692599999998],[-108.23361199999999,71.899719000000061],[-108.28639199999992,71.860809000000131],[-108.28278399999999,71.792206000000022],[-108.28083800000002,71.786925999999994],[-108.24276700000001,71.718597000000045],[-108.23805199999998,71.713882000000012],[-108.23082699999992,71.709426999999948],[-108.22055099999994,71.705826000000116],[-108.20777900000002,71.70248400000014],[-108.19248999999996,71.699707000000046],[-108.17748999999998,71.701096000000064],[-108.14111300000002,71.710541000000148],[-108.13054699999992,71.714432000000045],[-108.10333300000002,71.719147000000078],[-108.08693700000003,71.719711000000018],[-108.066101,71.71775800000006],[-108.03639199999998,71.705826000000116],[-108.02194199999997,71.697204999999997],[-107.98805199999987,71.675537000000077],[-107.97609699999987,71.666381999999999],[-107.96694899999994,71.656936999999971],[-107.96777299999991,71.651382000000069],[-107.91583300000002,71.624984999999981],[-107.84528399999994,71.603867000000093],[-107.82888799999995,71.604431000000034],[-107.75334199999998,71.610260000000039],[-107.74109599999997,71.613312000000121],[-107.73194899999999,71.618042000000003],[-107.72416699999991,71.623871000000008],[-107.72609699999998,71.629149999999981],[-107.74054699999994,71.637496999999939],[-107.75028999999995,71.641373000000044],[-107.77583299999998,71.648041000000035],[-107.82472199999995,71.672759999999982],[-107.83194700000001,71.676926000000037],[-107.83640300000002,71.681656000000089],[-107.83833300000003,71.686920000000043],[-107.83750899999995,71.692474000000061],[-107.82305899999994,71.716934000000094],[-107.81527699999998,71.7227630000001],[-107.80444299999999,71.726653999999996],[-107.78943600000002,71.728043000000014],[-107.7519529999999,71.726653999999996],[-107.73665599999998,71.723602000000085],[-107.63027999999997,71.732208000000014],[-107.49472000000003,71.786377000000016],[-107.451683,71.857483000000059],[-107.36361699999992,71.871917999999994],[-107.34555099999994,71.871643000000006],[-107.29695099999998,71.874145999999939],[-107.28333299999997,71.876373000000001],[-107.27084400000001,71.879424999999969],[-107.26139799999999,71.884155000000135],[-107.25334199999998,71.889708999999982],[-107.25250199999994,71.895537999999988],[-107.25695799999994,71.900269000000094],[-107.264183,71.904434000000094],[-107.41805999999997,71.953873000000101],[-107.59638999999993,72.004439999999988],[-107.61389199999996,72.012496999999996],[-107.62581599999999,72.021652000000017],[-107.63027999999997,72.026382000000069],[-107.65139799999997,72.061096000000134],[-107.65334300000001,72.066375999999991],[-107.64943700000003,72.072495000000004],[-107.63999899999993,72.077208999999982],[-107.62609899999995,72.079437000000098],[-107.61389199999996,72.082764000000054],[-107.61000100000001,72.08859300000006],[-107.61193799999995,72.093872000000033],[-107.63527699999997,72.121917999999937],[-107.68138099999999,72.136108000000036],[-107.699997,72.138596000000007],[-107.729446,72.137207000000046],[-107.74333199999995,72.134994999999947],[-107.76027699999992,72.134430000000123],[-107.77887699999997,72.136658000000068],[-107.78083800000002,72.141937000000041],[-107.787216,72.184708000000114],[-107.77806099999992,72.208038000000045],[-107.843887,72.354156000000046],[-107.87748699999992,72.424423000000104],[-107.88639799999993,72.519713999999965],[-107.87693799999994,72.524428999999998],[-107.87165799999997,72.529709000000082],[-107.87666299999995,72.567215000000033],[-107.88054699999998,72.577484000000084],[-107.88555899999989,72.586655000000007],[-107.91555799999998,72.597214000000065],[-107.92887899999994,72.60054000000008],[-107.99082900000002,72.612487999999985],[-108.00418099999996,72.615814],[-108.01194800000002,72.619980000000112],[-108.025284,72.666091999999992],[-108.02639799999997,72.676926000000037],[-108.02667199999996,72.719986000000006],[-108.05110200000001,72.781372000000147],[-108.05803699999996,72.791092000000049],[-108.11193799999995,72.890823000000125],[-108.15194699999989,72.971100000000092],[-108.16528299999993,73.010817999999972],[-108.26363400000002,73.091934000000094],[-108.29361,73.120254999999986],[-108.29998799999998,73.135544000000095],[-108.295547,73.147491000000059],[-108.291946,73.153595000000053],[-108.28527799999995,73.159987999999998],[-108.26862299999999,73.171371000000022],[-108.23029299999996,73.187484999999981],[-108.18110699999994,73.201660000000061],[-108.16639700000002,73.203873000000044],[-108.13390400000003,73.206940000000145],[-108.11582900000002,73.207489000000066],[-108.07389799999993,73.205261000000121],[-108.02390300000002,73.201096000000121],[-107.93443300000001,73.187484999999981],[-107.91471899999993,73.184981999999991],[-107.89388999999994,73.183868000000018],[-107.87416099999996,73.183594000000085],[-107.86416599999995,73.188583000000051],[-107.87222300000002,73.192748999999935],[-107.90471600000001,73.204163000000051],[-107.94611399999991,73.214157000000057],[-108.01027699999997,73.226089000000002],[-108.05166599999995,73.236098999999911],[-108.08444199999997,73.247482000000105],[-108.11638599999992,73.264435000000049],[-108.15361000000001,73.302475000000129],[-108.08444199999997,73.349990999999989],[-108.07140399999992,73.353317000000061],[-108.05332899999996,73.353867000000093],[-107.99109599999991,73.351379000000122],[-107.94722000000002,73.348328000000095],[-107.77139299999999,73.323883000000023],[-107.675003,73.323318000000029],[-107.63110399999999,73.319991999999957],[-107.614441,73.31721500000009],[-107.40334300000001,73.270537999999988],[-107.33583099999987,73.248031999999967],[-107.24999999999994,73.217484000000013],[-107.21028099999995,73.201660000000061],[-107.18888900000002,73.194138000000123],[-107.172234,73.191086000000041],[-107.10582699999998,73.17942800000003],[-107.06973299999999,73.173874000000012],[-107.05027799999999,73.173598999999967],[-107.03694200000001,73.176651000000106],[-107.025284,73.180542000000003],[-107.01666299999999,73.186095999999964],[-107.01083399999999,73.191360000000145],[-107.02027899999996,73.200821000000133],[-107.05249000000003,73.212493999999936],[-107.09028599999994,73.223037999999974],[-107.11081699999994,73.231369000000086],[-107.11860699999994,73.23553499999997],[-107.12361099999998,73.240265000000022],[-107.11945300000002,73.246368000000132],[-107.03028899999998,73.29553199999998],[-107.01862299999999,73.299423000000047],[-106.88249199999996,73.312195000000031],[-106.86138899999997,73.310806000000014],[-106.76139799999999,73.293045000000063],[-106.75083899999993,73.289153999999996],[-106.74610899999999,73.284423999999944],[-106.74109599999991,73.268875000000037],[-106.72721899999993,73.254715000000147],[-106.69666299999994,73.237488000000099],[-106.66471899999999,73.226089000000002],[-106.65110800000002,73.222487999999942],[-106.63474300000001,73.219711000000075],[-106.60305800000003,73.216660000000047],[-106.58222999999998,73.21527100000003],[-106.39862099999993,73.149155000000064],[-106.24027999999998,73.085815000000082],[-106.06388899999996,73.047759999999982],[-106.04750100000001,73.044708000000014],[-106.02834300000001,73.044434000000081],[-105.94888300000002,73.053313999999943],[-105.91027799999989,73.058868000000132],[-105.87638899999996,73.058318999999983],[-105.85555999999997,73.056931000000077],[-105.84221600000001,73.053588999999988],[-105.83194699999996,73.049713000000111],[-105.82472200000001,73.045258000000047],[-105.82195299999995,73.034987999999942],[-105.82333399999999,73.029433999999981],[-105.83249699999999,73.017211999999972],[-105.82972699999993,73.006942999999978],[-105.82224299999996,73.002487000000031],[-105.80471799999998,72.994431000000134],[-105.79444899999993,72.990265000000079],[-105.76083399999999,72.976929000000098],[-105.737503,72.969436999999971],[-105.69776899999999,72.959152000000074],[-105.67859599999997,72.95637499999998],[-105.62917299999998,72.939972000000125],[-105.56220999999999,72.913040000000024],[-105.445831,72.838318000000072],[-105.32611099999991,72.746368000000075],[-105.32195299999995,72.741653000000042],[-105.32055700000001,72.736649000000057],[-105.32528699999995,72.730545000000063],[-105.33693700000003,72.726653999999996],[-105.35610999999994,72.727203000000088],[-105.37777699999998,72.729431000000034],[-105.39778100000001,72.737198000000035],[-105.41194200000001,72.745819000000097],[-105.41915899999992,72.750275000000045],[-105.42748999999992,72.759720000000073],[-105.43472300000002,72.764160000000118],[-105.46472199999994,72.775818000000129],[-105.47778299999999,72.779434000000037],[-105.49833699999994,72.780822999999998],[-105.51000999999997,72.776932000000102],[-105.45722999999992,72.702773999999977],[-105.44722000000002,72.698868000000061],[-105.38249200000001,72.681366000000025],[-105.35665899999998,72.674423000000047],[-105.29472399999997,72.631927000000019],[-105.23110999999994,72.543320000000051],[-105.19583099999988,72.482483000000059],[-105.19972199999995,72.460541000000148],[-105.20140100000003,72.454711999999972],[-105.20612299999993,72.448868000000118],[-105.21777299999991,72.444977000000051],[-105.23194899999993,72.447205000000054],[-105.26167299999992,72.458878000000027],[-105.27722199999994,72.462204000000099],[-105.29305999999997,72.460815000000082],[-105.301941,72.455261000000121],[-105.29778299999987,72.450546000000088],[-105.24137899999999,72.399718999999948],[-105.23029299999996,72.390549000000078],[-105.21665999999993,72.381927000000076],[-105.18998699999997,72.369705000000124],[-105.16055299999988,72.35775799999999],[-105.13999899999999,72.344711000000132],[-105.04415899999998,72.248032000000023],[-105.03639199999986,72.238586000000055],[-105.03362299999998,72.234711000000061],[-105.02443700000003,72.219986000000119],[-104.99166899999989,72.203323000000012],[-104.95749699999999,72.181366000000139],[-104.95527599999997,72.171097000000145],[-104.95722999999992,72.165543000000127],[-104.96167000000003,72.159424000000115],[-104.96916199999998,72.153046000000131],[-104.97805799999992,72.147491000000059],[-104.98805199999993,72.142761000000007],[-104.99973299999999,72.13888500000013],[-105.02999899999998,72.124695000000031],[-105.03751399999999,72.118317000000104],[-105.03639199999986,72.11303700000002],[-105.01862299999993,72.066939999999931],[-104.92944299999988,72.034149000000014],[-104.87193299999996,71.989975000000072],[-104.82917800000001,71.937195000000031],[-104.82444800000002,71.927475000000129],[-104.82028200000002,71.906647000000078],[-104.82556199999999,71.889708999999982],[-104.82250999999997,71.874145999999939],[-104.8186189999999,71.86914100000007],[-104.78999299999998,71.84137000000004],[-104.78333299999986,71.836929000000112],[-104.771118,71.833603000000096],[-104.70056199999999,71.829987000000017],[-104.68554699999993,71.826935000000105],[-104.67331699999994,71.823317999999972],[-104.66000400000001,71.81442300000009],[-104.53472899999986,71.719711000000018],[-104.37638900000002,71.598038000000031],[-104.36638600000003,71.588882000000126],[-104.35527000000002,71.574432000000002],[-104.35916099999997,71.563309000000004],[-104.36361699999998,71.557204999999954],[-104.37581599999993,71.544707999999957],[-104.383331,71.538315000000011],[-104.40167200000002,71.514435000000049],[-104.40361000000001,71.508605999999986],[-104.40194700000001,71.498322000000144],[-104.34416199999993,71.410811999999964],[-104.33332799999994,71.396378000000141],[-104.35722399999986,71.357483000000002],[-104.37165799999997,71.360809000000017],[-104.38918299999995,71.363602000000014],[-104.40805099999994,71.364990000000091],[-104.43804899999998,71.362761999999975],[-104.45056199999988,71.359711000000118],[-104.46167000000003,71.355820000000051],[-104.47138999999993,71.351089000000115],[-104.48860199999996,71.339980999999966],[-104.49333200000001,71.334152000000131],[-104.49694799999997,71.322769000000108],[-104.49500299999988,71.312485000000095],[-104.49137899999988,71.307480000000055],[-104.46250900000001,71.281097000000045],[-104.44972200000001,71.272217000000012],[-104.43888900000002,71.257767000000115],[-104.43971299999998,71.246933000000013],[-104.44055200000003,71.236098999999967],[-104.44444299999992,71.224990999999989],[-104.44888300000002,71.218872000000147],[-104.470551,71.199706999999989],[-104.49610899999999,71.183044000000109],[-104.52555799999999,71.168869000000029],[-104.55610699999994,71.155548000000067],[-104.57805599999995,71.148041000000092],[-104.59056099999998,71.145263999999997],[-104.62361099999987,71.133605999999986],[-104.64862099999999,71.11914100000007],[-104.60472099999998,71.079711999999972],[-104.58583099999998,71.066666000000055],[-104.57028199999996,71.05831900000004],[-104.53666699999997,71.044144000000131],[-104.48916600000001,71.024703999999986],[-104.45667300000002,71.013610999999969],[-104.33778399999994,70.979706000000078],[-104.23805199999998,70.964996000000099],[-104.22389199999998,70.961928999999998],[-104.122772,70.914703000000145],[-104.11665299999999,70.910262999999929],[-104.09999099999999,70.891372999999987],[-104.07640099999992,70.863037000000077],[-104.05277999999993,70.834427000000062],[-104.04583699999995,70.824996999999996],[-104.04277000000002,70.804153000000042],[-104.02887699999991,70.784988000000055],[-104.01583900000003,70.770827999999938],[-104.00029000000001,70.757216999999969],[-103.99416400000001,70.75277699999998],[-103.98528299999998,70.748871000000065],[-103.97138999999987,70.745529000000147],[-103.95472699999999,70.742752000000053],[-103.94027699999987,70.741653000000099],[-103.92443800000001,70.741928000000087],[-103.806107,70.723037999999974],[-103.73111,70.691649999999925],[-103.64083899999997,70.646652000000017],[-103.63417099999992,70.637206999999989],[-103.62470999999994,70.628036000000009],[-103.59889199999992,70.615814000000057],[-103.55638099999999,70.600815000000011],[-103.52333099999987,70.59304800000001],[-103.506958,70.590271000000143],[-103.49027999999998,70.587494000000049],[-103.47305299999999,70.586928999999998],[-103.44193999999999,70.587204000000042],[-103.39835399999993,70.590546000000131],[-103.34277299999997,70.59664900000007],[-103.32721699999991,70.59664900000007],[-103.30915799999997,70.595260999999994],[-103.26500699999997,70.581665000000044],[-103.239441,70.569443000000035],[-103.20472699999993,70.548035000000141],[-103.14972699999998,70.513885000000016],[-103.13276699999994,70.505829000000119],[-103.12165800000002,70.501938000000052],[-103.095551,70.498031999999967],[-103.01194799999996,70.492202999999961],[-102.97693600000002,70.489975000000015],[-102.96056399999998,70.489151000000049],[-102.93055699999996,70.490540000000067],[-102.92027299999995,70.494980000000055],[-102.91443599999991,70.500000000000114],[-102.915009,70.505264000000068],[-102.91832699999998,70.510268999999937],[-102.92388900000003,70.514435000000049],[-102.93250299999988,70.518600000000049],[-102.95722999999998,70.525543000000027],[-102.97528099999994,70.527205999999978],[-103.03028899999998,70.534988000000112],[-103.05526700000001,70.541931000000091],[-103.09973099999991,70.55664100000007],[-103.10833700000001,70.56053199999991],[-103.12609899999995,70.57388300000008],[-103.13999899999993,70.609421000000111],[-103.15556300000003,70.654984000000013],[-103.156113,70.659987999999998],[-103.15387699999997,70.665817000000004],[-103.14916999999991,70.67164600000001],[-103.13667299999992,70.674423000000104],[-103.12110899999999,70.674698000000092],[-103.10417200000001,70.673873999999955],[-103.08583099999998,70.672484999999995],[-103.06667299999998,70.669983000000059],[-103.0250089999999,70.660262999999986],[-103.00250199999999,70.652771000000087],[-102.85665899999992,70.597763000000043],[-102.84834299999994,70.593871999999976],[-102.84528399999999,70.588882000000126],[-102.83833300000003,70.574158000000068],[-102.83583099999998,70.548035000000141],[-102.74445300000002,70.494705000000067],[-102.61501299999992,70.460541000000035],[-102.60138699999999,70.457214000000079],[-102.52027899999996,70.438309000000118],[-102.45749699999988,70.426376000000118],[-102.40862299999998,70.417479999999955],[-102.33332799999999,70.397766000000047],[-102.281387,70.384155000000078],[-102.11749299999997,70.339432000000045],[-101.99610899999988,70.287201000000096],[-101.97972099999998,70.279160000000047],[-101.92555199999998,70.260544000000039],[-101.89334099999996,70.254439999999988],[-101.87666300000001,70.25360100000006],[-101.86138899999997,70.253876000000048],[-101.84916699999985,70.256653000000142],[-101.83805799999993,70.260268999999994],[-101.828056,70.264709000000039],[-101.82195299999995,70.269714000000079],[-101.81722999999988,70.281097000000102],[-101.81749699999995,70.286102000000142],[-101.80972300000002,70.297759999999982],[-101.79972800000002,70.302199999999971],[-101.71472199999999,70.308868000000132],[-101.69803599999995,70.308029000000033],[-101.68195300000002,70.304977000000065],[-101.59944200000001,70.275818000000129],[-101.58860800000002,70.271927000000062],[-101.58029199999993,70.267761000000121],[-101.58029199999993,70.262771999999984],[-101.58556399999998,70.256653000000142],[-101.60555999999997,70.247757000000036],[-101.63417099999998,70.233047000000056],[-101.64306599999998,70.227768000000083],[-101.65083300000003,70.221374999999966],[-101.65055799999993,70.210815000000025],[-101.64222699999993,70.196365000000071],[-101.62249799999995,70.162491000000045],[-101.61416599999995,70.153046000000018],[-101.55999800000001,70.113602000000071],[-101.55194099999994,70.109420999999998],[-101.53971899999999,70.106934000000138],[-101.52667200000002,70.108597000000032],[-101.39723200000003,70.139435000000049],[-101.39222699999999,70.150543000000027],[-101.37581599999999,70.177765000000136],[-101.358047,70.176086000000112],[-101.28666699999991,70.152480999999966],[-101.265289,70.14498900000001],[-101.25723299999999,70.140823000000125],[-101.25195300000001,70.13638300000008],[-101.23889200000002,70.133040999999992],[-101.22222899999991,70.131927000000019],[-101.14499699999999,70.15525800000006],[-101.13500999999997,70.159713999999951],[-101.12721299999998,70.166092000000106],[-101.12193300000001,70.171921000000111],[-101.11665299999993,70.183044000000109],[-101.12193300000001,70.192749000000049],[-101.11193800000001,70.19720500000011],[-101.09555099999994,70.196365000000071],[-101.03971899999999,70.183044000000109],[-100.99973299999999,70.172760000000096],[-100.98388699999992,70.164703000000145],[-100.97332799999998,70.155548000000067],[-100.97332799999998,70.145264000000054],[-100.97609699999992,70.134430000000009],[-100.96028099999995,70.053040000000067],[-100.92194399999988,69.965271000000143],[-100.88694800000002,69.884155000000021],[-100.870003,69.814423000000147],[-100.870003,69.788315000000011],[-100.87805200000003,69.771652000000131],[-100.89998600000001,69.753875999999991],[-100.92555199999998,69.721100000000035],[-100.92027300000001,69.711380000000133],[-100.92027300000001,69.701096000000121],[-100.92832899999996,69.684143000000006],[-100.93859900000001,69.672484999999995],[-100.94748699999997,69.666930999999977],[-100.95722999999992,69.662490999999989],[-100.96916199999998,69.659714000000065],[-101.06443799999994,69.648604999999975],[-101.28362300000003,69.663879000000065],[-101.31777999999991,69.667480000000126],[-101.32972699999988,69.669983000000116],[-101.34028599999999,69.678864000000033],[-101.43831599999993,69.769714000000022],[-101.45472699999993,69.798874000000069],[-101.46806299999997,69.823044000000095],[-101.47332799999998,69.832763999999997],[-101.468613,69.838882000000069],[-101.458618,69.843322999999998],[-101.43998699999997,69.853317000000004],[-101.43472300000002,69.859146000000067],[-101.41610700000001,69.886932000000115],[-101.41860999999989,69.891936999999984],[-101.42944299999994,69.906097000000045],[-101.44526699999994,69.909149000000014],[-101.45638999999994,69.905548000000124],[-101.46888699999994,69.893051000000128],[-101.47917199999995,69.881362999999908],[-101.51972999999992,69.828323000000069],[-101.53999299999998,69.79942299999999],[-101.54750100000001,69.78776600000009],[-101.55972299999996,69.764998999999989],[-101.56220999999999,69.754165999999998],[-101.56194299999999,69.74914600000011],[-101.564438,69.743317000000104],[-101.569458,69.737488000000099],[-101.60777300000001,69.705825999999945],[-101.65249599999999,69.6827550000001],[-101.69193999999999,69.680267000000129],[-101.69722000000002,69.684708000000057],[-101.75805699999995,69.717758000000117],[-101.76611300000002,69.721924000000001],[-101.77916700000003,69.725266000000147],[-101.85637700000001,69.743042000000116],[-101.87000299999994,69.74414100000007],[-101.88722200000001,69.733321999999987],[-101.89916999999997,69.73054500000012],[-101.91416900000002,69.73054500000012],[-101.92999299999997,69.733597000000032],[-101.94055200000003,69.737198000000092],[-101.94860799999998,69.741363999999976],[-101.962784,69.753052000000025],[-102.02306399999992,69.817764000000011],[-102.06555199999997,69.850540000000137],[-102.20667300000002,69.91304000000008],[-102.21749899999998,69.916930999999977],[-102.23029300000002,69.917205999999965],[-102.24082900000002,69.913315000000068],[-102.37581599999999,69.809418000000107],[-102.51027699999992,69.758040999999992],[-102.57640100000003,69.737488000000099],[-102.59249899999998,69.738312000000064],[-102.60582699999998,69.741653000000099],[-102.61638600000003,69.745255000000043],[-102.64890300000002,69.761658000000125],[-102.65972899999997,69.765273999999977],[-102.673317,69.76638800000012],[-102.68055700000002,69.759995000000004],[-102.67443800000001,69.750275000000101],[-102.65805099999994,69.736923000000047],[-102.60028099999994,69.69802900000002],[-102.59221600000001,69.693862999999908],[-102.57640100000003,69.691086000000041],[-102.55943299999996,69.68942300000009],[-102.53138699999994,69.691360000000145],[-102.52084400000001,69.695251000000042],[-102.50917099999998,69.69802900000002],[-102.49194299999994,69.696365000000014],[-102.48361199999988,69.692200000000014],[-102.47805800000003,69.682480000000112],[-102.49777199999988,69.595260999999994],[-102.50778199999996,69.564147999999989],[-102.51500699999985,69.559982000000105],[-102.525284,69.556366000000025],[-102.60305800000003,69.538315000000068],[-102.81304899999986,69.529709000000139],[-102.82861300000002,69.53276100000005],[-102.94387799999993,69.559417999999994],[-103.08528099999995,69.597214000000122],[-103.18666099999996,69.629425000000026],[-103.20556599999998,69.636932000000002],[-103.22471599999994,69.644714000000135],[-103.23277300000001,69.648604999999975],[-103.260559,69.665543000000071],[-103.27166699999998,69.674423000000104],[-103.32195300000001,69.692200000000014],[-103.41639699999996,69.706375000000094],[-103.43055699999996,69.705261000000121],[-103.47693600000002,69.693588000000091],[-103.48665599999998,69.684708000000057],[-103.50723299999999,69.617751999999996],[-103.5041809999999,69.613036999999963],[-103.33528100000001,69.574997000000053],[-103.08917200000002,69.521927000000005],[-103.07528699999995,69.523041000000148],[-103.05695300000002,69.520537999999988],[-103.04638699999998,69.516936999999984],[-103.03806299999997,69.512771999999984],[-103.03278399999999,69.508331000000055],[-103.02333099999998,69.493866000000082],[-103.01390099999998,69.474152000000004],[-102.99137899999999,69.424698000000035],[-102.99082899999996,69.419434000000024],[-103.00778199999996,69.326935000000049],[-103.01917300000002,69.282761000000107],[-103.02306399999998,69.271652000000017],[-103.04444899999999,69.252487000000087],[-103.07195299999995,69.238586000000112],[-103.11332700000003,69.223602000000028],[-103.12444299999999,69.220825000000104],[-103.16000399999996,69.213042999999971],[-103.17250099999995,69.211380000000077],[-103.19415299999997,69.204712000000086],[-103.204453,69.200821000000019],[-103.21140299999996,69.194427000000132],[-103.21444700000001,69.189697000000137],[-103.21777299999997,69.137207000000103],[-103.208618,69.122756999999979],[-103.20305599999989,69.11831699999999],[-103.19499199999996,69.114426000000094],[-103.18222000000003,69.111098999999967],[-103.141953,69.15776100000005],[-103.13390400000003,69.163315000000068],[-103.12444299999999,69.167755000000056],[-103.10500300000001,69.176085999999998],[-103.07417299999997,69.187485000000038],[-103.03721599999994,69.205826000000059],[-103.021118,69.216934000000037],[-103.00611900000001,69.228592000000106],[-102.99889399999989,69.234985000000052],[-102.98082699999992,69.259155000000078],[-102.96916199999993,69.271378000000084],[-102.95056199999999,69.290268000000083],[-102.94360399999999,69.29664600000001],[-102.87249799999995,69.360535000000141],[-102.84084299999995,69.383330999999998],[-102.829453,69.386108000000036],[-102.817497,69.383881000000031],[-102.80666400000001,69.379974000000061],[-102.79360999999994,69.376923000000033],[-102.76083399999993,69.374420000000043],[-102.74694799999997,69.375534000000016],[-102.72277799999995,69.380264000000068],[-102.51083399999999,69.439697000000081],[-102.50862100000001,69.445526000000086],[-102.48972300000003,69.469436999999971],[-102.47193900000002,69.479430999999977],[-102.46028100000001,69.482208000000071],[-102.31304899999998,69.49832200000003],[-102.29804999999999,69.498596000000134],[-102.09306300000003,69.487762000000089],[-102.05750299999988,69.483597000000088],[-102.04750100000001,69.479980000000126],[-101.95527599999997,69.43553200000008],[-101.94748699999997,69.431365999999969],[-101.93694299999999,69.422485000000052],[-101.93138099999999,69.412766000000033],[-101.93110699999994,69.407486000000006],[-101.93611099999998,69.401657],[-102.03527799999995,69.287200999999982],[-102.14890300000002,69.270264000000111],[-102.15943899999996,69.27388000000002],[-102.18776700000001,69.280272999999966],[-102.20140100000003,69.279160000000047],[-102.21278399999994,69.276382000000069],[-102.22972099999993,69.265549000000078],[-102.23194899999999,69.259720000000073],[-102.21721600000001,69.225266000000033],[-102.11972000000003,69.183043999999938],[-102.10665899999992,69.179703000000131],[-102.09361299999989,69.178588999999931],[-102.08112299999993,69.180267000000072],[-102.07167099999992,69.184982000000105],[-102.06416300000001,69.191360000000032],[-102.05943299999996,69.19720499999994],[-102.05721999999992,69.202773999999977],[-102.05750299999988,69.208038000000101],[-102.05444299999999,69.214431999999988],[-102.04499800000002,69.226089000000115],[-102.03666699999997,69.231658999999979],[-102.01666299999999,69.239975000000072],[-102.00611899999996,69.243590999999981],[-101.96305799999999,69.257216999999912],[-101.95140099999998,69.259995000000117],[-101.9385989999999,69.261931999999945],[-101.92194399999994,69.260269000000051],[-101.78500399999996,69.196365000000071],[-101.77055399999995,69.189147999999989],[-101.75472999999994,69.175812000000064],[-101.75195300000001,69.165543000000014],[-101.75167799999991,69.160537999999974],[-101.75389099999995,69.149719000000061],[-101.80638099999999,69.003876000000105],[-101.80860899999993,68.99803199999991],[-101.81806899999992,68.993591000000038],[-101.85138699999993,68.984420999999941],[-101.89916999999997,68.97526600000009],[-101.94888300000002,68.96775800000006],[-101.962784,68.96665999999999],[-101.97693600000002,68.96665999999999],[-101.993607,68.968323000000112],[-102.00140399999992,68.972488000000112],[-102.02223200000003,68.990265000000136],[-102.03250100000002,68.99414100000007],[-102.04778299999998,68.996933000000126],[-102.06220999999994,68.996933000000126],[-102.09665699999994,68.988585999999941],[-102.11305199999998,68.977767999999969],[-102.12609900000001,68.966385000000002],[-102.13082900000001,68.960265999999933],[-102.14502699999997,68.94766199999998],[-102.15638699999994,68.944702000000063],[-102.16972399999997,68.946091000000024],[-102.323624,68.937195000000088],[-102.38612399999994,68.925537000000077],[-102.38583399999993,68.920258000000103],[-102.39028899999994,68.914429000000098],[-102.39835399999987,68.90887500000008],[-102.48554999999999,68.871368000000018],[-102.53582799999998,68.864425999999924],[-102.58972199999999,68.860535000000084],[-102.60417200000001,68.860260000000039],[-102.61972000000003,68.861099000000024],[-102.63500999999991,68.863876000000118],[-102.64527900000002,68.867751999999996],[-102.76306199999999,68.877762000000075],[-102.81889299999995,68.834152000000074],[-102.89472999999992,68.799988000000042],[-102.99054699999999,68.794434000000081],[-103.00583599999999,68.795258000000047],[-103.047234,68.809707999999944],[-103.146118,68.840546000000131],[-103.16416899999996,68.84304800000001],[-103.19499199999996,68.844437000000028],[-103.208618,68.843596999999988],[-103.32084699999996,68.829712000000086],[-103.34111000000001,68.822220000000129],[-103.36000099999995,68.813872999999944],[-103.36805700000002,68.808318999999983],[-103.40306099999992,68.777205999999978],[-103.50917099999987,68.801375999999948],[-103.83583099999993,68.83638000000002],[-104.09472699999992,68.856644000000017],[-104.11028299999998,68.859421000000054],[-104.13834399999996,68.865540000000124],[-104.287781,68.901932000000102],[-104.40249599999999,68.931091000000094],[-104.43083199999995,68.9369200000001],[-104.445267,68.938873000000001],[-104.45749699999999,68.936645999999996],[-104.46167000000003,68.930542000000116],[-104.46305799999988,68.924987999999928],[-104.46250900000001,68.919708000000071],[-104.47444199999995,68.901657000000057],[-104.487503,68.888885000000073],[-104.50279199999989,68.877762000000075],[-104.51167299999992,68.873032000000023],[-104.52139299999999,68.869140999999956],[-104.54360999999989,68.863311999999951],[-104.583618,68.859711000000118],[-104.84999099999993,68.870254999999986],[-105.12917299999998,68.896378000000084],[-105.14472999999992,68.899155000000007],[-105.16610699999995,68.906097000000102],[-105.19332900000001,68.917480000000126],[-105.24889399999989,68.945526000000029],[-105.18305999999995,68.988312000000008],[-105.173317,68.991928000000087],[-105.14666699999998,68.992477000000008],[-105.128601,68.989975000000129],[-105.06471299999998,68.986923000000047],[-105.03916900000002,68.990265000000136],[-104.93639400000001,69.03054800000001],[-104.92887899999999,69.036102000000028],[-104.91610700000001,69.048874000000012],[-104.91166699999991,69.065811000000053],[-104.915009,69.070541000000048],[-104.92304999999999,69.074706999999989],[-104.93388399999998,69.078323000000012],[-105.06500199999999,69.104155999999989],[-105.08332799999999,69.106369000000086],[-105.09665699999999,69.105255000000113],[-105.122772,69.091095000000053],[-105.16027799999995,69.071930000000066],[-105.47361799999999,69.106934000000138],[-105.48055999999997,69.116652999999928],[-105.49249299999991,69.125259000000028],[-105.50695799999994,69.133606000000043],[-105.51528899999994,69.13749700000011],[-105.55387899999999,69.152480999999966],[-105.58056599999998,69.156372000000033],[-105.61694299999994,69.160812000000078],[-105.76806599999998,69.171371000000136],[-105.83029199999999,69.172211000000004],[-105.87416100000002,69.171097000000032],[-105.90222199999999,69.169144000000074],[-105.91443600000002,69.167205999999965],[-105.92555199999998,69.164153999999996],[-106.03888699999993,69.153869999999984],[-106.17777999999998,69.144150000000081],[-106.19360399999999,69.144714000000022],[-106.256958,69.154984000000127],[-106.28888699999999,69.160262999999929],[-106.39611799999994,69.17804000000001],[-106.40611299999995,69.180542000000059],[-106.41471899999999,69.184417999999937],[-106.41471899999999,69.195251000000098],[-106.41027799999995,69.217758000000003],[-106.40666199999998,69.223877000000073],[-106.3944469999999,69.23692299999999],[-106.38612399999994,69.241653000000042],[-106.37638899999996,69.24552900000009],[-106.30777,69.262206999999989],[-106.28832999999992,69.269989000000123],[-106.27362099999993,69.281372000000147],[-106.26777600000003,69.292206000000022],[-106.26889,69.297211000000061],[-106.31639100000001,69.386658000000068],[-106.49527,69.474426000000108],[-106.52139299999993,69.486098999999967],[-106.54138199999989,69.49331699999999],[-106.55499299999985,69.496368000000018],[-106.57112099999989,69.498870999999951],[-106.60221899999999,69.498870999999951],[-106.61444099999994,69.496643000000006],[-106.62554899999986,69.493591000000094],[-106.73306299999996,69.441650000000038],[-106.74027999999998,69.435806000000014],[-106.74388099999993,69.429703000000075],[-106.74553700000001,69.407760999999994],[-106.86277799999999,69.36914100000007],[-106.93083200000001,69.361649000000114],[-106.95500199999992,69.357208000000014],[-106.96611000000001,69.354156000000103],[-106.98554999999999,69.346100000000035],[-106.99249299999997,69.340546000000018],[-106.99722300000002,69.33526599999999],[-106.99833699999999,69.329711999999972],[-106.99694799999997,69.324432000000058],[-106.96528599999994,69.303040000000067],[-106.95749699999993,69.293319999999994],[-106.925003,69.23942599999998],[-106.92223399999995,69.228867000000093],[-106.929169,69.216660000000104],[-106.93611099999998,69.211105000000032],[-106.94444299999998,69.206375000000037],[-106.96362299999993,69.198318000000029],[-107.03999299999998,69.181091000000038],[-107.12832600000002,69.154434000000094],[-107.13806199999999,69.150543000000027],[-107.16221599999994,69.134430000000009],[-107.19167299999998,69.112487999999928],[-107.22666900000002,69.084152000000017],[-107.24889400000001,69.068054000000018],[-107.264183,69.057480000000112],[-107.27944899999994,69.046936000000073],[-107.304169,69.032485999999949],[-107.31360599999994,69.028595000000109],[-107.34221599999995,69.01887499999998],[-107.37444299999993,69.009430000000123],[-107.43167099999994,68.996368000000075],[-107.50334199999992,68.982758000000047],[-107.55387899999994,68.975540000000024],[-107.64611799999989,68.965546000000018],[-107.67388900000003,68.963608000000079],[-107.74610899999999,68.960815000000082],[-107.93749999999994,68.934981999999934],[-107.95584099999996,68.931046000000094],[-107.97693600000002,68.930542000000116],[-108.17555199999998,68.931091000000094],[-108.20944199999997,68.93331900000004],[-108.26444999999995,68.939148000000046],[-108.29833999999988,68.941360000000088],[-108.42804699999994,68.945816000000036],[-108.49221799999992,68.94747899999993],[-108.521118,68.946365000000128],[-108.53443900000002,68.944702000000063],[-108.54611199999994,68.942474000000061],[-108.56331599999993,68.933594000000028],[-108.56388900000002,68.927765000000022],[-108.55082699999997,68.919434000000138],[-108.54194599999994,68.915543000000071],[-108.53555299999999,68.911376999999959],[-108.531387,68.906647000000135],[-108.52971599999995,68.901382000000069],[-108.53028899999993,68.895828000000051],[-108.53555299999999,68.889160000000061],[-108.55139200000002,68.879425000000026],[-108.59722899999997,68.859146000000067],[-108.67443799999995,68.829437000000041],[-108.926941,68.744431000000134],[-108.93749999999994,68.741088999999988],[-108.97250400000001,68.733870999999965],[-109.10472099999998,68.710541000000035],[-109.19138299999992,68.697205000000054],[-109.23416099999997,68.694977000000108],[-109.26390099999998,68.694427000000076],[-109.31194299999999,68.695816000000093],[-109.345551,68.697754000000032],[-109.37416100000002,68.696365000000014],[-109.39998600000001,68.693313999999987],[-109.43472300000002,68.686095999999964],[-109.49137899999994,68.673308999999961],[-109.52306399999992,68.664993000000095],[-109.55359599999991,68.655258000000003],[-109.59722899999997,68.64387499999998],[-109.64362299999999,68.634430000000123],[-109.65638699999994,68.632751000000098],[-109.68331899999998,68.630539000000056],[-109.756958,68.628586000000098],[-109.97028399999999,68.627197000000081],[-110.12416099999996,68.627197000000081],[-110.16055299999994,68.630539000000056],[-110.19167299999998,68.630814000000044],[-110.22000099999997,68.629150000000038],[-110.24416400000001,68.625259000000142],[-110.26306199999999,68.617752000000053],[-110.27194199999997,68.613602000000014],[-110.27916700000003,68.608597000000145],[-110.295547,68.599426000000051],[-110.32917800000001,68.582214000000022],[-110.33917200000002,68.578872999999987],[-110.35082999999997,68.576385000000016],[-110.36361699999998,68.574707000000046],[-110.37777699999998,68.574158000000125],[-110.39138800000001,68.576660000000004],[-110.39806399999986,68.580826000000116],[-110.42027299999995,68.604156000000046],[-110.42722300000003,68.608321999999987],[-110.44082600000002,68.611099000000081],[-110.45889299999999,68.612761999999975],[-110.56111099999998,68.616653000000042],[-110.576683,68.616653000000042],[-110.58944699999989,68.614990000000148],[-110.60944399999994,68.608321999999987],[-110.61694299999994,68.603592000000106],[-110.63417099999987,68.59526100000005],[-110.65695199999999,68.590271000000143],[-110.68138099999999,68.586105000000089],[-110.89666699999998,68.55720500000001],[-110.92223399999995,68.553863999999976],[-110.950287,68.551926000000037],[-111.01363400000002,68.552765000000022],[-111.03195199999999,68.554428000000144],[-111.03859699999992,68.558594000000028],[-111.03500400000001,68.563873000000001],[-110.98332199999993,68.577773999999977],[-110.97193900000002,68.580276000000083],[-110.95777900000002,68.581100000000049],[-110.92555199999993,68.580276000000083],[-110.89723200000003,68.581940000000088],[-110.87165800000002,68.585266000000104],[-110.86028299999987,68.587769000000094],[-110.850281,68.591095000000109],[-110.84306299999997,68.596099999999979],[-110.84306299999997,68.601653999999996],[-110.84973099999996,68.605820000000051],[-110.86361699999992,68.608597000000145],[-111.01750199999998,68.598327999999981],[-111.03028899999998,68.596649000000127],[-111.05888399999998,68.585815000000082],[-111.068893,68.58248900000001],[-111.08029199999999,68.579987000000131],[-111.09306300000003,68.578323000000125],[-111.13527699999997,68.575821000000076],[-111.16639700000002,68.575821000000076],[-111.23249800000002,68.578049000000021],[-111.26750199999998,68.580551000000071],[-111.28362299999998,68.582764000000054],[-111.32000700000003,68.585815000000082],[-111.33693699999998,68.586655000000121],[-111.37917299999998,68.584152000000131],[-111.39195299999994,68.58248900000001],[-111.41166699999997,68.575546000000031],[-111.41665599999999,68.571106000000043],[-111.40527299999997,68.568054000000075],[-111.389183,68.56581099999994],[-111.29804999999999,68.557755000000043],[-111.25028999999989,68.55720500000001],[-111.23194899999999,68.555542000000116],[-111.21833800000002,68.552765000000022],[-111.20916699999998,68.549148999999943],[-111.204453,68.544708000000071],[-111.204453,68.538879000000009],[-111.21112099999999,68.526093000000117],[-111.21556099999992,68.519440000000145],[-111.22556299999997,68.516098],[-111.23805199999993,68.514435000000105],[-111.25361599999991,68.514435000000105],[-111.35861199999999,68.521652000000017],[-111.37470999999999,68.523604999999975],[-111.38834400000002,68.526382000000069],[-111.46806300000003,68.536926000000108],[-111.52278100000001,68.541656000000103],[-111.60056299999991,68.543594000000041],[-111.85109699999998,68.534149000000014],[-112.060272,68.523041000000035],[-112.21000700000002,68.513610999999969],[-112.23665599999987,68.510817999999972],[-112.35916099999997,68.501938000000109],[-112.40110799999997,68.499145999999996],[-112.50917099999992,68.498032000000023],[-112.63527699999992,68.483047000000056],[-112.63694800000002,68.476928999999927],[-112.64527900000002,68.472763000000043],[-112.67027299999995,68.469146999999964],[-112.72749299999992,68.465820000000065],[-112.77390299999996,68.465546000000131],[-112.80750299999994,68.466660000000104],[-113.05166600000001,68.464157000000114],[-113.091949,68.460266000000047],[-113.220551,68.45277400000009],[-113.25140399999992,68.452209000000096],[-113.26944699999996,68.453873000000101],[-113.297234,68.458602999999925],[-113.30444299999999,68.462769000000037],[-113.30943300000001,68.467209000000025],[-113.310272,68.473038000000031],[-113.30638099999993,68.479706000000022],[-113.29972800000002,68.484711000000061],[-113.29138199999994,68.489151000000106],[-113.26944699999996,68.494430999999963],[-113.256958,68.496094000000085],[-113.19360399999999,68.496368000000018],[-113.05166600000001,68.487487999999985],[-113.03778099999994,68.488312000000121],[-113.03388999999999,68.494980000000112],[-113.04360999999994,68.504166000000055],[-113.07250999999991,68.520538000000045],[-113.11805700000002,68.544434000000138],[-113.14138800000001,68.550537000000077],[-113.19721999999996,68.560256999999979],[-113.21333300000003,68.562195000000088],[-113.26888999999994,68.572220000000016],[-113.33416699999998,68.585541000000148],[-113.35777299999995,68.591369999999984],[-113.36721799999992,68.594986000000006],[-113.38166799999988,68.603043000000014],[-113.44304699999998,68.640548999999965],[-113.44833399999999,68.645263999999997],[-113.45111099999997,68.650269000000037],[-113.45249899999999,68.661652000000061],[-113.45084400000002,68.667755],[-113.52443700000003,68.724990999999932],[-113.66665599999999,68.802199999999914],[-113.676941,68.811096000000077],[-113.67887899999994,68.894714000000079],[-113.67722299999997,68.900818000000129],[-113.671944,68.906647000000135],[-113.62389400000001,68.93331900000004],[-113.60694899999993,68.942474000000061],[-113.58444199999997,68.948028999999963],[-113.57472199999995,68.951385000000016],[-113.569458,68.957214000000022],[-113.54583700000001,69.043045000000006],[-113.54499799999996,69.048035000000084],[-113.55471799999987,69.051376000000118],[-113.61501299999998,69.066376000000048],[-113.63221699999997,69.073883000000023],[-113.64723199999992,69.081940000000145],[-113.65778399999999,69.091095000000053],[-113.69611399999991,69.154709000000139],[-113.69220699999994,69.189423000000033],[-113.68083200000001,69.191925000000083],[-113.66583300000002,69.191086000000098],[-113.65583800000002,69.187485000000038],[-113.62193300000001,69.17804000000001],[-113.53888699999999,69.168594000000041],[-113.51972999999998,69.167205999999965],[-113.50862099999995,69.169708000000014],[-113.51363399999997,69.174423000000047],[-113.52111799999994,69.178588999999931],[-113.55359599999991,69.187195000000031],[-113.58000199999992,69.192474000000004],[-113.62332200000003,69.199707000000046],[-113.90888999999999,69.24192800000003],[-114.27555799999999,69.281936999999971],[-114.31139400000001,69.284987999999998],[-114.32888800000001,69.285538000000031],[-114.39277600000003,69.284149000000014],[-114.42138699999998,69.281936999999971],[-114.4472199999999,69.278046000000074],[-114.49249299999991,69.267212000000029],[-114.51834100000002,69.263321000000133],[-114.66972399999997,69.255829000000006],[-114.764183,69.252212999999983],[-115.08889799999992,69.244705000000124],[-115.25361599999991,69.245254999999986],[-115.40083299999998,69.256942999999978],[-115.64472999999998,69.273315000000139],[-115.79527299999995,69.282761000000107],[-115.92138699999992,69.290268000000083],[-115.95584099999996,69.292206000000022],[-115.96833799999996,69.294983000000116],[-115.9786069999999,69.298598999999967],[-115.98665599999998,69.302475000000015],[-116.00029000000001,69.310806000000127],[-116.00611900000001,69.315262000000018],[-116.016953,69.322220000000016],[-116.02694700000001,69.325546000000088],[-116.05638099999999,69.32998699999996],[-116.17527799999993,69.34165999999999],[-116.21945199999999,69.348327999999981],[-116.52583300000003,69.407486000000006],[-116.53859699999998,69.4102630000001],[-116.54888900000003,69.413605000000018],[-116.56527699999992,69.421371000000079],[-116.62970699999994,69.458878000000141],[-116.63137799999993,69.464706000000035],[-116.62666299999989,69.470535000000041],[-116.61888099999993,69.474990999999989],[-116.60777300000001,69.478043000000071],[-116.569458,69.48414600000001],[-116.56139400000001,69.488586000000055],[-116.55860899999993,69.4952550000001],[-116.57556199999993,69.555817000000104],[-116.58138999999989,69.560531999999967],[-116.591949,69.563873000000001],[-116.60472099999993,69.566665999999998],[-116.63667299999997,69.570267000000058],[-116.73388699999998,69.575546000000031],[-116.74999999999994,69.574997000000053],[-116.75945299999995,69.571381000000031],[-116.76611299999996,69.565177999999946],[-116.78138699999988,69.55720500000001],[-116.89750700000002,69.587494000000049],[-116.88054699999986,69.608871000000079],[-116.85193600000002,69.619705000000124],[-116.84612299999998,69.643051000000014],[-116.84750399999996,69.648604999999975],[-116.858047,69.651932000000102],[-116.96193700000003,69.679427999999973],[-116.987503,69.684981999999991],[-117.01777600000003,69.68942300000009],[-117.03500399999996,69.690810999999997],[-117.05027799999993,69.693038999999942],[-117.07584400000002,69.69859300000013],[-117.11805699999996,69.711654999999951],[-117.23889200000002,69.753052000000025],[-117.24749799999995,69.756943000000092],[-117.26917300000002,69.78166200000004],[-117.27278100000001,69.792755000000056],[-117.30777,69.844436999999971],[-117.36721799999992,69.919983000000059],[-117.42250099999995,69.972488000000055],[-117.43499799999995,69.981369000000029],[-117.43666099999996,69.98692299999999],[-117.43611099999993,69.993042000000059],[-117.41528299999993,70.009995000000117],[-117.38527699999997,70.028595000000053],[-117.35637700000001,70.039703000000031],[-117.32584400000002,70.049987999999985],[-117.28362300000003,70.063309000000118],[-117.25140399999992,70.072768999999994],[-117.23999000000003,70.075821000000133],[-117.19444299999998,70.087493999999936],[-117.16999800000002,70.092484000000013],[-117.12082700000002,70.102478000000019],[-117.08167999999995,70.108871000000136],[-117.01083399999993,70.116928000000144],[-116.87721299999998,70.129150000000095],[-116.58306899999997,70.156937000000084],[-116.236107,70.191360000000032],[-116.16639700000002,70.199997000000053],[-116.09999099999999,70.210266000000047],[-116.07167099999998,70.213608000000022],[-115.90834000000001,70.228867000000093],[-115.80194099999994,70.236649000000057],[-115.69360399999994,70.243866000000139],[-115.64695699999993,70.246643000000063],[-115.49665799999997,70.250549000000092],[-115.44833399999993,70.252487000000031],[-115.31471299999998,70.264160000000061],[-115.30139200000002,70.266388000000063],[-115.229446,70.273879999999963],[-115.16750299999995,70.27777100000003],[-115.08389299999999,70.279708999999968],[-115.03028899999998,70.279984000000013],[-114.86721799999998,70.28387500000008],[-114.80194099999989,70.286102000000142],[-114.74137899999999,70.290817000000004],[-114.71305799999988,70.293869000000086],[-114.65888999999999,70.301651000000049],[-114.61694299999994,70.30664100000007],[-114.58833299999992,70.309708000000001],[-114.54305999999997,70.313309000000061],[-114.511124,70.314696999999967],[-114.323624,70.316665999999998],[-114.254997,70.317215000000147],[-114.21833800000002,70.316085999999984],[-114.17832900000002,70.313599000000067],[-114.16082799999998,70.311645999999939],[-114.13527699999997,70.305816999999934],[-114.111107,70.293869000000086],[-114.09028599999994,70.286926000000108],[-114.057503,70.282486000000063],[-113.84166700000003,70.269440000000145],[-113.68388399999992,70.263046000000088],[-113.65055799999993,70.263610999999969],[-113.59166700000003,70.268600000000106],[-113.54943799999995,70.273315000000139],[-113.50556899999998,70.277481000000023],[-113.46000700000002,70.280548000000124],[-113.42804699999999,70.281662000000097],[-113.39138799999995,70.280548000000124],[-113.33332799999994,70.277206000000035],[-113.29611199999999,70.273879999999963],[-113.16832699999998,70.259155000000021],[-113.09084299999995,70.247481999999991],[-112.66665599999993,70.203873000000101],[-112.56471299999998,70.198318000000029],[-112.54804999999999,70.198593000000017],[-112.53278399999994,70.199416999999983],[-112.52084399999995,70.202209000000096],[-112.51722699999999,70.207488999999953],[-112.52749599999993,70.211105000000032],[-112.56304899999998,70.213608000000022],[-112.577789,70.216095000000053],[-112.58084100000002,70.221374999999966],[-112.57501200000002,70.227203000000088],[-112.56582599999996,70.231368999999972],[-112.55526700000001,70.234984999999995],[-112.54332699999992,70.237487999999985],[-112.295547,70.266663000000051],[-112.212784,70.265823000000012],[-112.195831,70.265823000000012],[-112.16388699999999,70.266936999999984],[-112.13834399999996,70.271378000000084],[-112.14584400000001,70.275543000000084],[-112.16306299999991,70.277481000000023],[-112.24249299999991,70.283600000000035],[-112.29695099999998,70.289154000000053],[-112.30471799999992,70.293319999999937],[-112.29723399999995,70.298325000000034],[-112.28333299999997,70.299988000000099],[-112.26666299999999,70.300262000000032],[-112.24833699999999,70.299423000000104],[-112.23111,70.297484999999938],[-112.10888699999992,70.277481000000023],[-111.92639199999996,70.252212999999927],[-111.91583300000002,70.255553999999961],[-111.90805099999989,70.260544000000039],[-111.89917000000003,70.264709000000039],[-111.88054699999998,70.270264000000111],[-111.86527999999993,70.271378000000084],[-111.84861799999993,70.271378000000084],[-111.743607,70.269440000000145],[-111.55555700000002,70.269714000000079],[-111.53888699999993,70.269989000000066],[-111.46806300000003,70.278320000000008],[-111.45445299999989,70.279984000000013],[-111.445267,70.284149000000014],[-111.44275699999992,70.290268000000026],[-111.487213,70.336929000000055],[-111.49472000000003,70.341094999999939],[-111.50723299999993,70.344147000000078],[-111.53694200000001,70.349426000000051],[-111.63110399999999,70.358321999999987],[-111.66471899999999,70.35803199999998],[-111.69387799999998,70.355545000000063],[-111.73528299999998,70.35026600000009],[-111.75055700000001,70.349426000000051],[-111.80387899999999,70.350815000000011],[-111.98055999999991,70.370818999999983],[-112.00083899999987,70.378036000000066],[-112.05387899999999,70.401093000000003],[-112.06166099999996,70.405258000000003],[-112.06973299999993,70.414993000000095],[-112.07250999999997,70.42025799999999],[-112.073059,70.431655999999975],[-112.07584400000002,70.436646000000053],[-112.08917200000002,70.451096000000121],[-112.11527999999998,70.474152000000004],[-112.14611799999994,70.490540000000067],[-112.156387,70.494141000000127],[-112.16915899999998,70.497208000000001],[-112.19915800000001,70.502213000000097],[-112.42722299999997,70.526382000000012],[-112.49553700000001,70.515274000000034],[-112.5,70.514740000000074],[-112.50945300000001,70.513611000000083],[-112.52806099999998,70.514160000000004],[-112.58612099999999,70.524994000000106],[-112.62193300000001,70.534424000000001],[-112.65278599999994,70.545258000000047],[-112.67083700000001,70.552765000000136],[-112.67859599999991,70.556931000000077],[-112.70973199999997,70.567490000000078],[-112.72805799999998,70.568329000000062],[-112.81471299999993,70.568054000000075],[-112.84861799999993,70.567764000000011],[-112.85610999999994,70.562758999999971],[-112.93749999999994,70.56721500000009],[-113.00083899999993,70.576659999999947],[-113.01611300000002,70.579163000000108],[-113.14222699999999,70.606093999999985],[-113.30304699999994,70.641936999999984],[-113.49221799999992,70.677200000000028],[-113.51112399999994,70.677765000000022],[-113.51999699999993,70.673598999999967],[-113.51917299999997,70.667755000000113],[-113.5227809999999,70.655547999999953],[-113.52834300000001,70.649719000000118],[-113.54055800000003,70.646942000000024],[-113.55444299999994,70.644989000000123],[-113.57140399999997,70.644714000000079],[-113.59166700000003,70.646103000000096],[-113.60722399999997,70.648604999999975],[-113.63054699999998,70.654984000000013],[-113.64917000000003,70.662766000000147],[-113.66528299999999,70.670822000000044],[-113.68388399999992,70.678314],[-113.72860700000001,70.691649999999925],[-113.76194800000002,70.696091000000024],[-113.88221699999997,70.710265999999933],[-113.93831599999993,70.71527100000003],[-113.97416699999991,70.715546000000018],[-113.98972299999997,70.714432000000045],[-114.015556,70.709991000000116],[-114.06833599999993,70.692474000000061],[-114.08944700000001,70.685256999999979],[-114.12082699999996,70.674698000000092],[-114.14362299999999,70.668594000000098],[-114.17111199999999,70.664703000000031],[-114.20834400000001,70.665817000000004],[-114.26194800000002,70.671371000000022],[-114.323059,70.675262000000089],[-114.37748699999997,70.675812000000121],[-114.40834000000001,70.673598999999967],[-114.4202729999999,70.670822000000044],[-114.43083200000001,70.667206000000022],[-114.44833399999999,70.658600000000092],[-114.45889299999999,70.655258000000117],[-114.49500299999994,70.646942000000024],[-114.54527299999995,70.636107999999979],[-114.57112100000001,70.631362999999965],[-114.64111299999996,70.622482000000048],[-114.98916599999995,70.603867000000093],[-115.13694800000002,70.598038000000088],[-115.25250199999994,70.601379000000122],[-115.38054699999998,70.604706000000078],[-115.39943700000003,70.604980000000012],[-115.88971700000002,70.595260999999994],[-115.921944,70.593596999999988],[-115.97609699999998,70.585266000000047],[-116.05555700000002,70.572220000000129],[-116.08556399999992,70.587769000000037],[-116.16251399999999,70.62303200000008],[-116.17111199999994,70.626923000000147],[-116.26363400000002,70.634720000000073],[-116.36389200000002,70.639160000000118],[-116.38082900000001,70.638885000000073],[-116.52999899999992,70.632477000000108],[-116.63221699999997,70.614990000000091],[-116.65583800000002,70.609146000000067],[-116.66915899999998,70.607208000000128],[-116.71501199999994,70.603043000000127],[-116.90110799999997,70.597214000000122],[-116.91972399999997,70.597488000000055],[-117.05972300000002,70.601379000000122],[-117.10056299999997,70.603317000000061],[-117.34584000000001,70.614990000000091],[-117.34973100000002,70.619980000000112],[-117.35861199999994,70.623871000000008],[-117.37666300000001,70.62553400000013],[-117.50556899999998,70.61692800000003],[-117.51528899999994,70.613311999999951],[-117.51806599999986,70.606368999999972],[-117.51862299999993,70.600266000000033],[-117.52500900000001,70.594985999999949],[-117.54360999999994,70.595260999999994],[-117.5594329999999,70.597214000000122],[-117.61305199999998,70.608597000000145],[-117.67111199999999,70.624419999999986],[-117.70472699999999,70.634155000000021],[-117.724716,70.641373000000044],[-117.73777799999993,70.65026899999998],[-117.74194299999994,70.655258000000117],[-117.741669,70.661376999999959],[-117.73944099999994,70.666930999999977],[-117.73473399999995,70.673035000000027],[-117.72222899999986,70.68331900000004],[-117.71417199999996,70.688034000000073],[-117.70944199999985,70.693863000000079],[-117.71140300000002,70.699707000000103],[-117.71806300000003,70.703872999999987],[-117.73581699999994,70.711655000000121],[-117.74694799999997,70.714995999999985],[-117.89806399999998,70.756104000000107],[-117.94554099999999,70.768599999999992],[-118.00890400000003,70.783051],[-118.04750100000001,70.791656000000046],[-118.09277299999997,70.804703000000075],[-118.13583399999999,70.818054000000018],[-118.16750300000001,70.828598000000056],[-118.18776700000001,70.836104999999975],[-118.20584099999996,70.843872000000147],[-118.26445000000001,70.871918000000051],[-118.28028899999993,70.879974000000118],[-118.30972300000002,70.897217000000012],[-118.31639100000001,70.901657000000057],[-118.32972699999993,70.910537999999974],[-118.40862299999998,70.970260999999994],[-118.41750300000001,70.980270000000019],[-118.41972399999986,70.985809000000017],[-118.41944899999993,70.99192800000003],[-118.415009,70.99803200000008],[-118.40862299999998,71.003326000000072],[-118.40055799999999,71.007766999999944],[-118.37082700000002,71.019149999999968],[-118.33944699999995,71.029433999999981],[-118.27250699999991,71.048874000000012],[-117.98055999999997,71.124420000000043],[-117.84973099999996,71.156937000000028],[-117.79666099999992,71.166382000000112],[-117.728882,71.169708000000128],[-117.69055199999997,71.169434000000024],[-117.640289,71.171921000000111],[-117.54305999999991,71.178589000000102],[-117.49445300000002,71.18193100000002],[-117.41665599999988,71.188873000000115],[-117.38722199999995,71.192474000000004],[-117.28859699999992,71.206649999999968],[-116.98528299999998,71.236098999999967],[-116.83666999999997,71.269149999999911],[-116.83332799999994,71.276093000000117],[-116.82472200000001,71.280548000000124],[-116.80055199999993,71.286102000000085],[-116.71333300000003,71.297211000000004],[-116.66972399999992,71.302765000000022],[-116.60166900000002,71.313873000000001],[-116.51777600000003,71.326384999999959],[-116.40583800000002,71.343048000000067],[-116.20889299999993,71.364150999999993],[-116.17722300000003,71.366653000000042],[-116.14195299999989,71.367751999999996],[-116.08556399999992,71.367477000000008],[-116.077789,71.365814000000057],[-116.05249000000003,71.356093999999985],[-115.81027199999994,71.362761999999975],[-115.77667200000002,71.36442599999998],[-115.76083399999993,71.365814000000057],[-115.74638399999998,71.368317000000047],[-115.73416099999986,71.371368000000075],[-115.72693599999997,71.376373000000115],[-115.72666900000002,71.381362999999965],[-115.73306299999996,71.385818000000029],[-115.74416400000001,71.389160000000118],[-115.75805700000001,71.391937000000041],[-115.79055800000003,71.396378000000141],[-115.84166700000003,71.394440000000031],[-115.85582699999992,71.392212000000029],[-115.885559,71.389160000000118],[-115.91915899999998,71.387206999999989],[-115.93360899999999,71.38888500000013],[-116.01777599999997,71.411101999999971],[-116.06471299999998,71.438583000000051],[-115.82805599999995,71.483046999999999],[-115.76306199999999,71.490265000000022],[-115.62082700000002,71.498596000000077],[-115.60472099999993,71.496094000000028],[-115.58444199999991,71.488876000000005],[-115.58416699999998,71.485259999999982],[-115.53555299999994,71.470261000000107],[-115.41555800000003,71.449707000000103],[-115.37832599999996,71.449707000000103],[-115.20028699999995,71.479430999999977],[-115.17527799999988,71.484985000000108],[-115.06667299999998,71.518600000000049],[-115.05750299999994,71.523041000000148],[-115.06194299999999,71.526657],[-115.08168000000001,71.527205999999921],[-115.11361699999998,71.524704000000042],[-115.15638699999994,71.518875000000037],[-115.17054699999994,71.516662999999994],[-115.24553700000001,71.500000000000114],[-115.26000999999997,71.498031999999967],[-115.32224300000001,71.492477000000065],[-115.44275699999992,71.488037000000077],[-115.45973200000003,71.489151000000049],[-115.53859699999998,71.50082400000008],[-115.54998799999998,71.504440000000102],[-115.55860899999999,71.508330999999998],[-115.55583199999995,71.513611000000083],[-115.54332699999986,71.516662999999994],[-115.53083800000002,71.519440000000088],[-115.51666299999999,71.521378000000027],[-115.51222199999989,71.53776600000009],[-115.61888099999987,71.555252000000053],[-115.65499899999992,71.55802900000009],[-115.70638999999994,71.555817000000047],[-115.79194599999994,71.543593999999985],[-115.87638900000002,71.53276100000005],[-115.965012,71.522216999999955],[-116.16027799999989,71.49971000000005],[-116.20805399999995,71.495818999999983],[-116.28250100000002,71.495528999999976],[-116.33389299999999,71.493317000000104],[-116.41361999999998,71.486648999999943],[-116.44360399999999,71.483322000000044],[-116.806107,71.436096000000134],[-116.98610699999995,71.427200000000028],[-117.17666600000001,71.404709000000025],[-117.20111099999997,71.398331000000098],[-117.21528599999994,71.396378000000141],[-117.328056,71.386108000000036],[-117.35944399999994,71.383331000000112],[-117.37721299999987,71.382751000000098],[-117.39835399999998,71.383880999999974],[-117.41221599999994,71.386383000000023],[-117.41665599999988,71.391373000000101],[-117.41610700000001,71.397766000000047],[-117.41306299999997,71.404434000000037],[-117.39083900000003,71.435257000000036],[-117.38110399999994,71.447205000000054],[-117.37832600000002,71.454163000000051],[-117.44776899999988,71.47387700000013],[-117.49445300000002,71.486923000000047],[-117.51750199999998,71.493317000000104],[-117.54583700000001,71.498871000000122],[-117.56276699999995,71.49971000000005],[-117.628601,71.467758000000117],[-117.63333099999994,71.461929000000112],[-117.63166799999999,71.456375000000094],[-117.62470999999999,71.451935000000105],[-117.61305199999998,71.44859300000013],[-117.59665699999999,71.446365000000014],[-117.55583200000001,71.445251000000042],[-117.5369419999999,71.443862999999908],[-117.506393,71.439148000000102],[-117.48332199999999,71.432480000000112],[-117.47888199999989,71.427475000000072],[-117.48194899999999,71.420532000000037],[-117.51722699999999,71.379425000000026],[-117.52749599999993,71.375809000000004],[-117.53943600000002,71.372757000000092],[-117.59416199999987,71.371643000000063],[-117.68138099999993,71.379700000000071],[-117.75666799999999,71.376083000000108],[-117.79444899999999,71.368042000000059],[-117.82749899999999,71.372208000000114],[-117.94833399999999,71.377762000000132],[-118.01500699999997,71.37303200000008],[-118.03278399999994,71.372482000000048],[-118.09084299999995,71.372757000000092],[-118.112213,71.37359600000002],[-118.18536399999999,71.379791000000125],[-118.24388099999999,71.389984000000084],[-118.25556899999998,71.393326000000002],[-118.28362300000003,71.404709000000025],[-118.29750099999995,71.413605000000132],[-118.31111099999993,71.428589000000045],[-118.31527699999992,71.439697000000024],[-118.31471299999998,71.452209000000039],[-118.30943300000001,71.465820000000008],[-118.28999299999992,71.481659000000093],[-118.28195199999988,71.486098999999911],[-118.2633439999999,71.49414100000007],[-118.21250900000001,71.513046000000031],[-118.20221699999996,71.516662999999994],[-118.19027699999998,71.519714000000022],[-118.17804699999994,71.522766000000104],[-118.12609900000001,71.533051000000057],[-118.08612099999988,71.540267999999969],[-118.05444299999999,71.543045000000063],[-117.83583099999998,71.554703000000075],[-117.70722999999998,71.54942299999999],[-117.68720999999994,71.549988000000042],[-117.675003,71.552765000000136],[-117.658051,71.561646000000053],[-117.65139799999992,71.566940000000045],[-117.65583800000002,71.571930000000123],[-117.66999800000002,71.574706999999989],[-117.87304699999993,71.611649],[-117.88722199999995,71.614151000000106],[-117.90888999999999,71.614990000000034],[-117.86361699999998,71.639435000000105],[-117.718887,71.659714000000008],[-117.70694700000001,71.662491000000102],[-117.69638099999992,71.666091999999992],[-117.70084399999996,71.671371000000136],[-117.715012,71.673874000000126],[-117.73665599999993,71.674988000000099],[-118.01000999999997,71.672484999999938],[-118.02778599999994,71.67164600000001],[-118.11665299999993,71.65277100000003],[-118.12693799999988,71.648880000000133],[-118.17278299999998,71.628036000000009],[-118.17749000000003,71.621918000000051],[-118.16388699999993,71.606933999999967],[-118.16639699999996,71.599990999999989],[-118.17666600000001,71.596374999999966],[-118.19082600000002,71.594146999999964],[-118.29998799999993,71.583328000000108],[-118.31777999999991,71.582763999999997],[-118.33444199999997,71.584717000000126],[-118.36527999999998,71.589431999999931],[-118.38639799999999,71.613602000000128],[-118.38612399999994,71.619705000000067],[-118.45500199999987,71.650818000000072],[-118.485817,71.655548000000124],[-118.56639099999995,71.662766000000147],[-118.60527000000002,71.664154000000053],[-118.84166700000003,71.664702999999975],[-118.85555999999997,71.662491000000102],[-118.86389199999996,71.658035000000041],[-118.90387699999997,71.614700000000028],[-118.90387699999997,71.608322000000101],[-118.88971699999996,71.599716000000001],[-118.88027999999991,71.595825000000104],[-118.86609599999997,71.586928999999998],[-118.8683319999999,71.580276000000026],[-118.88054699999998,71.577209000000096],[-118.89778099999995,71.57777400000009],[-118.90972899999991,71.581099999999992],[-119.05027799999999,71.626648000000102],[-119.07472200000001,71.644149999999968],[-119.08416699999998,71.654160000000047],[-119.10582699999998,71.685806000000071],[-119.12470999999999,71.730545000000063],[-119.13445300000001,71.76527399999992],[-119.13445300000001,71.783874999999966],[-119.10555999999991,71.876648000000046],[-119.10305800000003,71.883330999999998],[-119.09194899999994,71.902205999999978],[-119.08750900000001,71.908324999999991],[-118.945831,71.99136400000009],[-118.929169,72.000548999999921],[-118.86694299999999,72.023879999999963],[-118.84249899999998,72.029709000000025],[-118.80166599999995,72.037200999999925],[-118.76471699999996,72.046370999999965],[-118.73361199999999,72.057480000000055],[-118.72501399999987,72.0619200000001],[-118.71665999999999,72.066665999999998],[-118.71028099999995,72.071930000000009],[-118.70556599999992,72.077774000000034],[-118.703056,72.084717000000012],[-118.70749699999999,72.095824999999991],[-118.715012,72.10026600000009],[-118.71972700000003,72.105255000000056],[-118.71945199999999,72.111374000000069],[-118.71749899999998,72.116928000000087],[-118.69193999999999,72.130539000000056],[-118.58860800000002,72.176086000000112],[-118.57640100000003,72.179152999999985],[-118.56194299999999,72.181366000000139],[-118.545547,72.182754999999986],[-118.44248999999996,72.181655999999975],[-118.40583799999996,72.183044000000052],[-118.38945000000001,72.184708000000114],[-118.15722699999992,72.217758000000117],[-118.12832599999996,72.222214000000065],[-118.11945299999996,72.226654000000053],[-118.11277799999993,72.231934000000138],[-118.108047,72.237762000000089],[-118.10527000000002,72.244705000000067],[-118.10417199999995,72.263321000000076],[-118.12138400000003,72.308029000000147],[-118.13082899999995,72.318054000000075],[-118.14527899999996,72.326934999999992],[-118.16471899999993,72.334427000000119],[-118.176941,72.337769000000037],[-118.19193999999999,72.340546000000131],[-118.20916699999998,72.34248400000007],[-118.25140399999998,72.344711000000132],[-118.27166699999992,72.344711000000132],[-118.28832999999992,72.343323000000055],[-118.32528699999995,72.341934000000037],[-118.36416600000001,72.341370000000097],[-118.40695199999993,72.34248400000007],[-118.446663,72.345260999999994],[-118.49109599999997,72.353043000000127],[-118.52306399999992,72.363876000000118],[-118.55499299999997,72.380814000000044],[-118.56973299999999,72.389709000000039],[-118.58194700000001,72.399155000000007],[-118.58860800000002,72.416655999999989],[-118.58805799999999,72.435256999999979],[-118.58528100000001,72.441924999999969],[-118.573059,72.460815000000082],[-118.56833599999993,72.46665999999999],[-118.55027799999999,72.483321999999987],[-118.53694199999995,72.493866000000025],[-118.51972999999992,72.50277699999998],[-118.20722999999998,72.618591000000094],[-118.12554899999998,72.642487000000017],[-118.08306900000002,72.649719000000118],[-117.90361000000001,72.689697000000137],[-117.89083899999991,72.692749000000049],[-117.86888099999993,72.699997000000053],[-117.63305700000001,72.784987999999998],[-117.60193600000002,72.796936000000073],[-117.51944700000001,72.828873000000044],[-117.48999000000003,72.841369999999984],[-117.48111,72.845825000000048],[-117.46472199999994,72.85554500000012],[-117.43611099999993,72.876373000000001],[-117.42054699999994,72.894440000000088],[-117.40222199999999,72.903320000000122],[-117.37999000000002,72.910538000000088],[-117.35360699999995,72.916382000000112],[-117.32333399999993,72.92082199999993],[-117.30638099999993,72.921921000000111],[-117.24916099999996,72.923874000000069],[-117.12721299999998,72.932479999999998],[-116.95639,72.954163000000108],[-116.94138299999997,72.95637499999998],[-116.89972699999998,72.964157000000114],[-116.862503,72.972214000000065],[-116.83805799999999,72.978592000000049],[-116.775284,72.9952550000001],[-116.70722999999998,73.017211999999972],[-116.65972899999991,73.031097000000045],[-116.58750900000001,73.051376000000005],[-116.57417299999997,73.054153000000099],[-116.54167199999995,73.057480000000055],[-116.52416999999991,73.058868000000132],[-116.31916799999993,73.09165999999999],[-116.24221799999998,73.110260000000096],[-116.20195000000001,73.118590999999981],[-116.15556300000003,73.124695000000031],[-115.90055799999993,73.154160000000104],[-115.60973399999995,73.194138000000123],[-115.44082600000002,73.22387700000013],[-115.34638999999999,73.253326000000129],[-115.32305899999994,73.260269000000108],[-115.30915799999997,73.263046000000031],[-115.14917000000003,73.288315000000011],[-115.10221899999999,73.294144000000017],[-115.01418299999989,73.299988000000042],[-114.95111099999997,73.307754999999986],[-114.89417299999997,73.318054000000018],[-114.86638599999998,73.323608000000036],[-114.83056599999998,73.334152000000074],[-114.81054699999999,73.342758000000003],[-114.70722999999992,73.368042000000003],[-114.67555199999998,73.371918000000051],[-114.65778399999999,73.373032000000023],[-114.56166100000002,73.37553400000013],[-114.54083300000002,73.373595999999964],[-114.50527999999991,73.368866000000139],[-114.337784,73.343323000000055],[-114.30499299999991,73.338042999999971],[-114.27500899999995,73.332214000000135],[-114.22609699999987,73.318329000000062],[-114.19776899999999,73.306366000000025],[-114.16306299999997,73.289703000000145],[-114.11054999999999,73.263885000000016],[-114.05610699999994,73.233597000000032],[-114.01666299999994,73.206375000000094],[-113.96167000000003,73.153046000000131],[-113.95694700000001,73.142487000000074],[-113.95388799999989,73.125533999999959],[-113.95749699999999,73.113312000000008],[-113.99582700000002,73.077773999999977],[-114.00499699999995,73.064423000000033],[-114.03555299999999,73.004990000000021],[-114.04750100000001,72.954987000000074],[-114.05499299999997,72.883605999999986],[-114.05277999999998,72.872208000000001],[-114.04915599999998,72.867203000000131],[-114.0427699999999,72.862762000000032],[-114.02722199999999,72.854156000000103],[-113.98166700000002,72.834152000000017],[-113.96888699999994,72.82499700000011],[-113.96777299999997,72.819442999999978],[-113.96945199999999,72.813034000000073],[-113.97582999999992,72.807205000000067],[-113.985817,72.803040000000067],[-113.99749799999995,72.799423000000104]],[[-95.669723999999917,73.604980000000126],[-95.688598999999897,73.603317000000004],[-95.702498999999989,73.60554500000012],[-95.711670000000026,73.612198000000092],[-95.703887999999949,73.617477000000065],[-95.684157999999968,73.6202550000001],[-95.669997999999964,73.620529000000033],[-95.655563000000029,73.616652999999928],[-95.654998999999975,73.609984999999995],[-95.669723999999917,73.604980000000126]],[[-107.89555399999989,73.541367000000093],[-107.93055699999996,73.539428999999984],[-107.9519499999999,73.540268000000083],[-107.97193900000002,73.542755],[-108.00917099999992,73.548035000000084],[-108.02306399999998,73.551376000000118],[-108.07472200000001,73.576385000000073],[-108.08277899999996,73.580826000000002],[-108.08500700000002,73.585815000000139],[-108.08332799999999,73.597214000000065],[-108.07640099999992,73.603591999999992],[-108.066101,73.608597000000032],[-108.05444299999988,73.612487999999928],[-108.04083299999996,73.615540000000067],[-108.00750700000003,73.618591000000094],[-107.89943699999992,73.622756999999979],[-107.86277799999993,73.624145999999996],[-107.82444800000002,73.6244200000001],[-107.80444299999999,73.624145999999996],[-107.68110699999994,73.621367999999961],[-107.61472299999991,73.614700000000028],[-107.60056299999997,73.611374000000126],[-107.58944699999995,73.607758000000103],[-107.58473200000003,73.603043000000071],[-107.58249699999999,73.597762999999986],[-107.58473200000003,73.586655000000007],[-107.59194899999994,73.579987000000017],[-107.60221899999988,73.575271999999984],[-107.64527900000002,73.570267000000115],[-107.65722700000003,73.568603999999993],[-107.7491609999999,73.55581699999999],[-107.89555399999989,73.541367000000093]],[[-124.307503,73.556366000000139],[-124.33167999999995,73.556366000000139],[-124.343613,73.559981999999991],[-124.35193600000002,73.5711060000001],[-124.35861199999988,73.630264000000068],[-124.34612300000003,73.633606000000043],[-124.33138999999994,73.636383000000137],[-124.307503,73.632202000000063],[-124.30332900000002,73.626648000000046],[-124.29387700000001,73.622481999999934],[-124.28222700000003,73.618866000000082],[-124.26806599999992,73.616088999999988],[-124.21028100000001,73.611374000000126],[-124.19360399999994,73.60914600000001],[-124.17944299999994,73.606369000000086],[-124.16777000000002,73.603043000000071],[-124.14916999999997,73.594711000000075],[-124.12666300000001,73.580826000000002],[-124.11972000000003,73.575821000000133],[-124.11554699999988,73.570541000000048],[-124.11389199999996,73.564148000000102],[-124.12638899999996,73.560805999999957],[-124.307503,73.556366000000139]],[[-124.58473199999992,73.679153000000042],[-124.59944199999995,73.676376000000005],[-124.62361099999998,73.676650999999993],[-124.640556,73.678863999999976],[-124.70056199999993,73.689422999999977],[-124.72917199999995,73.694976999999994],[-124.73361199999999,73.700545999999974],[-124.72582999999992,73.705261000000007],[-124.71584299999995,73.709152000000074],[-124.70111099999997,73.711928999999998],[-124.68167099999999,73.713042999999971],[-124.66471899999999,73.710815000000025],[-124.66278099999994,73.706099999999992],[-124.64835399999998,73.704712000000086],[-124.61694299999999,73.699707000000046],[-124.57140399999992,73.691925000000083],[-124.564438,73.687195000000031],[-124.57224299999996,73.682479999999998],[-124.58473199999992,73.679153000000042]],[[-105.08944700000001,73.735260000000039],[-104.96028099999995,73.688582999999937],[-104.84306300000003,73.650818000000072],[-104.71140300000002,73.63081399999993],[-104.69167299999992,73.628310999999997],[-104.675003,73.624985000000095],[-104.58084100000002,73.600266000000147],[-104.53056300000003,73.581374999999923],[-104.51306199999999,73.573044000000039],[-104.49445300000002,73.559418000000051],[-104.49027999999998,73.554703000000018],[-104.48528299999998,73.544708000000128],[-104.48306299999996,73.534424000000115],[-104.512787,73.493042000000059],[-104.55583200000001,73.403320000000008],[-104.56639100000001,73.334717000000126],[-104.56833599999999,73.329163000000108],[-104.57333399999999,73.323044000000095],[-104.58138999999994,73.316666000000112],[-104.60193599999997,73.306366000000025],[-104.64916999999997,73.280823000000112],[-104.69499200000001,73.25221300000004],[-104.76000999999991,73.203873000000044],[-104.76500699999985,73.197754000000032],[-104.76390099999998,73.192474000000118],[-104.79415899999998,73.168045000000006],[-104.86805700000002,73.136658000000068],[-104.97556299999997,73.085266000000104],[-104.98332199999999,73.078872999999987],[-104.98805199999993,73.073043999999982],[-104.98388699999992,73.068054000000075],[-104.97749299999998,73.05304000000001],[-104.97361799999999,73.031662000000097],[-104.97860699999995,73.025543000000084],[-104.984734,73.020538000000045],[-104.99527,73.015823000000012],[-105.031677,73.004166000000055],[-105.0750119999999,72.997208000000057],[-105.08833300000003,72.994141000000127],[-105.13639799999993,72.978867000000037],[-105.14695699999999,72.974152000000004],[-105.22582999999997,72.933044000000109],[-105.30304699999994,72.951096000000007],[-105.31916799999999,72.954163000000108],[-105.33972199999999,72.955551000000014],[-105.354446,72.953323000000069],[-105.35610999999994,72.947754000000032],[-105.33139,72.910538000000088],[-105.32417299999997,72.906096999999988],[-105.279449,72.885543999999925],[-105.25361599999997,72.878585999999984],[-105.237503,72.875534000000016],[-105.21140300000002,72.868591000000038],[-105.20417799999996,72.864151000000049],[-105.26222199999989,72.848602000000085],[-105.27555799999993,72.845534999999984],[-105.28999299999987,72.847762999999986],[-105.38305699999995,72.866653000000099],[-105.43611099999993,72.896652000000131],[-105.44332900000001,72.90109300000006],[-105.45612299999999,72.915267999999969],[-105.458618,72.925536999999963],[-105.45694699999996,72.931366000000025],[-105.45834400000001,72.936371000000065],[-105.46250900000001,72.941360000000032],[-105.57472199999995,72.984421000000054],[-105.73277299999995,73.047759999999982],[-105.91388699999999,73.145538000000101],[-105.94638099999992,73.160263000000043],[-106.09249899999992,73.199706999999933],[-106.08194700000001,73.241088999999988],[-106.32195300000001,73.338882000000126],[-106.44776899999994,73.393051000000128],[-106.45556599999998,73.397491000000002],[-106.46611000000001,73.401382000000069],[-106.72028399999999,73.44999700000011],[-106.88137799999998,73.463318000000072],[-106.89806399999992,73.461929000000055],[-106.91610699999995,73.461380000000077],[-106.9375,73.462494000000106],[-107,73.469711000000018],[-107.016953,73.4727630000001],[-107.02749599999999,73.476379000000009],[-107.03555299999994,73.480820000000108],[-107.03415699999999,73.486374000000069],[-107.02583300000003,73.498596000000077],[-107.01834100000002,73.504990000000078],[-107.00974299999996,73.510544000000095],[-106.97112299999992,73.531661999999983],[-106.92944299999999,73.550537000000134],[-106.89334100000002,73.562484999999981],[-106.74526999999995,73.648041000000148],[-106.70028699999995,73.676085999999941],[-106.65805099999994,73.695251000000098],[-106.64584399999995,73.699141999999995],[-106.61833200000001,73.705261000000007],[-106.57224300000001,73.711928999999998],[-106.32721700000002,73.72665400000011],[-106.18554699999999,73.733597000000145],[-106.03916900000002,73.731368999999972],[-105.80055199999998,73.726928999999984],[-105.72666900000002,73.728592000000049],[-105.68028300000003,73.734985000000052],[-105.66639699999996,73.737761999999918],[-105.637787,73.74443100000002],[-105.61277799999993,73.752212999999983],[-105.58473200000003,73.758041000000048],[-105.569458,73.760269000000051],[-105.53527799999995,73.762771999999984],[-105.51666299999994,73.763321000000133],[-105.30387899999994,73.762206999999989],[-105.28388999999999,73.761658000000011],[-105.16999800000002,73.755554000000018],[-105.14862099999999,73.754166000000055],[-105.10749799999991,73.743590999999981],[-105.08944700000001,73.735260000000039]],[[-80.142226999999878,73.696640000000116],[-80.108611999999994,73.693863000000022],[-80.074448000000018,73.697479000000044],[-79.901397999999972,73.698318000000029],[-79.625548999999978,73.670821999999987],[-79.586120999999991,73.66276600000009],[-79.523055999999997,73.646652000000131],[-79.493056999999965,73.637772000000098],[-79.476394999999911,73.634154999999964],[-79.451949999999954,73.630539000000113],[-79.373610999999983,73.63081399999993],[-78.96166999999997,73.632750999999985],[-78.946105999999986,73.634720000000016],[-78.934433000000013,73.638596000000064],[-78.931106999999997,73.642487000000131],[-78.928878999999938,73.647491000000116],[-78.924164000000019,73.650269000000094],[-78.912505999999894,73.653869999999984],[-78.887787000000003,73.656647000000078],[-78.861389000000031,73.658324999999991],[-78.64416499999993,73.656647000000078],[-78.40834000000001,73.661652000000117],[-78.206664999999987,73.667755000000056],[-78.166397000000018,73.668045000000063],[-78.12777699999998,73.664703000000145],[-78.113327000000027,73.663040000000024],[-78.064437999999996,73.651932000000045],[-78.009734999999978,73.63749700000011],[-77.965285999999935,73.628310999999997],[-77.823058999999944,73.603867000000037],[-77.738601999999958,73.591933999999981],[-77.608046999999999,73.574158000000011],[-77.535004000000015,73.565536000000009],[-77.453887999999949,73.559708000000057],[-77.424437999999952,73.554703000000018],[-77.395554000000004,73.545822000000101],[-77.373046999999929,73.529709000000082],[-77.363327000000027,73.524703999999986],[-77.351394999999968,73.519988999999953],[-77.338333000000034,73.516663000000108],[-77.294723999999974,73.512772000000041],[-77.237212999999997,73.509994999999947],[-77.203063999999927,73.505554000000018],[-77.191939999999988,73.501389000000017],[-77.148620999999991,73.476379000000009],[-77.153610000000015,73.468048000000067],[-77.157226999999978,73.458603000000039],[-77.055266999999958,73.366379000000052],[-77.048888999999917,73.36192299999999],[-76.999435000000005,73.345825000000104],[-76.969726999999978,73.337203999999986],[-76.91361999999998,73.324432000000002],[-76.893340999999964,73.321105999999986],[-76.884170999999924,73.321655000000078],[-76.878875999999934,73.324158000000068],[-76.858611999999994,73.32638500000013],[-76.837219000000005,73.327209000000096],[-76.736389000000031,73.324706999999989],[-76.72193900000002,73.322495000000117],[-76.708054000000004,73.317764000000011],[-76.579726999999991,73.219711000000075],[-76.577498999999932,73.205551000000128],[-76.585006999999962,73.194427000000076],[-76.601944000000003,73.183319000000097],[-76.619720000000029,73.175812000000121],[-76.605270000000019,73.15914900000007],[-76.586945000000014,73.146378000000141],[-76.582229999999981,73.14387499999998],[-76.510559000000001,73.120254999999986],[-76.495543999999938,73.116928000000087],[-76.487502999999947,73.116089000000102],[-76.381942999999978,73.106093999999985],[-76.31361400000003,73.100540000000024],[-76.312499999999943,73.067490000000134],[-76.318068999999923,73.062759000000028],[-76.319457999999941,73.058318999999983],[-76.333068999999909,72.963607999999965],[-76.323059000000001,72.957214000000135],[-76.309433000000013,72.952484000000084],[-76.291671999999949,72.948868000000061],[-76.275283999999999,72.946640000000059],[-76.211945000000014,72.945526000000086],[-76.162216000000001,72.946365000000071],[-76.118606999999997,72.940262000000132],[-76.103607000000011,72.936371000000065],[-76.077224999999942,72.924988000000042],[-76.071670999999924,72.921097000000145],[-76.062209999999993,72.906937000000028],[-76.059432999999899,72.900818000000015],[-76.086394999999982,72.863602000000071],[-76.093886999999938,72.85803199999998],[-76.103881999999942,72.853043000000014],[-76.115279999999927,72.849426000000051],[-76.13110399999988,72.845534999999984],[-76.149993999999992,72.842209000000139],[-76.25140399999998,72.826385000000016],[-76.315552000000025,72.817214999999976],[-76.339721999999995,72.814987000000031],[-76.5625,72.812484999999981],[-76.581679999999949,72.812484999999981],[-76.601944000000003,72.813873000000058],[-76.618606999999884,72.816939999999988],[-76.634170999999981,72.820541000000048],[-76.662780999999995,72.829163000000051],[-76.681380999999931,72.831375000000094],[-76.72193900000002,72.833878000000084],[-76.740829000000019,72.833878000000084],[-76.767501999999922,72.833878000000084],[-76.891952999999944,72.830825999999945],[-76.937209999999993,72.830825999999945],[-77.084754999999973,72.839684000000148],[-77.101668999999958,72.84027100000003],[-77.143889999999942,72.841933999999981],[-77.226943999999946,72.846100000000035],[-77.265838999999914,72.849426000000051],[-77.314437999999939,72.85554500000012],[-77.365829000000019,72.864426000000037],[-77.40055799999999,72.870818999999983],[-77.416106999999954,72.874695000000088],[-77.447219999999959,72.879974000000061],[-77.522780999999952,72.886108000000092],[-77.704178000000013,72.897216999999955],[-77.723327999999981,72.896941999999967],[-77.860000999999954,72.893051000000071],[-77.904175000000009,72.891662999999994],[-77.997771999999941,72.888321000000019],[-78.107223999999917,72.88638300000008],[-78.236358999999993,72.893005000000016],[-78.273055999999997,72.890549000000021],[-78.297226000000023,72.887772000000098],[-78.486114999999984,72.86554000000001],[-78.62388599999997,72.848037999999974],[-78.865828999999962,72.804427999999973],[-79.047775000000001,72.771378000000141],[-79.161941999999897,72.750548999999978],[-79.209166999999923,72.744979999999998],[-79.296111999999994,72.737761999999975],[-79.359160999999972,72.733597000000145],[-79.382492000000013,72.733047000000113],[-79.400283999999999,72.733597000000145],[-79.429168999999945,72.735809000000017],[-79.543334999999956,72.74859600000002],[-79.62388599999997,72.763321000000133],[-79.927779999999927,72.842484000000013],[-79.972778000000005,72.854705999999965],[-79.998610999999983,72.86303700000002],[-80.009170999999924,72.872756999999922],[-80.120833999999945,72.978867000000037],[-80.151672000000019,73.011932000000115],[-80.181380999999931,73.043869000000086],[-80.181106999999997,73.050262000000032],[-80.164169000000015,73.061920000000043],[-80.147232000000031,73.071381000000031],[-80.134734999999921,73.084716999999955],[-80.131667999999991,73.08859300000006],[-80.128875999999991,73.09526100000005],[-80.122771999999998,73.11442599999998],[-80.110000999999954,73.179703000000018],[-80.114440999999999,73.186371000000008],[-80.134445000000028,73.209152000000017],[-80.143065999999919,73.216933999999981],[-80.15194699999995,73.222487999999942],[-80.216948999999943,73.243317000000104],[-80.238051999999982,73.24414100000007],[-80.415282999999931,73.24414100000007],[-80.61999499999996,73.264160000000004],[-80.760009999999909,73.274704000000042],[-80.797500999999954,73.276932000000045],[-80.876098999999954,73.32777399999992],[-80.876098999999954,73.338593000000003],[-80.872498000000007,73.424988000000099],[-80.820281999999963,73.489150999999993],[-80.80999799999995,73.644440000000088],[-80.857772999999952,73.74192800000003],[-80.771666999999923,73.749709999999993],[-80.683318999999983,73.755829000000006],[-80.560546999999872,73.76776099999995],[-80.434998000000007,73.766098000000056],[-80.37332200000003,73.761658000000011],[-80.353058000000033,73.759720000000073],[-80.320847000000015,73.753876000000048],[-80.30860899999999,73.75],[-80.29861499999987,73.745819000000097],[-80.265288999999996,73.730270000000019],[-80.223327999999924,73.715820000000065],[-80.192763999999954,73.707214000000135],[-80.15834000000001,73.699417000000039],[-80.142226999999878,73.696640000000116]],[[-73.354674999999929,68.329215999999974],[-73.328170999999998,68.328208999999958],[-73.31617,68.328712000000053],[-73.306830999999988,68.330544000000089],[-73.211670000000026,68.376923000000033],[-73.230559999999912,68.384155000000135],[-73.253066999999987,68.390823000000125],[-73.279448999999886,68.39498900000001],[-73.302779999999927,68.396102999999982],[-73.31806899999998,68.393051000000071],[-73.357498000000021,68.371368000000132],[-73.359725999999966,68.364989999999977],[-73.357773000000009,68.357483000000059],[-73.353057999999976,68.352478000000019],[-73.349166999999909,68.344986000000063],[-73.34722899999997,68.337494000000106],[-73.34944200000001,68.331100000000106],[-73.354674999999929,68.329215999999974],[-73.506667999999991,68.291367000000037],[-73.589721999999995,68.254715000000033],[-73.597777999999948,68.251937999999996],[-73.620834000000002,68.246093999999971],[-73.632216999999912,68.246643000000063],[-73.639724999999942,68.249709999999993],[-73.851668999999958,68.342209000000139],[-73.855834999999956,68.346649000000014],[-73.896117999999944,68.392211999999915],[-73.889449999999954,68.44470200000012],[-73.877486999999917,68.481093999999928],[-73.873610999999926,68.487762000000089],[-73.86721799999998,68.493042000000003],[-73.856110000000001,68.497481999999991],[-73.823623999999995,68.503326000000015],[-73.806655999999975,68.503876000000048],[-73.749999999999943,68.510817999999972],[-73.738891999999964,68.514999000000046],[-73.730285999999978,68.519989000000066],[-73.725829999999974,68.525818000000072],[-73.704726999999934,68.656647000000021],[-73.75389100000001,68.683594000000085],[-73.761397999999986,68.686371000000008],[-73.774719000000005,68.689697000000024],[-73.865828999999906,68.705826000000002],[-73.893889999999999,68.707764000000111],[-74.094161999999983,68.719986000000063],[-74.106109999999944,68.690536000000009],[-73.99221799999998,68.624695000000031],[-73.888061999999877,68.561645999999939],[-73.881667999999991,68.55664100000007],[-73.881667999999991,68.549713000000111],[-73.903609999999958,68.52777100000003],[-73.921386999999925,68.511932000000115],[-73.941939999999988,68.504715000000033],[-73.990279999999927,68.492751999999996],[-74.028335999999911,68.513610999999969],[-74.171660999999972,68.521652000000017],[-74.221114999999998,68.52526899999998],[-74.351395000000025,68.536926000000108],[-74.366104000000007,68.539154000000053],[-74.379439999999931,68.542205999999965],[-74.391112999999962,68.546371000000136],[-74.514175000000023,68.599991000000045],[-74.526397999999972,68.610809000000017],[-74.532776000000013,68.62164300000012],[-74.531676999999945,68.626373000000115],[-74.598891999999921,68.681930999999963],[-74.701950000000011,68.71887200000009],[-74.712218999999948,68.723038000000031],[-74.726105000000018,68.730270000000132],[-74.728333000000021,68.737198000000092],[-74.724715999999944,68.766097999999943],[-74.71945199999999,68.770537999999988],[-74.664168999999958,68.774155000000121],[-74.620833999999888,68.782486000000006],[-74.591949,68.788879000000009],[-74.576949999999954,68.793045000000063],[-74.565276999999924,68.802199999999914],[-74.546386999999982,68.822494999999947],[-74.548049999999989,68.828598000000113],[-74.551392000000021,68.830551000000014],[-74.604172000000005,68.841660000000104],[-74.634170999999924,68.846374999999966],[-74.648055999999997,68.847214000000122],[-74.666655999999932,68.845825000000104],[-74.678328999999962,68.842758000000003],[-74.687377999999967,68.835991000000035],[-74.718718999999965,68.824821000000043],[-74.723052999999936,68.822318999999993],[-74.721221999999955,68.821152000000041],[-74.71421799999996,68.82098400000001],[-74.705222999999933,68.821655000000078],[-74.689437999999939,68.819716999999969],[-74.671660999999972,68.818877999999984],[-74.660277999999892,68.81581100000011],[-74.639724999999999,68.807479999999998],[-74.633330999999941,68.79693600000013],[-74.635009999999966,68.793320000000108],[-74.648055999999997,68.789429000000041],[-74.665832999999964,68.786652000000117],[-74.771666999999979,68.774155000000121],[-74.917769999999962,68.801375999999948],[-74.913894999999968,68.81721500000009],[-74.837508999999955,68.840820000000065],[-74.787780999999995,68.854431000000034],[-74.764167999999984,68.872040000000027],[-74.74017299999997,68.872710999999981],[-74.72222899999997,68.934143000000006],[-74.862945999999909,68.954178000000013],[-74.872779999999977,68.955001999999979],[-74.887610999999993,68.954178000000013],[-74.898108999999977,68.952515000000062],[-74.920113000000015,68.946671000000038],[-74.935944000000006,68.942001000000005],[-75,68.937607000000071],[-75.005004999999926,68.929977000000065],[-75.033614999999884,68.926085999999998],[-75.042770000000019,68.928314],[-75.041945999999882,68.930267000000129],[-75.021118000000001,68.953049000000021],[-74.962340999999981,68.972824000000003],[-74.953002999999967,68.978484999999978],[-74.915337000000022,68.992821000000049],[-74.907668999999885,68.993988000000002],[-74.764724999999999,69.019440000000031],[-74.748336999999992,69.021378000000141],[-74.735000999999954,69.021927000000119],[-74.729445999999996,69.019440000000031],[-74.758057000000008,69.008880999999974],[-74.752228000000002,69.002486999999974],[-74.675003000000004,69.006943000000035],[-74.65834000000001,69.008330999999941],[-74.642776000000026,69.011658000000068],[-74.638061999999991,69.016098000000113],[-74.641113000000018,69.021378000000141],[-74.652495999999928,69.040267999999912],[-74.785827999999981,69.076385000000073],[-74.820846999999958,69.082214000000079],[-74.834166999999923,69.081664999999987],[-74.845839999999953,69.078598000000056],[-74.948607999999922,69.048874000000012],[-75.043334999999956,69.013321000000019],[-75.051940999999886,69.008605999999986],[-75.036117999999931,68.992203000000075],[-75.037780999999882,68.985809000000074],[-75.071395999999936,68.921097000000032],[-75.075561999999934,68.915817000000004],[-75.109160999999858,68.894989000000123],[-75.116394000000014,68.890823000000012],[-75.124161000000015,68.888046000000088],[-75.139724999999999,68.884720000000073],[-75.169998000000021,68.886383000000023],[-75.192490000000021,68.891663000000051],[-75.201950000000011,68.894440000000145],[-75.315826000000015,68.942200000000128],[-75.373885999999914,68.968872000000033],[-75.383330999999998,68.974426000000051],[-75.400283999999999,68.985535000000141],[-75.422500999999954,69.001937999999996],[-75.445830999999941,69.016937000000041],[-75.454452999999944,69.021102999999982],[-75.466399999999965,69.021378000000141],[-75.478881999999999,69.019714000000135],[-75.494155999999975,69.01638800000012],[-75.528335999999967,69.005829000000062],[-75.565552000000025,68.993591000000038],[-75.573623999999995,68.988585999999941],[-75.578612999999962,68.984146000000123],[-75.580841000000021,68.975540000000024],[-75.574172999999917,68.968323000000112],[-75.537780999999939,68.951096000000064],[-75.506957999999941,68.939696999999967],[-75.499724999999955,68.934708000000001],[-75.494995000000017,68.930267000000129],[-75.534163999999976,68.90387000000004],[-75.542770000000019,68.898879999999963],[-75.56527699999998,68.891373000000044],[-75.603881999999942,68.879700000000014],[-75.647780999999952,68.869140999999956],[-75.809158000000025,68.836928999999998],[-75.976104999999961,68.791092000000106],[-75.979445999999996,68.787201000000039],[-75.985001000000011,68.783875000000023],[-75.995543999999938,68.779434000000094],[-76.008620999999948,68.775543000000027],[-76.049437999999952,68.764435000000049],[-76.227218999999991,68.721100000000035],[-76.327224999999999,68.697478999999987],[-76.376098999999954,68.687484999999981],[-76.420546999999999,68.679152999999985],[-76.436385999999857,68.677200000000028],[-76.456664999999987,68.675262000000089],[-76.540282999999988,68.673308999999961],[-76.559432999999956,68.673035000000027],[-76.575561999999991,68.674149000000057],[-76.59056099999998,68.676376000000062],[-76.628875999999991,68.68691999999993],[-76.660827999999981,68.699416999999926],[-76.674164000000019,68.71026599999999],[-76.680283000000031,68.716094999999996],[-76.688599000000011,68.733597000000032],[-76.689437999999996,68.740540000000067],[-76.688048999999978,68.746933000000013],[-76.678604000000007,68.758330999999998],[-76.666945999999996,68.769150000000081],[-76.636947999999961,68.78166200000004],[-76.608611999999937,68.794144000000074],[-76.577498999999932,68.808318999999983],[-76.561385999999914,68.818054000000018],[-76.546111999999994,68.833054000000004],[-76.537216000000001,68.842209000000082],[-76.523055999999997,68.863876000000118],[-76.521666999999979,68.870254999999986],[-76.523894999999925,68.876373000000058],[-76.532775999999956,68.880538999999999],[-76.544158999999979,68.883041000000048],[-76.559432999999956,68.88499500000006],[-76.576674999999966,68.88499500000006],[-76.59333799999996,68.883331000000055],[-76.606658999999922,68.883041000000048],[-76.610000999999954,68.884720000000073],[-76.644164999999987,68.911102000000142],[-76.655562999999972,68.924698000000092],[-76.655562999999972,68.930542000000116],[-76.642775999999969,69.003876000000105],[-76.640563999999927,69.009155000000078],[-76.625548999999978,69.018326000000059],[-76.603607000000011,69.025818000000015],[-76.578338999999914,69.032211000000132],[-76.543335000000013,69.038315000000011],[-76.501403999999923,69.042755],[-76.422500999999954,69.050537000000134],[-76.368606999999997,69.055251999999996],[-76.348891999999921,69.054976999999951],[-76.33277899999996,69.05442800000003],[-76.240279999999927,69.048325000000091],[-76.208054000000004,69.044144000000017],[-76.140563999999927,69.034714000000122],[-76.124435000000005,69.031096999999988],[-76.114165999999955,69.027771000000143],[-76.091674999999952,69.011658000000068],[-76.080001999999922,69.006378000000041],[-76.068619000000012,69.003876000000105],[-75.996932999999956,69.003036000000066],[-75.969161999999983,69.010269000000108],[-75.904998999999918,69.036925999999994],[-75.813889000000017,69.067763999999954],[-75.655838000000017,69.080550999999957],[-75.637786999999946,69.079987000000017],[-75.619155999999919,69.081374999999923],[-75.6058349999999,69.08526599999999],[-75.598891999999978,69.089432000000102],[-75.593886999999938,69.099716000000114],[-75.569732999999928,69.15277100000003],[-75.569457999999997,69.158324999999991],[-75.571121000000005,69.163879000000009],[-75.591674999999952,69.22164900000007],[-75.603057999999976,69.238876000000118],[-75.619719999999973,69.249419999999986],[-75.669723999999917,69.271103000000096],[-75.759734999999978,69.304977000000122],[-75.783324999999991,69.313599000000124],[-75.956389999999885,69.366088999999931],[-75.970275999999956,69.36914100000007],[-76.168610000000001,69.411377000000073],[-76.202498999999932,69.413879000000122],[-76.241942999999935,69.413315000000011],[-76.298049999999989,69.407760999999994],[-76.417770000000019,69.44720500000011],[-76.607497999999964,69.529709000000139],[-76.637787000000003,69.546645999999953],[-76.641112999999962,69.554153000000099],[-76.641678000000013,69.557480000000055],[-76.626662999999951,69.581375000000037],[-76.61999499999996,69.586380000000077],[-76.611663999999962,69.591095000000109],[-76.489165999999898,69.648331000000042],[-76.477782999999988,69.652206000000035],[-76.459166999999979,69.654434000000037],[-76.442215000000033,69.653046000000074],[-76.347777999999948,69.64027400000009],[-76.261397999999986,69.626647999999932],[-76.226943999999946,69.637206999999989],[-76.186110999999983,69.659714000000065],[-76.182495000000017,69.663605000000132],[-76.187774999999988,69.665268000000083],[-76.226105000000018,69.664703000000031],[-76.295546999999942,69.660263000000043],[-76.376388999999961,69.671371000000022],[-76.388335999999924,69.673874000000012],[-76.397506999999962,69.678040000000067],[-76.399733999999853,69.684143000000006],[-76.450561999999934,69.690262000000075],[-76.537780999999939,69.696091000000081],[-76.551666000000012,69.695526000000029],[-76.634170999999981,69.683594000000085],[-76.641953000000001,69.679977000000122],[-76.638900999999976,69.673309000000131],[-76.631942999999922,69.669708000000071],[-76.616394000000014,69.667480000000126],[-76.581679999999949,69.666930999999977],[-76.557769999999948,69.673309000000131],[-76.542769999999905,69.674698000000149],[-76.530838000000017,69.672211000000061],[-76.517776000000026,69.662765999999976],[-76.522780999999952,69.65248100000008],[-76.535004000000015,69.638596000000007],[-76.553329000000019,69.625259000000142],[-76.561661000000015,69.620254999999986],[-76.683883999999978,69.56581100000011],[-76.691939999999988,69.563034000000016],[-76.707503999999972,69.559417999999994],[-76.730285999999978,69.560256999999922],[-76.844726999999921,69.576096000000064],[-77.136947999999961,69.626373000000115],[-77.18582200000003,69.637496999999996],[-77.191665999999941,69.639709000000039],[-77.200561999999991,69.646103000000096],[-77.200561999999991,69.64888000000002],[-77.194442999999922,69.657211000000075],[-77.164444000000003,69.676086000000055],[-77.155562999999972,69.680541999999946],[-77.144454999999994,69.682205000000067],[-76.949431999999945,69.695526000000029],[-76.939437999999939,69.679703000000018],[-76.929992999999968,69.677765000000079],[-76.896666999999979,69.679152999999985],[-76.868056999999965,69.684708000000057],[-76.829726999999934,69.695816000000036],[-76.820281999999963,69.699417000000096],[-76.80471799999998,69.708603000000039],[-76.793883999999991,69.718597000000045],[-76.791945999999996,69.721649000000014],[-76.781386999999995,69.743042000000116],[-76.781386999999995,69.748596000000077],[-76.835280999999952,69.815811000000053],[-76.851944000000003,69.813599000000011],[-76.933059999999898,69.809708000000114],[-77.026672000000019,69.811919999999986],[-77.150283999999999,69.816086000000098],[-77.293059999999855,69.828873000000101],[-77.308884000000035,69.830826000000002],[-77.310546999999985,69.835814999999968],[-77.307770000000005,69.840271000000087],[-77.297774999999888,69.851089000000059],[-77.28472899999997,69.860535000000027],[-77.25418099999996,69.87692300000009],[-77.243056999999965,69.881362999999908],[-77.208344000000011,69.886658000000011],[-77.116652999999928,69.901382000000012],[-76.992767000000015,69.927199999999971],[-76.981673999999941,69.931656000000089],[-76.974715999999944,69.935806000000071],[-76.980559999999969,69.938034000000016],[-76.992767000000015,69.940536000000122],[-77.002791999999943,69.940536000000122],[-77.125274999999931,69.925812000000064],[-77.141112999999962,69.922485000000108],[-77.164444000000003,69.915268000000026],[-77.188323999999909,69.906097000000045],[-77.226943999999946,69.894989000000066],[-77.260284000000013,69.887496999999939],[-77.438048999999921,69.857208000000071],[-77.508347000000015,69.826660000000118],[-77.455565999999976,69.798325000000091],[-77.444442999999978,69.789428999999984],[-77.449158000000011,69.784714000000122],[-77.551391999999964,69.747756999999922],[-77.559158000000025,69.744980000000055],[-77.574722000000008,69.741363999999976],[-77.597777999999948,69.739151000000049],[-77.608611999999937,69.740265000000022],[-77.615829000000019,69.741653000000099],[-77.626388999999904,69.744980000000055],[-77.637787000000003,69.753875999999991],[-77.645279000000016,69.760818000000086],[-77.649993999999992,69.769714000000022],[-77.668059999999969,69.836655000000064],[-77.691939999999931,69.963043000000027],[-77.695267000000001,69.98803700000002],[-77.694442999999922,70.000275000000045],[-77.693054000000018,70.00610400000005],[-77.68582200000003,70.023041000000092],[-77.678604000000007,70.034987999999998],[-77.672500999999954,70.045532000000094],[-77.669723999999974,70.052200000000028],[-77.667220999999984,70.062194999999974],[-77.665008999999941,70.088043000000084],[-77.665557999999976,70.106934000000138],[-77.668334999999956,70.113037000000077],[-77.673888999999974,70.11970500000001],[-77.671936000000017,70.177199999999914],[-77.672500999999954,70.180542000000059],[-77.678328999999962,70.187759000000142],[-77.685271999999998,70.191360000000032],[-77.810821999999973,70.24552900000009],[-77.884170999999981,70.2586060000001],[-77.892226999999878,70.258041000000048],[-78.133621000000005,70.215271000000087],[-78.239166000000012,70.203873000000101],[-78.345000999999911,70.19720500000011],[-78.351395000000025,70.197479000000044],[-78.364715999999987,70.201096000000007],[-78.401672000000019,70.212493999999992],[-78.405272999999966,70.214157000000114],[-78.480835000000013,70.288589000000002],[-78.406113000000005,70.326935000000049],[-78.396118000000001,70.328049000000021],[-78.389175000000023,70.332214000000022],[-78.398894999999925,70.336380000000077],[-78.425827000000027,70.3477630000001],[-78.436661000000015,70.351088999999945],[-78.486389000000031,70.356934000000081],[-78.504180999999903,70.35803199999998],[-78.521118000000001,70.357758000000047],[-78.536391999999978,70.356369000000029],[-78.55749499999996,70.351379000000009],[-78.573623999999995,70.345534999999984],[-78.579726999999878,70.343048000000067],[-78.583327999999995,70.336929000000055],[-78.581115999999952,70.334152000000131],[-78.569167999999991,70.325546000000031],[-78.564712999999983,70.320267000000058],[-78.56138599999997,70.314148000000046],[-78.564712999999983,70.310256999999979],[-78.578888000000006,70.309708000000001],[-78.655272999999909,70.346939000000134],[-78.662506000000008,70.350540000000024],[-78.704726999999934,70.374695000000031],[-78.74749799999995,70.438873000000058],[-78.858337000000006,70.453873000000044],[-78.903335999999911,70.449416999999926],[-78.944442999999865,70.450271999999984],[-79.031951999999933,70.454987000000017],[-79.070557000000008,70.469711000000075],[-79.095550999999887,70.493042000000116],[-79.100280999999995,70.49832200000003],[-79.081680000000006,70.529984000000127],[-79.068068999999923,70.536377000000073],[-78.893616000000009,70.590546000000131],[-78.879989999999964,70.594711000000132],[-78.860274999999888,70.59664900000007],[-78.832779000000016,70.594437000000028],[-78.821945000000028,70.589706000000092],[-78.815551999999911,70.57748400000014],[-78.816100999999946,70.573318000000029],[-78.815001999999879,70.571930000000123],[-78.806655999999975,70.564986999999974],[-78.788054999999929,70.556091000000038],[-78.766112999999905,70.550261999999975],[-78.733321999999987,70.547211000000004],[-78.718886999999938,70.547760000000096],[-78.720276000000013,70.549149000000114],[-78.84056099999998,70.634995000000117],[-78.851944000000003,70.638046000000088],[-78.861938000000009,70.637206999999989],[-78.868331999999953,70.63220200000012],[-78.867492999999968,70.628586000000041],[-78.868057000000022,70.624419999999986],[-78.871933000000013,70.621918000000051],[-78.879989999999964,70.621093999999914],[-78.912215999999944,70.621368000000018],[-78.965285999999935,70.632751000000042],[-78.976943999999946,70.635817999999972],[-78.994155999999975,70.643326000000002],[-78.999161000000015,70.651382000000069],[-79.000838999999928,70.662766000000147],[-78.994720000000029,70.672484999999995],[-79.000564999999995,70.676926000000094],[-79.009445000000028,70.679702999999961],[-79.025283999999999,70.680267000000129],[-79.041107000000011,70.678588999999988],[-79.057220000000029,70.672759999999982],[-79.152221999999995,70.627762000000075],[-79.158051,70.622208000000114],[-79.155838000000017,70.617476999999951],[-79.14973399999991,70.613037000000134],[-79.136948000000018,70.610809000000017],[-79.097778000000005,70.610260000000039],[-79.068068999999923,70.615540000000124],[-79.143889999999999,70.453873000000044],[-79.159728999999913,70.43803400000013],[-79.174164000000019,70.428040000000124],[-79.18472300000002,70.423599000000024],[-79.209731999999974,70.418045000000006],[-79.223891999999978,70.419434000000024],[-79.23582499999992,70.423309000000017],[-79.268889999999999,70.436371000000008],[-79.291106999999954,70.446930000000066],[-79.290557999999919,70.453598000000056],[-79.291945999999996,70.459717000000069],[-79.30221599999993,70.473602000000142],[-79.308333999999888,70.480270000000132],[-79.388061999999934,70.49275200000011],[-79.403610000000015,70.493316999999934],[-79.412780999999995,70.491652999999928],[-79.420546999999942,70.488876000000062],[-79.575561999999934,70.42942800000003],[-79.58555599999994,70.421371000000022],[-79.591110000000015,70.413605000000018],[-79.591384999999946,70.40914900000007],[-79.588897999999972,70.399428999999998],[-79.575835999999981,70.389984000000084],[-79.563613999999973,70.385544000000095],[-79.42361499999987,70.355820000000108],[-79.420546999999942,70.359710999999947],[-79.416107000000011,70.363602000000014],[-79.406661999999869,70.367477000000008],[-79.386948000000018,70.37164300000012],[-79.371657999999968,70.371093999999971],[-79.357772999999895,70.36970500000001],[-79.317229999999995,70.360260000000096],[-79.295837000000006,70.353043000000014],[-79.286666999999852,70.349716000000058],[-79.266112999999962,70.341094999999939],[-79.252791999999999,70.333327999999995],[-79.243057000000022,70.324707000000103],[-79.233321999999873,70.318603999999937],[-79.224715999999944,70.316085999999984],[-79.209441999999967,70.313309000000061],[-79.125823999999909,70.304703000000131],[-79.108886999999925,70.304977000000065],[-79.099730999999963,70.308594000000028],[-79.086670000000026,70.317764000000068],[-79.088333000000034,70.324707000000103],[-79.090560999999923,70.329437000000098],[-79.085830999999985,70.33859300000006],[-79.070847000000015,70.340820000000122],[-79.056655999999919,70.341369999999984],[-79.038895000000025,70.340546000000018],[-79.027221999999995,70.339432000000045],[-78.98832699999997,70.331375000000037],[-78.966659999999933,70.323318000000086],[-78.939162999999951,70.311096000000134],[-78.921660999999915,70.300812000000064],[-78.790558000000033,70.205551000000014],[-78.777221999999995,70.194976999999994],[-78.763061999999991,70.183593999999971],[-78.753066999999874,70.169434000000081],[-78.74888599999997,70.162201000000039],[-78.737502999999947,70.114989999999977],[-78.688599000000011,70.054977000000122],[-78.683060000000012,70.046371000000022],[-78.680282999999974,70.040268000000083],[-78.664168999999958,70.004166000000112],[-78.662506000000008,69.983047000000113],[-78.662506000000008,69.973037999999917],[-78.665008999999998,69.961380000000077],[-78.676392000000021,69.945250999999985],[-78.687774999999931,69.934417999999994],[-78.704177999999899,69.924148999999943],[-78.791945999999996,69.891098],[-78.84973100000002,69.886107999999979],[-79.06639100000001,69.878310999999997],[-79.17860399999995,69.883881000000088],[-79.200287000000003,69.884430000000009],[-79.37777699999998,69.886107999999979],[-79.408050999999944,69.88499500000006],[-79.474716000000001,69.878586000000041],[-79.526947000000007,69.871918000000051],[-79.540832999999964,69.868866000000139],[-79.553604000000007,69.864700000000028],[-79.563889000000017,69.859984999999995],[-79.576950000000011,69.855819999999994],[-79.604996000000028,69.849990999999989],[-79.636123999999938,69.848038000000031],[-79.682495000000017,69.848877000000016],[-79.694992000000013,69.851089000000059],[-79.707229999999981,69.855545000000006],[-79.773620999999991,69.885544000000039],[-79.780288999999982,69.890549000000078],[-79.786391999999978,69.897217000000012],[-79.796386999999925,69.908325000000048],[-79.801101999999958,69.915543000000014],[-79.800277999999992,69.917205999999965],[-79.803329000000019,69.927475000000015],[-79.833617999999944,69.949417000000039],[-79.891387999999949,69.973877000000073],[-80.053054999999915,69.997208000000114],[-80.168059999999969,70.006377999999984],[-80.196945000000028,70.008041000000105],[-80.232497999999964,70.007767000000001],[-80.263061999999934,70.002487000000087],[-80.27305599999994,69.999709999999993],[-80.292496000000028,69.98692299999999],[-80.307770000000005,69.981093999999985],[-80.31361400000003,69.980270000000019],[-80.326110999999912,69.980270000000019],[-80.336120999999991,69.982207999999957],[-80.434998000000007,70.004990000000078],[-80.45777899999996,70.013320999999962],[-80.466399999999965,70.018051000000014],[-80.47444200000001,70.024428999999998],[-80.485549999999932,70.029434000000037],[-80.547774999999945,70.04414399999996],[-80.561110999999983,70.046936000000073],[-80.577498999999875,70.048874000000012],[-80.597778000000005,70.048035000000027],[-80.652221999999938,70.038879000000065],[-80.669998000000021,70.039978000000076],[-80.787505999999951,70.050537000000134],[-80.906386999999995,70.070831000000055],[-81.06220999999988,70.085541000000035],[-81.225829999999974,70.09693900000002],[-81.285552999999993,70.095261000000107],[-81.378051999999968,70.092484000000013],[-81.429992999999968,70.093597000000102],[-81.462508999999955,70.09637500000008],[-81.603058000000033,70.113876000000005],[-81.698607999999922,70.128585999999984],[-81.711670000000026,70.130539000000113],[-81.728333000000021,70.132202000000007],[-81.745834000000002,70.1308140000001],[-81.756119000000012,70.12831099999994],[-81.763335999999924,70.123031999999967],[-81.761948000000018,70.117477000000065],[-81.737503000000004,70.093597000000102],[-81.718886999999881,70.079163000000051],[-81.709732000000031,70.074432000000115],[-81.687774999999874,70.067764000000125],[-81.670546999999942,70.065262000000075],[-81.625823999999966,70.062759000000085],[-81.558333999999888,70.056930999999963],[-81.539718999999934,70.053314],[-81.531113000000005,70.050812000000121],[-81.464721999999995,70.024703999999986],[-81.313613999999973,70.032211000000132],[-81.262221999999952,70.016388000000063],[-81.188599000000011,69.991089000000102],[-81.169723999999974,69.982483000000002],[-81.153335999999911,69.969986000000006],[-81.15306099999998,69.963608000000022],[-81.154174999999896,69.958327999999995],[-81.150283999999999,69.945815999999979],[-81.142775999999969,69.938034000000016],[-81.136123999999995,69.933043999999995],[-81.126389000000017,69.927765000000022],[-81.089721999999995,69.913879000000009],[-81.028335999999967,69.893600000000106],[-80.999999999999943,69.886107999999979],[-80.939986999999974,69.862762000000089],[-80.791381999999942,69.790542999999957],[-80.769164999999873,69.778045999999961],[-80.764175000000023,69.770537999999988],[-80.763061999999991,69.767212000000086],[-80.763061999999991,69.760818000000086],[-80.77555799999999,69.75221300000004],[-80.826110999999912,69.733597000000032],[-80.835555999999883,69.730270000000075],[-80.849441999999954,69.727203000000145],[-80.938889000000017,69.714705999999978],[-80.952498999999989,69.713882000000012],[-80.952224999999942,69.732758000000047],[-80.955841000000021,69.734420999999998],[-81.014449999999954,69.745529000000147],[-81.023055999999997,69.746094000000028],[-81.038054999999929,69.748596000000077],[-81.074172999999917,69.758040999999992],[-81.093063000000029,69.764434999999992],[-81.103058000000033,69.768326000000059],[-81.115554999999858,69.776931999999988],[-81.129439999999931,69.797760000000096],[-81.145843999999897,69.812485000000038],[-81.166945999999996,69.821380999999974],[-81.178878999999938,69.824996999999996],[-81.21665999999999,69.833603000000096],[-81.354445999999996,69.880264000000125],[-81.433059999999955,69.91304000000008],[-81.480559999999969,69.926926000000037],[-81.491942999999878,69.929703000000131],[-81.598891999999864,69.95248400000014],[-81.68249499999996,69.964431999999988],[-81.795273000000009,69.988586000000112],[-81.945540999999878,70.039978000000076],[-81.953887999999949,70.043868999999972],[-81.957229999999981,70.047211000000061],[-81.958618000000001,70.052765000000079],[-81.966659999999933,70.060532000000023],[-82.065001999999936,70.095825000000048],[-82.101104999999905,70.108032000000037],[-82.214447000000007,70.134995000000004],[-82.361663999999962,70.161377000000073],[-82.446655000000021,70.174988000000042],[-82.475006000000008,70.179428000000087],[-82.610001000000011,70.207214000000135],[-82.739165999999898,70.237762000000089],[-82.913894999999968,70.282761000000107],[-82.938888999999961,70.292205999999965],[-82.952224999999999,70.296370999999965],[-82.977782999999988,70.301926000000037],[-82.992766999999901,70.303588999999988],[-83.006957999999997,70.304703000000131],[-83.048049999999989,70.306931000000134],[-82.897781000000009,70.248595999999964],[-82.822234999999978,70.220825000000104],[-82.683608999999933,70.189972000000125],[-82.573623999999995,70.171646000000123],[-82.493880999999988,70.158875000000023],[-82.415282999999988,70.143051000000071],[-82.299727999999902,70.118866000000082],[-82.103058000000033,70.065262000000075],[-81.976395000000025,70.012206999999989],[-81.841674999999952,69.963318000000015],[-81.773330999999928,69.954162999999994],[-81.758056999999951,69.951660000000004],[-81.725006000000008,69.944138000000066],[-81.720001000000025,69.941085999999984],[-81.710830999999985,69.934142999999949],[-81.738327000000027,69.876083000000051],[-81.741378999999881,69.872757000000036],[-81.854171999999949,69.855545000000006],[-81.880279999999914,69.852478000000076],[-81.960281000000009,69.844146999999964],[-81.962783999999886,69.844711000000132],[-81.963333000000034,69.847487999999998],[-81.962508999999955,69.852768000000083],[-81.963333000000034,69.857757999999933],[-81.972503999999958,69.862487999999985],[-81.995270000000005,69.872481999999991],[-82.001677999999856,69.874694999999974],[-82.011123999999995,69.875809000000118],[-82.020003999999858,69.873871000000008],[-82.061661000000015,69.859421000000054],[-82.118880999999874,69.814697000000081],[-82.11860699999994,69.81053200000008],[-82.126098999999954,69.784988000000055],[-82.129715000000033,69.782486000000006],[-82.143340999999964,69.781372000000033],[-82.189986999999917,69.790267999999969],[-82.243606999999997,69.801650999999993],[-82.271392999999989,69.82638500000013],[-82.241668999999945,69.828048999999965],[-82.224441999999954,69.823608000000036],[-82.210280999999952,69.826096000000007],[-82.206664999999987,69.828598000000056],[-82.215011999999888,69.832763999999997],[-82.303054999999915,69.856644000000131],[-82.314163000000008,69.857483000000116],[-82.403609999999958,69.860260000000039],[-82.417769999999962,69.857757999999933],[-82.526397999999972,69.860809000000131],[-82.575012000000015,69.87081900000004],[-82.64416499999993,69.892487000000017],[-82.741378999999938,69.910248000000138],[-83.035278000000005,69.98803700000002],[-83.040832999999964,69.993042000000059],[-83.044448999999929,70.004166000000112],[-83.051392000000021,70.008605999999929],[-83.066665999999998,70.010818000000029],[-83.150283999999942,70.009720000000129],[-83.238892000000021,69.998871000000065],[-83.339171999999962,69.979431000000091],[-83.345276000000013,69.977203000000088],[-83.613891999999964,69.948868000000118],[-83.654175000000009,69.946365000000128],[-83.715285999999878,69.947754000000145],[-83.898620999999991,69.960815000000082],[-83.944716999999969,69.965820000000122],[-84.00167799999997,69.974152000000117],[-84.010833999999932,69.976653999999996],[-84.041672000000005,69.981369000000029],[-84.082779000000016,69.985260000000096],[-84.161666999999966,69.984985000000052],[-84.314162999999951,69.979706000000078],[-84.560546999999872,69.993866000000025],[-84.65695199999999,70.002487000000087],[-84.728606999999897,70.010269000000051],[-84.783889999999985,70.01887499999998],[-85.163054999999929,70.09137000000004],[-85.176102000000014,70.093048000000124],[-85.335280999999952,70.102478000000019],[-85.353881999999942,70.103317000000004],[-85.369155999999975,70.103591999999992],[-85.666397000000018,70.104705999999965],[-85.719727000000034,70.103591999999992],[-85.752501999999936,70.101929000000041],[-85.84722899999997,70.088882000000069],[-85.869445999999868,70.085541000000035],[-85.874999999999943,70.083328000000051],[-85.878051999999968,70.076935000000105],[-85.876099000000011,70.071930000000066],[-85.854720999999984,70.040817000000061],[-85.851669000000015,70.038315000000125],[-85.838333000000034,70.041931000000034],[-85.826950000000011,70.046371000000022],[-85.801940999999943,70.05442800000003],[-85.785278000000005,70.058319000000097],[-85.732772999999952,70.066939999999988],[-85.691665999999941,70.070541000000048],[-85.636397999999986,70.071930000000066],[-85.618057000000022,70.070831000000055],[-85.585555999999997,70.067490000000021],[-85.468833999999902,70.049263000000053],[-85.376937999999996,70.032211000000132],[-85.350280999999995,70.026382000000126],[-85.25140399999998,69.998322000000087],[-85.243056999999908,69.994979999999998],[-85.236114999999984,69.989150999999993],[-85.239440999999943,69.986649000000057],[-85.244995000000017,69.984421000000111],[-85.25778200000002,69.983871000000079],[-85.41339099999999,69.997429000000125],[-85.441230999999959,70.00093099999998],[-85.451224999999965,70.001769999999908],[-85.577498999999932,70.009995000000117],[-85.613892000000021,70.009995000000117],[-85.635009999999909,70.007491999999957],[-85.651947000000007,70.00360100000006],[-85.678328999999906,69.995254999999986],[-85.695267000000001,69.991363999999919],[-85.726943999999946,69.990539999999953],[-85.808334000000002,69.99859600000002],[-85.823333999999988,70.000275000000045],[-85.851944000000003,70.005554000000018],[-86.093063000000029,70.062484999999981],[-86.230835000000013,70.098602000000142],[-86.255004999999926,70.10554500000012],[-86.301940999999943,70.121643000000006],[-86.326400999999976,70.132202000000007],[-86.551940999999999,70.234984999999995],[-86.556106999999997,70.244705000000124],[-86.581115999999952,70.356934000000081],[-86.577224999999999,70.36554000000001],[-86.55860899999999,70.386932000000002],[-86.541945999999996,70.401382000000126],[-86.524170000000026,70.411652000000061],[-86.512787000000003,70.416382000000056],[-86.481109999999944,70.424698000000149],[-86.448333999999932,70.431655999999975],[-86.373046999999985,70.445816000000093],[-86.313048999999864,70.46276899999998],[-86.294997999999964,70.472762999999986],[-86.287506000000008,70.484420999999998],[-86.297774999999945,70.494141000000127],[-86.313889000000017,70.502777000000037],[-86.334441999999967,70.511658000000125],[-86.353607000000011,70.519440000000088],[-86.36221299999994,70.522765999999933],[-86.374709999999993,70.525269000000094],[-86.390839000000028,70.522217000000012],[-86.389998999999989,70.519989000000066],[-86.383895999999879,70.513611000000083],[-86.375548999999978,70.508881000000031],[-86.367767000000015,70.504715000000147],[-86.350280999999995,70.49832200000003],[-86.339721999999938,70.491652999999928],[-86.339447000000007,70.486374000000126],[-86.34056099999998,70.483870999999965],[-86.363327000000027,70.474152000000004],[-86.37388599999997,70.470261000000107],[-86.407501000000025,70.459991000000002],[-86.51568599999996,70.433640000000025],[-86.565001999999936,70.425537000000134],[-86.578338999999971,70.422211000000118],[-86.589721999999995,70.417479999999955],[-86.62777699999998,70.395538000000101],[-86.651397999999972,70.374695000000031],[-86.662216000000001,70.361099000000081],[-86.65943900000002,70.357208000000014],[-86.638335999999924,70.324432000000058],[-86.647232000000031,70.319443000000092],[-86.655563000000029,70.318878000000041],[-86.839721999999995,70.320267000000058],[-86.861938000000009,70.322220000000016],[-86.876099000000011,70.326096000000064],[-86.881103999999937,70.329711999999972],[-86.990554999999915,70.431655999999975],[-86.988892000000021,70.435532000000023],[-86.982497999999964,70.438873000000058],[-86.953613000000018,70.442474000000118],[-86.936935000000005,70.443313999999987],[-86.92471299999994,70.446091000000081],[-86.922775000000001,70.447754000000032],[-86.921386999999925,70.451660000000061],[-86.92193599999996,70.455550999999957],[-86.928329000000019,70.460541000000035],[-86.937209999999936,70.463608000000136],[-86.953338999999971,70.467209000000025],[-86.967772999999909,70.468048000000124],[-86.996384000000035,70.467484000000013],[-87.034164000000033,70.464157000000057],[-87.072509999999966,70.457489000000123],[-87.08944699999995,70.453323000000012],[-87.132767000000001,70.439148000000102],[-87.140563999999983,70.434981999999991],[-87.182220000000029,70.399428999999998],[-87.184998000000007,70.388596000000007],[-87.05749499999996,70.381653000000028],[-87.043883999999991,70.379974000000004],[-87.031676999999945,70.377472000000125],[-87.010558999999944,70.37164300000012],[-86.991378999999995,70.364150999999993],[-86.981109999999944,70.35803199999998],[-86.972777999999948,70.351929000000041],[-86.976395000000025,70.284714000000065],[-86.985824999999977,70.281662000000097],[-86.999434999999949,70.280548000000124],[-87.009170999999924,70.281097000000102],[-87.107498000000021,70.28804000000008],[-87.184433000000013,70.295532000000037],[-87.255004999999983,70.30664100000007],[-87.5625,70.322768999999937],[-87.673614999999984,70.319153000000085],[-87.669998000000021,70.298598999999967],[-87.643889999999999,70.295822000000044],[-87.628601000000003,70.29304500000012],[-87.61721799999998,70.289429000000098],[-87.610275000000001,70.284714000000065],[-87.613327000000027,70.281936999999971],[-87.62388599999997,70.278046000000074],[-87.704177999999956,70.257217000000082],[-87.77694699999995,70.24331699999999],[-87.796951000000035,70.240265000000079],[-87.833892999999989,70.238037000000134],[-87.8663939999999,70.238876000000062],[-87.914444000000003,70.24136400000009],[-87.923049999999989,70.242751999999996],[-87.935546999999985,70.24693300000007],[-88.012825000000021,70.277267000000109],[-88.088165000000004,70.285095000000126],[-88.138610999999912,70.296097000000032],[-88.250564999999938,70.321381000000031],[-88.263061999999934,70.325272000000098],[-88.264724999999942,70.328049000000021],[-88.256957999999997,70.333878000000027],[-88.214171999999962,70.351379000000009],[-88.20666499999993,70.352478000000133],[-88.061774999999955,70.329544000000055],[-88.05494699999997,70.327369999999974],[-88.050109999999904,70.325042999999994],[-88.038283999999919,70.315536000000122],[-88.030784999999923,70.314033999999992],[-88.02427699999987,70.313202000000103],[-87.994445999999982,70.31203499999998],[-87.916397000000018,70.301926000000037],[-87.901671999999905,70.304428000000144],[-87.888610999999969,70.308029000000033],[-87.879989999999964,70.311371000000122],[-87.882492000000013,70.316375999999991],[-87.889998999999989,70.321930000000009],[-87.914718999999991,70.331665000000044],[-88.083618000000001,70.378036000000066],[-88.111938000000009,70.384155000000078],[-88.166945999999996,70.394440000000031],[-88.374434999999949,70.432205000000124],[-88.439986999999917,70.438583000000051],[-88.579177999999956,70.450271999999984],[-88.670272999999952,70.453598000000056],[-88.679442999999992,70.453598000000056],[-88.693053999999961,70.455261000000121],[-88.797775000000001,70.489700000000028],[-88.897506999999962,70.53276100000005],[-88.914443999999889,70.546096999999975],[-88.985824999999863,70.608322000000101],[-89.00389100000001,70.624984999999981],[-89.009170999999981,70.636383000000023],[-88.999999999999943,70.645538000000045],[-88.999725000000012,70.651657000000057],[-89.005279999999914,70.656936999999971],[-89.076674999999966,70.696930000000009],[-89.105834999999956,70.707489000000066],[-89.118880999999988,70.711380000000133],[-89.143889999999942,70.717209000000139],[-89.203888000000006,70.737198000000035],[-89.261123999999995,70.759720000000129],[-89.285278000000005,70.769714000000135],[-89.330565999999919,70.791931000000034],[-89.369719999999973,70.814697000000081],[-89.374161000000015,70.819153000000142],[-89.448333999999988,70.902481000000023],[-89.447219999999902,70.906647000000078],[-89.443603999999937,70.910262999999929],[-89.432495000000017,70.915268000000026],[-89.416397000000018,70.918594000000041],[-89.371658000000025,70.925812000000064],[-89.298614999999927,70.933043999999995],[-89.222777999999948,70.935531999999967],[-89.20944199999991,70.939147999999989],[-89.205840999999964,70.942749000000049],[-89.188599000000011,70.960815000000025],[-89.195267000000001,70.968323000000055],[-89.205565999999919,70.973602000000028],[-89.270279000000016,70.983597000000145],[-89.315276999999924,70.991653000000042],[-89.340560999999923,70.997482000000048],[-89.354720999999927,71.001937999999939],[-89.49499499999996,71.0577550000001],[-89.549727999999959,71.088593000000117],[-89.491378999999938,71.092209000000139],[-89.469726999999978,71.091933999999924],[-89.228333000000021,71.072768999999994],[-89.216948999999943,71.06999200000007],[-89.208617999999944,71.063034000000073],[-89.215285999999935,71.056641000000127],[-89.218063000000029,71.050812000000121],[-89.212509000000011,71.045532000000037],[-89.203063999999983,71.03804000000008],[-89.196655000000021,71.035263000000043],[-89.178604000000007,71.031372000000147],[-89.134444999999971,71.026932000000102],[-89.117767000000015,71.026657000000114],[-89.100829999999917,71.027771000000087],[-89.076110999999969,71.030272999999966],[-89.039443999999946,71.035263000000043],[-88.979996000000028,71.041092000000049],[-88.904723999999987,71.045258000000103],[-88.689163000000008,71.046936000000017],[-88.617767000000015,71.044434000000138],[-88.490279999999984,71.031097000000102],[-88.478881999999942,71.029709000000025],[-88.43249499999996,71.021927000000062],[-88.380279999999971,71.011931999999945],[-88.369155999999975,71.007492000000127],[-88.365829000000019,71.001937999999939],[-88.36332699999997,70.99552900000009],[-88.362503000000004,70.990265000000136],[-88.362777999999992,70.984146000000067],[-88.360274999999945,70.977767999999969],[-88.356948999999986,70.972214000000122],[-88.343612999999948,70.961380000000077],[-88.332503999999972,70.957213999999965],[-88.318618999999899,70.95387299999993],[-88.289718999999934,70.950272000000098],[-88.260833999999988,70.947754000000089],[-88.025283999999942,70.930542000000059],[-87.999999999999886,70.929153000000099],[-87.968886999999881,70.928588999999931],[-87.930557000000022,70.929428000000087],[-87.912780999999995,70.931366000000025],[-87.857772999999895,70.941360000000032],[-87.798049999999932,70.949707000000046],[-87.752791999999999,70.953598000000113],[-87.699996999999996,70.955551000000071],[-87.664443999999946,70.954712000000086],[-87.62748699999986,70.95138500000013],[-87.610549999999932,70.949417000000039],[-87.559433000000013,70.947479000000101],[-87.43582200000003,70.944976999999994],[-87.371216000000004,70.944725000000119],[-87.353607000000011,70.945250999999928],[-87.345551,70.949417000000039],[-87.343063000000029,70.954162999999937],[-87.343613000000005,70.959427000000119],[-87.337783999999886,70.969986000000006],[-87.329177999999956,70.980545000000006],[-87.30860899999999,70.99552900000009],[-87.298889000000031,71],[-87.286117999999988,71.004166000000112],[-87.267226999999878,71.006942999999978],[-87.246947999999918,71.009155000000078],[-87.212508999999955,71.007492000000127],[-87.151397999999858,71],[-87.141388000000006,70.997757000000036],[-87.11610399999995,70.994705000000124],[-87.051392000000021,70.987761999999975],[-87.033614999999998,70.986649000000057],[-87.017501999999922,70.986649000000057],[-87.004180999999903,70.990265000000136],[-87.003066999999987,70.991089000000102],[-87.002791999999999,70.994141000000013],[-87.009734999999978,70.996093999999971],[-87.039444000000003,71.000823999999966],[-87.135009999999966,71.011383000000023],[-87.166397000000018,71.014435000000105],[-87.184433000000013,71.01527400000009],[-87.279175000000009,71.026932000000102],[-87.385833999999988,71.041930999999977],[-87.394729999999981,71.043594000000098],[-87.404723999999931,71.047211000000061],[-87.410827999999981,71.053314],[-87.472777999999948,71.074157999999954],[-87.572783999999956,71.09526100000005],[-87.701400999999976,71.123306000000071],[-87.712783999999999,71.126082999999994],[-87.760283999999956,71.143051000000071],[-87.848891999999864,71.184982000000048],[-87.851943999999946,71.191925000000026],[-87.852492999999981,71.19720500000011],[-87.848343,71.202209000000039],[-87.825286999999946,71.217209000000025],[-87.823059000000001,71.223601999999971],[-87.816665999999941,71.254714999999976],[-87.821945000000028,71.258331000000055],[-87.829452999999944,71.261932000000115],[-87.844161999999926,71.264160000000061],[-87.900283999999999,71.268600000000049],[-87.911666999999909,71.266936999999984],[-87.971938999999963,71.250274999999988],[-88.019729999999981,71.236098999999967],[-88.034163999999976,71.231658999999979],[-88.041945999999939,71.228867000000037],[-88.131103999999993,71.219147000000135],[-88.321670999999981,71.228592000000049],[-88.583618000000001,71.234984999999995],[-88.70666499999993,71.247756999999979],[-88.849990999999989,71.259720000000016],[-89.058043999999995,71.276382000000012],[-89.20666499999993,71.283325000000048],[-89.299163999999962,71.287491000000102],[-89.42860399999995,71.294434000000081],[-89.703888000000006,71.31581100000011],[-89.816665999999998,71.324997000000053],[-89.830001999999979,71.328872999999987],[-89.89973399999991,71.351379000000122],[-89.907227000000034,71.354706000000078],[-89.964721999999995,71.411377000000016],[-89.968613000000005,71.416931000000034],[-89.983063000000016,71.446930000000009],[-90.010558999999887,71.57777400000009],[-90.013061999999934,71.600266000000033],[-90.004729999999938,71.630813999999987],[-90.00306699999993,71.635817999999972],[-89.99722300000002,71.641373000000044],[-89.964721999999995,71.655822999999941],[-89.932769999999948,71.667755000000113],[-89.896117999999944,71.679977000000065],[-89.884734999999921,71.684708000000001],[-89.817504999999983,71.724701000000039],[-89.808334000000002,71.747757000000092],[-89.821395999999936,71.760269000000051],[-89.831389999999942,71.760269000000051],[-89.836120999999991,71.761658000000068],[-89.843062999999972,71.764434999999992],[-89.893615999999952,71.789428999999927],[-89.954453000000001,71.820541000000048],[-89.960281000000009,71.824158000000011],[-90.026672000000019,71.892761000000064],[-90.048614999999984,71.953873000000101],[-90.001113999999916,72.063034000000073],[-89.993057000000022,72.070540999999992],[-89.962783999999999,72.07748399999997],[-89.812209999999993,72.111923000000047],[-89.750838999999928,72.12303199999991],[-89.738891999999964,72.124985000000038],[-89.725829999999974,72.124695000000031],[-89.718886999999995,72.121917999999937],[-89.715835999999967,72.118591000000038],[-89.704726999999991,72.113312000000008],[-89.691665999999941,72.109985000000108],[-89.682494999999903,72.110535000000141],[-89.664718999999934,72.113312000000008],[-89.597503999999958,72.148331000000098],[-89.579726999999991,72.158874999999966],[-89.574721999999952,72.163605000000018],[-89.576674999999966,72.169144000000017],[-89.584732000000031,72.175811999999951],[-89.598891999999978,72.178040000000124],[-89.618057000000022,72.17886400000009],[-89.676665999999955,72.17692599999998],[-89.705841000000021,72.174697999999978],[-89.724716000000001,72.172485000000052],[-89.738891999999964,72.168593999999985],[-89.759445000000028,72.159988000000055],[-89.770553999999947,72.157485999999949],[-89.780563000000029,72.157485999999949],[-89.802489999999921,72.161925999999994],[-89.892226999999991,72.186919999999986],[-89.897232000000031,72.188583000000051],[-89.901397999999915,72.194137999999953],[-89.939437999999939,72.261932000000058],[-89.954177999999956,72.304977000000065],[-89.957503999999915,72.316086000000098],[-89.95666499999993,72.321655000000135],[-89.913329999999974,72.422211000000061],[-89.907500999999968,72.432205000000067],[-89.89056399999987,72.444977000000051],[-89.87249799999995,72.449142000000052],[-89.860275000000001,72.451096000000121],[-89.813613999999973,72.456650000000081],[-89.799438000000009,72.46026599999999],[-89.793609999999887,72.462768999999923],[-89.777221999999995,72.493866000000025],[-89.775283999999886,72.498596000000077],[-89.772506999999962,72.51998900000001],[-89.772781000000009,72.526093000000003],[-89.786666999999966,72.559982000000048],[-89.753890999999953,72.60554499999995],[-89.736937999999952,72.616652999999985],[-89.699996999999939,72.625259000000085],[-89.678329000000019,72.629424999999969],[-89.65695199999999,72.630264000000125],[-89.643616000000009,72.62692300000009],[-89.614715999999987,72.616089000000045],[-89.597503999999958,72.614700000000028],[-89.572784000000013,72.616928000000144],[-89.560546999999929,72.621918000000051],[-89.470550999999944,72.666091999999992],[-89.473617999999874,72.672485000000108],[-89.511947999999961,72.688873000000001],[-89.525283999999999,72.693863000000022],[-89.549164000000019,72.691085999999927],[-89.567504999999926,72.693039000000056],[-89.574721999999952,72.698868000000061],[-89.580001999999922,72.711105000000032],[-89.581389999999999,72.71775800000006],[-89.574721999999952,72.785263000000043],[-89.569457999999941,72.786925999999937],[-89.479445999999996,72.779709000000025],[-89.446380999999917,72.775542999999971],[-89.36471599999993,72.762206999999989],[-89.330565999999919,72.755829000000006],[-89.294158999999922,72.797211000000061],[-89.333327999999995,72.950546000000145],[-89.358337000000006,72.965271000000087],[-89.361388999999974,72.991652999999985],[-89.308883999999978,73.048324999999977],[-89.228333000000021,73.125809000000004],[-89.043335000000013,73.252486999999974],[-89.035827999999981,73.257492000000013],[-89.00028999999995,73.278320000000122],[-88.990554999999972,73.283599999999979],[-88.856948999999986,73.336105000000032],[-88.695830999999941,73.411926000000108],[-88.68360899999999,73.417480000000069],[-88.468062999999972,73.491928000000087],[-88.433318999999926,73.514159999999947],[-88.409164000000033,73.523605000000032],[-88.286391999999978,73.566939999999988],[-88.263061999999934,73.573883000000023],[-88.074721999999895,73.627762000000018],[-87.974441999999954,73.654709000000139],[-87.92332499999992,73.667755000000056],[-87.817229999999995,73.694427000000132],[-87.780288999999982,73.703048999999965],[-87.739990000000034,73.711380000000077],[-87.539444000000003,73.746643000000063],[-87.456664999999987,73.760269000000051],[-87.183608999999933,73.792755000000113],[-87.049438000000009,73.80831900000004],[-86.71665999999999,73.840820000000122],[-86.596663999999976,73.84526100000005],[-86.493057000000022,73.844437000000084],[-86.401397999999915,73.845824999999991],[-86.239440999999999,73.849152000000117],[-86.208618000000001,73.849991000000102],[-86.109160999999972,73.849991000000102],[-85.747771999999998,73.836380000000133],[-85.706664999999987,73.832214000000022],[-85.553054999999972,73.820830999999998],[-85.520003999999972,73.81999200000007],[-85.462508999999955,73.820830999999998],[-85.421936000000017,73.824158000000125],[-85.307770000000005,73.821106000000043],[-85.16332999999986,73.813309000000061],[-85.121108999999933,73.809981999999991],[-85.104995999999971,73.808029000000033],[-85.069457999999884,73.801926000000094],[-85.034728999999913,73.794708000000071],[-84.970001000000025,73.777771000000087],[-84.837783999999999,73.741652999999985],[-84.842772999999966,73.735809000000017],[-84.865554999999915,73.713318000000015],[-84.922501000000011,73.680267000000072],[-84.931380999999988,73.67553700000002],[-84.956116000000009,73.665267999999969],[-84.985000999999954,73.655823000000112],[-85.340835999999854,73.556366000000139],[-85.596389999999985,73.486649000000114],[-85.766402999999855,73.425262000000032],[-85.851104999999961,73.391098],[-85.930282999999974,73.355255],[-86.046660999999858,73.287201000000039],[-86.137787000000003,73.228867000000037],[-86.292220999999984,73.103317000000118],[-86.296386999999982,73.097488000000055],[-86.294448999999929,73.091095000000109],[-86.288895000000025,73.087204000000042],[-86.28443900000002,73.08248900000001],[-86.284163999999976,73.077208999999982],[-86.287216000000001,73.072495000000004],[-86.328339000000028,73.036651999999947],[-86.454452999999887,72.963607999999965],[-86.474716000000001,72.953323000000069],[-86.495269999999891,72.943314000000044],[-86.50556899999998,72.938309000000004],[-86.571120999999948,72.908875000000023],[-86.627212999999927,72.883605999999986],[-86.647506999999962,72.873306000000071],[-86.653610000000015,72.868866000000082],[-86.658339999999953,72.863602000000071],[-86.695540999999992,72.819153000000142],[-86.696654999999964,72.816666000000055],[-86.732773000000009,72.716095000000109],[-86.703339000000028,72.659148999999957],[-86.698333999999988,72.652205999999978],[-86.686935000000005,72.644714000000022],[-86.662216000000001,72.631653000000085],[-86.638335999999924,72.620529000000033],[-86.611389000000031,72.60914600000001],[-86.504181000000017,72.56860400000005],[-86.479720999999984,72.56053200000008],[-86.466110000000015,72.556365999999969],[-86.451401000000033,72.553040000000124],[-86.414443999999946,72.541656000000046],[-86.397232000000031,72.534988000000055],[-86.353057999999976,72.511658000000068],[-86.33805799999999,72.503051999999968],[-86.283066000000019,72.468323000000112],[-86.275832999999977,72.463318000000072],[-86.267776000000026,72.456375000000094],[-86.255004999999926,72.443588000000091],[-86.240829000000019,72.420258000000103],[-86.240829000000019,72.406647000000135],[-86.24610899999999,72.394989000000123],[-86.258057000000008,72.384430000000066],[-86.275283999999942,72.373871000000008],[-86.308043999999995,72.359146000000067],[-86.350829999999917,72.339156999999943],[-86.377776999999924,72.323608000000036],[-86.396117999999944,72.30914300000012],[-86.428054999999915,72.281937000000084],[-86.43582200000003,72.270264000000054],[-86.455276000000026,72.207214000000079],[-86.434432999999956,72.049987999999928],[-86.432495000000017,72.043319999999994],[-86.425827000000027,72.024993999999992],[-86.420546999999999,72.012771999999984],[-86.336670000000026,71.951934999999992],[-86.166107000000011,71.824996999999996],[-86.132766999999944,71.795822000000101],[-86.110549999999989,71.783051],[-86.078613000000018,71.775542999999971],[-86.051666000000012,71.771652000000074],[-86.024444999999957,71.765823000000069],[-85.947219999999959,71.726928999999984],[-85.905563000000029,71.699707000000046],[-85.871933000000013,71.676926000000037],[-85.500838999999985,71.511108000000092],[-85.391952999999944,71.481659000000093],[-85.374161000000015,71.47886699999998],[-85.228606999999954,71.465546000000074],[-84.948607999999979,71.421646000000067],[-84.93472300000002,71.418319999999994],[-84.929992999999968,71.414429000000098],[-84.859160999999972,71.321105999999986],[-84.838057999999933,71.29193099999992],[-84.834166999999979,71.285262999999986],[-84.83277899999996,71.278869999999984],[-84.833892999999932,71.274154999999951],[-84.835555999999997,71.271652000000017],[-84.848343,71.269440000000145],[-84.868606999999997,71.268875000000094],[-84.921660999999972,71.270828000000051],[-85.041945999999996,71.278594999999996],[-85.172500999999897,71.272490999999945],[-85.173888999999974,71.269989000000066],[-85.178329000000019,71.266388000000006],[-85.389998999999932,71.196640000000059],[-85.399993999999936,71.193862999999965],[-85.50028999999995,71.177200000000084],[-85.514724999999999,71.176086000000112],[-85.532501000000025,71.177200000000084],[-85.663054999999986,71.194427000000132],[-85.761397999999986,71.192200000000071],[-85.838333000000034,71.187485000000038],[-85.932769999999948,71.17886400000009],[-85.966659999999933,71.171097000000145],[-86.170836999999949,71.106934000000081],[-86.210830999999985,71.09387200000009],[-86.21444699999995,71.089705999999978],[-86.206954999999994,71.083878000000084],[-86.206115999999952,71.078049000000021],[-86.212783999999999,71.072768999999994],[-86.24888599999997,71.058594000000085],[-86.288605000000018,71.052200000000028],[-86.408051,71.035263000000043],[-86.450835999999924,71.031372000000147],[-86.517775999999969,71.031661999999983],[-86.643889999999999,71.019439999999975],[-86.749999999999943,71.007766999999944],[-86.770278999999903,71.004166000000112],[-86.785552999999993,71.000275000000045],[-86.798614999999984,70.996368000000075],[-86.819167999999877,70.98942599999998],[-86.820007000000032,70.988586000000112],[-86.806655999999975,70.983871000000079],[-86.75778200000002,70.97665399999994],[-86.713057999999933,70.974152000000061],[-86.601943999999946,70.97164900000007],[-86.547500999999954,70.978867000000093],[-86.430283000000031,70.988876000000118],[-86.292220999999984,71.000275000000045],[-86.270279000000016,71.002777000000094],[-86.224166999999852,71.014435000000105],[-86.026947000000007,71.071381000000088],[-85.832503999999915,71.127197000000137],[-85.802215999999987,71.135818000000029],[-85.779174999999952,71.139160000000004],[-85.670273000000009,71.148880000000077],[-85.650283999999999,71.149428999999998],[-85.505004999999983,71.158034999999927],[-85.411666999999966,71.17442299999999],[-85.391678000000013,71.174988000000042],[-85.288605000000018,71.159149000000127],[-85.274169999999913,71.15525800000006],[-85.110549999999989,71.161652000000061],[-85.042220999999927,71.181656000000032],[-85.037216000000001,71.183044000000109],[-84.99888599999997,71.187485000000038],[-84.961670000000026,71.188583000000108],[-84.944152999999972,71.187195000000031],[-84.875274999999988,71.172760000000096],[-84.849990999999989,71.154709000000082],[-84.84584000000001,71.147766000000104],[-84.87110899999999,71.073607999999922],[-84.875823999999852,71.06999200000007],[-84.879714999999919,71.069442999999922],[-84.904175000000009,71.078049000000021],[-84.935821999999973,71.092483999999956],[-84.950561999999934,71.09693900000002],[-84.966110000000015,71.10026600000009],[-84.9808349999999,71.101089000000002],[-85.00111400000003,71.100815000000068],[-85.142226999999934,71.086380000000133],[-85.146956999999986,71.082764000000054],[-85.112777999999935,71.079163000000051],[-85.061385999999914,71.076385000000016],[-84.99221799999998,71.077484000000027],[-84.976668999999902,71.075821000000076],[-84.960281000000009,71.072220000000016],[-84.92971799999998,71.004440000000045],[-84.926940999999943,70.988037000000134],[-84.930282999999974,70.981659000000036],[-84.941375999999991,70.970535000000098],[-84.950835999999981,70.965546000000131],[-84.963333000000034,70.955826000000059],[-84.975280999999995,70.945250999999928],[-84.976105000000018,70.933318999999983],[-84.970839999999953,70.927474999999959],[-84.964721999999938,70.922485000000108],[-84.958618000000001,70.919434000000081],[-84.941100999999946,70.918045000000063],[-84.814162999999951,70.919434000000081],[-84.798888999999974,70.921646000000123],[-84.793610000000001,70.926650999999993],[-84.748336999999992,70.975539999999967],[-84.748046999999985,70.988037000000134],[-84.771118000000001,71.037490999999989],[-84.803604000000007,71.047211000000061],[-84.819167999999991,71.057480000000112],[-84.827788999999996,71.068328999999949],[-84.829726999999878,71.073317999999915],[-84.828888000000006,71.079987000000017],[-84.826675000000023,71.085541000000148],[-84.801392000000021,71.148605000000032],[-84.766662999999994,71.197479000000044],[-84.770843999999954,71.254990000000021],[-84.781386999999938,71.261932000000115],[-84.786666999999909,71.267761000000121],[-84.793059999999969,71.278046000000018],[-84.796660999999915,71.297485000000108],[-84.797226000000023,71.303314000000114],[-84.762511999999901,71.406646999999964],[-84.749434999999949,71.416655999999989],[-84.731948999999929,71.424698000000149],[-84.720551,71.428314],[-84.693053999999961,71.434143000000006],[-84.678329000000019,71.435257000000036],[-84.660004000000015,71.431655999999975],[-84.653060999999923,71.431931000000134],[-84.571670999999924,71.440810999999997],[-84.557495000000017,71.444138000000123],[-84.547774999999945,71.447478999999987],[-84.539169000000015,71.451660000000061],[-84.531951999999933,71.456940000000145],[-84.526108000000022,71.46887200000009],[-84.526397999999915,71.478316999999947],[-84.530563000000029,71.492477000000065],[-84.533614999999941,71.502486999999974],[-84.546660999999972,71.527480999999966],[-84.554717999999923,71.541092000000106],[-84.561385999999914,71.549988000000042],[-84.564437999999939,71.552475000000129],[-84.610275000000001,71.562759000000142],[-84.636397999999929,71.570541000000105],[-84.648620999999991,71.57638500000013],[-84.65834000000001,71.583878000000141],[-84.654998999999975,71.608871000000022],[-84.653060999999923,71.612762000000089],[-84.642501999999979,71.622757000000036],[-84.625548999999978,71.633041000000048],[-84.610549999999989,71.641663000000051],[-84.604445999999996,71.646103000000039],[-84.606658999999922,71.649429000000112],[-84.625,71.665817000000004],[-84.628052000000025,71.668319999999937],[-84.635559000000001,71.670258000000103],[-84.649733999999967,71.672211000000004],[-84.710830999999928,71.676085999999998],[-84.77305599999994,71.678588999999988],[-84.782776000000013,71.678863999999976],[-84.827498999999989,71.675262000000032],[-84.867217999999923,71.66804500000012],[-84.886200000000031,71.654251000000102],[-84.926666000000012,71.636107999999979],[-84.975280999999995,71.644440000000145],[-85.097503999999958,71.655258000000117],[-85.176940999999999,71.656647000000135],[-85.196655000000021,71.655822999999941],[-85.230835000000013,71.659987999999942],[-85.263900999999976,71.665543000000071],[-85.279723999999987,71.668594000000041],[-85.291381999999999,71.672211000000004],[-85.570846999999958,71.77998400000007],[-85.579726999999991,71.784988000000055],[-85.573623999999938,71.790817000000061],[-85.557770000000005,71.79525799999999],[-85.543883999999935,71.795532000000094],[-85.458892999999989,71.79414399999996],[-85.449721999999952,71.796097000000088],[-85.436934999999949,71.800812000000121],[-85.432769999999948,71.806366000000139],[-85.431945999999982,71.814697000000024],[-85.434432999999899,71.818053999999961],[-85.551666000000012,71.896378000000027],[-85.559722999999963,71.900543000000027],[-85.744995000000017,71.941360000000032],[-85.845839999999896,71.962494000000049],[-85.900832999999977,71.969147000000021],[-85.939986999999974,71.973038000000088],[-85.963333000000034,71.974425999999994],[-86.002501999999993,71.978043000000127],[-86.022781000000009,71.980545000000006],[-86.026672000000019,71.981658999999979],[-86.039169000000015,71.988876000000118],[-86.043610000000001,71.99552900000009],[-86.050827000000027,72.011107999999979],[-86.047501000000011,72.013885000000073],[-85.981110000000001,72.028594999999996],[-85.778885000000002,72.026932000000102],[-85.538329999999974,72.059143000000006],[-85.509444999999914,72.068054000000132],[-85.495270000000005,72.078872999999987],[-85.440552000000025,72.132751000000098],[-85.449158000000011,72.158325000000104],[-85.481948999999929,72.173309000000017],[-85.50167799999997,72.184143000000063],[-85.502501999999993,72.251663000000065],[-85.49749799999995,72.255264000000125],[-85.48721299999994,72.260268999999994],[-85.291945999999882,72.25999500000006],[-85.271941999999967,72.259720000000016],[-85.029175000000009,72.25082400000008],[-85.013335999999981,72.250000000000114],[-84.936385999999914,72.235809000000131],[-84.919997999999964,72.232758000000103],[-84.867766999999958,72.220825000000048],[-84.861388999999917,72.217758000000117],[-84.847504000000015,72.205550999999957],[-84.839172000000019,72.194137999999953],[-84.815276999999924,72.181366000000139],[-84.803328999999906,72.177765000000079],[-84.710555999999997,72.151656999999943],[-84.612212999999997,72.141098000000113],[-84.595839999999953,72.137772000000041],[-84.512222000000008,72.114150999999993],[-84.286391999999978,72.028594999999996],[-84.275557999999933,72.023879999999963],[-84.269454999999994,72.020828000000051],[-84.261123999999995,72.016098000000056],[-84.258056999999894,72.011932000000115],[-84.25,71.998322000000087],[-84.239989999999921,71.973877000000016],[-84.236389000000031,71.961655000000064],[-84.230559999999855,71.95138500000013],[-84.225006000000008,71.945525999999916],[-84.218886999999995,71.940262000000132],[-84.208617999999888,71.93414300000012],[-84.194442999999978,71.930817000000047],[-84.184722999999963,71.930542000000059],[-84.178329000000019,71.932755000000043],[-84.172774999999945,71.937759000000142],[-84.168883999999878,71.944138000000009],[-84.158614999999998,71.977203000000088],[-84.164718999999877,72.021103000000096],[-84.171111999999994,72.024155000000007],[-84.218063000000029,72.044144000000131],[-84.270003999999915,72.051085999999998],[-84.285827999999981,72.054152999999928],[-84.319732999999871,72.0619200000001],[-84.346663999999976,72.069717000000026],[-84.357772999999952,72.076385000000016],[-84.379990000000021,72.108321999999987],[-84.380553999999961,72.123596000000077],[-84.456116000000009,72.133605999999986],[-84.473327999999981,72.135818000000029],[-84.613326999999913,72.163605000000018],[-84.652221999999938,72.17886400000009],[-84.72193900000002,72.213043000000084],[-84.933318999999926,72.284424000000001],[-84.935271999999941,72.289429000000041],[-84.917495999999971,72.299713000000054],[-84.829452999999944,72.348328000000095],[-84.816101000000003,72.352767999999912],[-84.801392000000021,72.354706000000078],[-84.769729999999981,72.356368999999972],[-84.715012000000002,72.355820000000051],[-84.661941999999954,72.354156000000046],[-84.565001999999993,72.348877000000073],[-84.521117999999944,72.350540000000137],[-84.500838999999928,72.353867000000093],[-84.48443599999996,72.358032000000094],[-84.436110999999926,72.374984999999981],[-84.433060000000012,72.378311000000053],[-84.442215000000033,72.383041000000048],[-84.453339000000028,72.382477000000108],[-84.471389999999928,72.379425000000026],[-84.571670999999924,72.361374000000012],[-84.864166000000012,72.36692800000003],[-84.872771999999998,72.36943100000002],[-84.876098999999954,72.372208000000114],[-84.875548999999921,72.394989000000123],[-84.870834000000002,72.400818000000129],[-84.857772999999952,72.405547999999953],[-84.836670000000026,72.408035000000041],[-84.817504999999983,72.406647000000135],[-84.800277999999992,72.406647000000135],[-84.786666999999909,72.40887500000008],[-84.768341000000021,72.444427000000019],[-84.767226999999934,72.447478999999987],[-84.768341000000021,72.451935000000049],[-84.771118000000001,72.457489000000066],[-84.776947000000007,72.458327999999995],[-84.791945999999996,72.45498699999996],[-84.918609999999944,72.425262000000089],[-85.008347000000015,72.399429000000112],[-85.021666999999979,72.394714000000079],[-85.144729999999925,72.359421000000111],[-85.339019999999948,72.406418000000031],[-85.370270000000005,72.414703000000031],[-85.515288999999996,72.458878000000027],[-85.535277999999948,72.469711000000018],[-85.610001000000011,72.53166200000004],[-85.618057000000022,72.540817000000061],[-85.61721799999998,72.545532000000094],[-85.613892000000021,72.550261999999975],[-85.598617999999931,72.555251999999996],[-85.508347000000015,72.561371000000008],[-85.486114999999927,72.564987000000087],[-85.478057999999976,72.568329000000006],[-85.473052999999993,72.571930000000066],[-85.475554999999986,72.575272000000041],[-85.481110000000001,72.577484000000084],[-85.499999999999943,72.58027600000014],[-85.559998000000007,72.582489000000123],[-85.623885999999914,72.586928999999941],[-85.641953000000001,72.592757999999947],[-85.654174999999952,72.598038000000031],[-85.664718999999934,72.60554499999995],[-85.703063999999927,72.634155000000021],[-85.705276000000026,72.637771999999984],[-85.70777899999996,72.646378000000084],[-85.70944199999991,72.73692299999999],[-85.688048999999978,72.893599999999992],[-85.68472300000002,72.898330999999928],[-85.679442999999992,72.903595000000109],[-85.592223999999987,72.959152000000074],[-85.581680000000006,72.964157000000114],[-85.570557000000008,72.966934000000037],[-85.549164000000019,72.969711000000132],[-85.499725000000012,72.974152000000004],[-85.481948999999929,72.974152000000004],[-85.378875999999934,72.971100000000092],[-85.283066000000019,72.964431999999931],[-85.257507000000032,72.960814999999968],[-85.127486999999974,72.940262000000132],[-85.077498999999932,72.929977000000008],[-85.015015000000005,72.916092000000106],[-84.96665999999999,72.904984000000127],[-84.93249499999996,72.896378000000027],[-84.874434999999949,72.885543999999925],[-84.819457999999997,72.880264000000068],[-84.707503999999972,72.869980000000055],[-84.668610000000001,72.867477000000065],[-84.61082499999992,72.861649000000114],[-84.504455999999948,72.846100000000035],[-84.437209999999993,72.833603000000039],[-84.404998999999918,72.826096000000121],[-84.389450000000011,72.822220000000016],[-84.320847000000015,72.800812000000121],[-84.291107000000011,72.791655999999989],[-84.257507000000032,72.785263000000043],[-84.188323999999966,72.774428999999941],[-83.991378999999938,72.745819000000097],[-83.97222899999997,72.744141000000013],[-83.958054000000004,72.746643000000063],[-83.955275999999913,72.748322000000087],[-83.953063999999927,72.752487000000087],[-83.956389999999999,72.754990000000078],[-83.989440999999999,72.76887499999998],[-84.040832999999964,72.77748100000008],[-84.073623999999995,72.781661999999983],[-84.108046999999942,72.785263000000043],[-84.218613000000005,72.794983000000116],[-84.246947999999975,72.79971299999994],[-84.291381999999942,72.812484999999981],[-84.311935000000005,72.820267000000115],[-84.335280999999952,72.829987000000017],[-84.419158999999922,72.853316999999947],[-84.528885000000002,72.882477000000051],[-84.577224999999942,72.892212000000086],[-84.652495999999985,72.899429000000055],[-84.706389999999999,72.905823000000055],[-84.74360699999994,72.910812000000021],[-84.760558999999944,72.914153999999996],[-84.791107000000011,72.921371000000079],[-84.855835000000013,72.937485000000038],[-84.870269999999948,72.942200000000071],[-85.059998000000007,72.996643000000006],[-85.223609999999951,73.014984000000027],[-85.513901000000033,73.019149999999911],[-85.535277999999948,73.021927000000005],[-85.537216000000001,73.028320000000008],[-85.47193900000002,73.098037999999917],[-85.447768999999937,73.120254999999986],[-85.44027699999998,73.125533999999959],[-85.429442999999935,73.130539000000056],[-85.415832999999964,73.135269000000051],[-85.406951999999933,73.136383000000023],[-85.395554000000004,73.135544000000095],[-85.379990000000021,73.133605999999929],[-85.37332200000003,73.130814000000044],[-85.369995000000017,73.128311000000053],[-85.363891999999964,73.120818999999926],[-85.35943599999996,73.113876000000118],[-85.358046999999942,73.109711000000118],[-85.333618000000001,73.092484000000127],[-85.300277999999935,73.078049000000021],[-85.256888999999944,73.071487000000104],[-85.248061999999948,73.068649000000107],[-85.240891000000033,73.066818000000126],[-85.188057000000015,73.059814000000074],[-85.175887999999986,73.058655000000101],[-85.166388999999981,73.060654000000113],[-85.171393999999964,73.066315000000088],[-85.152495999999985,73.072769000000108],[-85.186935000000005,73.096939000000134],[-85.226943999999946,73.115814000000057],[-85.229172000000005,73.12303200000008],[-85.227782999999988,73.129150000000038],[-85.223052999999993,73.134720000000129],[-85.213622999999984,73.13888500000013],[-85.191939999999988,73.141663000000108],[-85.148345999999947,73.141663000000108],[-85.089171999999962,73.137496999999996],[-85.053329000000019,73.13220200000012],[-85.003066999999874,73.121918000000107],[-84.988602000000014,73.116928000000087],[-84.921386999999982,73.098327999999924],[-84.904175000000009,73.09526100000005],[-84.829726999999878,73.085541000000148],[-84.772781000000009,73.081100000000049],[-84.556655999999975,73.064423000000033],[-84.212508999999955,73.040268000000026],[-84.077224999999942,73.03387500000008],[-83.92332499999992,73.033600000000035],[-83.867766999999901,73.029709000000139],[-83.84973100000002,73.027481000000023],[-83.832503999999972,73.024155000000007],[-83.761397999999929,73.006378000000097],[-83.718886999999995,72.989151000000106],[-83.634445000000028,72.982483000000116],[-83.633330999999941,72.983322000000101],[-83.634445000000028,72.986374000000012],[-83.648346000000004,72.991364000000033],[-83.692490000000021,73.005554000000132],[-83.776672000000019,73.031097000000045],[-83.879715000000033,73.051926000000037],[-83.913619999999923,73.058318999999983],[-83.93472300000002,73.061096000000077],[-83.955841000000021,73.06164600000011],[-83.974716000000001,73.060806000000071],[-84.039718999999991,73.056366000000082],[-84.05972300000002,73.056366000000082],[-84.095001000000025,73.058318999999983],[-84.197495000000004,73.068604000000107],[-84.236938000000009,73.081100000000049],[-84.248046999999985,73.083327999999995],[-84.275283999999999,73.086929000000055],[-84.433884000000035,73.106093999999985],[-84.531112999999948,73.110260000000096],[-84.547501000000011,73.111374000000069],[-84.584441999999967,73.115814000000057],[-84.736389000000031,73.137206999999989],[-84.789444000000003,73.145828000000108],[-84.865004999999883,73.163604999999961],[-84.912780999999939,73.175537000000134],[-84.942215000000033,73.181655999999975],[-84.985275000000001,73.190536000000009],[-85.020003999999972,73.196930000000066],[-85.058334000000002,73.200546000000088],[-85.100554999999986,73.201385000000073],[-85.138061999999934,73.204436999999984],[-85.170546999999942,73.210815000000139],[-85.17721599999993,73.213882000000069],[-85.184433000000013,73.21887200000009],[-85.188599000000011,73.223602000000142],[-85.188599000000011,73.228867000000037],[-85.138900999999976,73.299988000000042],[-85.134170999999981,73.305542000000059],[-85.115828999999962,73.314423000000147],[-85.077788999999882,73.329437000000041],[-85.017226999999991,73.348328000000095],[-84.979996000000028,73.35664399999996],[-84.808043999999938,73.388321000000133],[-84.78694200000001,73.388046000000088],[-84.756392999999946,73.381088000000091],[-84.741669000000002,73.376083000000051],[-84.72193900000002,73.362198000000149],[-84.712783999999942,73.348602000000028],[-84.694992000000013,73.326934999999992],[-84.685271999999998,73.319991999999957],[-84.654998999999975,73.305542000000059],[-84.424712999999997,73.232483000000059],[-84.408889999999985,73.228591999999992],[-84.392501999999922,73.226089000000002],[-84.377212999999927,73.224152000000004],[-84.355269999999905,73.223037999999974],[-84.33944699999995,73.226089000000002],[-84.347777999999948,73.232483000000059],[-84.413054999999986,73.272217000000012],[-84.451110999999969,73.288588999999945],[-84.460830999999985,73.291931000000091],[-84.48971599999993,73.299713000000054],[-84.563613999999973,73.313873000000115],[-84.576674999999909,73.317764000000011],[-84.586945000000014,73.323044000000095],[-84.597778000000005,73.330826000000059],[-84.653609999999958,73.387206999999933],[-84.656113000000005,73.390549000000078],[-84.652221999999938,73.393326000000002],[-84.642226999999934,73.397217000000069],[-84.625,73.401382000000069],[-84.583892999999989,73.409149000000014],[-84.434157999999968,73.435256999999979],[-84.284438999999963,73.461105000000089],[-84.229172000000005,73.47026100000005],[-84.194442999999978,73.474701000000039],[-84.171386999999925,73.47526600000009],[-84.113892000000021,73.469147000000078],[-83.751923000000033,73.427490000000034],[-83.724715999999944,73.41304000000008],[-83.717772999999966,73.405822999999998],[-83.719726999999978,73.399719000000118],[-83.724715999999944,73.393875000000094],[-83.728058000000033,73.381088000000091],[-83.720550999999944,73.365814000000057],[-83.712218999999948,73.351928999999927],[-83.702498999999875,73.339157000000114],[-83.689437999999939,73.323608000000036],[-83.665833000000021,73.307754999999986],[-83.657500999999968,73.303589000000102],[-83.648055999999997,73.300261999999975],[-83.630828999999949,73.297210999999947],[-83.613891999999964,73.296097000000145],[-83.600554999999929,73.297485000000052],[-83.593062999999972,73.301375999999948],[-83.590835999999911,73.307204999999954],[-83.591109999999958,73.313309000000004],[-83.594161999999983,73.325272000000041],[-83.624999999999943,73.415268000000026],[-83.633330999999941,73.428864000000033],[-83.642501999999979,73.439696999999967],[-83.652495999999985,73.445250999999985],[-83.663895000000025,73.449707000000103],[-83.679717999999923,73.453872999999987],[-83.696945000000028,73.457214000000022],[-83.754456000000005,73.463318000000072],[-83.810546999999929,73.470534999999984],[-83.954726999999934,73.492752000000053],[-83.978606999999954,73.49664300000012],[-83.993606999999997,73.500275000000045],[-84.00418099999996,73.504166000000112],[-84.006957999999941,73.509720000000129],[-83.996947999999975,73.51388500000013],[-83.979172000000005,73.518051000000014],[-83.740828999999962,73.567763999999954],[-83.577498999999989,73.59637500000008],[-83.445267000000001,73.615814],[-83.219161999999869,73.656647000000078],[-83.085280999999952,73.65776100000005],[-83.018340999999907,73.666091999999935],[-82.931106999999997,73.690536000000066],[-82.902221999999938,73.700272000000041],[-82.889998999999989,73.705261000000007],[-82.872771999999884,73.715546000000131],[-82.869720000000029,73.721099999999979],[-82.86332699999997,73.726089000000115],[-82.852782999999931,73.730270000000019],[-82.840835999999967,73.73275799999999],[-82.820846999999958,73.733597000000145],[-82.636123999999938,73.727767999999912],[-82.529998999999918,73.722214000000122],[-82.475006000000008,73.719985999999949],[-82.413894999999968,73.718871999999976],[-82.367492999999911,73.719147000000021],[-82.21945199999999,73.725266000000033],[-81.990828999999962,73.731368999999972],[-81.618057000000022,73.721099999999979],[-81.572509999999966,73.719711000000132],[-81.553878999999938,73.717209000000082],[-81.536666999999852,73.713882000000126],[-81.476105000000018,73.698029000000076],[-81.457229999999981,73.691086000000098],[-81.282500999999968,73.58027600000014],[-81.239715999999873,73.546936000000073],[-81.228881999999999,73.535538000000088],[-81.21945199999999,73.521378000000141],[-81.197494999999947,73.477203000000145],[-81.188323999999909,73.389709000000039],[-81.21166999999997,73.326096000000007],[-81.216109999999958,73.314697000000081],[-81.215835999999967,73.303863999999919],[-81.214172000000019,73.291931000000091],[-81.20944199999991,73.272766000000104],[-81.204726999999991,73.266662999999994],[-81.192490000000021,73.260543999999982],[-81.177490000000034,73.256378000000041],[-81.101668999999958,73.238312000000064],[-81.074448000000018,73.232208000000071],[-80.900283999999942,73.209427000000005],[-80.712783999999942,73.180267000000129],[-80.664718999999934,73.171097000000088],[-80.640839000000028,73.165543000000127],[-80.61721799999998,73.157760999999994],[-80.596389999999985,73.148041000000092],[-80.557769999999948,73.111374000000069],[-80.547501000000011,73.098037999999917],[-80.547774999999945,73.091369999999984],[-80.549437999999952,73.081940000000088],[-80.59333799999996,73.025818000000072],[-80.617492999999968,73.005554000000132],[-80.641388000000006,72.996094000000085],[-80.647507000000019,72.990540000000067],[-80.652221999999938,72.974700999999982],[-80.650833000000034,72.969146999999964],[-80.633895999999936,72.940536000000066],[-80.642501999999979,72.93553200000008],[-80.642775999999969,72.92886400000009],[-80.638335999999981,72.922760000000096],[-80.537216000000001,72.851089000000002],[-80.513901000000033,72.838882000000012],[-80.487777999999992,72.828598],[-80.440552000000025,72.818603999999993],[-80.405563000000029,72.813309000000118],[-80.349166999999966,72.806366000000139],[-80.333327999999938,72.803040000000067],[-80.319457999999941,72.799149],[-80.299987999999985,72.788040000000137],[-80.283614999999998,72.77748100000008],[-80.247498000000007,72.730545000000063],[-80.258056999999894,72.724425999999994],[-80.332229999999925,72.712494000000049],[-80.361664000000019,72.706099999999992],[-80.444991999999957,72.673599000000081],[-80.464721999999938,72.665268000000026],[-80.541381999999999,72.628860000000145],[-80.55610699999994,72.6202550000001],[-80.556380999999874,72.607208000000071],[-80.648620999999991,72.554977000000008],[-80.676391999999964,72.547211000000118],[-80.765288999999996,72.516937000000098],[-80.942489999999964,72.455261000000121],[-80.953887999999949,72.450546000000088],[-80.988327000000027,72.429703000000018],[-81.186935000000005,72.299149000000114],[-81.192490000000021,72.293594000000041],[-81.199722000000008,72.289153999999996],[-81.222504000000015,72.281662000000097],[-81.239166000000012,72.27777100000003],[-81.30471799999998,72.268326000000116],[-81.379439999999988,72.241652999999928],[-81.365279999999984,72.241652999999928],[-81.301392000000021,72.246094000000028],[-81.285827999999924,72.247208000000057],[-81.253066999999987,72.251938000000052],[-81.241942999999992,72.254439999999931],[-81.229720999999927,72.258606000000043],[-81.164169000000015,72.287201000000096],[-81.037506000000008,72.351089000000115],[-80.929442999999935,72.40026899999998],[-80.821670999999981,72.439148000000046],[-80.715012000000002,72.473037999999974],[-80.600554999999986,72.506653000000028],[-80.580291999999929,72.509995000000004],[-80.554442999999992,72.512497000000053],[-80.539443999999946,72.511658000000068],[-80.52555799999999,72.508040999999935],[-80.516402999999912,72.503875999999934],[-80.508895999999993,72.49664300000012],[-80.503066999999987,72.484985000000108],[-80.495270000000005,72.464157000000057],[-80.492767000000015,72.453049000000021],[-80.493606999999997,72.447205000000054],[-80.514174999999966,72.379700000000014],[-80.525009000000011,72.374146000000053],[-80.54222099999987,72.37052900000009],[-80.564437999999939,72.366653000000042],[-80.603058000000033,72.363037000000134],[-80.655562999999972,72.351928999999984],[-80.669158999999979,72.347214000000122],[-80.680556999999965,72.342209000000082],[-80.783324999999991,72.290267999999969],[-80.794158999999922,72.284714000000008],[-80.808333999999945,72.274155000000121],[-80.854172000000005,72.235535000000027],[-80.896956999999929,72.194427000000076],[-80.905563000000029,72.180542000000003],[-80.816665999999998,72.150542999999971],[-80.769454999999994,72.141663000000108],[-80.753890999999953,72.140548999999965],[-80.709732000000031,72.131927000000132],[-80.580840999999964,72.094437000000084],[-80.569457999999997,72.088318000000072],[-80.567229999999995,72.077208999999982],[-80.567229999999995,72.072768999999937],[-80.574172999999917,72.068329000000119],[-80.588333000000034,72.064148000000046],[-80.630554000000018,72.062195000000088],[-80.646118000000001,72.063309000000061],[-80.686661000000015,72.073043999999982],[-80.741942999999935,72.094147000000078],[-80.941100999999946,72.087494000000106],[-81.080291999999929,72.051651000000049],[-81.08666999999997,72.04664600000001],[-81.083327999999938,72.045532000000037],[-81.065001999999936,72.041655999999932],[-81.046660999999972,72.039978000000019],[-80.990554999999972,72.037766000000147],[-80.927215999999987,72.037766000000147],[-80.906386999999995,72.039978000000019],[-80.892226999999991,72.044144000000131],[-80.886397999999986,72.049713000000111],[-80.879439999999988,72.054152999999928],[-80.866652999999985,72.0577550000001],[-80.84722899999997,72.056641000000127],[-80.792770000000019,72.02777100000003],[-80.794158999999922,72.022491000000002],[-80.821395999999879,71.95637499999998],[-80.833327999999995,71.945815999999979],[-80.849441999999954,71.934707999999944],[-80.886123999999938,71.920821999999987],[-80.933318999999926,71.908875000000023],[-80.975005999999951,71.895827999999995],[-80.980834999999956,71.890273999999977],[-80.983611999999994,71.886383000000137],[-80.971664000000033,71.881653000000085],[-80.950287000000003,71.881088000000034],[-80.926392000000021,71.882750999999985],[-80.903610000000015,71.885268999999937],[-80.868056999999965,71.893051000000071],[-80.767226999999991,71.929428000000087],[-80.756119000000012,71.93414300000012],[-80.750290000000007,71.939697000000081],[-80.746947999999975,71.945251000000098],[-80.744720000000029,71.951934999999992],[-80.745834000000002,71.957488999999953],[-80.75556899999998,71.971099999999922],[-80.758346999999958,71.977768000000083],[-80.746947999999975,71.982483000000116],[-80.659164000000033,72.003052000000082],[-80.639449999999954,72.006377999999927],[-80.620543999999995,72.006103999999993],[-80.535277999999948,72.016098000000056],[-80.448883000000023,72.029160000000047],[-80.410552999999993,72.039429000000098],[-80.385009999999966,72.048325000000034],[-80.350554999999929,72.069153000000085],[-80.347777999999948,72.075272000000098],[-80.346663999999976,72.081100000000049],[-80.347228999999913,72.088318000000072],[-80.352492999999981,72.095534999999984],[-80.358611999999994,72.101379000000009],[-80.370269999999948,72.10803199999998],[-80.383056999999951,72.113312000000008],[-80.410278000000005,72.121368000000075],[-80.433884000000035,72.132751000000098],[-80.445540999999992,72.139709000000096],[-80.455275999999969,72.146652000000074],[-80.478607000000011,72.168593999999985],[-80.483321999999987,72.175261999999918],[-80.486938000000009,72.183044000000052],[-80.486664000000019,72.189423000000147],[-80.468062999999972,72.191925000000026],[-80.426940999999886,72.191086000000041],[-80.408614999999884,72.189148000000102],[-80.393616000000009,72.177200000000084],[-80.376663000000008,72.17442299999999],[-80.355559999999912,72.17442299999999],[-80.331389999999999,72.176086000000112],[-80.241103999999893,72.197754000000032],[-80.235274999999945,72.203323000000012],[-80.244445999999925,72.209717000000069],[-80.27305599999994,72.219147000000135],[-80.279723999999931,72.22554000000008],[-80.301665999999955,72.248596000000134],[-80.306380999999988,72.255264000000125],[-80.295546999999942,72.274429000000055],[-80.289718999999934,72.279984000000127],[-80.272231999999974,72.290267999999969],[-80.260833999999988,72.294983000000002],[-80.24221799999998,72.297485000000108],[-80.22444200000001,72.296371000000136],[-80.194153000000028,72.28776600000009],[-80.155838000000017,72.273605000000089],[-80.134734999999921,72.262771999999927],[-80.113051999999982,72.244141000000127],[-80.08555599999994,72.226654000000053],[-80.021392999999989,72.189697000000081],[-79.991668999999888,72.176651000000106],[-79.962783999999999,72.168868999999972],[-79.947220000000016,72.165267999999912],[-79.899733999999967,72.15554800000001],[-79.840285999999935,72.145263999999997],[-79.790557999999976,72.137772000000041],[-79.761123999999995,72.134155000000078],[-79.685546999999929,72.126372999999944],[-79.674437999999952,72.126647999999989],[-79.672501000000011,72.129700000000071],[-79.691665999999998,72.141663000000108],[-79.719161999999926,72.148331000000098],[-79.789992999999981,72.155823000000055],[-79.811110999999983,72.160263000000043],[-79.854995999999971,72.171097000000145],[-79.923889000000031,72.190536000000009],[-79.941101000000003,72.195816000000093],[-80.045546999999999,72.242477000000122],[-80.15194699999995,72.310531999999967],[-80.166396999999961,72.322220000000129],[-80.164443999999946,72.32748400000014],[-80.155562999999916,72.336928999999998],[-80.133620999999948,72.349716000000001],[-80.115279999999927,72.359421000000111],[-80.076400999999976,72.378859999999975],[-80.064712999999983,72.3836060000001],[-80.052215999999987,72.387771999999984],[-79.991942999999992,72.402771000000087],[-79.957229999999925,72.408325000000048],[-79.874434999999949,72.470534999999984],[-79.870834000000002,72.483046999999999],[-79.86332699999997,72.489699999999971],[-79.836944999999901,72.498596000000077],[-79.820847000000015,72.501389000000074],[-79.799164000000019,72.501389000000074],[-79.780562999999972,72.499420000000043],[-79.770844000000011,72.49664300000012],[-79.734160999999915,72.484420999999998],[-79.700561999999991,72.472488000000112],[-79.692215000000033,72.466933999999924],[-79.768638999999894,72.411766],[-79.687865999999985,72.384392000000105],[-79.595550999999944,72.334717000000126],[-79.638901000000033,72.289153999999996],[-79.668059999999912,72.280823000000112],[-79.705565999999976,72.273605000000089],[-79.720000999999968,72.269440000000088],[-79.731673999999998,72.264708999999982],[-79.759734999999921,72.250549000000092],[-79.768616000000009,72.2452550000001],[-79.774718999999891,72.239700000000028],[-79.775283999999999,72.233322000000044],[-79.769729999999925,72.225815000000125],[-79.75,72.215546000000074],[-79.732773000000009,72.212203999999986],[-79.712783999999999,72.211104999999975],[-79.701110999999969,72.215820000000008],[-79.565825999999959,72.275269000000094],[-79.485001000000011,72.325545999999974],[-79.355559999999912,72.399155000000007],[-79.342498999999975,72.40026899999998],[-79.329726999999991,72.397217000000069],[-79.243331999999953,72.374419999999986],[-79.182495000000017,72.358322000000101],[-79.146666999999979,72.345825000000104],[-79.113327000000027,72.331099999999992],[-79.082229999999925,72.313873000000001],[-79.012787000000003,72.273880000000133],[-78.945540999999935,72.199996999999996],[-78.943603999999993,72.193038999999999],[-78.946945000000028,72.186919999999986],[-79.036391999999978,72.069443000000092],[-79.136123999999938,72.007492000000127],[-79.145003999999972,72.002487000000087],[-79.156661999999983,71.997757000000036],[-79.206389999999942,71.986649000000057],[-79.229996000000028,71.980270000000019],[-79.233063000000016,71.976379000000122],[-79.203063999999983,71.961928999999998],[-79.19027699999998,71.958328000000108],[-79.176392000000021,71.955826000000059],[-79.161117999999931,71.954437000000041],[-79.138610999999912,71.955261000000007],[-79.123046999999929,71.958038000000101],[-79.099730999999963,71.967209000000082],[-79.090835999999854,71.972488000000055],[-79.072234999999921,71.974990999999989],[-79.061110999999926,71.975266000000033],[-79.026671999999962,71.970535000000098],[-78.81806899999998,71.935257000000092],[-78.768889999999999,71.92692599999998],[-78.722503999999901,71.918869000000029],[-78.683884000000035,71.909714000000008],[-78.65306099999998,71.893875000000037],[-78.639724999999999,71.884430000000009],[-78.625823999999852,71.879150000000095],[-78.585555999999997,71.865814],[-78.571395999999879,71.862762000000032],[-78.551392000000021,71.861098999999967],[-78.529174999999952,71.861649],[-78.511123999999995,71.864699999999971],[-78.503615999999965,71.868866000000082],[-78.508346999999901,71.876373000000001],[-78.595551,71.933318999999983],[-78.607498000000021,71.938583000000108],[-78.622222999999963,71.942200000000071],[-78.691375999999991,71.949707000000046],[-78.740554999999972,71.958038000000101],[-78.855559999999855,71.979706000000022],[-78.914444000000003,72.007767000000115],[-78.923614999999984,72.014999000000046],[-78.924438000000009,72.020538000000045],[-78.877486999999974,72.153320000000065],[-78.869445999999925,72.166656000000046],[-78.866104000000007,72.170532000000094],[-78.854445999999939,72.173035000000084],[-78.843613000000005,72.171097000000145],[-78.554442999999992,72.111374000000069],[-78.512221999999952,72.101089000000002],[-78.487777999999935,72.092484000000127],[-78.476105000000018,72.087204000000099],[-78.460830999999928,72.073318000000086],[-78.432770000000005,72.03804000000008],[-78.39527899999996,71.982483000000116],[-78.389998999999989,71.969437000000028],[-78.392775999999969,71.949997000000053],[-78.391678000000013,71.943587999999977],[-78.386672999999973,71.933318999999983],[-78.381942999999922,71.92804000000001],[-78.365279999999927,71.917480000000012],[-78.317779999999971,71.888321000000076],[-78.226669000000015,71.833054000000118],[-78.210830999999985,71.825821000000133],[-78.18499799999995,71.817490000000021],[-78.157607999999982,71.810577000000023],[-78.123046999999929,71.806366000000139],[-78.090560999999923,71.800812000000121],[-78.05972300000002,71.79414399999996],[-77.924437999999952,71.764709000000096],[-77.907775999999956,71.76638800000012],[-77.904448999999943,71.768051000000014],[-77.90695199999999,71.770538000000101],[-77.914169000000015,71.773605000000032],[-77.966659999999933,71.786652000000061],[-77.997498000000007,71.793319999999994],[-78.029723999999931,71.798874000000012],[-78.085830999999985,71.813309000000118],[-78.107223999999917,71.819153000000142],[-78.139998999999932,71.830551000000128],[-78.178878999999995,71.848602000000142],[-78.308884000000035,71.921096999999975],[-78.316665999999998,71.929428000000087],[-78.321395999999993,71.936920000000043],[-78.315001999999993,71.942474000000004],[-78.305266999999901,71.946930000000123],[-78.279175000000009,71.953598000000113],[-78.258895999999993,71.956650000000025],[-78.178878999999995,71.967209000000082],[-78.156951999999933,71.968323000000055],[-78.141677999999956,71.964157000000114],[-78.018616000000009,71.890823000000125],[-77.974716000000001,71.859984999999938],[-77.785552999999993,71.787490999999989],[-77.807769999999948,71.823044000000039],[-77.960006999999962,71.881653000000085],[-78.096953999999982,71.96804800000001],[-78.107223999999917,71.974152000000061],[-78.116393999999957,71.976928999999984],[-78.149733999999967,71.980545000000006],[-78.156386999999995,71.980545000000006],[-78.196105999999929,71.978592000000049],[-78.262222000000008,71.972763000000043],[-78.281386999999995,71.973877000000016],[-78.298614999999984,71.977478000000076],[-78.322509999999909,71.985809000000017],[-78.334166999999923,71.99136400000009],[-78.341110000000015,71.99859600000002],[-78.342498999999918,72.012771999999984],[-78.341674999999952,72.019149999999968],[-78.341674999999952,72.031936999999971],[-78.356948999999929,72.05831900000004],[-78.375548999999978,72.085815000000082],[-78.386672999999973,72.095534999999984],[-78.402221999999938,72.104980000000069],[-78.424437999999952,72.113602000000071],[-78.436935000000005,72.117477000000008],[-78.468886999999995,72.12414600000011],[-78.515014999999948,72.131363000000022],[-78.599990999999989,72.145263999999997],[-78.696654999999964,72.163605000000018],[-78.809998000000007,72.197205000000054],[-78.842498999999918,72.209152000000017],[-78.854720999999984,72.214432000000102],[-78.870834000000002,72.226654000000053],[-78.869155999999919,72.229706000000022],[-78.734725999999966,72.328598000000113],[-78.615829000000019,72.359146000000067],[-78.604172000000005,72.359421000000111],[-78.580565999999919,72.354156000000046],[-78.515839000000028,72.330551000000071],[-78.512511999999901,72.324432000000002],[-78.519164999999987,72.319153000000028],[-78.528335999999911,72.313873000000001],[-78.533324999999991,72.30914300000012],[-78.53694200000001,72.303314000000114],[-78.537780999999995,72.254715000000147],[-78.531386999999938,72.240265000000022],[-78.529174999999952,72.235535000000027],[-78.520843999999954,72.229155999999989],[-78.42193599999996,72.170822000000101],[-78.40834000000001,72.166382000000112],[-78.399733999999967,72.167206000000078],[-78.390839000000028,72.169982999999945],[-78.386123999999995,72.172485000000052],[-78.384170999999981,72.175537000000134],[-78.411117999999988,72.216660000000047],[-78.414718999999934,72.220535000000041],[-78.422775000000001,72.224152000000004],[-78.459732000000031,72.233871000000022],[-78.472777999999948,72.242477000000122],[-78.46833799999996,72.314986999999974],[-78.462783999999942,72.318878000000041],[-78.451110999999912,72.324158000000068],[-78.439437999999996,72.326660000000004],[-78.40834000000001,72.325821000000019],[-78.305266999999901,72.313309000000004],[-78.012512000000015,72.274994000000106],[-77.893615999999952,72.259430000000009],[-77.827498999999989,72.248596000000134],[-77.793883999999991,72.242202999999961],[-77.665282999999874,72.204712000000029],[-77.655272999999966,72.201385000000073],[-77.648620999999991,72.194137999999953],[-77.644454999999994,72.186646000000053],[-77.540833000000021,72.17692599999998],[-77.381103999999993,72.184982000000048],[-77.32417299999986,72.18609600000002],[-77.289444000000003,72.183319000000097],[-77.239989999999977,72.17442299999999],[-77.115828999999962,72.148331000000098],[-77.039443999999946,72.131653000000028],[-77.023330999999985,72.128860000000032],[-77.006118999999956,72.127472000000125],[-76.99722300000002,72.128036000000066],[-76.995833999999945,72.128860000000032],[-76.994719999999973,72.130539000000056],[-77.005004999999983,72.134430000000123],[-77.068619000000012,72.152206000000092],[-77.251677999999913,72.193313999999987],[-77.27806099999998,72.196930000000066],[-77.306945999999925,72.19802900000002],[-77.397232000000031,72.192748999999992],[-77.455840999999964,72.190811000000053],[-77.476944000000003,72.191360000000145],[-77.514175000000023,72.193862999999965],[-77.549987999999985,72.19802900000002],[-77.578888000000006,72.204163000000051],[-77.604172000000005,72.211929000000112],[-77.623885999999914,72.221100000000092],[-77.658614999999998,72.231658999999922],[-77.760833999999932,72.257217000000026],[-77.823058999999944,72.271927000000005],[-77.866104000000007,72.281097000000045],[-77.949996999999883,72.296097000000032],[-78.072509999999966,72.312485000000038],[-78.121384000000035,72.319716999999969],[-78.154723999999987,72.325545999999974],[-78.220001000000025,72.337769000000037],[-78.326950000000011,72.359146000000067],[-78.37388599999997,72.36943100000002],[-78.389175000000023,72.37303200000008],[-78.473327999999981,72.394989000000123],[-78.499161000000015,72.404709000000025],[-78.520843999999954,72.414993000000038],[-78.559158000000025,72.438034000000073],[-78.561110999999926,72.444977000000051],[-78.556655999999919,72.504440000000102],[-78.443053999999961,72.581939999999975],[-78.430556999999965,72.586655000000007],[-78.170273000000009,72.653594999999996],[-78.156386999999995,72.656937000000084],[-78.001677999999913,72.682480000000055],[-77.869994999999903,72.697479000000101],[-77.845001000000025,72.698868000000061],[-77.78083799999996,72.706940000000031],[-77.768616000000009,72.709427000000119],[-77.701401000000033,72.724701000000039],[-77.670273000000009,72.732208000000128],[-77.656951999999876,72.736099000000024],[-77.639998999999989,72.743865999999969],[-77.627486999999974,72.74859600000002],[-77.613892000000021,72.751663000000121],[-77.576401000000033,72.755554000000018],[-77.532226999999921,72.756943000000035],[-77.513625999999988,72.754715000000033],[-77.413054999999872,72.752212999999983],[-77.259734999999978,72.751663000000121],[-77.05581699999999,72.752861000000109],[-77.002501999999993,72.749419999999986],[-76.947219999999902,72.743865999999969],[-76.799728000000016,72.727478000000133],[-76.753066999999987,72.720534999999927],[-76.693053999999961,72.694702000000007],[-76.684997999999894,72.691085999999927],[-76.662505999999894,72.678588999999988],[-76.653609999999958,72.670821999999987],[-76.655272999999966,72.664429000000041],[-76.65972899999997,72.658324999999991],[-76.646118000000001,72.639708999999982],[-76.584732000000031,72.628585999999984],[-76.428328999999962,72.614151000000049],[-76.328339000000028,72.607483000000116],[-76.288329999999917,72.604980000000126],[-76.215285999999935,72.596100000000092],[-76.182219999999973,72.58998100000008],[-76.166945999999996,72.58638000000002],[-76.155562999999916,72.580826000000002],[-76.150283999999999,72.574158000000011],[-76.154723999999931,72.562485000000038],[-76.160552999999936,72.54942299999999],[-76.165833000000021,72.538315000000011],[-76.162506000000008,72.526093000000003],[-76.156112999999948,72.518051000000071],[-76.121657999999911,72.478317000000118],[-76.107773000000009,72.473037999999974],[-76.087783999999999,72.471648999999957],[-76.069457999999997,72.474991000000102],[-76.046386999999868,72.483597000000032],[-76.036941999999897,72.489426000000037],[-76.037780999999939,72.496368000000132],[-76.052215999999987,72.51138300000008],[-76.068619000000012,72.525818000000015],[-76.077224999999942,72.536377000000073],[-76.074172999999917,72.541656000000046],[-76.06471299999987,72.549988000000042],[-76.018889999999999,72.574431999999945],[-76.005843999999968,72.579163000000108],[-75.988601999999958,72.580826000000002],[-75.931945999999925,72.583603000000096],[-75.885284000000013,72.584152000000074],[-75.841948999999943,72.583053999999947],[-75.798888999999974,72.581939999999975],[-75.759170999999981,72.579163000000108],[-75.56806899999998,72.557479999999941],[-75.553328999999962,72.553589000000102],[-75.547226000000023,72.545532000000094],[-75.537780999999939,72.539703000000088],[-75.521117999999888,72.536102000000028],[-75.472228999999913,72.527480999999966],[-75.435271999999998,72.522491000000059],[-75.379439999999931,72.51638800000012],[-75.360001000000011,72.515548999999965],[-75.301666000000012,72.509720000000129],[-75.231673999999998,72.500549000000035],[-75.215285999999878,72.497482000000105],[-75.192490000000021,72.491928000000087],[-75.186661000000015,72.487488000000099],[-75.189163000000008,72.478317000000118],[-75.199158000000011,72.466933999999924],[-75.200287000000003,72.461929000000055],[-75.160277999999948,72.421097000000088],[-75.132492000000013,72.393600000000106],[-75.054169000000002,72.328873000000101],[-75.034164000000033,72.317490000000134],[-75,72.298369999999977],[-74.980559999999912,72.288315000000068],[-74.950835999999981,72.269989000000066],[-74.943603999999993,72.263321000000076],[-74.942490000000021,72.255829000000119],[-74.947494999999947,72.249710000000107],[-75.044997999999964,72.188308999999947],[-75.068068999999923,72.179152999999985],[-75.225280999999995,72.122482000000105],[-75.238326999999913,72.118317000000104],[-75.25306699999993,72.116378999999938],[-75.271666999999979,72.117203000000075],[-75.291381999999885,72.119431000000077],[-75.323623999999938,72.125534000000016],[-75.387511999999901,72.134430000000123],[-75.440552000000025,72.141098000000113],[-75.477782999999988,72.144714000000135],[-75.520003999999972,72.146102999999982],[-75.607498000000021,72.143326000000059],[-75.710006999999962,72.136658000000068],[-75.73332199999993,72.134155000000078],[-75.813889000000017,72.122482000000105],[-75.866652999999985,72.113876000000005],[-76.015015000000005,72.086655000000121],[-76.033324999999934,72.081100000000049],[-76.054717999999866,72.073043999999982],[-76.078063999999983,72.059417999999994],[-76.084166999999923,72.049713000000111],[-76.09973100000002,72.02887000000004],[-76.111938000000009,72.018050999999957],[-76.128052000000025,72.004166000000055],[-76.142226999999934,71.99331699999999],[-76.156386999999881,71.985260000000039],[-76.173614999999984,71.975540000000137],[-76.192490000000021,71.967758000000003],[-76.234726000000023,71.957488999999953],[-76.262511999999901,71.949707000000046],[-76.274445000000014,71.944427000000132],[-76.301665999999955,71.930542000000059],[-76.318344000000025,71.919983000000002],[-76.348052999999879,71.891662999999994],[-76.31082200000003,71.884720000000016],[-76.089721999999938,71.978867000000093],[-76.073058999999944,71.989425999999924],[-76.063323999999966,72],[-76.049727999999902,72.017761000000121],[-76.047501000000011,72.023604999999975],[-76.043609999999944,72.030272999999966],[-76.029448999999943,72.041091999999992],[-76.019729999999981,72.046097000000032],[-75.998610999999983,72.054152999999928],[-75.956115999999952,72.067215000000147],[-75.89445499999988,72.082214000000022],[-75.828338999999971,72.096939000000134],[-75.796660999999915,72.103591999999935],[-75.710555999999997,72.113312000000008],[-75.630554000000018,72.11970500000001],[-75.586120999999991,72.12164300000012],[-75.528335999999967,72.120818999999983],[-75.488051999999925,72.118866000000025],[-75.433060000000012,72.112761999999975],[-75.23332199999993,72.084152000000131],[-75.226105000000018,72.080276000000083],[-75.219451999999876,72.074432000000058],[-75.218886999999995,72.070267000000058],[-75.221114999999998,72.064696999999967],[-75.228881999999942,72.059143000000006],[-75.255279999999914,72.046097000000032],[-75.281676999999888,72.038589000000059],[-75.317504999999926,72.031661999999926],[-75.338332999999977,72.02887000000004],[-75.404174999999952,72.025543000000084],[-75.449432000000002,72.02526899999998],[-75.494155999999975,72.021378000000084],[-75.515015000000005,72.018326000000002],[-75.548049999999989,72.011107999999979],[-75.574172999999917,72.00360100000006],[-75.586670000000026,71.999146000000053],[-75.606383999999935,71.989425999999924],[-75.613892000000021,71.983871000000022],[-75.618880999999988,71.978592000000049],[-75.686661000000015,71.883040999999992],[-75.697495000000004,71.858322000000044],[-75.691375999999877,71.850266000000147],[-75.688048999999921,71.842758000000117],[-75.6875,71.839157000000057],[-75.692215000000033,71.833328000000051],[-75.802490000000034,71.750548999999978],[-75.830001999999979,71.736649000000114],[-75.872222999999906,71.721375000000023],[-75.898345999999947,71.714432000000045],[-75.934157999999968,71.711105000000089],[-75.953612999999962,71.710266000000104],[-75.997497999999894,71.709152000000131],[-76.040282999999931,71.709426999999948],[-76.067504999999869,71.706650000000081],[-76.079177999999956,71.704437000000098],[-76.090835999999911,71.702208999999982],[-76.096114999999998,71.697479000000101],[-76.095839999999953,71.693863000000079],[-76.085281000000009,71.691924999999912],[-75.901671999999962,71.701096000000064],[-75.880279999999971,71.70248400000014],[-75.846953999999982,71.708602999999982],[-75.819457999999941,71.716934000000094],[-75.794998000000021,71.725815000000011],[-75.787215999999944,71.730545000000063],[-75.675003000000004,71.810532000000023],[-75.654998999999975,71.826096000000121],[-75.580001999999865,71.906097000000045],[-75.570281999999963,71.917480000000012],[-75.565825999999959,71.929703000000075],[-75.567229999999938,71.937485000000038],[-75.570281999999963,71.941360000000032],[-75.574447999999961,71.953048999999965],[-75.571944999999971,71.958878000000141],[-75.569167999999991,71.963882000000126],[-75.558334000000002,71.97665400000011],[-75.538605000000018,71.986374000000012],[-75.513335999999924,71.995254999999986],[-75.498046999999929,71.999146000000053],[-75.476669000000015,72.000823999999966],[-75.414444000000003,71.999709999999993],[-75.371932999999899,71.997757000000036],[-75.349441999999897,71.998032000000023],[-75.327788999999939,71.999419999999986],[-75.24888599999997,72.012771999999984],[-75.197768999999937,72.023315000000139],[-75.174437999999952,72.031936999999971],[-75.158614999999941,72.041655999999932],[-75.150283999999942,72.0577550000001],[-75.135009999999966,72.080551000000071],[-75.129990000000021,72.086380000000133],[-75.119155999999862,72.096375000000023],[-75.109160999999858,72.101089000000002],[-75.093613000000005,72.10803199999998],[-75.081389999999942,72.11303700000002],[-75.051392000000021,72.121917999999937],[-75.035827999999924,72.125809000000004],[-75.012511999999958,72.12831100000011],[-75,72.128525000000025],[-74.98443599999996,72.127472000000125],[-74.951675000000023,72.123306000000071],[-74.835006999999962,72.10386699999998],[-74.801391999999964,72.098327999999981],[-74.764449999999954,72.094711000000018],[-74.65943900000002,72.091094999999939],[-74.625548999999921,72.091369999999984],[-74.535278000000005,72.089705999999978],[-74.316390999999953,72.082214000000022],[-74.297226000000023,72.080826000000116],[-74.260009999999966,72.076096000000064],[-74.244155999999862,72.073043999999982],[-74.233321999999987,72.067489999999964],[-74.218062999999972,72.058029000000033],[-74.177489999999921,72.031936999999971],[-74.122222999999963,71.983597000000088],[-74.117766999999958,71.969985999999949],[-74.119445999999982,71.955826000000059],[-74.166107000000011,71.874695000000088],[-74.171111999999937,71.868591000000038],[-74.184998000000007,71.855819999999937],[-74.229996000000028,71.822768999999994],[-74.243056999999965,71.818603999999993],[-74.263335999999981,71.815810999999997],[-74.403060999999923,71.80386400000009],[-74.43998699999986,71.801925999999924],[-74.460555999999997,71.802765000000079],[-74.477782999999931,71.804977000000122],[-74.50140399999998,71.809708000000057],[-74.513625999999874,71.818053999999961],[-74.570557000000008,71.809418000000051],[-74.604996000000028,71.784714000000122],[-74.678328999999962,71.745254999999986],[-74.696105999999929,71.738586000000112],[-74.71362299999987,71.735260000000096],[-74.885009999999909,71.708602999999982],[-75,71.711914000000036],[-75.046660999999915,71.716095000000109],[-75.090560999999923,71.718048000000067],[-75.136672999999973,71.716934000000094],[-75.158051,71.715271000000143],[-75.342772999999909,71.695815999999979],[-75.363892000000021,71.691360000000088],[-75.378600999999946,71.686920000000043],[-75.389998999999989,71.681091000000038],[-75.393889999999942,71.677475000000015],[-75.391953000000001,71.674698000000092],[-75.385009999999909,71.674423000000104],[-75.241942999999878,71.686096000000077],[-75.178329000000019,71.694138000000066],[-75.085007000000019,71.700821000000076],[-75.043610000000001,71.699707000000046],[-75.025008999999955,71.698029000000133],[-75.009170999999924,71.694977000000051],[-74.941101000000003,71.674698000000092],[-74.934158000000025,71.670822000000044],[-74.93360899999999,71.663879000000009],[-74.93638599999997,71.658035000000041],[-74.945540999999935,71.652481000000023],[-74.956115999999952,71.648331000000042],[-75.008895999999993,71.631927000000076],[-75.055557000000022,71.622481999999991],[-75.114166000000012,71.611098999999967],[-75.194152999999972,71.595535000000098],[-75.206954999999994,71.591934000000037],[-75.398345999999947,71.525269000000094],[-75.40972899999997,71.519714000000022],[-75.408339999999953,71.514708999999982],[-75.406386999999938,71.512207000000046],[-75.402221999999938,71.512497000000053],[-75.205276000000026,71.546371000000079],[-75,71.607238999999993],[-74.861114999999927,71.649429000000112],[-74.851668999999958,71.654984000000013],[-74.799437999999952,71.678863999999976],[-74.784163999999976,71.682755000000043],[-74.718337999999903,71.693588000000034],[-74.697768999999937,71.696365000000128],[-74.686661000000015,71.696365000000128],[-74.672774999999945,71.692474000000061],[-74.631942999999978,71.662491000000102],[-74.629714999999919,71.65277100000003],[-74.631942999999978,71.646378000000084],[-74.646392999999989,71.631927000000076],[-74.674437999999896,71.608322000000101],[-74.689712999999983,71.598038000000031],[-74.704726999999934,71.588042999999971],[-74.713057999999933,71.583878000000141],[-74.733886999999982,71.575546000000145],[-74.811934999999949,71.547760000000096],[-74.869720000000029,71.541656000000046],[-74.922500999999897,71.53776600000009],[-74.940276999999867,71.538040000000024],[-74.97084000000001,71.537201000000039],[-74.990279999999984,71.536652000000117],[-75,71.535583000000088],[-75.027221999999995,71.532486000000006],[-75.036666999999966,71.530548000000067],[-75.081389999999942,71.515273999999977],[-75.107773000000009,71.503052000000025],[-75.124709999999936,71.492477000000065],[-75.15194699999995,71.471649000000014],[-75.152221999999995,71.466094999999996],[-75.146117999999944,71.463608000000079],[-75.12777699999998,71.465820000000008],[-75.115554999999972,71.469986000000063],[-75.106110000000001,71.481934000000081],[-75.093886999999938,71.49275200000011],[-75.084731999999974,71.498322000000144],[-75.06138599999997,71.506378000000041],[-75.05082699999997,71.509720000000016],[-75.033324999999934,71.513046000000031],[-75,71.517899000000114],[-74.993056999999908,71.518875000000037],[-74.944153000000028,71.521652000000131],[-74.877486999999974,71.524155000000121],[-74.857223999999974,71.523605000000089],[-74.838332999999921,71.521926999999948],[-74.828338999999971,71.517211999999915],[-74.71665999999999,71.419144000000131],[-74.699431999999945,71.390823000000069],[-74.700561999999934,71.386658000000068],[-74.705565999999976,71.380814000000044],[-74.715285999999992,71.375809000000004],[-74.888335999999981,71.287201000000096],[-75.075012000000015,71.204437000000041],[-75.081389999999942,71.17942800000003],[-75.065001999999993,71.180817000000047],[-75,71.199341000000061],[-74.987503000000004,71.203873000000101],[-74.874160999999958,71.247756999999979],[-74.864440999999943,71.252487000000031],[-74.671660999999972,71.359985000000052],[-74.654448999999943,71.370254999999986],[-74.637511999999958,71.380538999999999],[-74.632216999999969,71.385818000000029],[-74.628051999999968,71.392487000000074],[-74.625823999999852,71.39888000000002],[-74.626098999999954,71.405822999999998],[-74.631103999999993,71.419433999999967],[-74.638061999999991,71.426651000000106],[-74.646956999999929,71.433044000000052],[-74.657227000000034,71.438583000000051],[-74.719726999999978,71.462494000000106],[-74.726944000000003,71.466094999999996],[-74.735549999999989,71.472487999999942],[-74.736388999999974,71.476654000000053],[-74.743057000000022,71.511932000000058],[-74.73611499999987,71.530548000000067],[-74.723891999999978,71.541931000000091],[-74.714172000000019,71.546646000000123],[-74.701675000000023,71.551086000000112],[-74.686385999999914,71.554977000000008],[-74.663895000000025,71.557204999999954],[-74.628875999999934,71.554703000000075],[-74.619995000000017,71.55802900000009],[-74.583618000000001,71.585815000000025],[-74.576401000000033,71.591370000000097],[-74.543883999999991,71.631362999999965],[-74.381942999999922,71.677199999999971],[-74.345550999999944,71.689423000000033],[-74.335555999999997,71.694138000000066],[-74.317779999999971,71.704437000000098],[-74.309432999999956,71.712204000000042],[-74.306945999999982,71.71775800000006],[-74.299437999999952,71.723877000000073],[-74.288604999999905,71.727478000000133],[-74.268341000000021,71.730270000000019],[-74.146956999999929,71.738875999999948],[-74.12470999999988,71.738875999999948],[-74.109160999999972,71.735809000000017],[-74.103058000000033,71.733321999999987],[-74.097777999999948,71.72886699999998],[-74.123885999999914,71.680817000000104],[-74.128875999999877,71.67164600000001],[-74.142226999999991,71.661652000000004],[-74.15055799999999,71.657486000000063],[-74.173049999999989,71.651093000000117],[-74.202788999999996,71.645828000000051],[-74.220276000000013,71.641663000000051],[-74.232773000000009,71.637496999999939],[-74.239440999999999,71.634155000000021],[-74.24888599999997,71.621643000000063],[-74.253066999999987,71.611649],[-74.254455999999948,71.60664399999996],[-74.254729999999995,71.603867000000093],[-74.252228000000002,71.58998100000008],[-74.249161000000015,71.582489000000123],[-74.243056999999965,71.569716999999969],[-74.218886999999938,71.556641000000013],[-74.180282999999974,71.538315000000011],[-74.168334999999956,71.533324999999991],[-74.156386999999995,71.532211000000018],[-74.150283999999886,71.533324999999991],[-74.148620999999935,71.537491000000045],[-74.151671999999962,71.544983000000002],[-74.165008999999998,71.555252000000053],[-74.146118000000001,71.637496999999939],[-74.039718999999934,71.722213999999951],[-74.019164999999987,71.73803700000002],[-74.014724999999942,71.741089000000102],[-73.996947999999975,71.751389000000017],[-73.977782999999931,71.759720000000129],[-73.964447000000007,71.763321000000019],[-73.928329000000019,71.769150000000025],[-73.748046999999929,71.776931999999988],[-73.718886999999938,71.776931999999988],[-73.61610399999995,71.773315000000025],[-73.604172000000005,71.772217000000126],[-73.593886999999995,71.769988999999953],[-73.589721999999995,71.763321000000019],[-73.589995999999985,71.756943000000035],[-73.591675000000009,71.751937999999996],[-73.598343,71.738312000000008],[-73.612503000000004,71.722213999999951],[-73.619995000000017,71.716095000000109],[-73.638061999999991,71.706375000000037],[-73.663329999999917,71.697204999999997],[-73.694442999999922,71.690262000000018],[-73.732772999999952,71.683868000000132],[-73.771117999999944,71.670822000000044],[-73.791381999999999,71.661102000000142],[-73.890839000000028,71.609421000000054],[-73.985549999999989,71.534149000000127],[-73.990279999999927,71.527480999999966],[-74.010833999999988,71.491363999999976],[-74.095275999999956,71.46276899999998],[-74.169997999999964,71.445816000000036],[-74.303878999999995,71.419433999999967],[-74.315826000000015,71.414429000000098],[-74.319167999999877,71.409424000000058],[-74.312209999999993,71.40554800000001],[-74.297226000000023,71.405822999999998],[-74.191665999999998,71.425537000000134],[-74.159163999999919,71.4327550000001],[-74.121384000000035,71.438583000000051],[-74.083617999999944,71.441086000000041],[-74.045836999999949,71.440810999999997],[-74.028610000000015,71.437759000000085],[-74.063889000000017,71.336929000000055],[-74.091675000000009,71.285537999999974],[-74.106383999999878,71.274704000000099],[-74.137787000000003,71.255828999999949],[-74.152221999999995,71.248032000000023],[-74.187774999999931,71.229430999999977],[-74.207503999999858,71.219711000000075],[-74.217223999999931,71.214996000000042],[-74.226669000000015,71.212203999999986],[-74.238327000000027,71.203873000000101],[-74.240829000000019,71.200821000000133],[-74.235000999999897,71.198317999999972],[-74.228881999999942,71.199416999999983],[-74.217772999999966,71.202209000000039],[-74.190825999999959,71.211104999999975],[-74.158339999999953,71.223877000000016],[-74.148055999999997,71.228592000000049],[-74.118332000000009,71.24331699999999],[-74.039444000000003,71.302199999999971],[-74.009444999999971,71.360809000000017],[-74.006957999999997,71.367203000000075],[-73.973327999999924,71.413605000000132],[-73.968612999999891,71.419433999999967],[-73.867767000000015,71.525818000000015],[-73.86221299999994,71.531096999999988],[-73.761672999999973,71.580826000000059],[-73.746947999999975,71.585266000000047],[-73.732772999999952,71.586928999999998],[-73.689162999999951,71.588042999999971],[-73.653610000000015,71.587493999999992],[-73.639724999999942,71.58638000000002],[-73.621932999999956,71.583328000000108],[-73.595000999999968,71.575272000000041],[-73.588608000000022,71.572220000000129],[-73.565001999999936,71.55192599999998],[-73.566665999999941,71.544144000000017],[-73.598343,71.528320000000122],[-73.615554999999915,71.520264000000054],[-73.619445999999982,71.515823000000125],[-73.630279999999971,71.456649999999911],[-73.635009999999909,71.359421000000111],[-73.622498000000007,71.356644000000017],[-73.61332699999997,71.355820000000051],[-73.594727000000034,71.35775799999999],[-73.540389999999945,71.37286400000005],[-73.518889999999942,71.379150000000038],[-73.517226999999934,71.379974000000004],[-73.516112999999962,71.385818000000029],[-73.515563999999927,71.39888000000002],[-73.513335999999981,71.413040000000137],[-73.50306699999993,71.424698000000149],[-73.496947999999918,71.428589000000045],[-73.477492999999924,71.436371000000008],[-73.446945000000028,71.440262000000075],[-73.428878999999995,71.435806000000127],[-73.384445000000028,71.391937000000041],[-73.380279999999914,71.385269000000051],[-73.385009999999966,71.381927000000132],[-73.500899999999945,71.337212000000022],[-73.590285999999935,71.304977000000065],[-73.615554999999915,71.296371000000136],[-73.623046999999872,71.291091999999992],[-73.635558999999944,71.279709000000139],[-73.663054999999986,71.254166000000055],[-73.678878999999995,71.238037000000077],[-73.712783999999999,71.177765000000136],[-73.717772999999966,71.164993000000095],[-73.718886999999938,71.159424000000115],[-73.716399999999965,71.14498900000001],[-73.713622999999984,71.137497000000053],[-73.713622999999984,71.130539000000056],[-73.71665999999999,71.118317000000104],[-73.728606999999954,71.098602000000085],[-73.735824999999977,71.093323000000112],[-73.745833999999888,71.088593000000117],[-73.760833999999932,71.084717000000012],[-73.77806099999998,71.0816650000001],[-73.797774999999945,71.078872999999987],[-73.842498999999918,71.074432000000115],[-73.87388599999997,71.069717000000082],[-73.890288999999996,71.064987000000031],[-73.898346000000004,71.057480000000112],[-73.895003999999972,71.052200000000028],[-73.886672999999973,71.049149],[-73.879439999999875,71.047759999999982],[-73.872771999999998,71.047484999999995],[-73.850554999999986,71.059981999999991],[-73.842223999999987,71.064148000000046],[-73.753066999999987,71.065810999999997],[-73.732772999999952,71.067764000000125],[-73.715835999999854,71.071655000000021],[-73.692764000000011,71.079436999999984],[-73.674438000000009,71.088318000000072],[-73.667220999999984,71.093597000000045],[-73.660552999999993,71.10386699999998],[-73.658339999999953,71.124985000000095],[-73.662505999999951,71.134995000000004],[-73.666655999999875,71.141662999999994],[-73.673614999999927,71.163039999999967],[-73.668883999999991,71.173035000000084],[-73.623610999999983,71.225540000000137],[-73.615829000000019,71.230270000000132],[-73.549164000000019,71.269989000000066],[-73.454726999999991,71.300262000000032],[-73.433884000000035,71.308594000000028],[-73.42860399999995,71.314423000000033],[-73.427779999999984,71.327208999999925],[-73.435271999999941,71.332214000000022],[-73.437774999999988,71.336380000000077],[-73.436110999999983,71.340545999999961],[-73.430282999999974,71.34165999999999],[-73.382216999999969,71.345260999999994],[-73.363051999999982,71.345824999999991],[-73.349730999999963,71.345260999999994],[-73.320847000000015,71.340820000000122],[-73.083617999999944,71.285812000000078],[-73.061110999999983,71.277481000000023],[-73.049437999999952,71.268325999999945],[-73.053878999999938,71.261658000000011],[-73.065001999999936,71.258331000000055],[-73.155562999999972,71.246643000000006],[-73.214721999999995,71.240814],[-73.230835000000013,71.238312000000121],[-73.249434999999949,71.233871000000022],[-73.266113000000018,71.224990999999989],[-73.271941999999854,71.220535000000041],[-73.263061999999991,71.205826000000002],[-73.252501999999936,71.195251000000098],[-73.244445999999982,71.188873000000115],[-73.235001000000011,71.173309000000017],[-73.235001000000011,71.162201000000039],[-73.238327000000027,71.157210999999961],[-73.247771999999998,71.144150000000025],[-73.256957999999884,71.133881000000031],[-73.294448999999929,71.092483999999956],[-73.311110999999926,71.080826000000116],[-73.327788999999996,71.072768999999994],[-73.379439999999988,71.05831900000004],[-73.426391999999908,71.047759999999982],[-73.446105999999986,71.041092000000049],[-73.450835999999924,71.035263000000043],[-73.451950000000011,71.029433999999981],[-73.446945000000028,71.024993999999992],[-73.377486999999917,70.980545000000006],[-73.369995000000017,70.985809000000017],[-73.17361499999987,71.156937000000028],[-73.168610000000001,71.170532000000094],[-73.177490000000034,71.185257000000036],[-73.183060000000012,71.191360000000032],[-73.188048999999978,71.199141999999938],[-73.185271999999998,71.205826000000002],[-73.180283000000031,71.211655000000007],[-73.172226000000023,71.216385000000059],[-73.142226999999934,71.224425999999937],[-73.115554999999915,71.230270000000132],[-73.101395000000025,71.231658999999979],[-73.079726999999991,71.231658999999979],[-73.067779999999857,71.230270000000132],[-73.045546999999885,71.225540000000137],[-73.027221999999881,71.227203000000031],[-73.011947999999961,71.234421000000054],[-73.004455999999948,71.239700000000028],[-72.99499499999996,71.249999999999943],[-72.981673999999941,71.267487000000017],[-72.952788999999996,71.311096000000077],[-72.951400999999976,71.316085999999984],[-72.959731999999974,71.355820000000051],[-72.963622999999927,71.362488000000042],[-72.970001000000025,71.369979999999998],[-72.978332999999907,71.376373000000115],[-72.989440999999999,71.391663000000108],[-72.993057000000022,71.397766000000047],[-72.993331999999953,71.401931999999931],[-72.988892000000021,71.40554800000001],[-72.975829999999917,71.40914900000007],[-72.897232000000031,71.416655999999989],[-72.858046999999942,71.413315000000125],[-72.836394999999925,71.413315000000125],[-72.765839000000028,71.423874000000012],[-72.759170999999924,71.426926000000094],[-72.757507000000032,71.431931000000134],[-72.758621000000005,71.437484999999981],[-72.764724999999942,71.451660000000061],[-72.76916499999993,71.459152000000017],[-72.679992999999911,71.524704000000042],[-72.649733999999967,71.536926000000051],[-72.61860699999994,71.559418000000107],[-72.61332699999997,71.565536000000066],[-72.610274999999888,71.571930000000123],[-72.608337000000006,71.583878000000141],[-72.61082499999992,71.595535000000098],[-72.608337000000006,71.60664399999996],[-72.593886999999995,71.642487000000017],[-72.583327999999881,71.651382000000069],[-72.580291999999929,71.653594999999996],[-72.573333999999932,71.656647000000135],[-72.557495000000017,71.660262999999986],[-72.538054999999929,71.660812000000135],[-72.523620999999991,71.65887500000008],[-72.503066999999874,71.65026899999998],[-72.474715999999944,71.642761000000121],[-72.444442999999978,71.636107999999979],[-72.301102000000014,71.612198000000149],[-72.152221999999938,71.58998100000008],[-71.847777999999948,71.546646000000123],[-71.689437999999996,71.524429000000055],[-71.670546999999999,71.522216999999955],[-71.635559000000001,71.517761000000064],[-71.58555599999994,71.509995000000004],[-71.554169000000002,71.503875999999991],[-71.455275999999913,71.473037999999974],[-71.444442999999922,71.468597000000045],[-71.435271999999998,71.463608000000079],[-71.295546999999942,71.384720000000129],[-71.241378999999995,71.349425999999994],[-71.12332200000003,71.271652000000017],[-71.119719999999973,71.264160000000061],[-71.122771999999998,71.257217000000082],[-71.128601000000003,71.251389000000131],[-71.147780999999952,71.241927999999973],[-71.169448999999986,71.233322000000044],[-71.206116000000009,71.220535000000041],[-71.221389999999985,71.216934000000037],[-71.234726000000023,71.212769000000037],[-71.324722000000008,71.177765000000136],[-71.340560999999866,71.170532000000094],[-71.342772999999909,71.166382000000112],[-71.346114999999941,71.155823000000055],[-71.349441999999897,71.149428999999998],[-71.415832999999907,71.093323000000112],[-71.452224999999999,71.068054000000132],[-71.46444699999995,71.062484999999981],[-71.470275999999956,71.061370999999951],[-71.48971599999993,71.0619200000001],[-71.551102000000014,71.064697000000024],[-71.608336999999949,71.068603999999993],[-71.640839000000028,71.073883000000137],[-71.714447000000007,71.088043000000084],[-71.812499999999943,71.104156000000103],[-71.848891999999921,71.108321999999987],[-71.868880999999874,71.109420999999998],[-71.890288999999882,71.109420999999998],[-71.910827999999924,71.107758000000047],[-72.069457999999997,71.075271999999984],[-72.08555599999994,71.070267000000115],[-72.09973100000002,71.063873000000058],[-72.110275000000001,71.052200000000028],[-72.113892000000021,71.047211000000061],[-72.114440999999999,71.043594000000098],[-72.113326999999913,71.037490999999989],[-72.107223999999974,71.030272999999966],[-72.09973100000002,71.020263999999941],[-72.101944000000003,71.016098000000056],[-72.165557999999919,70.968048000000067],[-72.179717999999923,70.962204000000042],[-72.200286999999946,70.961105000000032],[-72.235001000000011,70.961928999999998],[-72.261123999999995,70.959152000000131],[-72.27806099999998,70.955261000000064],[-72.290557999999976,70.951096000000064],[-72.297226000000023,70.947204999999997],[-72.317504999999983,70.930267000000072],[-72.319457999999997,70.925812000000064],[-72.317504999999983,70.918320000000108],[-72.31138599999997,70.911102000000085],[-72.313889000000017,70.899719000000061],[-72.320557000000008,70.888321000000076],[-72.325561999999877,70.882477000000051],[-72.334166999999979,70.878585999999984],[-72.514724999999999,70.844436999999971],[-72.534438999999907,70.841933999999981],[-72.653609999999958,70.82777400000009],[-72.654174999999896,70.820831000000112],[-72.511397999999872,70.827209000000039],[-72.476944000000003,70.833328000000051],[-72.401108000000022,70.849716000000114],[-72.356110000000001,70.860535000000027],[-72.302779999999927,70.867203000000018],[-72.264175000000023,70.866652999999985],[-72.25,70.863876000000062],[-72.184722999999963,70.844711000000075],[-72.172225999999966,70.840546000000074],[-72.16361999999998,70.83638000000002],[-72.162215999999887,70.829987000000017],[-72.363327000000027,70.686096000000134],[-72.381942999999978,70.677200000000028],[-72.459441999999967,70.65387000000004],[-72.475829999999917,70.649429000000112],[-72.499435000000005,70.646652000000017],[-72.542496000000028,70.644714000000079],[-72.578063999999983,70.641373000000044],[-72.597778000000005,70.63859599999995],[-72.609160999999972,70.636658000000011],[-72.615828999999962,70.633331000000055],[-72.623321999999973,70.628036000000009],[-72.569457999999884,70.609985000000052],[-72.551666000000012,70.608032000000094],[-72.503066999999874,70.629973999999947],[-72.490554999999972,70.634155000000021],[-72.371932999999956,70.654984000000013],[-72.342223999999931,70.662200999999925],[-72.326110999999912,70.667206000000022],[-72.306380999999988,70.677475000000015],[-72.277495999999871,70.698028999999963],[-72.264724999999942,70.70915199999996],[-72.248610999999983,70.726653999999996],[-72.245834000000002,70.733046999999999],[-72.236937999999896,70.743866000000025],[-72.229172000000005,70.749420000000043],[-72.210555999999997,70.758040999999935],[-72.185546999999929,70.76638800000012],[-72.155838000000017,70.773605000000032],[-72.136123999999995,70.776093000000003],[-72.004729999999995,70.786925999999994],[-71.896956999999929,70.80693100000002],[-71.818893000000003,70.823044000000039],[-71.689163000000008,70.850266000000147],[-71.543883999999991,70.872481999999991],[-71.354445999999939,70.882750999999985],[-71.287506000000008,70.906097000000045],[-71.289169000000015,70.908875000000023],[-71.289444000000003,70.913605000000075],[-71.208343999999954,71.004990000000078],[-71.185546999999872,71.019439999999975],[-71.162216000000001,71.028320000000008],[-70.895553999999947,71.099716000000058],[-70.836120999999935,71.114426000000037],[-70.799727999999959,71.118866000000025],[-70.771666999999979,71.118042000000059],[-70.755568999999923,71.11554000000001],[-70.724715999999944,71.10443099999992],[-70.635559000000001,71.072220000000016],[-70.613891999999964,71.062194999999917],[-70.604720999999927,71.056366000000082],[-70.601669000000015,71.053864000000033],[-70.591949,71.042480000000126],[-70.514724999999942,70.940536000000066],[-70.512511999999958,70.926085999999998],[-70.514450000000011,70.921097000000032],[-70.519729999999981,70.913879000000009],[-70.553604000000007,70.894989000000066],[-70.58944699999995,70.876083000000051],[-70.678878999999995,70.840546000000074],[-70.740828999999906,70.75471500000009],[-70.746947999999918,70.745529000000147],[-70.773330999999985,70.734420999999998],[-70.798888999999917,70.725540000000024],[-70.872498000000007,70.703872999999987],[-70.891112999999962,70.698868000000118],[-70.965835999999967,70.684143000000006],[-71.024445000000014,70.674987999999928],[-71.055267000000015,70.669144000000131],[-71.08277899999996,70.661652000000004],[-71.100554999999929,70.654984000000013],[-71.108611999999994,70.649993999999992],[-71.118056999999965,70.638885000000073],[-71.128051999999968,70.62052900000009],[-71.129439999999988,70.614151000000106],[-71.134445000000028,70.602767999999912],[-71.139998999999932,70.596374999999966],[-71.147780999999952,70.591095000000109],[-71.160277999999948,70.586928999999998],[-71.175277999999992,70.583602999999982],[-71.191665999999998,70.58248900000001],[-71.224715999999944,70.582214000000135],[-71.281676999999888,70.584152000000074],[-71.312499999999943,70.587204000000042],[-71.34584000000001,70.591660000000104],[-71.389724999999942,70.600540000000137],[-71.407501000000025,70.603043000000127],[-71.422775000000001,70.604980000000012],[-71.461944999999957,70.60775799999999],[-71.558608999999933,70.609421000000111],[-71.592772999999966,70.606934000000024],[-71.595550999999944,70.603867000000093],[-71.595839999999953,70.600540000000137],[-71.592498999999918,70.589706000000092],[-71.586670000000026,70.581665000000044],[-71.583892999999932,70.576096000000007],[-71.580291999999986,70.564697000000137],[-71.581954999999994,70.551376000000005],[-71.583618000000001,70.546371000000136],[-71.588057999999933,70.542755000000056],[-71.74360699999994,70.466933999999981],[-71.803054999999972,70.428314000000057],[-71.763061999999934,70.427200000000084],[-71.748046999999985,70.425811999999951],[-71.736389000000031,70.423035000000084],[-71.727218999999991,70.417479999999955],[-71.728058000000033,70.410538000000088],[-71.731673999999998,70.397217000000126],[-71.746384000000035,70.3477630000001],[-71.75556899999998,70.329162999999994],[-71.763061999999934,70.323318000000086],[-71.783065999999963,70.313873000000001],[-71.816665999999941,70.303040000000067],[-71.844161999999983,70.29664600000001],[-71.849730999999906,70.290817000000004],[-71.836944999999957,70.289978000000019],[-71.806945999999868,70.295822000000044],[-71.748046999999985,70.309708000000001],[-71.733611999999937,70.313873000000001],[-71.686385999999914,70.355820000000108],[-71.674712999999997,70.36970500000001],[-71.641678000000013,70.444977000000108],[-71.640288999999996,70.450546000000088],[-71.543335000000013,70.514708999999982],[-71.525283999999942,70.524704000000099],[-71.510009999999966,70.535812000000078],[-71.502501999999936,70.546096999999975],[-71.50167799999997,70.55304000000001],[-71.503341999999975,70.56053199999991],[-71.507506999999976,70.569153000000028],[-71.511672999999973,70.573318000000029],[-71.506957999999941,70.57638500000013],[-71.495543999999938,70.578873000000101],[-71.435271999999998,70.578598000000113],[-71.420273000000009,70.57748400000014],[-71.397781000000009,70.574432000000002],[-71.25306699999993,70.549713000000054],[-71.184998000000007,70.538040000000024],[-71.17582699999997,70.535812000000078],[-71.170272999999952,70.533324999999991],[-71.167769999999905,70.531937000000084],[-71.162506000000008,70.525269000000094],[-71.162216000000001,70.520537999999988],[-71.260558999999887,70.377762000000132],[-71.322509999999966,70.312759000000028],[-71.321670999999981,70.30664100000007],[-71.318343999999968,70.299988000000099],[-71.301101999999958,70.284987999999998],[-71.288894999999968,70.280822999999998],[-71.279998999999975,70.274993999999936],[-71.276947000000007,70.268326000000002],[-71.278335999999854,70.262771999999984],[-71.285278000000005,70.251388999999961],[-71.289169000000015,70.246094000000085],[-71.316955999999948,70.218596999999988],[-71.363051999999868,70.182204999999954],[-71.43472300000002,70.126923000000033],[-71.485275000000001,70.088318000000072],[-71.498046999999929,70.080551000000128],[-71.523055999999997,70.052200000000028],[-71.532776000000013,70.038589000000059],[-71.539168999999958,70.026382000000126],[-71.541107000000011,70.022217000000126],[-71.535827999999924,70.019714000000135],[-71.52806099999998,70.020263999999997],[-71.518065999999976,70.024993999999992],[-71.500290000000007,70.038315000000125],[-71.493606999999997,70.050537000000134],[-71.475829999999974,70.068054000000132],[-71.438048999999978,70.086655000000007],[-71.393616000000009,70.104430999999977],[-71.366652999999985,70.111923000000104],[-71.331680000000006,70.128585999999984],[-71.210555999999997,70.262206999999933],[-71.208892999999989,70.267761000000121],[-71.21305799999999,70.272491000000002],[-71.218886999999995,70.276382000000069],[-71.229720999999984,70.281097000000102],[-71.231948999999929,70.294983000000059],[-71.171660999999972,70.368042000000059],[-71.135833999999932,70.410538000000088],[-71.093062999999972,70.460541000000035],[-71.030563000000029,70.540543000000014],[-71.049987999999928,70.546371000000136],[-71.053054999999972,70.55304000000001],[-71.049438000000009,70.558868000000075],[-71.005843999999968,70.61692800000003],[-70.997222999999963,70.625808999999947],[-70.968886999999995,70.63220200000012],[-70.913054999999986,70.637771999999984],[-70.771117999999944,70.668869000000086],[-70.611937999999952,70.723602000000085],[-70.421660999999858,70.772217000000126],[-70.396956999999986,70.778320000000065],[-70.365279999999927,70.782486000000006],[-70.324721999999952,70.785812000000021],[-70.255004999999983,70.793868999999972],[-70.228881999999942,70.797211000000118],[-70.075012000000015,70.83027600000014],[-69.988051999999982,70.853592000000049],[-69.915833000000021,70.877472000000012],[-69.904723999999931,70.881363000000079],[-69.892775999999913,70.883331000000055],[-69.87388599999997,70.883331000000055],[-69.865279999999927,70.882477000000051],[-69.833618000000001,70.87692300000009],[-69.78443900000002,70.864700000000028],[-69.771117999999944,70.857483000000116],[-69.770554000000004,70.856094000000098],[-69.772506999999962,70.85054000000008],[-69.795837000000006,70.820541000000048],[-69.808884000000035,70.81109600000002],[-69.879439999999931,70.768051000000071],[-69.915557999999919,70.74914600000011],[-69.965285999999935,70.727767999999969],[-70.073897999999929,70.687484999999924],[-70.084732000000031,70.683594000000028],[-70.121658000000025,70.67164600000001],[-70.21055599999994,70.646103000000096],[-70.225554999999929,70.641936999999984],[-70.244995000000017,70.638321000000133],[-70.277221999999995,70.636107999999979],[-70.33805799999999,70.637496999999996],[-70.353332999999964,70.638885000000073],[-70.407775999999956,70.638885000000073],[-70.423324999999977,70.636932000000115],[-70.454726999999991,70.627762000000075],[-70.473052999999993,70.617203000000018],[-70.476943999999946,70.612197999999978],[-70.478881999999999,70.606644000000017],[-70.460555999999997,70.574158000000068],[-70.442764000000011,70.561920000000043],[-70.424164000000019,70.551926000000037],[-70.411391999999978,70.542205999999908],[-70.404723999999931,70.536377000000073],[-70.400283999999999,70.530273000000079],[-70.397507000000019,70.524155000000121],[-70.401672000000019,70.519150000000081],[-70.407775999999956,70.514160000000004],[-70.423324999999977,70.506943000000092],[-70.467223999999987,70.493866000000082],[-70.482223999999917,70.490540000000067],[-70.490829000000019,70.486649],[-70.494445999999982,70.484984999999995],[-70.49610899999999,70.479430999999977],[-70.488892000000021,70.476929000000098],[-70.477782999999988,70.47554000000008],[-70.459166999999979,70.47554000000008],[-70.441375999999934,70.477203000000031],[-70.309722999999963,70.498031999999967],[-70.316665999999998,70.528594999999939],[-70.320007000000032,70.536926000000051],[-70.331679999999949,70.548599000000081],[-70.348617999999931,70.559707999999944],[-70.371108999999933,70.573608000000036],[-70.344451999999933,70.613037000000134],[-70.158339999999953,70.615540000000124],[-70.092498999999975,70.612197999999978],[-70.023330999999985,70.610535000000084],[-69.99221799999998,70.645828000000051],[-69.987777999999935,70.649993999999992],[-69.978607000000011,70.653320000000008],[-69.875823999999909,70.677200000000028],[-69.775832999999977,70.682205000000067],[-69.651397999999972,70.725540000000024],[-69.649169999999913,70.731094000000041],[-69.644729999999981,70.741088999999931],[-69.638610999999969,70.746933000000126],[-69.619995000000017,70.758040999999935],[-69.569167999999934,70.771927000000119],[-69.53832999999986,70.778595000000109],[-69.469727000000034,70.790543000000127],[-69.451401000000033,70.791931000000034],[-69.242766999999958,70.782486000000006],[-69.226943999999946,70.77998400000007],[-69.215012000000002,70.776093000000003],[-69.190552000000025,70.766937000000041],[-69.131942999999978,70.737488000000099],[-68.958053999999947,70.688582999999994],[-68.928329000000019,70.681656000000089],[-68.664444000000003,70.626923000000147],[-68.61860699999994,70.62052900000009],[-68.582503999999972,70.617751999999996],[-68.549727999999959,70.613602000000014],[-68.515288999999996,70.609146000000067],[-68.484726000000023,70.604156000000046],[-68.390563999999983,70.582214000000135],[-68.325561999999934,70.566665999999941],[-68.313889000000017,70.563034000000016],[-68.293610000000001,70.551376000000005],[-68.284164000000033,70.540543000000014],[-68.279174999999952,70.531097000000045],[-68.279449,70.519440000000088],[-68.281386999999938,70.51249700000011],[-68.289718999999991,70.500000000000114],[-68.296111999999994,70.494141000000127],[-68.31361400000003,70.484711000000061],[-68.331680000000006,70.476379000000065],[-68.371932999999956,70.455826000000002],[-68.446654999999964,70.413040000000137],[-68.451400999999976,70.409424000000115],[-68.453613000000018,70.403870000000097],[-68.451950000000011,70.392212000000086],[-68.449158000000011,70.384155000000078],[-68.448607999999979,70.375259000000142],[-68.451675000000023,70.372482000000048],[-68.458618000000001,70.369431000000077],[-68.485000999999954,70.367752000000053],[-68.495270000000005,70.368590999999981],[-68.506393000000003,70.371093999999971],[-68.519454999999994,70.37414600000011],[-68.561385999999914,70.389709000000096],[-68.571121000000005,70.393326000000059],[-68.575835999999924,70.396102999999982],[-68.580840999999964,70.404160000000104],[-68.580565999999976,70.415817000000061],[-68.569732999999985,70.426376000000118],[-68.556106999999997,70.435257000000036],[-68.549987999999985,70.440811000000053],[-68.548049999999932,70.447754000000032],[-68.556945999999982,70.461929000000112],[-68.564712999999927,70.466385000000059],[-68.582503999999972,70.464432000000102],[-68.621657999999968,70.45277400000009],[-68.650833000000034,70.441925000000026],[-68.654174999999896,70.439148000000102],[-68.661666999999909,70.431090999999924],[-68.666655999999989,70.422211000000118],[-68.670273000000009,70.408874999999966],[-68.670836999999949,70.404160000000104],[-68.664444000000003,70.384994999999947],[-68.657226999999978,70.375809000000004],[-68.651947000000007,70.359420999999941],[-68.650557999999933,70.349991000000045],[-68.651107999999965,70.345824999999991],[-68.653884999999946,70.341369999999984],[-68.65695199999999,70.33859300000006],[-68.664169000000015,70.335541000000148],[-68.682495000000017,70.329437000000098],[-68.735549999999876,70.317764000000068],[-68.784164000000033,70.310256999999979],[-68.906951999999933,70.293869000000086],[-68.941375999999991,70.29304500000012],[-69.071945000000028,70.28804000000008],[-69.235001000000011,70.270264000000111],[-69.283889999999985,70.264709000000039],[-69.473891999999978,70.238876000000062],[-69.639998999999875,70.204712000000086],[-69.668059999999969,70.198593000000017],[-69.823897999999986,70.155823000000112],[-69.829453000000001,70.15415999999999],[-69.836120999999991,70.150543000000027],[-69.839721999999938,70.144150000000081],[-69.840835999999911,70.141937000000098],[-69.839721999999938,70.134430000000009],[-69.843062999999972,70.121917999999994],[-69.848891999999978,70.116088999999988],[-69.856948999999929,70.110809000000074],[-69.875823999999909,70.101929000000041],[-69.917769999999962,70.085541000000035],[-69.946655000000021,70.076385000000073],[-69.96833799999996,70.074706999999933],[-69.990279999999927,70.074432000000115],[-70.037780999999995,70.072220000000073],[-70.073059000000001,70.069153000000142],[-70.086120999999991,70.066666000000055],[-70.096953999999982,70.063309000000118],[-70.141387999999949,70.043319999999994],[-70.174438000000009,70.034987999999998],[-70.182769999999891,70.031096999999932],[-70.185546999999985,70.028046000000131],[-70.182769999999891,70.021378000000141],[-70.169997999999964,70.014434999999992],[-70.15449499999994,70.015160000000094],[-70.147506999999962,70.015488000000062],[-70.139502999999934,70.017159000000106],[-70.113327000000027,70.02388000000002],[-70.103058000000033,70.028595000000053],[-70.089995999999985,70.036102000000028],[-70.088897999999915,70.038315000000125],[-70.077498999999989,70.049712999999997],[-70.066955999999948,70.053589000000045],[-70.049987999999871,70.057205000000067],[-70.028610000000015,70.058868000000018],[-70.020279000000016,70.058594000000085],[-69.901107999999965,70.048325000000034],[-69.892226999999934,70.045822000000101],[-69.884734999999921,70.042755],[-69.853607000000011,70.029709000000025],[-69.83555599999994,70.020263999999997],[-69.827498999999989,70.014434999999992],[-69.820846999999958,70.008041000000105],[-69.813048999999921,69.99859600000002],[-69.812209999999993,69.991089000000102],[-69.815552000000025,69.984711000000118],[-69.822509999999909,69.981659000000036],[-69.837508999999955,69.978317000000118],[-69.851395000000025,69.978317000000118],[-69.897507000000019,69.983047000000113],[-69.93638599999997,69.98942599999998],[-69.963332999999977,69.991653000000042],[-69.981383999999991,69.991653000000042],[-70.00306699999993,69.989700000000084],[-70.057494999999903,69.981093999999985],[-70.098891999999921,69.973602000000085],[-70.164443999999889,69.961655000000121],[-70.218886999999938,69.941650000000095],[-70.223327999999981,69.938034000000016],[-70.223891999999978,69.929703000000131],[-70.218062999999972,69.925262000000032],[-70.216110000000015,69.92053199999998],[-70.220276000000013,69.915543000000014],[-70.228607000000011,69.911651999999947],[-70.291381999999999,69.889435000000105],[-70.384170999999981,69.860535000000027],[-70.401397999999972,69.859146000000067],[-70.422225999999966,69.860809000000131],[-70.432495000000017,69.862487999999985],[-70.443877999999927,69.860535000000027],[-70.450561999999991,69.857208000000071],[-70.467223999999987,69.844711000000132],[-70.468612999999948,69.842758000000003],[-70.460280999999952,69.841660000000104],[-70.436935000000005,69.839431999999931],[-70.412215999999944,69.837769000000037],[-70.396118000000001,69.837203999999986],[-70.384170999999981,69.837203999999986],[-70.372771999999884,69.838318000000129],[-70.355834999999956,69.841370000000097],[-70.343613000000005,69.845260999999937],[-70.255279999999914,69.879149999999981],[-70.192764000000011,69.907761000000107],[-70.136948000000018,69.933318999999983],[-70.126098999999954,69.940536000000122],[-70.098617999999988,69.953049000000021],[-70.076675000000023,69.958037999999988],[-70.059433000000013,69.959716999999955],[-69.978607000000011,69.964157],[-69.941939999999988,69.963043000000027],[-69.925003000000004,69.961105000000089],[-69.896956999999986,69.956100000000049],[-69.868057000000022,69.953323000000125],[-69.837508999999955,69.952773999999977],[-69.813109999999995,69.955429000000095],[-69.777221999999995,69.963608000000022],[-69.750838999999928,69.972488000000055],[-69.745543999999938,69.974701000000039],[-69.738051999999925,69.981369000000029],[-69.735549999999932,69.985535000000084],[-69.735275000000001,69.990539999999953],[-69.739440999999999,70.001389000000017],[-69.744155999999975,70.008041000000105],[-69.760009999999966,70.017487000000074],[-69.769454999999937,70.021378000000141],[-69.781112999999948,70.024993999999992],[-69.795546999999999,70.031661999999983],[-69.804717999999866,70.038879000000065],[-69.808884000000035,70.049712999999997],[-69.806945999999982,70.055251999999996],[-69.792770000000019,70.080826000000002],[-69.790282999999931,70.084991000000002],[-69.783889999999985,70.089432000000102],[-69.740829000000019,70.114151000000049],[-69.675826999999913,70.139708999999982],[-69.653335999999911,70.14498900000001],[-69.426101999999958,70.176086000000112],[-69.404175000000009,70.177765000000136],[-69.21945199999999,70.188309000000004],[-69.18249499999996,70.187195000000031],[-69.169997999999907,70.18609600000002],[-69.154723999999987,70.183318999999983],[-69.011123999999995,70.178314000000114],[-68.936934999999949,70.193039000000056],[-68.859160999999858,70.203048999999965],[-68.839172000000019,70.203598000000056],[-68.697220000000016,70.203873000000101],[-68.682770000000005,70.203598000000056],[-68.678329000000019,70.202484000000084],[-68.676391999999964,70.201660000000118],[-68.647507000000019,70.158324999999991],[-68.642501999999979,70.149429000000055],[-68.645003999999915,70.145264000000054],[-68.741378999999995,70.065262000000075],[-68.746658000000025,70.062484999999981],[-68.783066000000019,70.044433999999967],[-68.800551999999982,70.037490999999989],[-68.813323999999966,70.032760999999994],[-68.868056999999965,70.016937000000041],[-68.900283999999942,70.011658000000068],[-68.954453000000001,70.00471500000009],[-69.088608000000022,69.974991000000045],[-69.15306099999998,69.953049000000021],[-69.313109999999938,69.882294000000059],[-69.346114999999998,69.855545000000006],[-69.370543999999938,69.83998100000008],[-69.398055999999997,69.828598000000056],[-69.426940999999943,69.819716999999969],[-69.439712999999927,69.816376000000105],[-69.460555999999997,69.813309000000004],[-69.474716000000001,69.813599000000011],[-69.516953000000001,69.819992000000127],[-69.543335000000013,69.826934999999935],[-69.565826000000015,69.834152000000074],[-69.580841000000021,69.836928999999998],[-69.683884000000035,69.83998100000008],[-69.713897999999972,69.83998100000008],[-69.744995000000017,69.837769000000037],[-69.760009999999966,69.834991000000002],[-69.770844000000011,69.831940000000031],[-69.805832000000009,69.819992000000127],[-69.827788999999996,69.809418000000107],[-69.844161999999926,69.800261999999975],[-69.855834999999956,69.793593999999985],[-69.87249799999995,69.781096999999988],[-69.998046999999985,69.669983000000116],[-70,69.66415400000011],[-70.000838999999985,69.656097000000102],[-70.00140399999998,69.622757000000036],[-69.998885999999914,69.616089000000102],[-69.990554999999915,69.614990000000091],[-69.944442999999978,69.649719000000005],[-69.816956000000005,69.724426000000051],[-69.810821999999973,69.72886699999998],[-69.808334000000002,69.733046999999999],[-69.808334000000002,69.73803700000002],[-69.81471299999987,69.75471500000009],[-69.815001999999993,69.760269000000108],[-69.814163000000008,69.763884999999959],[-69.805557000000022,69.772491000000059],[-69.783066000000019,69.785812000000021],[-69.764724999999999,69.795531999999923],[-69.754455999999948,69.799712999999997],[-69.741942999999992,69.803589000000102],[-69.730835000000013,69.806090999999981],[-69.713333000000034,69.807479999999998],[-69.643065999999976,69.810806000000014],[-69.602782999999988,69.809708000000114],[-69.572783999999899,69.80442800000003],[-69.561110999999983,69.799988000000042],[-69.545273000000009,69.794434000000024],[-69.489989999999921,69.779709000000082],[-69.45666499999993,69.775818000000015],[-69.446655000000021,69.775543000000027],[-69.409163999999976,69.776381999999955],[-69.395844000000011,69.777771000000143],[-69.384734999999921,69.780823000000055],[-69.378051999999968,69.783875000000023],[-69.313889000000017,69.816376000000105],[-69.291381999999999,69.831099999999935],[-69.279448999999943,69.84248400000007],[-69.26916499999993,69.852768000000083],[-69.253066999999987,69.862198000000149],[-69.200561999999877,69.883606000000043],[-69.188048999999978,69.887771999999984],[-69.101943999999946,69.916091999999992],[-69.076674999999966,69.923874000000126],[-68.945540999999992,69.949997000000053],[-68.933884000000035,69.951096000000064],[-68.870270000000005,69.953049000000021],[-68.801940999999886,69.952208999999982],[-68.76666299999988,69.948868000000118],[-68.751953000000015,69.946639999999945],[-68.622817999999938,69.98240699999991],[-68.471664000000033,70.046646000000067],[-68.338333000000034,70.064148000000102],[-68.241378999999995,70.095825000000048],[-68.221389999999985,70.102768000000026],[-68.207229999999981,70.109420999999998],[-68.196380999999974,70.119431000000077],[-68.193603999999993,70.123596000000077],[-68.203338999999971,70.128860000000088],[-68.229445999999939,70.135269000000108],[-68.268616000000009,70.13749700000011],[-68.290832999999907,70.137207000000046],[-68.308333999999945,70.135269000000108],[-68.320557000000008,70.135543999999982],[-68.333618000000001,70.139160000000004],[-68.349166999999852,70.168045000000063],[-68.348617999999988,70.172760000000096],[-68.345275999999956,70.188034000000016],[-68.318618999999956,70.218596999999988],[-68.31361400000003,70.222214000000122],[-68.160004000000015,70.282761000000107],[-68.039443999999946,70.301376000000005],[-67.808043999999938,70.262496999999996],[-67.794723999999974,70.258881000000088],[-67.774170000000026,70.250549000000092],[-67.768065999999976,70.243866000000139],[-67.760009999999909,70.229706000000022],[-67.740554999999858,70.218872000000147],[-67.697219999999959,70.202209000000096],[-67.674437999999952,70.193587999999977],[-67.648055999999997,70.18609600000002],[-67.591674999999952,70.165267999999969],[-67.575561999999934,70.158324999999991],[-67.556945999999982,70.149155000000121],[-67.528335999999967,70.133881000000031],[-67.412215999999944,70.068878000000097],[-67.404723999999987,70.06442300000009],[-67.378052000000025,70.048035000000027],[-67.242492999999968,69.958327999999995],[-67.222778000000005,69.943863000000079],[-67.216949,69.937759000000028],[-67.152495999999985,69.817764000000011],[-67.148620999999991,69.810257000000092],[-67.127776999999867,69.726929000000041],[-67.193603999999993,69.721924000000001],[-67.371384000000035,69.714432000000045],[-67.391113000000018,69.713882000000012],[-67.406951999999876,69.714705999999978],[-67.436110999999926,69.719147000000078],[-67.499999999999943,69.731833999999992],[-67.602492999999924,69.750275000000101],[-67.761123999999995,69.778595000000109],[-67.77305599999994,69.779434000000094],[-67.81082200000003,69.778869999999927],[-67.99610899999999,69.774429000000055],[-68.013061999999991,69.771927000000119],[-68.087783999999999,69.756104000000107],[-68.208054000000004,69.715546000000018],[-68.216659999999933,69.71026599999999],[-68.222777999999948,69.704711999999972],[-68.228606999999897,69.691360000000145],[-68.230285999999978,69.684418000000051],[-68.24110399999995,69.674987999999985],[-68.31138599999997,69.633331000000112],[-68.323623999999995,69.628860000000032],[-68.329453000000001,69.627762000000132],[-68.352782999999988,69.626923000000147],[-68.496383999999978,69.625809000000004],[-68.518065999999919,69.626083000000108],[-68.620269999999891,69.637206999999989],[-68.64527899999996,69.641098000000056],[-68.839995999999985,69.616089000000102],[-68.980834999999956,69.589157],[-69.188599000000011,69.54193099999992],[-69.201110999999912,69.538040000000024],[-69.220001000000025,69.535812000000078],[-69.325012000000015,69.532486000000063],[-69.342772999999966,69.532486000000063],[-69.364165999999955,69.53776600000009],[-69.410277999999948,69.546097000000032],[-69.426940999999943,69.548035000000141],[-69.549438000000009,69.560531999999967],[-69.630829000000006,69.56721500000009],[-69.688889000000017,69.569443000000092],[-69.737777999999992,69.568329000000062],[-69.75111400000003,69.56721500000009],[-69.838608000000022,69.558868000000132],[-70.030837999999903,69.536102000000085],[-70.028610000000015,69.530823000000112],[-70.025283999999999,69.527481000000023],[-70.011123999999995,69.521103000000039],[-69.995543999999995,69.517211999999972],[-69.964721999999995,69.513885000000016],[-69.899444999999957,69.507217000000082],[-69.885833999999988,69.507217000000082],[-69.866942999999878,69.509430000000009],[-69.844161999999926,69.517487000000017],[-69.824448000000018,69.527205999999978],[-69.815826000000015,69.530548000000124],[-69.803878999999995,69.534988000000112],[-69.789443999999946,69.538589000000002],[-69.732773000000009,69.545258000000047],[-69.698607999999922,69.548324999999977],[-69.68499799999995,69.548874000000126],[-69.663329999999917,69.548324999999977],[-69.613891999999908,69.54304500000012],[-69.506957999999997,69.529433999999924],[-69.449996999999883,69.518875000000094],[-69.375823999999909,69.509720000000016],[-69.343062999999972,69.505828999999949],[-69.323333999999988,69.505264000000125],[-69.299987999999928,69.506103999999993],[-69.206664999999987,69.514998999999989],[-69.151671999999905,69.520264000000054],[-69.005844000000025,69.535812000000078],[-68.995270000000005,69.539703000000145],[-68.982223999999974,69.547211000000004],[-68.971389999999985,69.555817000000104],[-68.957229999999981,69.560531999999967],[-68.926101999999901,69.566665999999998],[-68.76945499999988,69.587494000000049],[-68.752501999999879,69.589431999999988],[-68.6683349999999,69.590820000000065],[-68.611938000000009,69.587494000000049],[-68.544723999999917,69.579987000000131],[-68.528060999999923,69.577208999999925],[-68.317229999999881,69.530273000000079],[-68.293334999999956,69.523604999999918],[-68.181945999999982,69.49832200000003],[-68.02555799999999,69.466095000000053],[-67.982223999999974,69.457489000000123],[-67.946105999999929,69.454712000000029],[-67.926392000000021,69.454163000000108],[-67.893340999999964,69.454437000000041],[-67.874161000000015,69.456649999999968],[-67.861937999999952,69.460266000000047],[-67.840835999999967,69.469436999999971],[-67.819457999999941,69.476929000000098],[-67.806945999999868,69.480819999999994],[-67.792220999999984,69.48414600000001],[-67.604996000000028,69.478043000000071],[-67.562209999999993,69.471924000000058],[-67.511672999999973,69.466095000000053],[-67.475829999999974,69.463042999999914],[-67.432770000000005,69.463318000000129],[-67.305266999999958,69.467209000000025],[-67.258347000000015,69.467484000000013],[-67.210006999999962,69.46138000000002],[-67.180832000000009,69.454712000000029],[-66.921111999999994,69.379150000000095],[-66.795546999999885,69.341094999999996],[-66.785277999999948,69.337204000000099],[-66.774444999999957,69.331940000000088],[-66.767226999999934,69.327484000000027],[-66.694992000000013,69.281661999999983],[-66.682769999999948,69.270264000000111],[-66.650283999999942,69.236374000000012],[-66.645844000000011,69.224991000000045],[-66.646666999999979,69.203598000000113],[-66.658614999999941,69.188309000000004],[-66.668335000000013,69.178314000000114],[-66.689437999999939,69.161926000000051],[-66.720001000000025,69.144150000000081],[-66.730559999999969,69.138885000000016],[-66.75306699999993,69.129424999999969],[-66.758620999999948,69.128036000000122],[-66.776107999999965,69.128860000000088],[-66.837219000000005,69.135818000000086],[-66.84944200000001,69.138321000000076],[-66.912780999999995,69.154984000000127],[-66.928328999999906,69.164153999999996],[-66.953339000000028,69.172211000000004],[-66.965285999999992,69.174423000000047],[-66.996947999999975,69.177764999999965],[-67.132767000000001,69.182479999999998],[-67.371932999999956,69.184417999999937],[-67.385558999999944,69.183868000000132],[-67.414718999999991,69.178314000000114],[-67.427215999999987,69.174423000000047],[-67.458892999999932,69.162491000000102],[-67.466109999999958,69.160812000000078],[-67.50556899999998,69.157486000000063],[-67.521117999999944,69.15776100000005],[-67.648620999999991,69.166931000000091],[-67.676391999999964,69.169434000000081],[-67.864166000000012,69.221924000000115],[-68.18447900000001,69.308014000000014],[-68.209732000000031,69.311370999999951],[-68.221663999999976,69.312194999999917],[-68.232772999999952,69.311370999999951],[-68.251953000000015,69.309708000000057],[-68.285278000000005,69.304428000000144],[-68.31082200000003,69.298598999999967],[-68.327498999999989,69.296097000000088],[-68.344161999999983,69.294708000000071],[-68.355835000000013,69.294144000000131],[-68.375548999999921,69.294708000000071],[-68.464721999999938,69.301651000000049],[-68.675277999999992,69.322220000000016],[-68.740279999999984,69.330551000000128],[-68.811935000000005,69.341933999999924],[-68.84445199999999,69.346100000000035],[-68.944716999999912,69.354980000000069],[-68.962783999999999,69.356369000000029],[-68.984436000000017,69.356934000000081],[-69.015015000000005,69.354980000000069],[-69.040282999999988,69.349716000000058],[-69.176665999999955,69.310806000000127],[-69.203063999999927,69.303040000000067],[-69.241378999999881,69.284149000000014],[-69.253890999999953,69.27526899999998],[-69.25778200000002,69.270264000000111],[-69.25167799999997,69.263610999999969],[-69.246947999999975,69.261107999999979],[-69.235001000000011,69.259720000000073],[-69.221938999999963,69.261658000000011],[-69.213057999999933,69.264709000000039],[-69.203339000000028,69.269989000000123],[-69.197768999999994,69.275542999999914],[-69.176392000000021,69.287490999999989],[-69.156386999999938,69.297484999999995],[-69.146118000000001,69.300537000000077],[-69.133330999999998,69.303314],[-69.013335999999981,69.327484000000027],[-68.956664999999873,69.331940000000088],[-68.941100999999946,69.332489000000066],[-68.921386999999868,69.331940000000088],[-68.658339999999896,69.300262000000089],[-68.537216000000001,69.285262999999986],[-68.504729999999995,69.280272999999966],[-68.330565999999919,69.27526899999998],[-68.251953000000015,69.27748100000008],[-68.230835000000013,69.277771000000087],[-68.198607999999979,69.274703999999986],[-68.172225999999966,69.269714000000079],[-68.159438999999963,69.266098000000056],[-68.14834599999989,69.261658000000011],[-68.139724999999885,69.257766999999944],[-68.088608000000022,69.228867000000093],[-68.083618000000001,69.225540000000137],[-68.077498999999875,69.21748400000007],[-68.081679999999949,69.211928999999998],[-68.091384999999946,69.205551000000071],[-68.103881999999999,69.202209000000096],[-68.129715000000033,69.197754000000089],[-68.163054999999929,69.199997000000053],[-68.263061999999991,69.211380000000077],[-68.410827999999924,69.221374999999966],[-68.549987999999985,69.226928999999984],[-68.643616000000009,69.229431000000034],[-68.664444000000003,69.228043000000127],[-68.689986999999917,69.223602000000028],[-68.839721999999938,69.214706000000092],[-68.923049999999989,69.220825000000104],[-68.967772999999966,69.221099999999979],[-68.948333999999875,69.214156999999943],[-68.93971299999987,69.211928999999998],[-68.913054999999986,69.20748900000001],[-68.862777999999992,69.201934999999992],[-68.80749499999996,69.198868000000061],[-68.788054999999986,69.198318000000029],[-68.767226999999991,69.199707000000046],[-68.737777999999992,69.203598000000113],[-68.704726999999991,69.209152000000074],[-68.65695199999999,69.210541000000092],[-68.618057000000022,69.209152000000074],[-68.515015000000005,69.20248400000014],[-68.502501999999993,69.198593000000074],[-68.505279999999914,69.195815999999979],[-68.513901000000033,69.191925000000083],[-68.690551999999968,69.141098],[-68.707229999999925,69.138321000000076],[-68.872771999999998,69.120529000000033],[-68.998046999999985,69.103591999999992],[-68.961670000000026,69.103867000000037],[-68.929717999999923,69.100266000000147],[-68.926940999999943,69.098328000000038],[-68.926666000000012,69.079987000000017],[-68.957779000000016,69.005264000000011],[-68.958892999999989,69.003052000000139],[-68.969161999999926,68.993591000000038],[-68.994155999999919,68.982483000000002],[-69.006118999999956,68.978317000000118],[-69.018889999999885,68.975815000000068],[-69.028885000000002,68.971375000000023],[-69.025833000000034,68.968597000000045],[-69.017501999999979,68.966385000000002],[-69.005568999999923,68.964705999999978],[-68.998046999999985,68.964995999999985],[-68.973052999999993,68.970824999999991],[-68.962783999999999,68.974701000000039],[-68.946380999999917,68.982483000000002],[-68.930557000000022,68.992752000000053],[-68.920272999999952,69.00277699999998],[-68.89416499999993,69.044982999999945],[-68.89416499999993,69.050537000000134],[-68.892226999999991,69.062194999999974],[-68.889724999999999,69.066376000000048],[-68.881942999999865,69.07777400000009],[-68.879165999999941,69.081374999999923],[-68.872497999999894,69.084991000000002],[-68.858336999999892,69.088318000000129],[-68.753615999999965,69.109711000000061],[-68.471114999999998,69.166381999999999],[-68.412780999999939,69.176926000000037],[-68.381377999999927,69.175262000000032],[-68.351394999999968,69.171646000000123],[-68.178329000000019,69.14665199999996],[-68.089447000000007,69.126082999999994],[-67.725280999999939,69.032211000000132],[-67.715012000000002,69.029160000000104],[-67.708054000000004,69.024704000000042],[-67.705840999999964,69.01638800000012],[-67.721114999999941,69.009720000000129],[-67.974715999999944,68.9727630000001],[-68.029448999999943,68.971375000000023],[-68.058884000000035,68.973602000000085],[-68.211120999999935,68.991928000000087],[-68.241378999999995,68.996933000000126],[-68.268065999999976,69.00277699999998],[-68.314162999999951,69.010544000000095],[-68.335007000000019,69.009155000000078],[-68.535552999999879,68.984146000000123],[-68.548614999999984,68.982208000000014],[-68.552779999999984,68.977203000000145],[-68.554717999999923,68.971100000000035],[-68.556106999999997,68.964157],[-68.545272999999952,68.959717000000012],[-68.440552000000025,68.9727630000001],[-68.337509000000011,68.985809000000074],[-68.320281999999963,68.986374000000069],[-68.303054999999972,68.985809000000074],[-68.290557999999976,68.982208000000014],[-68.285278000000005,68.977478000000133],[-68.28443900000002,68.974701000000039],[-68.264175000000023,68.964705999999978],[-68.196945000000028,68.94999700000011],[-68.186661000000015,68.947754000000145],[-68.169448999999986,68.946930000000009],[-68.152221999999938,68.946930000000009],[-68.116104000000007,68.94747899999993],[-68.081679999999949,68.94747899999993],[-68.064163000000008,68.946091000000024],[-68.048339999999996,68.943863000000079],[-68.039992999999981,68.941360000000088],[-67.974715999999944,68.865265000000079],[-67.972778000000005,68.859146000000067],[-67.977492999999981,68.855545000000006],[-67.986938000000009,68.854431000000034],[-68.006118999999899,68.854979999999955],[-68.082229999999981,68.862487999999985],[-68.129165999999998,68.867751999999996],[-68.18360899999999,68.878586000000041],[-68.242217999999866,68.889984000000027],[-68.256119000000012,68.892212000000029],[-68.289444000000003,68.894989000000123],[-68.37388599999997,68.897217000000069],[-68.475280999999995,68.899429000000112],[-68.489990000000034,68.897491000000002],[-68.491668999999945,68.896652000000017],[-68.488892000000021,68.893326000000002],[-68.48582499999992,68.89027400000009],[-68.477218999999934,68.886932000000115],[-68.463333000000034,68.885544000000039],[-68.43249499999996,68.883331000000055],[-68.373046999999929,68.88220200000012],[-68.353606999999954,68.88108799999992],[-68.293059999999969,68.874984999999981],[-68.266662999999994,68.869980000000112],[-68.179717999999923,68.851928999999984],[-68.133895999999936,68.837203999999986],[-68.008347000000015,68.816666000000112],[-67.972778000000005,68.811920000000043],[-67.955565999999976,68.810257000000092],[-67.916945999999939,68.808318999999983],[-67.886672999999917,68.808868000000075],[-67.861389000000031,68.805542000000059],[-67.778335999999911,68.786102000000085],[-67.771941999999967,68.78276100000005],[-67.771392999999932,68.781372000000033],[-67.774718999999948,68.77915999999999],[-67.803329000000019,68.774155000000121],[-67.820006999999976,68.772766000000104],[-67.857772999999952,68.771378000000027],[-67.872771999999998,68.771652000000131],[-67.915008999999998,68.774155000000121],[-67.944442999999922,68.778046000000018],[-68.076110999999969,68.80192599999998],[-68.170836999999892,68.814697000000081],[-68.352218999999934,68.832488999999953],[-68.426392000000021,68.839157000000114],[-68.546660999999972,68.84664900000007],[-68.565551999999968,68.847214000000122],[-68.58805799999999,68.846374999999966],[-68.606109999999887,68.842758000000003],[-68.610549999999989,68.839157000000114],[-68.611663999999962,68.835815000000025],[-68.604445999999939,68.83137499999998],[-68.593886999999995,68.827484000000084],[-68.557769999999948,68.821380999999974],[-68.52694699999995,68.795258000000047],[-68.602492999999924,68.794983000000002],[-68.678878999999938,68.796646000000123],[-68.795273000000009,68.799423000000047],[-68.807220000000029,68.800261999999975],[-68.900283999999942,68.80720500000001],[-68.967498999999918,68.814697000000081],[-68.995270000000005,68.819153000000028],[-69.00389100000001,68.822220000000129],[-69.015015000000005,68.827209000000096],[-69.105835000000013,68.848602000000028],[-69.25111400000003,68.872481999999991],[-69.28083799999996,68.875809000000118],[-69.323058999999944,68.876648000000102],[-69.361938000000009,68.874146000000053],[-69.378051999999968,68.871368000000018],[-69.389998999999989,68.867476999999951],[-69.398055999999997,68.862198000000149],[-69.394454999999994,68.85775799999999],[-69.379990000000021,68.854979999999955],[-69.36082499999992,68.854431000000034],[-69.331679999999949,68.856934000000024],[-69.279448999999943,68.855255],[-69.245543999999882,68.851379000000122],[-69.185546999999985,68.842209000000082],[-69.171111999999994,68.838882000000126],[-69.162215999999944,68.835815000000025],[-69.152221999999938,68.828048999999965],[-69.153884999999946,68.827209000000096],[-69.163054999999986,68.826096000000007],[-69.229996000000028,68.827209000000096],[-69.294158999999922,68.831940000000031],[-69.315001999999993,68.831664999999987],[-69.357773000000009,68.829163000000108],[-69.368606999999997,68.827209000000096],[-69.375548999999978,68.824997000000053],[-69.382767000000001,68.819153000000028],[-69.383895999999993,68.816376000000105],[-69.381377999999984,68.814986999999917],[-69.37110899999999,68.812759000000142],[-69.193603999999993,68.804153000000042],[-68.971114999999998,68.791931000000091],[-68.959166999999923,68.789703000000145],[-68.944992000000013,68.786926000000051],[-68.942490000000021,68.784988000000112],[-68.196380999999974,68.706940000000145],[-68.049437999999952,68.681655999999975],[-68.044998000000021,68.678314000000057],[-68.046111999999937,68.676376000000062],[-68.087508999999955,68.629425000000083],[-68.094451999999933,68.627762000000132],[-68.34445199999999,68.628586000000098],[-68.56220999999988,68.651931999999988],[-68.621933000000013,68.655823000000055],[-68.657776000000013,68.656372000000147],[-68.680283000000031,68.65554800000001],[-68.747771999999941,68.649155000000064],[-68.777785999999935,68.643051000000014],[-68.89416499999993,68.607208000000014],[-68.902495999999985,68.603592000000106],[-68.900283999999942,68.603043000000014],[-68.835830999999985,68.589157],[-68.804169000000002,68.589980999999966],[-68.757674999999949,68.600646999999981],[-68.749343999999951,68.602654000000143],[-68.735001000000011,68.607314999999971],[-68.711165999999992,68.621147000000121],[-68.679992999999911,68.630814000000044],[-68.647507000000019,68.635544000000095],[-68.62860099999989,68.635544000000095],[-68.594161999999926,68.633605999999986],[-68.563048999999921,68.629425000000083],[-68.533324999999991,68.624985000000038],[-68.481383999999935,68.614990000000148],[-68.475280999999995,68.61303700000002],[-68.470276000000013,68.609146000000123],[-68.46945199999999,68.606369000000029],[-68.483321999999987,68.596939000000134],[-68.50389100000001,68.589980999999966],[-68.519454999999994,68.585815000000082],[-68.533889999999928,68.583878000000027],[-68.605834999999956,68.578872999999987],[-68.648345999999947,68.577773999999977],[-68.660004000000015,68.578872999999987],[-68.682883999999945,68.575211000000024],[-68.69506100000001,68.574379000000135],[-68.707053999999971,68.57337200000012],[-68.712387000000035,68.572044000000005],[-68.716064000000017,68.569382000000019],[-68.716727999999932,68.568047000000035],[-68.707053999999971,68.5660400000001],[-68.696724000000017,68.565207999999984],[-68.656113000000005,68.559708000000001],[-68.460007000000019,68.562195000000088],[-68.447220000000016,68.563599000000067],[-68.435271999999941,68.567490000000134],[-68.427215999999987,68.571930000000009],[-68.422774999999945,68.576096000000064],[-68.420272999999895,68.579711999999915],[-68.419997999999964,68.585266000000104],[-68.416397000000018,68.591369999999984],[-68.396117999999944,68.593048000000067],[-68.337783999999999,68.593323000000112],[-68.244445999999982,68.588043000000027],[-68.215560999999866,68.585541000000148],[-68.136672999999973,68.572220000000016],[-68.06534599999992,68.545822000000044],[-67.920273000000009,68.534424000000001],[-67.866942999999992,68.509720000000073],[-67.809158000000025,68.531097000000102],[-67.673049999999932,68.561096000000077],[-67.664169000000015,68.562759000000028],[-67.643615999999952,68.562759000000028],[-67.539443999999946,68.550812000000064],[-67.52555799999999,68.548598999999911],[-67.500838999999928,68.538315000000068],[-67.492217999999923,68.527206000000035],[-67.493056999999965,68.523604999999975],[-67.502228000000002,68.514999000000046],[-67.510559000000001,68.511382999999967],[-67.51916499999993,68.509155000000021],[-67.543059999999912,68.506103999999993],[-67.607773000000009,68.503876000000048],[-67.621658000000025,68.5],[-67.628052000000025,68.496368000000018],[-67.634734999999921,68.486649],[-67.621383999999978,68.384429999999952],[-67.618606999999997,68.381088000000034],[-67.612502999999947,68.379424999999912],[-67.603332999999907,68.378860000000088],[-67.59445199999999,68.381363000000079],[-67.551102000000014,68.414428999999984],[-67.548339999999996,68.440262000000132],[-67.549437999999896,68.443863000000022],[-67.555832000000009,68.455261000000007],[-67.511123999999938,68.483322000000101],[-67.426102000000014,68.494430999999963],[-67.335555999999997,68.49693300000007],[-67.31639100000001,68.496094000000085],[-67.232497999999964,68.480545000000006],[-67.224166999999966,68.47665400000011],[-67.217498999999918,68.471924000000058],[-67.213622999999927,68.440811000000053],[-67.223052999999993,68.426086000000112],[-67.307770000000005,68.423309000000017],[-67.325835999999981,68.421371000000079],[-67.332779000000016,68.418869000000029],[-67.335830999999985,68.416092000000106],[-67.338608000000022,68.411926000000051],[-67.33805799999999,68.409988000000055],[-67.324448000000018,68.40776100000005],[-67.15695199999999,68.406372000000033],[-67.111938000000009,68.411926000000051],[-67.104996000000028,68.414153999999996],[-67.100554999999929,68.418320000000051],[-67.09722899999997,68.45138500000013],[-67.100280999999995,68.457214000000135],[-67.106658999999866,68.460541000000092],[-67.116652999999985,68.463607999999965],[-67.127212999999983,68.46804800000001],[-67.129990000000021,68.472763000000043],[-67.126937999999996,68.475540000000137],[-67.112777999999992,68.478867000000093],[-66.908050999999944,68.453873000000101],[-66.821395999999993,68.465271000000087],[-66.803054999999972,68.467209000000025],[-66.787506000000008,68.464996000000099],[-66.706954999999994,68.44470200000012],[-66.697768999999937,68.428039999999953],[-66.724166999999909,68.429153000000042],[-66.782775999999956,68.426086000000112],[-66.904998999999918,68.416382000000112],[-66.920546999999942,68.411102000000085],[-66.921660999999915,68.408324999999991],[-66.914168999999902,68.398880000000077],[-66.913054999999986,68.39498900000001],[-66.914444000000003,68.391937000000098],[-66.93638599999997,68.374420000000043],[-66.946654999999907,68.369980000000055],[-66.955001999999979,68.367477000000065],[-67.005843999999968,68.354430999999977],[-67.011123999999938,68.353591999999992],[-67.02416999999997,68.35386699999998],[-67.048889000000031,68.355820000000108],[-67.075561999999934,68.360535000000141],[-67.111388999999974,68.370255000000043],[-67.130279999999914,68.379700000000128],[-67.142226999999991,68.382750999999985],[-67.230559999999969,68.39498900000001],[-67.245543999999995,68.395827999999995],[-67.286391999999978,68.395827999999995],[-67.379715000000033,68.390823000000125],[-67.411117999999931,68.382750999999985],[-67.415557999999976,68.378036000000122],[-67.418883999999991,68.376373000000001],[-67.455565999999919,68.36775200000011],[-67.494719999999973,68.360809000000074],[-67.595276000000013,68.347762999999986],[-67.631667999999991,68.345261000000107],[-67.646117999999944,68.344711000000075],[-67.743880999999988,68.343322999999941],[-67.781386999999938,68.337204000000099],[-67.810546999999985,68.328598],[-67.832229999999925,68.320267000000115],[-67.849730999999963,68.309981999999991],[-67.865829000000019,68.29971299999994],[-67.87110899999999,68.292755],[-67.878326000000015,68.26527400000009],[-67.869720000000029,68.259995000000117],[-67.860001000000011,68.258331000000112],[-67.845551,68.258880999999974],[-67.833327999999938,68.261383000000023],[-67.826675000000023,68.264434999999935],[-67.820281999999906,68.268599999999935],[-67.818068999999923,68.274155000000064],[-67.821120999999948,68.284987999999998],[-67.820557000000008,68.289703000000031],[-67.815551999999968,68.292206000000022],[-67.752501999999993,68.318878000000097],[-67.745269999999891,68.320541000000048],[-67.597778000000005,68.323044000000039],[-67.583069000000023,68.308029000000033],[-67.572234999999978,68.273314999999968],[-67.576675000000023,68.268599999999935],[-67.583327999999995,68.265548999999965],[-67.591674999999952,68.263046000000145],[-67.616394000000014,68.258331000000112],[-67.646666999999979,68.25360100000006],[-67.662780999999995,68.252487000000087],[-67.689437999999996,68.24803200000008],[-67.695267000000001,68.242477000000008],[-67.694992000000013,68.241089000000102],[-67.690826000000015,68.239700000000084],[-67.679717999999923,68.238876000000118],[-67.666945999999996,68.239975000000129],[-67.579726999999934,68.251389000000017],[-67.570846999999901,68.253052000000139],[-67.551666000000012,68.258331000000112],[-67.546950999999979,68.260544000000095],[-67.539169000000015,68.265823000000069],[-67.533066000000019,68.271378000000141],[-67.531112999999948,68.278320000000065],[-67.535004000000015,68.285538000000031],[-67.541381999999999,68.288879000000065],[-67.546111999999937,68.294144000000131],[-67.544997999999964,68.296371000000022],[-67.540282999999931,68.29971299999994],[-67.523894999999982,68.308594000000085],[-67.494155999999975,68.321930000000009],[-67.401947000000007,68.352478000000019],[-67.394729999999981,68.354156000000103],[-67.385558999999944,68.354430999999977],[-67.243880999999988,68.358322000000044],[-67.232497999999964,68.357483000000059],[-67.182495000000017,68.349426000000108],[-67.130279999999914,68.340820000000008],[-67.078063999999927,68.331100000000106],[-67.016113000000018,68.318603999999993],[-67.011672999999917,68.316086000000041],[-67.018340999999964,68.311645999999996],[-67.032500999999968,68.309143000000006],[-67.152221999999995,68.299987999999985],[-67.235000999999954,68.291655999999989],[-67.303878999999938,68.258880999999974],[-67.319732999999985,68.249709999999993],[-67.327788999999939,68.243590999999981],[-67.333617999999944,68.237761999999975],[-67.337509000000011,68.232483000000002],[-67.338897999999915,68.227767999999969],[-67.33944699999995,68.221649000000127],[-67.33944699999995,68.205551000000071],[-67.335007000000019,68.200821000000019],[-67.327498999999932,68.18664600000011],[-67.327788999999939,68.181091000000038],[-67.338608000000022,68.171097000000032],[-67.34584000000001,68.166091999999992],[-67.37110899999999,68.153869999999984],[-67.387787000000003,68.146378000000084],[-67.398620999999878,68.143875000000094],[-67.412505999999951,68.143051000000128],[-67.430283000000031,68.144714000000079],[-67.456954999999994,68.149429000000112],[-67.477782999999988,68.154984000000013],[-67.513901000000033,68.162491000000102],[-67.528885000000002,68.165268000000026],[-67.567779999999971,68.169144000000074],[-67.581116000000009,68.168869000000086],[-67.598891999999978,68.164992999999981],[-67.598342999999943,68.162766000000147],[-67.575561999999934,68.154984000000013],[-67.544723999999917,68.14776599999999],[-67.480285999999978,68.134720000000016],[-67.466949,68.132202000000063],[-67.438048999999978,68.128036000000009],[-67.408050999999944,68.124984999999981],[-67.396956999999929,68.124694999999974],[-67.374161000000015,68.127472000000012],[-67.353881999999999,68.135268999999994],[-67.307770000000005,68.155548000000124],[-67.304168999999945,68.158600000000035],[-67.273894999999925,68.19081100000011],[-67.272781000000009,68.195525999999973],[-67.274718999999891,68.200546000000031],[-67.279175000000009,68.205261000000064],[-67.283614999999998,68.211929000000055],[-67.288894999999968,68.226379000000122],[-67.289444000000003,68.230820000000051],[-67.289444000000003,68.236374000000069],[-67.274718999999891,68.244141000000013],[-67.178878999999995,68.269989000000123],[-67.139724999999999,68.27998400000007],[-67.057769999999891,68.291092000000049],[-67.011397999999986,68.294983000000116],[-66.998336999999935,68.292480000000126],[-66.99110399999995,68.288879000000065],[-66.986114999999984,68.285538000000031],[-66.984160999999972,68.28054800000001],[-66.973617999999988,68.27388000000002],[-66.964721999999995,68.270263999999997],[-66.930572999999924,68.262482000000034],[-66.865828999999962,68.25],[-66.835830999999928,68.246368000000075],[-66.791672000000005,68.244705000000124],[-66.777495999999985,68.243317000000047],[-66.769729999999925,68.241089000000102],[-66.765839000000028,68.238586000000112],[-66.780288999999982,68.207764000000054],[-66.852218999999991,68.115265000000079],[-66.888900999999976,68.092758000000003],[-66.896666999999866,68.089432000000102],[-66.913894999999968,68.084152000000074],[-66.945830999999941,68.076096000000007],[-66.954452999999944,68.071930000000066],[-66.965560999999923,68.063873000000115],[-66.971114999999998,68.053314000000057],[-66.972777999999948,68.048599000000024],[-66.973327999999981,68.039428999999984],[-66.969727000000034,68.034149000000127],[-66.961120999999991,68.024994000000049],[-66.953612999999962,68.017212000000086],[-66.946654999999907,68.013611000000026],[-66.928054999999972,68.042755],[-66.921660999999915,68.049149000000057],[-66.836120999999935,68.095535000000041],[-66.748046999999985,68.131653000000142],[-66.709166999999923,68.141098],[-66.694442999999978,68.143051000000128],[-66.682769999999948,68.141373000000044],[-66.678878999999995,68.138885000000016],[-66.670837000000006,68.128860000000145],[-66.670272999999952,68.114151000000106],[-66.678054999999915,68.043320000000051],[-66.680557000000022,68.036925999999994],[-66.693053999999904,68.022217000000126],[-66.706389999999942,68.011658000000125],[-66.720839999999953,68.001663000000008],[-66.735000999999954,67.982208000000014],[-66.732773000000009,67.981934000000081],[-66.714721999999938,67.983597000000032],[-66.697219999999902,67.987488000000099],[-66.647232000000031,68.015548999999965],[-66.634734999999864,68.064147999999932],[-66.631942999999978,68.075821000000133],[-66.625548999999978,68.103317000000004],[-66.620270000000005,68.125809000000118],[-66.615554999999972,68.132477000000108],[-66.610549999999932,68.136932000000115],[-66.594726999999921,68.143051000000128],[-66.56138599999997,68.147490999999945],[-66.541945999999882,68.148330999999985],[-66.513625999999931,68.148330999999985],[-66.328887999999949,68.132202000000063],[-66.31527699999998,68.130264000000125],[-66.309432999999956,68.127472000000012],[-66.310546999999929,68.118591000000094],[-66.315001999999879,68.112487999999985],[-66.321121000000005,68.106934000000138],[-66.350280999999939,68.090271000000087],[-66.366394000000014,68.083328000000108],[-66.371657999999968,68.081664999999987],[-66.388610999999969,68.08137499999998],[-66.41361999999998,68.086104999999975],[-66.427779999999984,68.087493999999992],[-66.450561999999991,68.086928999999941],[-66.468612999999948,68.083054000000004],[-66.476104999999905,68.080551000000014],[-66.478606999999954,68.077209000000039],[-66.472228999999913,68.073044000000039],[-66.460555999999997,68.070541000000105],[-66.438048999999978,68.068054000000018],[-66.389998999999989,68.069443000000035],[-66.369445999999925,68.071655000000078],[-66.326110999999969,68.079163000000108],[-66.303878999999995,68.083878000000141],[-66.296660999999972,68.086104999999975],[-66.272780999999952,68.087769000000037],[-66.259170999999981,68.085814999999968],[-66.250838999999985,68.082214000000135],[-66.240279999999871,68.073317999999972],[-66.184157999999968,68.018875000000037],[-66.184433000000013,68.013321000000019],[-66.186385999999914,68.010818000000029],[-66.192764000000011,68.007217000000026],[-66.204177999999899,68.00471500000009],[-66.253066999999874,68.00221300000004],[-66.264175000000023,67.99971000000005],[-66.294448999999986,67.991653000000099],[-66.309722999999963,67.986099000000081],[-66.320846999999958,67.97886699999998],[-66.344451999999933,67.956650000000081],[-66.405838000000017,67.898041000000035],[-66.401397999999972,67.888596000000007],[-66.522232000000031,67.860809000000017],[-66.535278000000005,67.863602000000014],[-66.594161999999983,67.872482000000048],[-66.628601000000003,67.876648000000102],[-66.672501000000011,67.880264000000011],[-66.729445999999996,67.878859999999975],[-66.739715999999987,67.877762000000075],[-66.746947999999918,67.875259000000142],[-66.74499499999996,67.872757000000036],[-66.732223999999974,67.867203000000075],[-66.703063999999983,67.863602000000014],[-66.686934999999949,67.862761999999975],[-66.653885000000002,67.859421000000111],[-66.56138599999997,67.843048000000067],[-66.401397999999972,67.811096000000077],[-66.356658999999922,67.821381000000031],[-66.346389999999985,67.861099000000024],[-66.332779000000016,67.887772000000041],[-66.319457999999884,67.911102000000142],[-66.295837000000006,67.938309000000118],[-66.276672000000019,67.954436999999984],[-66.268615999999952,67.958037999999988],[-66.251952999999958,67.962494000000106],[-66.240554999999972,67.962768999999923],[-66.227492999999868,67.959991000000116],[-66.213897999999972,67.960815000000082],[-66.136948000000018,67.976089000000002],[-66.119995000000017,67.981369000000086],[-66.003219999999885,68.020492999999988],[-65.988723999999877,68.026145999999983],[-65.981383999999991,68.029984000000127],[-65.943603999999993,68.046097000000145],[-65.948607999999979,68.09248400000007],[-65.958617999999944,68.129424999999969],[-65.961945000000014,68.13749700000011],[-65.960555999999997,68.144440000000145],[-65.94749499999989,68.154160000000047],[-65.941665999999941,68.157211000000018],[-65.928329000000019,68.162201000000096],[-65.920837000000006,68.161926000000051],[-65.911941999999954,68.15887500000008],[-65.867492999999911,68.124694999999974],[-65.863892000000021,68.119431000000134],[-65.857773000000009,68.110260000000039],[-65.853607000000011,68.078048999999908],[-65.853607000000011,68.073317999999972],[-65.857773000000009,68.067215000000033],[-65.933837999999923,68.01226800000012],[-65.96032699999995,67.996429000000035],[-65.980835000000013,67.987267000000088],[-65.994330999999988,67.979767000000038],[-66.032226999999978,67.952484000000027],[-65.985824999999977,67.916655999999989],[-65.967223999999987,67.853317000000061],[-65.980835000000013,67.842758000000003],[-66.005004999999869,67.814986999999974],[-66.009734999999978,67.803314000000114],[-66.028884999999946,67.724426000000108],[-66.028884999999946,67.719436999999971],[-66.021941999999967,67.650269000000037],[-66.020003999999915,67.635269000000108],[-66.013061999999934,67.626923000000033],[-66.008621000000005,67.625534000000016],[-65.999724999999899,67.627472000000125],[-65.986663999999962,67.635269000000108],[-65.961394999999982,67.689697000000081],[-65.950286999999946,67.722487999999998],[-65.936935000000005,67.765549000000021],[-65.938598999999954,67.77609300000006],[-65.942490000000021,67.780823000000112],[-65.953888000000006,67.798324999999977],[-65.95666499999993,67.811920000000043],[-65.955840999999964,67.818329000000062],[-65.953338999999971,67.821381000000031],[-65.946105999999986,67.82638500000013],[-65.926391999999964,67.832763999999997],[-65.869155999999919,67.844147000000021],[-65.831679999999949,67.854431000000034],[-65.804169000000002,67.863602000000014],[-65.795272999999952,67.868042000000003],[-65.763625999999931,67.909987999999998],[-65.762222000000008,67.914703000000031],[-65.763901000000033,67.919708000000071],[-65.767226999999991,67.923035000000027],[-65.798889000000031,67.938309000000118],[-65.819732999999985,67.955551000000128],[-65.823623999999995,67.962768999999923],[-65.817779999999971,67.968048000000124],[-65.807769999999948,67.971100000000035],[-65.684433000000013,67.992477000000065],[-65.46305799999999,67.996368000000132],[-65.448607999999979,67.995529000000147],[-65.443603999999993,67.992203000000131],[-65.441939999999988,67.986923000000047],[-65.442490000000021,67.981369000000086],[-65.457503999999972,67.937194999999917],[-65.464447000000007,67.920822000000044],[-65.52027899999996,67.843048000000067],[-65.525833000000034,67.837769000000037],[-65.545273000000009,67.822220000000129],[-65.55860899999999,67.814423000000033],[-65.573623999999938,67.806931000000077],[-65.603881999999999,67.79693599999996],[-65.610549999999876,67.792755000000056],[-65.615829000000019,67.786102000000085],[-65.613891999999908,67.780823000000112],[-65.610001000000011,67.776382000000012],[-65.591948999999943,67.763046000000088],[-65.572509999999966,67.751663000000065],[-65.556945999999868,67.7452550000001],[-65.517501999999979,67.733047000000056],[-65.473617999999931,67.719711000000075],[-65.454726999999991,67.71276899999998],[-65.439712999999927,67.705551000000014],[-65.426391999999964,67.696365000000014],[-65.41361999999998,67.683593999999914],[-65.40695199999999,67.674988000000042],[-65.403609999999958,67.664703000000088],[-65.400283999999942,67.654434000000037],[-65.396392999999875,67.64498900000001],[-65.384734999999921,67.625809000000004],[-65.363892000000021,67.597488000000112],[-65.356658999999922,67.594711000000018],[-65.346389999999985,67.593323000000112],[-65.335281000000009,67.593597000000045],[-65.322784000000013,67.594986000000063],[-65.318344000000025,67.601089000000002],[-65.369155999999919,67.70277400000009],[-65.379165999999941,67.711655000000007],[-65.40264899999994,67.72322100000008],[-65.462508999999955,67.741928000000144],[-65.492492999999968,67.751663000000065],[-65.510833999999988,67.759155000000021],[-65.544448999999986,67.774155000000121],[-65.550551999999982,67.778320000000122],[-65.554442999999992,67.783051000000057],[-65.554442999999992,67.788040000000024],[-65.423614999999984,67.898041000000035],[-65.292495999999971,67.934143000000006],[-65.235275000000001,67.944702000000063],[-65.201401000000033,67.954436999999984],[-65.171660999999915,67.966094999999996],[-65.156386999999938,67.973602000000085],[-65.144164999999873,67.984145999999953],[-65.141387999999949,67.990265000000022],[-65.145553999999947,67.997208000000001],[-65.175827000000027,68.008881000000031],[-65.180831999999953,68.012207000000046],[-65.181106999999997,68.016662999999994],[-65.176665999999955,68.022491000000059],[-65.169158999999922,68.027206000000092],[-65.047775000000001,68.04942299999999],[-65.001113999999916,68.055542000000003],[-64.973052999999993,68.050261999999975],[-64.734160999999972,67.993866000000025],[-64.723617999999988,67.99054000000001],[-64.717498999999975,67.986374000000126],[-64.713622999999984,67.981659000000093],[-64.718063000000029,67.976654000000053],[-64.725554999999929,67.971648999999957],[-64.743332000000009,67.965819999999951],[-64.84722899999997,67.934981999999991],[-64.942490000000021,67.912490999999989],[-65.015288999999996,67.862488000000042],[-65.017775999999969,67.820830999999998],[-65.008347000000015,67.785262999999929],[-65.014175000000023,67.780273000000079],[-65.051101999999958,67.754439999999988],[-65.060546999999929,67.752213000000097],[-65.085280999999895,67.749145999999996],[-65.112212999999997,67.748032000000023],[-65.124434999999949,67.746368000000018],[-65.136123999999995,67.743591000000094],[-65.145553999999947,67.738876000000062],[-65.158339999999953,67.729706000000022],[-65.179992999999911,67.713608000000136],[-65.192489999999964,67.702209000000039],[-65.196380999999974,67.69720500000011],[-65.198607999999922,67.691649999999981],[-65.205001999999979,67.65914900000007],[-65.205565999999919,67.653595000000109],[-65.204178000000013,67.648331000000098],[-65.200286999999946,67.643875000000037],[-65.178328999999962,67.633605999999986],[-65.172500999999954,67.633605999999986],[-65.167220999999984,67.635818000000029],[-65.162780999999995,67.63888500000013],[-65.150283999999999,67.672211000000118],[-65.149733999999967,67.677765000000079],[-65.150283999999999,67.68193100000002],[-65.154174999999952,67.686646000000053],[-65.153335999999911,67.692200000000014],[-65.148894999999982,67.698317999999972],[-65.129715000000033,67.715820000000008],[-65.124161000000015,67.718047999999953],[-64.929717999999923,67.78776600000009],[-64.919723999999917,67.790817000000118],[-64.907227000000034,67.792205999999965],[-64.827224999999942,67.784714000000008],[-64.81639100000001,67.78137200000009],[-64.810546999999985,67.777205999999978],[-64.808884000000035,67.771927000000005],[-64.80749499999996,67.74275200000011],[-64.81610099999989,67.710541000000035],[-64.825835999999981,67.703049000000078],[-64.837509000000011,67.700271999999984],[-64.862777999999992,67.691649999999981],[-64.862502999999947,67.687484999999981],[-64.84944200000001,67.687194999999974],[-64.820557000000008,67.688308999999947],[-64.799728000000016,67.690811000000053],[-64.779448999999886,67.697754000000032],[-64.773055999999997,67.703598000000056],[-64.768616000000009,67.709427000000062],[-64.762221999999952,67.76249700000011],[-64.755843999999968,67.817764000000068],[-64.75,67.822769000000108],[-64.740829000000019,67.824707000000046],[-64.65306099999998,67.82887299999993],[-64.611938000000009,67.82638500000013],[-64.56806899999998,67.819992000000013],[-64.506957999999997,67.80720500000001],[-64.368880999999931,67.764160000000061],[-64.363327000000027,67.759430000000009],[-64.363891999999964,67.754439999999988],[-64.396117999999944,67.711929000000112],[-64.401397999999915,67.707764000000111],[-64.414718999999991,67.707214000000079],[-64.431380999999988,67.709717000000069],[-64.445266999999944,67.71138000000002],[-64.460006999999905,67.711655000000007],[-64.472503999999958,67.710266000000047],[-64.578338999999971,67.696930000000066],[-64.597228999999857,67.689697000000081],[-64.61721799999998,67.678589000000045],[-64.637221999999895,67.665267999999912],[-64.639175000000023,67.660538000000088],[-64.626389000000017,67.659714000000122],[-64.618332000000009,67.663040000000137],[-64.581389999999999,67.67442299999999],[-64.515839000000028,67.68609600000002],[-64.454177999999956,67.693314000000044],[-64.380828999999892,67.698029000000076],[-64.36250299999989,67.702484000000084],[-64.34722899999997,67.709991000000002],[-64.331389999999885,67.727203000000031],[-64.326400999999919,67.731094000000098],[-64.318068999999923,67.73414600000001],[-64.305557000000022,67.733597000000088],[-64.295273000000009,67.730270000000132],[-64.072784000000013,67.610260000000096],[-64.067779999999971,67.602477999999962],[-64.039718999999991,67.533600000000092],[-64.038604999999905,67.528595000000053],[-64.038895000000025,67.525818000000129],[-64.044998000000021,67.520828000000051],[-64.053054999999915,67.517487000000017],[-64.134734999999921,67.490265000000079],[-64.144729999999925,67.487197999999978],[-64.165282999999988,67.482482999999945],[-64.238601999999901,67.46748400000007],[-64.250838999999871,67.466095000000109],[-64.271941999999967,67.464996000000099],[-64.281113000000005,67.465546000000131],[-64.343886999999938,67.469985999999949],[-64.386948000000018,67.474425999999994],[-64.412216000000001,67.477478000000076],[-64.423049999999989,67.478043000000127],[-64.435546999999985,67.478592000000049],[-64.440552000000025,67.474991000000045],[-64.432220000000029,67.471099999999979],[-64.410004000000015,67.464156999999943],[-64.384734999999978,67.458328000000108],[-64.356948999999986,67.453873000000101],[-64.296660999999915,67.448029000000076],[-64.283614999999998,67.448029000000076],[-64.204452999999944,67.452209000000096],[-64.190551999999968,67.453323000000069],[-64.166945999999996,67.456940000000031],[-64.145003999999858,67.461655000000064],[-64.123321999999916,67.465271000000143],[-64.111114999999927,67.466660000000104],[-64.086394999999982,67.46748400000007],[-64.048049999999876,67.464156999999943],[-64.010833999999988,67.459717000000126],[-64.00111400000003,67.455826000000059],[-63.992653000000018,67.448624000000109],[-63.951110999999969,67.409988000000112],[-63.904166999999973,67.30581699999999],[-63.904166999999973,67.301651000000106],[-63.905829999999924,67.299712999999997],[-63.912773000000016,67.295532000000094],[-63.923889000000031,67.293320000000051],[-63.93721800000003,67.292755],[-64.022780999999952,67.30802900000009],[-64.055266999999958,67.311371000000008],[-64.084732000000031,67.313309000000118],[-64.181670999999938,67.312194999999974],[-64.217498999999975,67.313598999999954],[-64.339995999999985,67.319442999999978],[-64.530562999999916,67.33776899999998],[-64.740279999999984,67.356934000000138],[-64.757507000000032,67.358322000000044],[-64.788329999999917,67.35914600000001],[-64.797500999999954,67.356644000000131],[-64.80082699999997,67.352768000000026],[-64.798889000000031,67.350266000000147],[-64.788605000000018,67.34693900000002],[-64.73443599999996,67.333603000000096],[-64.721389999999928,67.331374999999923],[-64.687774999999988,67.327484000000027],[-64.441665999999998,67.303040000000124],[-64.402221999999995,67.299149000000057],[-64.372498000000007,67.297211000000118],[-64.344726999999921,67.297485000000052],[-64.283614999999998,67.299987999999985],[-64.258621000000005,67.299149000000057],[-64.24610899999999,67.298599000000024],[-64.23832699999997,67.296936000000073],[-64.231948999999986,67.293320000000051],[-64.233886999999868,67.288589000000115],[-64.248336999999992,67.279434000000037],[-64.306380999999988,67.262207000000046],[-64.325012000000015,67.257216999999969],[-64.356110000000001,67.250275000000045],[-64.392226999999991,67.24664300000012],[-64.419448999999929,67.247207999999944],[-64.509170999999981,67.254990000000078],[-64.536941999999954,67.256653000000028],[-64.550277999999992,67.25610400000005],[-64.668610000000001,67.238585999999941],[-64.724166999999966,67.22886699999998],[-64.779174999999952,67.218872000000033],[-64.790282999999931,67.21665999999999],[-64.799987999999928,67.213608000000079],[-64.80972300000002,67.210266000000104],[-64.81610099999989,67.206940000000088],[-64.813048999999978,67.201385000000016],[-64.808043999999995,67.198029000000133],[-64.801392000000021,67.195250999999985],[-64.783324999999934,67.190262000000018],[-64.772781000000009,67.189696999999967],[-64.758895999999993,67.19081099999994],[-64.71665999999999,67.200272000000098],[-64.655838000000017,67.217209000000139],[-64.46665999999999,67.229156000000046],[-64.425277999999935,67.228043000000014],[-64.350783999999976,67.234764000000098],[-64.287444999999991,67.238257999999973],[-64.267112999999995,67.241425000000049],[-64.232772999999952,67.251434000000017],[-64.169448999999986,67.260818000000029],[-64.158889999999928,67.262497000000053],[-64.114715999999987,67.267212000000086],[-64.010559000000001,67.275269000000037],[-63.976944000000003,67.277771000000087],[-63.969993999999986,67.27748100000008],[-63.965836000000024,67.275542999999971],[-63.962775999999963,67.272491000000059],[-63.962775999999963,67.270263999999997],[-63.975829999999917,67.251937999999996],[-63.993056999999965,67.228317000000118],[-63.998336999999935,67.221649000000127],[-64.013335999999981,67.212204000000042],[-64.021392999999989,67.208878000000027],[-64.045272999999952,67.204711999999972],[-64.05610699999994,67.204437000000098],[-64.088608000000022,67.207764000000054],[-64.220222000000035,67.201714000000038],[-64.467498999999918,67.167480000000069],[-64.501403999999923,67.161652000000004],[-64.545272999999952,67.152481000000023],[-64.575011999999958,67.144714000000079],[-64.584166999999923,67.142212000000029],[-64.611938000000009,67.132477000000108],[-64.658050999999944,67.113037000000134],[-64.680831999999953,67.09304800000001],[-64.686935000000005,67.087493999999992],[-64.689986999999917,67.083602999999925],[-64.692490000000021,67.078048999999965],[-64.700561999999991,67.018051000000071],[-64.701110999999912,67.012207000000046],[-64.700561999999991,67.008040999999992],[-64.696945000000028,67.003326000000129],[-64.691939999999988,67.000549000000035],[-64.683060000000012,67.000275000000101],[-64.660278000000005,67.003875999999991],[-64.638610999999969,67.008606000000043],[-64.628325999999959,67.012207000000046],[-64.623885999999914,67.018051000000071],[-64.619720000000029,67.028320000000122],[-64.618057000000022,67.039428999999984],[-64.618057000000022,67.044434000000081],[-64.619720000000029,67.049713000000054],[-64.618880999999988,67.055252000000053],[-64.615279999999927,67.066940000000045],[-64.609160999999972,67.081940000000031],[-64.604172000000005,67.088317999999958],[-64.597777999999892,67.093872000000147],[-64.583617999999888,67.103043000000127],[-64.547501000000011,67.118590999999924],[-64.527221999999881,67.124145999999996],[-64.506393000000003,67.129425000000026],[-64.474715999999944,67.13499500000006],[-64.229995999999971,67.164154000000053],[-64.087218999999948,67.179703000000131],[-64.008895999999993,67.178864000000033],[-63.995551999999975,67.179428000000144],[-63.971381999999949,67.182205000000067],[-63.96055599999994,67.184417999999994],[-63.929726000000016,67.192749000000106],[-63.919166999999959,67.196365000000128],[-63.912216000000001,67.200546000000031],[-63.86222099999992,67.225815000000011],[-63.80750299999994,67.239150999999993],[-63.797500999999954,67.240265000000136],[-63.561942999999985,67.236923000000047],[-63.546394000000021,67.235809000000074],[-63.469443999999953,67.228317000000118],[-63.458336000000031,67.226088999999945],[-63.450554000000011,67.222488000000112],[-63.449164999999994,67.219437000000084],[-63.449164999999994,67.214995999999985],[-63.450835999999981,67.179703000000131],[-63.453888000000006,67.169434000000138],[-63.529442000000017,67.104431000000034],[-63.53833800000001,67.100540000000137],[-63.604720999999984,67.075272000000041],[-63.613892000000021,67.072769000000051],[-63.648055999999883,67.066940000000045],[-63.672775000000001,67.063599000000011],[-63.712776000000019,67.054977000000008],[-63.722771000000023,67.05192599999998],[-63.731383999999991,67.048035000000084],[-63.744445999999982,67.041092000000106],[-63.779723999999987,67.017487000000131],[-63.795836999999949,67.006653000000085],[-63.806389000000024,66.99581900000004],[-63.807219999999973,66.988037000000077],[-63.801392000000021,66.979705999999965],[-63.781386999999938,66.963608000000136],[-63.772498999999868,66.958878000000084],[-63.769447000000014,66.97137500000008],[-63.768889999999942,66.976929000000041],[-63.771111000000019,66.980819999999937],[-63.772498999999868,66.986098999999911],[-63.773613000000012,66.991088999999988],[-63.773330999999985,66.996094000000028],[-63.770836000000031,67.001389000000074],[-63.767219999999952,67.006104000000107],[-63.756950000000018,67.014160000000004],[-63.750557000000015,67.017487000000131],[-63.734443999999939,67.024155000000121],[-63.698607999999979,67.038878999999952],[-63.680000000000007,67.045821999999987],[-63.650832999999977,67.052475000000129],[-63.638335999999981,67.054428000000087],[-63.600837999999953,67.057479999999998],[-63.565552000000025,67.062485000000038],[-63.535277999999948,67.070831000000112],[-63.497222999999963,67.085266000000047],[-63.40277900000001,67.144440000000145],[-63.396392999999989,67.152206000000035],[-63.39416499999993,67.156936999999971],[-63.393889999999942,67.161652000000004],[-63.398055999999997,67.165817000000004],[-63.416945999999882,67.180267000000072],[-63.419997999999964,67.185806000000071],[-63.421943999999883,67.194702000000007],[-63.420836999999949,67.200272000000098],[-63.417777999999998,67.206100000000049],[-63.409163999999919,67.21665999999999],[-63.351669000000015,67.268051000000014],[-63.340553,67.276657000000114],[-63.332503999999972,67.281937000000028],[-63.298888999999974,67.297760000000039],[-63.280555999999933,67.306366000000139],[-63.272498999999982,67.309418000000051],[-63.160277999999948,67.328323000000012],[-63.137222000000008,67.331100000000106],[-63.110282999999868,67.329987000000017],[-63.03972599999986,67.306090999999924],[-63.022498999999925,67.298035000000084],[-63.015006999999969,67.293593999999985],[-62.997779999999977,67.281372000000147],[-62.992774999999995,67.276382000000126],[-62.973884999999882,67.235535000000141],[-62.970832999999971,67.225815000000011],[-62.970832999999971,67.221375000000023],[-63.023055999999997,67.179428000000144],[-63.035834999999963,67.171097000000032],[-63.04472399999986,67.167205999999965],[-63.075561999999934,67.15887500000008],[-63.100554999999986,67.155548000000124],[-63.134170999999981,67.15277100000003],[-63.170279999999991,67.147217000000069],[-63.19027699999998,67.143326000000002],[-63.232497999999964,67.132202000000063],[-63.242500000000007,67.129149999999981],[-63.268889999999942,67.117477000000122],[-63.275832999999977,67.113312000000121],[-63.284447,67.105255],[-63.285278000000005,67.099716000000001],[-63.283614999999998,67.094986000000119],[-63.278052999999943,67.090820000000065],[-63.268607999999972,67.082488999999953],[-63.260833999999988,67.074158000000068],[-63.25389100000001,67.064697000000081],[-63.224716000000001,67.024704000000042],[-63.220276000000013,67.016937000000098],[-63.220276000000013,67.006104000000107],[-63.220832999999971,66.989699999999971],[-63.221381999999949,66.984984999999938],[-63.223884999999996,66.979430999999977],[-63.227776000000006,66.972762999999986],[-63.240836999999999,66.961655000000007],[-63.27777900000001,66.949706999999933],[-63.320557000000008,66.940262000000075],[-63.356109999999944,66.934708000000057],[-63.36860699999994,66.934708000000057],[-63.43638599999997,66.925537000000134],[-63.469993999999986,66.920532000000094],[-63.514724999999999,66.912490999999989],[-63.526138000000003,66.909271000000047],[-63.545554999999865,66.903595000000053],[-63.554442999999935,66.899719000000005],[-63.565552000000025,66.892487000000074],[-63.565552000000025,66.888046000000145],[-63.563613999999973,66.883605999999929],[-63.557502999999997,66.875809000000004],[-63.554717999999866,66.870254999999986],[-63.551392000000021,66.860535000000084],[-63.555557000000022,66.848877000000073],[-63.571944999999971,66.837494000000049],[-63.593329999999924,66.831665000000044],[-63.615004999999996,66.827208999999982],[-63.638892999999882,66.824432000000058],[-63.652221999999881,66.82388300000008],[-63.698607999999979,66.822495000000004],[-63.725273000000016,66.823043999999982],[-63.775832999999921,66.825821000000019],[-63.771384999999952,66.811096000000077],[-63.653053,66.802475000000015],[-63.624442999999928,66.801926000000037],[-63.598334999999906,66.80304000000001],[-63.587776000000019,66.804428000000144],[-63.548889000000031,66.812485000000095],[-63.539443999999946,66.814697000000137],[-63.535277999999948,66.81581100000011],[-63.488891999999964,66.828323000000125],[-63.478881999999942,66.835815000000082],[-63.476386999999932,66.839157],[-63.475272999999959,66.842484000000127],[-63.476944000000003,66.846939000000134],[-63.487220999999977,66.858871000000079],[-63.494719999999973,66.865539999999953],[-63.496947999999861,66.880814000000044],[-63.487220999999977,66.896942000000081],[-63.480826999999977,66.90248100000008],[-63.474441999999954,66.906096999999932],[-63.456107999999972,66.910811999999964],[-63.441665999999998,66.908325000000104],[-63.427223000000026,66.901382000000126],[-63.407218999999998,66.814423000000033],[-63.407776000000013,66.809708000000001],[-63.410278000000005,66.799988000000099],[-63.414718999999991,66.783325000000048],[-63.417777999999998,66.773040999999978],[-63.436110999999926,66.728043000000071],[-63.449439999999925,66.716095000000053],[-63.453056000000004,66.711655000000064],[-63.451941999999917,66.70637499999998],[-63.441939999999931,66.703048999999965],[-63.420279999999934,66.698868000000061],[-63.415276000000006,66.700546000000145],[-63.408332999999914,66.704437000000041],[-63.40277900000001,66.708878000000141],[-63.376663000000008,66.734146000000067],[-63.32028200000002,66.814148000000046],[-63.319450000000018,66.819992000000013],[-63.224716000000001,66.899428999999998],[-62.973884999999882,66.961104999999975],[-62.962501999999972,66.963882000000069],[-62.939994999999954,66.966660000000047],[-62.87222300000002,66.964432000000102],[-62.846946999999943,66.961929000000112],[-62.837776000000019,66.957764000000111],[-62.821114000000023,66.830276000000083],[-62.820557000000008,66.813599000000067],[-62.827498999999932,66.78804000000008],[-62.829726999999991,66.783325000000048],[-62.837501999999972,66.771927000000005],[-62.84332999999998,66.769149999999911],[-62.864448999999979,66.746094000000085],[-62.869995000000017,66.739700000000028],[-62.873055000000022,66.733597000000088],[-62.91194200000001,66.652771000000143],[-62.914444000000003,66.647216999999955],[-62.908050999999944,66.63998400000014],[-62.903052999999943,66.637207000000046],[-62.899726999999984,66.636658000000125],[-62.859169000000009,66.653045999999961],[-62.850280999999939,66.656937000000028],[-62.835274000000027,66.666382000000112],[-62.819999999999936,66.684418000000107],[-62.734168999999952,66.790816999999947],[-62.735831999999959,66.801651000000049],[-62.743331999999953,66.809982000000105],[-62.751113999999916,66.818054000000075],[-62.768058999999937,66.830551000000071],[-62.774170000000026,66.840546000000018],[-62.768332999999984,66.907760999999994],[-62.764449999999954,66.925262000000089],[-62.761115999999959,66.929152999999985],[-62.743057000000022,66.941924999999969],[-62.725273000000016,66.947478999999987],[-62.634170999999981,66.951385000000073],[-62.607779999999991,66.952209000000039],[-62.592223999999931,66.950821000000133],[-62.578612999999962,66.947754000000032],[-62.568892999999889,66.944138000000123],[-62.549994999999967,66.931655999999975],[-62.519996999999933,66.911102000000028],[-62.40277900000001,66.809417999999994],[-62.401389999999935,66.804977000000065],[-62.40193899999997,66.789154000000053],[-62.398613000000012,66.780272999999909],[-62.393332999999984,66.775818000000072],[-62.326950000000011,66.730270000000132],[-62.319450000000018,66.726379000000065],[-62.313332000000003,66.726929000000098],[-62.299171000000001,66.733047000000056],[-62.291388999999924,66.756378000000097],[-62.292777999999998,66.761658000000011],[-62.295837000000006,66.766388000000006],[-62.362220999999977,66.818329000000119],[-62.419448999999986,66.843323000000055],[-62.424720999999977,66.847488000000055],[-62.426948999999865,66.851378999999952],[-62.436942999999985,66.884430000000123],[-62.427222999999969,66.921097000000088],[-62.418891999999971,66.926651000000106],[-62.407501000000025,66.92942800000003],[-62.394721999999945,66.929152999999985],[-62.346946999999886,66.933594000000085],[-62.284728999999913,66.946091000000081],[-62.271666999999979,66.960815000000139],[-62.279723999999931,66.979156000000103],[-62.291388999999924,67.005829000000119],[-62.294448999999986,67.021378000000027],[-62.293616999999983,67.026382000000012],[-62.290282999999988,67.032486000000006],[-62.285277999999948,67.036102000000085],[-62.278609999999958,67.039428999999984],[-62.262504999999976,67.045258000000047],[-62.101394999999968,67.054703000000075],[-62.054442999999878,67.049149000000114],[-62.03194400000001,67.045258000000047],[-62.019721999999945,67.042206000000078],[-62.005561999999941,67.0352630000001],[-62.006950000000018,67.031937000000084],[-62.04999499999991,66.987198000000092],[-62.106110000000001,66.917206000000022],[-62.102225999999916,66.913040000000137],[-62.072226999999998,66.907486000000119],[-62.029723999999987,66.901657000000114],[-62.018889999999942,66.901657000000114],[-62.018607999999972,66.908035000000098],[-62.015006999999912,66.91415400000011],[-61.95666499999993,66.963882000000069],[-61.949722000000008,66.967208999999968],[-61.938605999999993,66.969436999999971],[-61.913329999999974,66.970825000000048],[-61.865554999999972,66.970825000000048],[-61.851395000000025,66.970535000000041],[-61.83805099999995,66.968597000000102],[-61.749725000000012,66.94802900000002],[-61.737220999999977,66.941086000000041],[-61.731941000000006,66.93691999999993],[-61.728881999999942,66.932205000000067],[-61.730826999999863,66.923874000000012],[-61.612777999999992,66.870818999999926],[-61.314163000000008,66.687195000000031],[-61.294723999999917,66.67442299999999],[-61.289443999999946,66.669983000000002],[-61.281386999999995,66.661102000000028],[-61.262504999999976,66.629425000000083],[-61.266662999999937,66.622756999999922],[-61.300277999999935,66.593597000000045],[-61.341667000000029,66.571930000000009],[-61.348052999999936,66.570541000000048],[-61.356666999999959,66.571106000000043],[-61.388335999999981,66.578598],[-61.400275999999963,66.577208999999982],[-61.409720999999934,66.572768999999994],[-61.425003000000004,66.559708000000057],[-61.447776999999974,66.538315000000125],[-61.46166999999997,66.543319999999994],[-61.54861499999987,66.547484999999995],[-61.584723999999994,66.547760000000039],[-61.598609999999951,66.550262000000089],[-61.618056999999965,66.557205000000067],[-61.623885999999914,66.566939999999988],[-61.631942999999978,66.586654999999951],[-61.638610999999969,66.595534999999984],[-61.643889999999999,66.599991000000102],[-61.669166999999959,66.616378999999995],[-61.691382999999973,66.62831100000011],[-61.72582999999986,66.643051000000071],[-61.734443999999996,66.645827999999995],[-61.950554000000011,66.67692599999998],[-62.015555999999947,66.671371000000079],[-62.12388599999997,66.626373000000001],[-62.050551999999982,66.624985000000095],[-62.018607999999972,66.640823000000125],[-61.990836999999999,66.648041000000092],[-61.979995999999971,66.648041000000092],[-61.950554000000011,66.646102999999982],[-61.830284000000006,66.621368000000132],[-61.796950999999979,66.611923000000047],[-61.788895000000025,66.608597000000032],[-61.75389100000001,66.588593000000117],[-61.576667999999984,66.487198000000035],[-61.575279000000023,66.48275799999999],[-61.576392999999996,66.477203000000088],[-61.583327999999938,66.471649000000127],[-61.59194199999996,66.46775800000006],[-61.614166000000012,66.463043000000027],[-61.635001999999929,66.459991000000059],[-61.731383999999935,66.451096000000064],[-61.844161999999926,66.446091000000024],[-61.857779999999934,66.447204999999997],[-61.869720000000029,66.445815999999979],[-61.956947000000014,66.424149000000114],[-61.976943999999946,66.417480000000069],[-61.985832000000016,66.413605000000075],[-61.986945999999932,66.410262999999986],[-61.978049999999996,66.403869999999984],[-61.96416499999998,66.401382000000012],[-61.934165999999891,66.400818000000072],[-61.755004999999983,66.407486000000063],[-61.578612999999905,66.415268000000026],[-61.569449999999904,66.415543000000014],[-61.557266000000027,66.413680999999997],[-61.545279999999991,66.409988000000112],[-61.466942000000017,66.371918000000051],[-61.462501999999972,66.369141000000127],[-61.463614999999891,66.365814],[-61.665276000000006,66.324996999999996],[-61.877494999999954,66.283324999999934],[-61.928885999999977,66.283874999999966],[-62.198883000000023,66.314148000000102],[-62.207503999999915,66.316666000000112],[-62.212218999999948,66.319442999999978],[-62.218055999999933,66.331939999999975],[-62.231941000000006,66.366089000000045],[-62.232215999999937,66.369705000000067],[-62.229439000000013,66.375259000000085],[-62.224998000000028,66.380264000000125],[-62.218604999999968,66.392487000000017],[-62.218329999999867,66.396652000000017],[-62.223610000000008,66.401093000000117],[-62.229996000000028,66.40415999999999],[-62.255279999999914,66.408324999999991],[-62.268889999999999,66.409424000000001],[-62.418610000000001,66.421097000000032],[-62.456107999999915,66.423874000000126],[-62.565833999999995,66.42804000000001],[-62.626662999999894,66.426085999999998],[-62.698883000000023,66.41276600000009],[-62.709723999999994,66.410537999999974],[-62.716110000000015,66.407211000000018],[-62.710281000000009,66.403594999999996],[-62.673614999999984,66.393600000000049],[-62.629996999999946,66.387771999999984],[-62.478049999999996,66.369980000000112],[-62.337501999999972,66.315811000000053],[-62.32028200000002,66.308319000000097],[-62.316108999999983,66.304977000000008],[-62.320556999999951,66.299712999999997],[-62.323616000000015,66.298035000000084],[-62.388892999999939,66.276093000000003],[-62.398338000000024,66.273041000000092],[-62.621940999999993,66.221375000000023],[-62.643615999999952,66.216933999999924],[-62.666945999999939,66.214432000000045],[-62.680832000000009,66.216933999999924],[-62.751944999999921,66.241088999999931],[-62.757225000000005,66.245255000000043],[-62.780555999999933,66.277771000000143],[-62.782218999999884,66.282486000000006],[-62.782218999999884,66.288879000000122],[-62.773330999999985,66.296936000000073],[-62.774170000000026,66.302765000000136],[-62.77944199999996,66.307205000000124],[-62.797225999999966,66.313873000000115],[-62.816665999999941,66.320831000000112],[-62.826110999999912,66.324158000000011],[-62.858894000000021,66.334152000000074],[-62.868057000000022,66.336104999999975],[-62.881110999999976,66.335815000000139],[-62.889998999999989,66.333328000000108],[-62.895003999999915,66.329712000000029],[-62.809440999999993,66.240814000000114],[-62.801391999999964,66.235259999999926],[-62.715003999999908,66.201660000000061],[-62.706107999999972,66.199707000000103],[-62.681389000000024,66.196930000000009],[-62.647223999999994,66.199707000000103],[-62.603614999999991,66.205261000000121],[-62.488051999999925,66.200271999999927],[-62.366660999999965,66.174987999999985],[-62.180557000000022,66.148604999999975],[-62.037505999999951,66.100815000000011],[-61.961112999999898,66.033875000000023],[-61.955001999999979,66.024155000000121],[-61.954445000000021,66.019150000000081],[-61.955832999999927,66.014998999999989],[-61.960280999999895,66.011932000000058],[-61.975554999999986,66.010543999999982],[-62.088889999999935,66.000274999999931],[-62.133614000000023,66.000000000000114],[-62.148055999999997,66.001389000000131],[-62.166388999999981,66.00749200000007],[-62.172501000000011,66.010543999999982],[-62.188889000000017,66.012207000000103],[-62.196663000000001,66.011108000000092],[-62.291672000000005,65.980270000000132],[-62.307776999999987,65.973876999999959],[-62.391669999999863,66.011383000000137],[-62.404715999999894,66.014708999999982],[-62.525276000000019,66.034149000000127],[-62.541388999999981,66.035537999999974],[-62.695549000000028,66.042205999999965],[-62.74111199999993,66.038315000000068],[-62.759726999999884,66.033051000000057],[-62.778885000000002,66.033324999999991],[-62.799995000000024,66.039703000000145],[-62.809165999999891,66.043869000000029],[-62.831672999999967,66.055542000000059],[-62.842223999999987,66.064147999999989],[-62.846946999999943,66.069153000000028],[-62.855003000000011,66.083054000000004],[-62.856667000000016,66.087494000000049],[-62.860001000000011,66.103043000000127],[-62.8663939999999,66.112761999999975],[-62.873329000000012,66.121368000000075],[-62.884170999999867,66.129973999999947],[-62.90555599999999,66.140823000000012],[-62.930557000000022,66.146942000000081],[-62.946945000000028,66.148604999999975],[-62.95944199999991,66.14888000000002],[-62.970551,66.148041000000035],[-63.013618000000008,66.138885000000073],[-63.041672000000005,66.130264000000011],[-63.061942999999928,66.120819000000097],[-63.060279999999977,66.116379000000109],[-63.039443999999889,66.113312000000008],[-63.006393000000003,66.11692800000003],[-62.892226999999934,66.076660000000004],[-62.889998999999989,66.066375999999934],[-62.885833999999988,66.056366000000025],[-62.875,66.047760000000096],[-62.862220999999863,66.039429000000041],[-62.841942000000017,66.027480999999966],[-62.826667999999927,66.020264000000054],[-62.815833999999938,66.016098],[-62.793616999999983,66.010818000000086],[-62.778885000000002,66.009720000000016],[-62.768332999999984,66.009720000000016],[-62.755561999999884,66.00999500000006],[-62.743889000000024,66.011383000000137],[-62.67472099999992,66.015549000000021],[-62.523055999999997,66.002213000000097],[-62.517219999999952,66.000549000000092],[-62.4183349999999,65.970535000000041],[-62.405555999999933,65.963043000000084],[-62.395003999999915,65.949996999999996],[-62.386664999999994,65.936646000000053],[-62.321114000000023,65.831100000000049],[-62.317222999999956,65.808029000000033],[-62.441665999999941,65.793594000000098],[-62.478881999999999,65.790817000000004],[-62.505279999999971,65.790817000000004],[-62.521384999999952,65.792480000000126],[-62.604171999999892,65.801085999999998],[-62.619995000000017,65.803040000000067],[-62.684440999999936,65.816375999999991],[-62.717773000000022,65.825272000000098],[-62.727218999999991,65.828598],[-62.729996000000028,65.831940000000088],[-62.75278499999996,65.853591999999935],[-62.80750299999994,65.88998400000014],[-62.829445000000021,65.899994000000049],[-62.857506000000001,65.911102000000028],[-62.864166000000012,65.911102000000028],[-62.870551999999918,65.90554800000001],[-62.871940999999936,65.901382000000126],[-62.87471800000003,65.887497000000053],[-62.87471800000003,65.883041000000105],[-62.760001999999986,65.816665999999998],[-62.746391000000017,65.809708000000001],[-62.736945999999932,65.80831900000004],[-62.719993999999929,65.809708000000001],[-62.658889999999985,65.791930999999977],[-62.597778000000005,65.771927000000062],[-62.582221999999888,65.765549000000078],[-62.575004999999976,65.761658000000011],[-62.569449999999961,65.757492000000127],[-62.568610999999919,65.752212999999927],[-62.569725000000005,65.746643000000063],[-62.579444999999964,65.728317000000061],[-62.583610999999962,65.723312000000021],[-62.587775999999963,65.720260999999994],[-62.59027900000001,65.719147000000021],[-62.59944200000001,65.718872000000147],[-62.612777999999992,65.72164900000007],[-62.621940999999993,65.725540000000137],[-62.67472099999992,65.735809000000017],[-62.823891000000003,65.761383000000023],[-62.833442999999875,65.752991000000009],[-62.833777999999882,65.74999200000002],[-62.828780999999879,65.744492000000093],[-62.799170999999887,65.711928999999998],[-62.788054999999929,65.708328000000108],[-62.726386999999988,65.71138000000002],[-62.698883000000023,65.710266000000047],[-62.681670999999994,65.708038000000101],[-62.662772999999902,65.701096000000007],[-62.59944200000001,65.675812000000008],[-62.59194199999996,65.671920999999941],[-62.589721999999938,65.668594000000041],[-62.595832999999857,65.652205999999978],[-62.602225999999973,65.640273999999977],[-62.611670999999944,65.624145999999939],[-62.617499999999893,65.614990000000034],[-62.628051999999968,65.601929000000098],[-62.645279000000016,65.587203999999929],[-62.653053,65.586104999999975],[-62.751113999999916,65.58526599999999],[-62.767220000000009,65.587493999999936],[-62.78472899999997,65.59137000000004],[-62.803054999999972,65.59887700000013],[-62.859726000000023,65.634720000000016],[-62.861389000000031,65.639160000000004],[-62.858611999999937,65.65525800000006],[-62.862503000000004,65.685257000000092],[-62.882998999999984,65.724152000000061],[-62.885001999999986,65.726973999999927],[-62.887999999999863,65.729652000000044],[-62.904167000000029,65.746368000000018],[-62.922500999999954,65.752212999999927],[-62.936110999999926,65.754990000000021],[-62.949439999999925,65.755263999999954],[-62.95944199999991,65.753876000000048],[-62.962219000000005,65.748322000000087],[-62.943610999999919,65.743042000000003],[-62.93472300000002,65.738876000000118],[-62.925277999999992,65.731093999999985],[-62.916663999999912,65.722214000000122],[-62.914444000000003,65.718323000000055],[-62.892226999999934,65.641937000000098],[-62.89166999999992,65.638321000000076],[-62.895836000000031,65.633040999999992],[-62.901389999999935,65.628036000000122],[-62.953330999999991,65.586929000000112],[-62.961670000000026,65.583054000000118],[-62.972220999999934,65.580826000000002],[-63.005004999999926,65.624985000000095],[-63.016113000000018,65.632750999999985],[-63.027495999999928,65.635818000000086],[-63.040282999999931,65.63749700000011],[-63.137779000000023,65.644150000000081],[-63.162498000000028,65.632477000000051],[-63.162406999999973,65.628868000000068],[-63.164443999999946,65.625534000000073],[-63.178611999999987,65.627472000000012],[-63.200279000000023,65.633330999999998],[-63.211945000000014,65.640549000000021],[-63.293891999999971,65.708878000000141],[-63.43638599999997,65.84526100000005],[-63.443054000000018,65.854705999999908],[-63.474167000000023,65.833054000000061],[-63.379165999999998,65.720260999999994],[-63.368332000000009,65.693863000000022],[-63.368332000000009,65.669434000000081],[-63.399726999999984,65.676375999999948],[-63.412215999999944,65.67804000000001],[-63.448607999999922,65.680817000000047],[-63.461944999999957,65.681090999999981],[-63.704720000000009,65.68220500000001],[-63.717216000000008,65.681656000000032],[-63.723609999999894,65.680267000000015],[-63.728607000000011,65.675812000000008],[-63.728881999999999,65.673035000000141],[-63.723609999999894,65.668869000000029],[-63.700553999999954,65.655823000000112],[-63.68360899999999,65.650818000000072],[-63.671669000000009,65.648330999999985],[-63.504723000000013,65.6308140000001],[-63.453330999999991,65.629700000000128],[-63.432502999999997,65.631927000000019],[-63.399726999999984,65.634155000000135],[-63.375,65.632202000000007],[-63.36860699999994,65.629150000000095],[-63.351669000000015,65.61775200000011],[-63.326667999999984,65.600815000000068],[-63.319999999999936,65.593322999999998],[-63.336661999999933,65.556930999999963],[-63.34332999999998,65.548325000000091],[-63.355003000000011,65.537766000000033],[-63.359726000000023,65.536102000000028],[-63.373610999999983,65.533874999999966],[-63.463332999999977,65.522766000000047],[-63.474715999999887,65.523605000000032],[-63.482215999999937,65.525269000000037],[-63.488608999999997,65.528320000000065],[-63.501396,65.536377000000016],[-63.523055999999997,65.550812000000121],[-63.532775999999899,65.558594000000085],[-63.541114999999934,65.570267000000115],[-63.541388999999867,65.574158000000011],[-63.546669000000009,65.581100000000106],[-63.561278999999956,65.585372999999947],[-63.567943999999954,65.590042000000096],[-63.572449000000006,65.591209000000049],[-63.581279999999992,65.591873000000078],[-63.589943000000005,65.591209000000049],[-63.595778999999993,65.589035000000081],[-63.608894000000021,65.589981000000023],[-63.618331999999953,65.541931000000034],[-63.616660999999908,65.537490999999989],[-63.612777999999878,65.533325000000104],[-63.601395000000025,65.530273000000022],[-63.530280999999945,65.512206999999989],[-63.43277699999993,65.484421000000111],[-63.391945000000021,65.472488000000112],[-63.362503000000004,65.463318000000015],[-63.309165999999948,65.445525999999973],[-63.301665999999898,65.441650000000095],[-63.295279999999991,65.436371000000122],[-63.290839999999946,65.431656000000089],[-63.292777999999998,65.428863999999976],[-63.393889999999942,65.425262000000032],[-63.409995999999921,65.426651000000049],[-63.468886999999938,65.439697000000137],[-63.495276999999987,65.450272000000098],[-63.502785000000017,65.454162999999994],[-63.521666999999979,65.461105000000089],[-63.532775999999899,65.464705999999978],[-63.553329000000019,65.468872000000033],[-63.568892999999946,65.471649000000127],[-63.583327999999995,65.4727630000001],[-63.64305899999988,65.473602000000085],[-63.65444199999996,65.472213999999951],[-63.655555999999933,65.470824999999991],[-63.654716000000008,65.464995999999985],[-63.627494999999954,65.455826000000116],[-63.563613999999973,65.435806000000071],[-63.483611999999994,65.404984000000013],[-63.335555999999997,65.30053700000002],[-63.335830999999985,65.295531999999923],[-63.424720999999977,65.229430999999977],[-63.472220999999934,65.196365000000014],[-63.418892000000028,65.145263999999997],[-63.376944999999978,65.110809000000017],[-63.424445999999932,65.049149000000114],[-63.464721999999938,65.018051000000128],[-63.527221999999995,64.971924000000058],[-63.528335999999967,64.967758000000003],[-63.546950999999979,64.887207000000046],[-63.653885000000002,64.911652000000061],[-63.659720999999934,64.939697000000081],[-63.747779999999977,64.962203999999986],[-63.824172999999973,64.984711000000061],[-63.828339000000028,65.010817999999915],[-63.825561999999877,65.012771999999984],[-63.720276000000013,65.030823000000112],[-63.669723999999917,65.034988000000112],[-63.659995999999978,65.03637700000013],[-63.655272999999966,65.03804000000008],[-63.658051,65.041091999999992],[-63.664718999999934,65.043594000000041],[-63.685554999999965,65.047759999999982],[-63.697776999999974,65.049423000000047],[-63.732215999999994,65.048874000000126],[-63.751944999999978,65.045258000000047],[-63.782218999999941,65.034149000000014],[-63.801940999999999,65.030273000000079],[-63.824447999999961,65.027481000000023],[-63.849723999999924,65.030273000000079],[-63.861114999999984,65.033325000000048],[-63.870551999999918,65.040816999999947],[-63.873885999999914,65.04553199999998],[-63.875556999999958,65.050262000000032],[-63.885559000000001,65.079987000000131],[-63.886116000000015,65.085815000000025],[-63.881667999999934,65.096939000000134],[-63.948607999999979,65.100540000000024],[-64.121108999999933,65.043869000000086],[-64.132491999999957,65.044434000000081],[-64.140839000000028,65.047211000000004],[-64.267226999999991,65.094147000000021],[-64.275833000000034,65.098877000000073],[-64.271118000000001,65.103317000000061],[-64.22193900000002,65.146942000000081],[-64.208892999999989,65.155258000000003],[-64.18582200000003,65.163879000000065],[-64.167220999999927,65.170532000000037],[-64.131103999999937,65.182480000000112],[-64.129715000000033,65.193588000000091],[-64.203613000000018,65.199707000000103],[-64.211944999999901,65.199996999999939],[-64.231383999999991,65.196930000000009],[-64.301940999999999,65.163040000000137],[-64.30999799999995,65.15914900000007],[-64.314712999999983,65.15248100000008],[-64.339172000000019,65.161377000000016],[-64.37332200000003,65.177200000000028],[-64.380828999999892,65.181091000000094],[-64.395844000000011,65.207214000000079],[-64.407227000000034,65.275818000000015],[-64.405272999999909,65.285537999999917],[-64.402785999999935,65.291092000000106],[-64.398620999999935,65.29693600000013],[-64.389724999999999,65.304428000000087],[-64.355835000000013,65.324996999999996],[-64.333327999999995,65.337203999999986],[-64.30999799999995,65.349990999999989],[-64.300551999999982,65.355819999999994],[-64.25556899999998,65.386382999999967],[-64.250838999999871,65.390823000000012],[-64.236389000000031,65.421920999999998],[-64.234160999999972,65.427199999999971],[-64.237212999999997,65.429977000000065],[-64.248885999999914,65.430542000000116],[-64.272781000000009,65.428588999999988],[-64.291107000000011,65.422484999999938],[-64.431380999999988,65.326934999999992],[-64.461670000000026,65.294983000000002],[-64.471664000000033,65.283324999999991],[-64.474715999999944,65.272491000000116],[-64.468886999999938,65.263885000000016],[-64.463897999999972,65.258881000000031],[-64.456954999999994,65.249420000000043],[-64.452498999999989,65.241653000000099],[-64.455565999999976,65.207214000000079],[-64.462218999999948,65.190810999999997],[-64.468337999999903,65.180267000000129],[-64.509734999999921,65.12052900000009],[-64.521117999999944,65.109146000000123],[-64.535004000000015,65.097214000000122],[-64.549987999999985,65.09275800000006],[-64.555556999999965,65.092209000000082],[-64.561934999999949,65.094986000000006],[-64.567504999999926,65.115814000000057],[-64.567504999999926,65.119979999999998],[-64.569457999999941,65.124419999999986],[-64.580001999999922,65.128860000000032],[-64.611389000000031,65.141937000000041],[-64.641112999999962,65.149993999999992],[-64.655272999999966,65.166092000000049],[-64.718338000000017,65.222487999999942],[-64.760284000000013,65.25221300000004],[-64.765014999999948,65.247756999999979],[-64.778335999999967,65.238585999999998],[-64.788329999999917,65.23414600000001],[-64.801102000000014,65.230820000000108],[-64.814712999999983,65.235259999999982],[-64.864440999999999,65.256653000000085],[-64.883895999999993,65.265273999999977],[-64.891113000000018,65.269150000000081],[-64.896666999999979,65.273315000000082],[-64.898346000000004,65.275818000000015],[-64.910552999999993,65.29942299999999],[-64.910827999999981,65.303589000000102],[-64.910004000000015,65.304977000000008],[-64.855887999999936,65.314545000000123],[-64.834228999999937,65.319046000000014],[-64.823387000000025,65.318214000000125],[-64.796111999999937,65.31860400000005],[-64.793883999999991,65.314697000000081],[-64.786391999999978,65.310806000000014],[-64.777221999999995,65.30914300000012],[-64.757171999999912,65.313095000000033],[-64.752173999999911,65.314255000000117],[-64.696105999999872,65.329712000000029],[-64.691101000000003,65.331940000000031],[-64.687209999999936,65.334991000000059],[-64.685271999999998,65.337493999999992],[-64.684433000000013,65.341095000000053],[-64.689162999999951,65.341660000000104],[-64.799728000000016,65.346939000000077],[-64.813613999999973,65.347214000000065],[-64.868056999999965,65.339706000000092],[-64.897780999999952,65.334152000000074],[-64.909163999999976,65.334717000000126],[-64.912216000000001,65.338042999999971],[-64.910552999999993,65.33998100000008],[-64.904723999999987,65.343596999999932],[-64.609160999999972,65.426376000000005],[-64.591110000000015,65.429703000000131],[-64.583892999999989,65.430267000000072],[-64.508347000000015,65.425812000000064],[-64.477218999999991,65.421097000000032],[-64.466400000000021,65.417480000000069],[-64.458343999999954,65.416656000000103],[-64.448607999999979,65.418319999999937],[-64.441939999999931,65.420258000000103],[-64.433608999999933,65.429153000000099],[-64.429992999999968,65.434417999999994],[-64.40943900000002,65.473877000000073],[-64.412780999999939,65.478592000000106],[-64.418335000000013,65.482758000000047],[-64.434432999999899,65.484146000000123],[-64.551940999999999,65.457764000000054],[-64.695267000000001,65.427765000000022],[-64.795273000000009,65.415268000000026],[-64.806655999999919,65.413879000000009],[-64.82417299999986,65.413315000000068],[-64.833618000000001,65.414429000000041],[-64.843886999999938,65.417205999999965],[-64.845550999999944,65.419434000000138],[-64.854996000000028,65.422759999999982],[-64.863891999999964,65.424698000000092],[-64.869719999999973,65.423874000000126],[-64.974166999999966,65.404708999999968],[-64.981110000000001,65.401932000000102],[-64.987502999999947,65.39776599999999],[-64.990279999999927,65.393875000000094],[-64.988602000000014,65.379424999999969],[-64.98582499999992,65.371368000000018],[-64.989715999999987,65.36831699999999],[-65.001113999999916,65.366652999999985],[-65.016112999999962,65.367203000000018],[-65.058883999999978,65.376648000000102],[-65.075012000000015,65.383041000000048],[-65.136123999999995,65.422484999999938],[-65.144164999999873,65.427765000000022],[-65.149993999999992,65.434143000000006],[-65.168883999999991,65.482758000000047],[-65.168059999999969,65.483871000000079],[-65.160003999999958,65.48803700000002],[-65.149445000000014,65.493042000000059],[-65.142501999999922,65.495818999999983],[-65.129990000000021,65.49859600000002],[-65.110274999999945,65.497482000000048],[-65.082503999999972,65.500548999999978],[-64.929717999999923,65.524703999999986],[-64.854445999999996,65.583603000000096],[-64.836944999999957,65.605819999999937],[-64.767226999999991,65.63998399999997],[-64.741669000000002,65.641662999999994],[-64.723052999999993,65.643600000000049],[-64.711944999999957,65.647217000000012],[-64.70944199999991,65.650543000000027],[-64.710007000000019,65.652205999999978],[-64.71444699999995,65.653320000000122],[-64.768340999999964,65.659988000000112],[-64.794723999999974,65.661926000000051],[-64.818618999999956,65.661926000000051],[-64.828063999999927,65.661102000000085],[-64.843886999999938,65.658034999999984],[-64.853333000000021,65.654709000000139],[-64.872222999999963,65.64498900000001],[-64.888901000000033,65.629150000000095],[-64.899993999999936,65.616378999999995],[-64.952498999999875,65.56442300000009],[-64.974166999999966,65.551376000000062],[-64.993606999999884,65.548035000000027],[-65.110274999999945,65.541092000000049],[-65.15306099999998,65.53915400000011],[-65.311110999999983,65.548874000000012],[-65.318344000000025,65.550537000000134],[-65.326400999999976,65.556366000000139],[-65.333327999999995,65.563599000000124],[-65.338607999999965,65.575546000000088],[-65.308334000000002,65.621094000000028],[-65.303328999999962,65.62831099999994],[-65.299987999999928,65.6308140000001],[-65.295837000000006,65.631653000000085],[-65.275283999999942,65.631363000000079],[-65.252228000000002,65.629974000000061],[-65.217772999999966,65.629974000000061],[-65.188599000000011,65.629974000000061],[-65.153884999999946,65.630264000000068],[-65.125823999999966,65.633330999999998],[-65.112503000000004,65.637207000000103],[-65.105835000000013,65.639435000000049],[-65.103881999999999,65.642487000000131],[-65.103881999999999,65.651932000000045],[-65.109436000000017,65.658875000000023],[-65.106948999999986,65.667205999999908],[-65.105835000000013,65.668594000000041],[-65.09973100000002,65.671920999999941],[-64.994445999999925,65.70138500000013],[-64.981383999999991,65.704712000000086],[-64.969726999999978,65.706650000000025],[-64.942215000000033,65.709152000000074],[-64.922501000000011,65.709427000000119],[-64.902495999999985,65.708602999999982],[-64.814712999999983,65.712769000000037],[-64.803328999999962,65.714157000000114],[-64.798339999999996,65.716385000000116],[-64.793609999999887,65.719985999999949],[-64.791381999999999,65.723312000000021],[-64.794997999999964,65.728043000000127],[-64.801940999999886,65.730270000000019],[-64.815552000000025,65.730545000000006],[-64.90695199999999,65.728867000000093],[-64.973052999999993,65.723602000000028],[-64.996947999999918,65.721374999999966],[-65.024719000000005,65.716934000000037],[-65.057219999999973,65.710266000000047],[-65.076110999999912,65.705551000000014],[-65.103058000000033,65.694427000000132],[-65.11610399999995,65.685257000000092],[-65.138610999999969,65.671096999999975],[-65.144454999999994,65.667480000000012],[-65.164168999999958,65.656937000000084],[-65.168334999999956,65.656097000000045],[-65.369994999999903,65.661102000000085],[-65.431380999999931,65.669144000000074],[-65.441665999999884,65.671646000000123],[-65.449996999999883,65.674988000000042],[-65.454452999999887,65.678314000000114],[-65.456954999999937,65.68220500000001],[-65.456389999999999,65.68553199999991],[-65.452498999999932,65.69081100000011],[-65.447768999999994,65.695251000000098],[-65.460281000000009,65.74136400000009],[-65.490279999999927,65.735809000000017],[-65.497771999999941,65.737487999999985],[-65.50556899999998,65.74331699999999],[-65.505004999999983,65.751663000000121],[-65.498885999999857,65.763046000000088],[-65.455276000000026,65.832489000000066],[-65.449158000000011,65.841094999999939],[-65.439437999999996,65.8477630000001],[-65.357223999999974,65.902480999999909],[-65.152221999999938,65.957764000000111],[-65.137787000000003,65.961104999999975],[-65.050277999999992,65.98054500000012],[-64.963897999999972,65.998596000000134],[-64.946105999999986,66.001389000000131],[-64.934722999999906,66.002213000000097],[-64.923049999999989,66.001389000000131],[-64.898346000000004,65.996933000000013],[-64.880828999999949,65.989975000000015],[-64.851104999999961,65.98054500000012],[-64.842223999999931,65.978043000000071],[-64.801392000000021,65.969436999999971],[-64.772506999999962,65.966095000000053],[-64.755004999999926,65.966095000000053],[-64.743332000000009,65.967484000000013],[-64.735001000000011,65.969436999999971],[-64.733886999999925,65.97554000000008],[-64.738601999999958,65.978867000000037],[-64.765014999999948,65.988037000000077],[-64.821670999999981,66.044708000000014],[-64.750838999999928,66.185532000000023],[-64.721663999999976,66.217483999999956],[-64.712219000000005,66.223602000000085],[-64.605834999999956,66.259155000000135],[-64.480559999999969,66.296371000000079],[-64.451950000000011,66.303589000000102],[-64.405563000000029,66.315811000000053],[-64.388610999999912,66.321655000000078],[-64.375548999999921,66.327209000000039],[-64.365829000000019,66.333053999999947],[-64.356383999999935,66.340546000000074],[-64.354172000000005,66.348038000000031],[-64.356383999999935,66.349715999999944],[-64.366104000000007,66.350815000000125],[-64.377486999999974,66.349990999999989],[-64.443877999999984,66.344711000000075],[-64.464721999999938,66.34304800000001],[-64.71444699999995,66.274994000000049],[-64.718886999999995,66.273315000000025],[-64.789168999999958,66.236374000000126],[-64.796111999999937,66.231659000000093],[-64.839995999999985,66.193313999999987],[-64.858046999999942,66.149993999999992],[-64.856658999999979,66.139984000000084],[-64.851944000000003,66.124984999999981],[-64.849730999999963,66.12052900000009],[-64.854171999999949,66.109711000000118],[-64.858886999999982,66.106093999999985],[-64.933884000000035,66.080276000000026],[-64.948607999999979,66.076934999999992],[-65.126098999999954,66.03776600000009],[-65.381942999999922,65.975815000000125],[-65.398055999999997,65.974700999999925],[-65.827788999999996,65.953049000000078],[-65.876389000000017,65.94802900000002],[-65.916106999999954,65.95109599999995],[-65.928054999999972,65.953873000000044],[-65.935546999999929,65.958328000000051],[-65.939712999999927,65.962493999999992],[-65.96305799999999,66.034424000000001],[-65.963897999999915,66.043869000000029],[-65.918883999999935,66.086105000000032],[-65.911666999999852,66.091660000000104],[-65.904175000000009,66.094437000000028],[-65.786117999999988,66.126373000000115],[-65.674712999999997,66.157486000000119],[-65.65055799999999,66.164429000000098],[-65.640838999999914,66.168319999999994],[-65.634170999999924,66.172484999999995],[-65.564162999999951,66.226929000000041],[-65.545546999999942,66.243317000000104],[-65.471114999999941,66.342484000000013],[-65.471663999999919,66.383606000000043],[-65.473617999999931,66.385817999999915],[-65.475829999999974,66.387771999999984],[-65.479172000000005,66.388046000000088],[-65.482773000000009,66.387771999999984],[-65.489715999999987,66.385817999999915],[-65.501677999999913,66.376373000000058],[-65.553878999999938,66.32777400000009],[-65.555831999999953,66.325272000000041],[-65.559433000000013,66.320541000000105],[-65.561660999999901,66.314423000000147],[-65.564437999999996,66.293593999999985],[-65.562774999999988,66.288315000000011],[-65.562774999999988,66.283324999999934],[-65.571670999999981,66.268326000000059],[-65.598891999999921,66.244979999999998],[-65.610549999999876,66.235809000000074],[-65.696944999999971,66.180542000000116],[-65.702498999999989,66.177475000000015],[-65.844161999999926,66.135817999999972],[-65.926940999999999,66.114700000000084],[-65.951950000000011,66.108871000000079],[-65.96833799999996,66.108032000000094],[-66.073623999999995,66.12052900000009],[-66.139174999999966,66.131362999999965],[-66.145003999999972,66.1336060000001],[-66.147232000000031,66.135269000000051],[-66.200835999999981,66.194977000000051],[-66.191100999999946,66.239974999999959],[-66.25111400000003,66.242203000000131],[-66.371384000000035,66.22526600000009],[-66.401947000000007,66.200821000000076],[-66.478333000000021,66.201660000000061],[-66.489715999999873,66.202774000000034],[-66.496947999999975,66.20498699999996],[-66.505004999999926,66.208878000000027],[-66.524445000000014,66.224152000000117],[-66.529998999999918,66.229156000000103],[-66.534164000000033,66.233046999999999],[-66.540832999999964,66.241653000000099],[-66.542770000000019,66.24664300000012],[-66.577498999999989,66.354430999999977],[-66.576110999999969,66.35914600000001],[-66.570007000000032,66.365540000000067],[-66.564162999999951,66.369141000000127],[-66.53694200000001,66.378035999999952],[-66.500564999999995,66.388046000000088],[-66.454726999999991,66.398041000000148],[-66.445267000000001,66.401382000000012],[-66.438323999999909,66.40415999999999],[-66.434433000000013,66.407211000000018],[-66.437209999999936,66.413315000000068],[-66.441939999999988,66.414429000000041],[-66.466109999999901,66.414992999999981],[-66.473617999999988,66.414429000000041],[-66.481383999999991,66.413040000000024],[-66.597778000000005,66.386932000000115],[-66.604996000000028,66.376373000000058],[-66.610001000000011,66.371368000000018],[-66.617492999999911,66.368591000000094],[-66.629990000000021,66.36775200000011],[-66.713897999999972,66.368866000000082],[-66.724166999999909,66.369431000000134],[-66.730834999999956,66.369980000000112],[-66.743057000000022,66.372756999999979],[-66.767775999999913,66.380539000000113],[-66.821670999999924,66.458037999999931],[-66.821670999999924,66.460815000000025],[-66.806380999999931,66.531936999999971],[-66.851943999999946,66.583328000000051],[-66.972228999999913,66.628860000000088],[-66.999724999999955,66.638321000000019],[-67.023055999999997,66.643326000000059],[-67.036117999999931,66.644714000000022],[-67.048889000000031,66.644714000000022],[-67.058884000000035,66.642761000000064],[-67.060546999999985,66.640273999999977],[-67.05610699999994,66.633605999999986],[-67.043334999999956,66.625809000000061],[-67.016662999999937,66.615265000000022],[-66.950561999999877,66.592209000000139],[-66.908339999999953,66.578049000000078],[-66.887511999999901,66.569442999999978],[-66.884170999999867,66.566086000000041],[-66.889450000000011,66.561096000000134],[-67.105559999999969,66.485809000000017],[-67.118331999999953,66.484985000000052],[-67.133620999999948,66.485809000000017],[-67.176940999999943,66.489700000000084],[-67.189712999999927,66.491653000000042],[-67.198607999999979,66.494141000000013],[-67.202224999999999,66.497208000000114],[-67.203887999999949,66.505264000000011],[-67.192215000000033,66.51527400000009],[-67.186110999999983,66.524428999999941],[-67.19027699999998,66.529160000000104],[-67.327224999999999,66.595825000000048],[-67.338332999999977,66.597762999999986],[-67.34584000000001,66.597214000000008],[-67.398620999999878,66.589157000000057],[-67.410003999999958,66.585540999999978],[-67.463622999999984,66.578873000000044],[-67.515015000000005,66.573607999999979],[-67.581116000000009,66.575271999999984],[-67.639724999999999,66.580551000000128],[-67.726943999999889,66.576660000000061],[-67.737212999999997,66.574158000000011],[-67.740828999999962,66.571106000000043],[-67.742767000000015,66.568328999999949],[-67.741942999999935,66.564148000000046],[-67.735001000000011,66.561371000000008],[-67.722777999999892,66.558029000000033],[-67.701110999999855,66.55581699999999],[-67.499999999999943,66.544838000000027],[-67.426102000000014,66.541367000000037],[-67.407776000000013,66.542206000000022],[-67.395843999999954,66.544708000000071],[-67.380553999999904,66.545822000000044],[-67.373885999999914,66.545822000000044],[-67.365829000000019,66.544434000000138],[-67.296386999999925,66.526093000000003],[-67.281676999999945,66.51887499999998],[-67.148620999999991,66.443863000000022],[-67.143889999999999,66.437759000000028],[-67.143615999999952,66.435531999999967],[-67.138061999999991,66.382202000000063],[-67.139724999999999,66.376648000000046],[-67.160827999999981,66.365540000000067],[-67.172501000000011,66.363876000000062],[-67.185271999999941,66.363602000000128],[-67.197768999999994,66.365814],[-67.291671999999892,66.399429000000055],[-67.337509000000011,66.418869000000086],[-67.338988999999913,66.422852000000091],[-67.343063000000029,66.426650999999993],[-67.350280999999939,66.428863999999976],[-67.365829000000019,66.429703000000131],[-67.389724999999942,66.430817000000104],[-67.406386999999995,66.429703000000131],[-67.410552999999993,66.425262000000032],[-67.410003999999958,66.420821999999987],[-67.383330999999998,66.401932000000045],[-67.378326000000015,66.398604999999918],[-67.36860699999994,66.394714000000022],[-67.31361400000003,66.376373000000058],[-67.288604999999961,66.368866000000082],[-67.240828999999962,66.358871000000022],[-67.195830999999998,66.354980000000126],[-67.188598999999954,66.352203000000031],[-67.133057000000008,66.313873000000115],[-67.125274999999988,66.30693100000002],[-67.126099000000011,66.305542000000003],[-67.129165999999941,66.303589000000102],[-67.139449999999954,66.301376000000118],[-67.162216000000001,66.298874000000069],[-67.183884000000035,66.297485000000052],[-67.194153000000028,66.297760000000039],[-67.208618000000001,66.299988000000042],[-67.226944000000003,66.304153000000042],[-67.240828999999962,66.304153000000042],[-67.254181000000017,66.302765000000136],[-67.261672999999973,66.299149000000057],[-67.282226999999978,66.275269000000037],[-67.297501000000011,66.276093000000003],[-67.399170000000026,66.292480000000012],[-67.413895000000025,66.296646000000067],[-67.450287000000003,66.316666000000112],[-67.453063999999927,66.320541000000105],[-67.453339000000028,66.322495000000117],[-67.494719999999973,66.356934000000138],[-67.526108000000022,66.382202000000063],[-67.5625,66.407486000000063],[-67.566665999999998,66.409424000000001],[-67.603057999999976,66.418594000000041],[-67.634170999999981,66.424698000000092],[-67.690826000000015,66.435256999999922],[-67.71305799999999,66.436096000000077],[-67.730285999999978,66.439971999999955],[-67.812499999999943,66.463043000000027],[-67.825286999999946,66.46775800000006],[-67.828612999999905,66.470824999999934],[-67.834732000000031,66.48332199999993],[-67.838607999999908,66.491653000000042],[-67.923614999999927,66.516098000000056],[-67.952498999999989,66.514709000000039],[-67.985824999999863,66.509720000000073],[-67.992767000000015,66.506943000000035],[-67.992767000000015,66.503876000000105],[-67.944716999999855,66.478867000000093],[-67.929169000000002,66.473038000000088],[-67.906113000000005,66.468048000000067],[-67.886948000000018,66.461928999999998],[-67.870269999999948,66.454712000000086],[-67.760558999999944,66.358032000000037],[-67.756392999999946,66.353317000000004],[-67.711120999999935,66.296936000000073],[-67.701401000000033,66.284714000000122],[-67.701674999999966,66.278320000000065],[-67.705565999999976,66.275269000000037],[-67.724716000000001,66.260818000000029],[-67.672225999999966,66.228317000000118],[-67.570556999999951,66.184143000000006],[-67.454453000000001,66.144714000000079],[-67.399993999999992,66.126373000000115],[-67.281386999999938,66.083054000000004],[-67.165008999999998,66.036926000000051],[-67.162506000000008,66.035262999999929],[-67.243522999999925,65.978301999999985],[-67.173049999999876,65.918593999999985],[-67.185821999999973,65.912200999999982],[-67.194442999999978,65.909714000000122],[-67.201674999999966,65.90914900000007],[-67.429992999999911,65.90554800000001],[-67.740554999999858,65.894150000000025],[-67.795273000000009,65.877197000000137],[-67.824172999999973,65.880814000000044],[-67.86471599999993,65.887772000000041],[-67.914444000000003,65.899155000000064],[-67.938599000000011,65.908035000000098],[-68.02694699999995,65.99275200000011],[-68.030563000000029,65.998032000000023],[-68.031386999999995,66.002213000000097],[-68.027221999999995,66.060806000000071],[-68.025832999999977,66.06581100000011],[-68.130828999999949,66.126648000000102],[-68.244720000000029,66.1827550000001],[-68.340285999999992,66.196930000000009],[-68.538054999999929,66.200821000000076],[-68.712783999999942,66.19859300000013],[-68.808334000000002,66.195816000000036],[-68.842498999999975,66.193313999999987],[-68.851394999999968,66.189972000000012],[-68.846389999999928,66.186645999999996],[-68.835281000000009,66.184981999999991],[-68.668610000000001,66.178864000000033],[-68.568343999999968,66.178588999999988],[-68.414718999999991,66.159424000000058],[-68.403610000000015,66.146378000000084],[-68.391113000000018,66.135269000000051],[-68.383330999999941,66.131087999999977],[-68.300277999999878,66.092758000000003],[-68.27806099999998,66.083602999999982],[-68.244155999999975,66.071105999999986],[-68.237777999999935,66.069992000000013],[-68.225554999999986,66.069992000000013],[-68.220551,66.073044000000095],[-68.218886999999995,66.081375000000037],[-68.22193900000002,66.085266000000104],[-68.229720999999984,66.092209000000082],[-68.244155999999975,66.099991000000045],[-68.246947999999975,66.112761999999975],[-68.220000999999968,66.128586000000041],[-68.202498999999932,66.128859999999975],[-68.194716999999969,66.127472000000068],[-68.157501000000025,66.117477000000008],[-68.134170999999981,66.109985000000052],[-68.118880999999988,66.103592000000106],[-68.047226000000023,66.064986999999974],[-68.048889000000031,66.00749200000007],[-68.051940999999943,65.996643000000006],[-68.05360399999995,65.991088999999988],[-68.064437999999939,65.984421000000054],[-68.12388599999997,65.963043000000084],[-68.134170999999981,65.963318000000129],[-68.173614999999984,65.969436999999971],[-68.196945000000028,65.973876999999959],[-68.210555999999997,65.979430999999977],[-68.27806099999998,66.014160000000061],[-68.304442999999878,66.028046000000018],[-68.323897999999929,66.003875999999991],[-68.333618000000001,65.93193100000002],[-68.332229999999925,65.92886400000009],[-68.325835999999981,65.916382000000112],[-68.321670999999981,65.911925999999994],[-68.304748999999958,65.908661000000052],[-68.287780999999995,65.907760999999994],[-68.260009999999909,65.911377000000016],[-68.194153000000028,65.921097000000145],[-68.156113000000005,65.929703000000018],[-68.150283999999999,65.930542000000003],[-68.142775999999969,65.929152999999985],[-68.139998999999989,65.927475000000072],[-68.136123999999995,65.922760000000039],[-68.134734999999921,65.913605000000018],[-68.13290399999994,65.834885000000043],[-68.139175000000023,65.817215000000147],[-68.147231999999974,65.798325000000034],[-68.033324999999934,65.776382000000069],[-68.023894999999868,65.77526899999998],[-68.003066999999987,65.778320000000008],[-67.923614999999927,65.793869000000086],[-67.886123999999882,65.804977000000065],[-67.821120999999948,65.768050999999957],[-67.870269999999948,65.689422999999977],[-67.942489999999964,65.618042000000116],[-67.989165999999898,65.61914100000007],[-68.058884000000035,65.568053999999961],[-68.027221999999995,65.558319000000097],[-68.012512000000015,65.557754999999929],[-68.011672999999973,65.558868000000018],[-67.998610999999983,65.566939999999988],[-67.98721299999994,65.571381000000088],[-67.971114999999998,65.575271999999984],[-67.956664999999987,65.571655000000021],[-67.951675000000023,65.568329000000006],[-67.953063999999927,65.557205000000124],[-67.955001999999979,65.55386400000009],[-68.020844000000011,65.49803200000008],[-68.027785999999935,65.491653000000042],[-68.030288999999982,65.487761999999975],[-68.030563000000029,65.484421000000111],[-68.025832999999977,65.481093999999985],[-68.022507000000019,65.480545000000063],[-68.00778200000002,65.485535000000084],[-67.941939999999931,65.525269000000037],[-67.922500999999954,65.538040000000137],[-67.860274999999945,65.584427000000062],[-67.730285999999978,65.636383000000137],[-67.712219000000005,65.640823000000125],[-67.652495999999985,65.651382000000012],[-67.466109999999958,65.674149000000114],[-67.428604000000007,65.676650999999993],[-67.402495999999928,65.677475000000129],[-67.396118000000001,65.676650999999993],[-67.382216999999912,65.673874000000069],[-67.328063999999983,65.662491000000045],[-67.319457999999941,65.659423999999944],[-67.280562999999972,65.642487000000131],[-67.275283999999999,65.637772000000098],[-67.256667999999991,65.615265000000022],[-67.25389100000001,65.611649],[-67.251677999999856,65.606934000000138],[-67.253341999999975,65.601654000000053],[-67.256667999999991,65.599152000000004],[-67.272781000000009,65.595261000000107],[-67.320557000000008,65.586929000000112],[-67.333327999999938,65.582489000000066],[-67.336120999999935,65.580826000000002],[-67.456664999999987,65.501937999999996],[-67.458892999999932,65.49803200000008],[-67.451400999999919,65.493590999999981],[-67.347504000000015,65.458602999999982],[-67.221389999999985,65.456375000000037],[-67.189986999999974,65.458037999999988],[-67.180832000000009,65.459152000000131],[-67.169158999999979,65.461380000000077],[-67.155563000000029,65.466934000000094],[-67.142226999999991,65.469147000000078],[-67.081679999999949,65.462494000000049],[-67.065552000000025,65.458602999999982],[-67.058608999999933,65.453597999999943],[-67.058043999999995,65.451385000000016],[-67.058334000000002,65.426651000000049],[-67.062774999999931,65.417480000000069],[-67.078339000000028,65.392211999999972],[-67.111114999999984,65.364700000000028],[-67.118056999999965,65.361922999999933],[-67.12388599999997,65.360535000000027],[-67.134445000000028,65.359711000000061],[-67.218063000000029,65.358597000000088],[-67.255568999999923,65.360535000000027],[-67.316101000000003,65.358597000000088],[-67.400833000000034,65.350266000000033],[-67.408889999999985,65.348328000000095],[-67.413619999999923,65.345825000000104],[-67.417770000000019,65.342209000000025],[-67.416107000000011,65.339157000000114],[-67.40943900000002,65.333328000000108],[-67.399993999999992,65.329712000000029],[-67.391113000000018,65.327209000000096],[-67.33666999999997,65.31721500000009],[-67.326674999999966,65.316940000000045],[-67.319167999999934,65.318054000000018],[-67.315826000000015,65.320541000000105],[-67.306655999999862,65.330276000000026],[-67.306106999999997,65.333602999999925],[-67.306945999999982,65.338042999999971],[-67.303878999999938,65.34248400000007],[-67.297501000000011,65.347487999999998],[-67.291381999999942,65.349716000000001],[-67.283614999999998,65.351089000000059],[-67.269164999999987,65.352203000000031],[-67.125548999999978,65.311919999999986],[-67.119995000000017,65.309982000000048],[-67.077788999999996,65.250275000000101],[-67.063889000000017,65.218322999999941],[-66.93472300000002,65.233871000000136],[-66.933060000000012,65.233597000000032],[-66.928878999999938,65.229705999999965],[-66.948883000000023,65.125259000000142],[-66.950835999999981,65.11692800000003],[-66.953339000000028,65.113036999999963],[-66.959166999999979,65.106644000000017],[-66.967498999999975,65.103866999999923],[-67.025283999999886,65.10832199999993],[-67.044158999999922,65.107483000000002],[-67.055557000000022,65.105255000000056],[-67.066665999999998,65.100815000000011],[-67.072234999999978,65.097214000000122],[-67.106110000000001,65.064147999999989],[-67.108611999999994,65.060256999999922],[-67.107773000000009,65.058868000000132],[-67.096114999999998,65.056091000000038],[-67.085830999999985,65.056366000000082],[-67.075012000000015,65.058029000000147],[-66.890563999999983,65.103317000000061],[-66.835555999999997,65.137206999999989],[-66.756393000000003,65.177200000000028],[-66.74749799999995,65.180542000000003],[-66.730285999999921,65.181366000000139],[-66.726105000000018,65.180267000000129],[-66.725554999999986,65.178040000000067],[-66.753341999999975,65.113312000000008],[-66.801666000000012,65.060806000000071],[-66.767501999999979,65.024429000000112],[-66.743057000000022,64.963042999999971],[-66.726944000000003,64.913879000000122],[-66.727492999999924,64.90525800000006],[-66.728057999999976,64.901657],[-66.733063000000016,64.888321000000019],[-66.739165999999955,64.859985000000108],[-66.735000999999954,64.824707000000103],[-66.734160999999915,64.820541000000048],[-66.698043999999868,64.761931999999945],[-66.694716999999912,64.761383000000023],[-66.687774999999988,64.762206999999989],[-66.654175000000009,64.771103000000096],[-66.641113000000018,64.775818000000129],[-66.632492000000013,64.781372000000147],[-66.638061999999991,64.785538000000031],[-66.676101999999901,64.876082999999994],[-66.696944999999971,65.03276100000005],[-66.694152999999972,65.037201000000096],[-66.688660000000027,65.038772999999935],[-66.673324999999977,65.038589000000002],[-66.660827999999981,65.037201000000096],[-66.618056999999965,65.030273000000079],[-66.535278000000005,65.010817999999915],[-66.530563000000029,65.00749200000007],[-66.49610899999999,64.983047000000056],[-66.488891999999908,64.957489000000123],[-66.496658000000025,64.945526000000086],[-66.495543999999995,64.938873000000115],[-66.491378999999995,64.934982000000048],[-66.486664000000019,64.932205000000124],[-66.478606999999954,64.929153000000042],[-66.388610999999969,64.913315000000011],[-66.379165999999998,64.912201000000039],[-66.368057000000022,64.913605000000018],[-66.363892000000021,64.917480000000012],[-66.361938000000009,64.923599000000024],[-66.36361699999992,64.928589000000102],[-66.334732000000031,64.934708000000114],[-66.177779999999927,64.880264000000068],[-66.148346000000004,64.868866000000025],[-66.177215999999987,64.796371000000022],[-66.18472300000002,64.784424000000058],[-66.191939999999931,64.77887000000004],[-66.199431999999945,64.774993999999992],[-66.203339000000028,64.77388000000002],[-66.213333000000034,64.75610400000005],[-66.219161999999983,64.726089000000115],[-66.218886999999938,64.69081100000011],[-66.212218999999948,64.685531999999967],[-66.18472300000002,64.681656000000032],[-66.166945999999939,64.681091000000038],[-66.161117999999931,64.682479999999998],[-66.15834000000001,64.68414300000012],[-66.151947000000007,64.689147999999989],[-66.147781000000009,64.695815999999979],[-66.147232000000031,64.70138500000013],[-66.147232000000031,64.704162999999937],[-66.150283999999942,64.71748400000007],[-66.14973399999991,64.733597000000145],[-66.145554000000004,64.740265000000136],[-66.136397999999986,64.754166000000112],[-66.116942999999992,64.781372000000147],[-66.091675000000009,64.809708000000057],[-66.080841000000021,64.819153000000085],[-66.058333999999945,64.832764000000054],[-66.037215999999944,64.844986000000063],[-66.020843999999954,64.849716000000058],[-66.011397999999986,64.848327999999981],[-66.011123999999995,64.846375000000023],[-66.008621000000005,64.78915400000011],[-66.009170999999867,64.778046000000074],[-66.012511999999901,64.699417000000039],[-65.899993999999992,64.673309000000074],[-65.846664000000033,64.676085999999998],[-65.852218999999991,64.680267000000072],[-65.861389000000031,64.689147999999989],[-65.889449999999954,64.719711000000132],[-65.899170000000026,64.73275799999999],[-65.958617999999944,64.877761999999962],[-65.95666499999993,64.886108000000092],[-65.953338999999971,64.888321000000019],[-65.941939999999988,64.890548999999965],[-65.931380999999931,64.89137299999993],[-65.92471299999994,64.89137299999993],[-65.838608000000022,64.882476999999994],[-65.727218999999934,64.843597000000045],[-65.717772999999966,64.84027100000003],[-65.674438000000009,64.818054000000132],[-65.664168999999958,64.80831900000004],[-65.661666999999966,64.804428000000144],[-65.660278000000005,64.799149],[-65.665008999999998,64.796936000000017],[-65.683318999999926,64.792206000000022],[-65.698333999999988,64.784714000000065],[-65.720275999999956,64.766663000000108],[-65.736114999999984,64.750275000000045],[-65.742492999999911,64.741089000000102],[-65.742766999999958,64.735260000000039],[-65.736938000000009,64.726089000000115],[-65.726944000000003,64.711380000000077],[-65.710830999999985,64.693039000000056],[-65.704726999999934,64.687485000000095],[-65.703063999999927,64.692200000000128],[-65.709441999999967,64.712769000000037],[-65.71055599999994,64.718596999999988],[-65.710007000000019,64.732208000000128],[-65.708618000000001,64.736099000000024],[-65.684157999999968,64.761107999999979],[-65.676102000000014,64.765548999999908],[-65.665282999999931,64.771378000000141],[-65.648055999999997,64.774993999999992],[-65.642776000000026,64.774993999999992],[-65.627212999999927,64.771103000000096],[-65.598891999999921,64.756377999999984],[-65.56639100000001,64.737488000000042],[-65.561110999999869,64.733047000000113],[-65.557495000000017,64.728317000000061],[-65.555831999999953,64.723312000000021],[-65.556380999999931,64.717758000000003],[-65.572234999999921,64.664153999999996],[-65.576675000000023,64.652481000000023],[-65.583327999999938,64.642761000000121],[-65.586394999999925,64.640274000000034],[-65.654723999999987,64.602478000000019],[-65.662505999999951,64.598328000000038],[-65.714172000000019,64.570541000000048],[-65.730835000000013,64.517761000000007],[-65.732223999999974,64.508040999999935],[-65.725554999999929,64.498031999999967],[-65.721664000000033,64.49414100000007],[-65.708344000000011,64.486649000000114],[-65.695540999999992,64.485809000000074],[-65.665008999999998,64.492203000000131],[-65.643340999999964,64.494979999999998],[-65.573333999999988,64.498596000000077],[-65.524718999999948,64.49971000000005],[-65.518065999999976,64.49971000000005],[-65.506392999999946,64.497482000000105],[-65.504181000000017,64.495818999999983],[-65.50556899999998,64.468872000000033],[-65.396117999999944,64.52137799999997],[-65.384170999999981,64.524155000000064],[-65.365828999999906,64.526931999999988],[-65.210555999999883,64.536102000000028],[-65.203888000000006,64.533874999999966],[-65.144454999999994,64.51138300000008],[-65.085006999999962,64.479705999999965],[-65.077788999999939,64.475815000000068],[-65.075835999999981,64.471375000000023],[-65.074172999999973,64.461929000000055],[-65.071670999999981,64.440810999999997],[-65.071945000000028,64.43081699999999],[-65.073623999999938,64.426086000000055],[-65.194991999999957,64.310257000000092],[-65.202498999999989,64.306366000000025],[-65.210830999999985,64.303863999999976],[-65.284728999999913,64.291656000000103],[-65.295272999999895,64.290267999999969],[-65.309433000000013,64.29136699999998],[-65.343337999999903,64.294983000000002],[-65.377212999999983,64.303314000000114],[-65.386397999999929,64.30664100000007],[-65.408889999999928,64.312485000000038],[-65.451674999999966,64.319992000000013],[-65.498885999999857,64.322769000000108],[-65.525008999999898,64.323318000000029],[-65.554168999999945,64.323318000000029],[-65.563323999999909,64.322494999999947],[-65.65583799999996,64.308868000000075],[-65.661666999999966,64.307479999999998],[-65.658339999999953,64.302765000000136],[-65.654449,64.300812000000008],[-65.61860699999994,64.293045000000063],[-65.601943999999946,64.293594000000041],[-65.591948999999943,64.296096999999975],[-65.572234999999921,64.298599000000081],[-65.505844000000025,64.302475000000129],[-65.465835999999967,64.30304000000001],[-65.434158000000025,64.299149000000114],[-65.422774999999945,64.296371000000136],[-65.250564999999995,64.208328000000051],[-65.24610899999999,64.204987000000017],[-65.242766999999958,64.200271999999984],[-65.265015000000005,64.17886400000009],[-65.16194200000001,64.138046000000145],[-65.049438000000009,64.072220000000016],[-65.053878999999938,64.067764000000068],[-65.060546999999929,64.064986999999974],[-65.093886999999995,64.052199999999971],[-65.103881999999999,64.049149],[-65.136672999999917,64.041367000000037],[-65.158339999999953,64.038315000000068],[-65.196105999999929,64.040268000000026],[-65.206115999999952,64.040268000000026],[-65.21665999999999,64.038589000000002],[-65.221389999999928,64.03637700000013],[-65.225554999999929,64.032761000000107],[-65.221938999999963,64.028594999999996],[-65.214172000000019,64.025543000000084],[-65.189986999999917,64.020264000000111],[-65.096663999999976,64.009155000000021],[-65.08805799999999,64.009430000000066],[-64.949158000000011,64.014999000000046],[-64.800551999999982,64.02777100000003],[-64.68638599999997,64.039154000000053],[-64.676940999999999,64.036652000000004],[-64.668059999999969,64.033051000000114],[-64.661117999999988,64.028594999999996],[-64.630554000000018,63.978324999999984],[-64.631377999999984,63.974709000000132],[-64.632766999999944,63.972763000000043],[-64.638335999999981,63.96915400000006],[-64.64805599999994,63.966934000000037],[-64.658889999999985,63.965546000000131],[-64.669998000000021,63.966385000000059],[-64.689437999999996,63.966103000000032],[-64.700561999999991,63.963882000000126],[-64.817504999999983,63.923607000000004],[-64.875274999999988,63.901100000000099],[-64.888901000000033,63.894996999999989],[-64.974715999999944,63.851936000000137],[-64.985000999999954,63.829163000000051],[-64.987502999999947,63.823051000000078],[-64.984160999999915,63.813881000000038],[-64.954177999999956,63.776382000000126],[-64.94888299999991,63.774437000000091],[-64.77806099999998,63.747772000000055],[-64.68360899999999,63.746383999999978],[-64.584441999999854,63.704711999999915],[-64.559432999999956,63.694153000000085],[-64.540282999999988,63.684433000000013],[-64.527495999999985,63.676941000000056],[-64.522507000000019,63.672768000000076],[-64.508347000000015,63.650826000000052],[-64.506667999999991,63.636940000000038],[-64.507506999999976,63.630821000000026],[-64.515015000000005,63.620270000000119],[-64.52194199999991,63.611938000000123],[-64.536666999999966,63.581108000000086],[-64.529449,63.534996000000035],[-64.522507000000019,63.514717000000076],[-64.50167799999997,63.443878000000097],[-64.49888599999997,63.429161000000079],[-64.495543999999938,63.327773999999977],[-64.510833999999988,63.307770000000062],[-64.588897999999858,63.321938000000102],[-64.608337000000006,63.32388300000008],[-64.61999499999996,63.323326000000009],[-64.62222300000002,63.322219999999959],[-64.624709999999993,63.318054000000075],[-64.61999499999996,63.313324000000023],[-64.614715999999987,63.30971500000004],[-64.587783999999942,63.299721000000034],[-64.577224999999999,63.296660999999972],[-64.566390999999953,63.293884000000048],[-64.525557999999933,63.290550000000053],[-64.500838999999985,63.289992999999981],[-64.488892000000021,63.288330000000087],[-64.482773000000009,63.285827999999981],[-64.481948999999872,63.282211000000018],[-64.531112999999948,63.249718000000087],[-64.538054999999929,63.248329000000069],[-64.658339999999953,63.249161000000015],[-64.767501999999922,63.32388300000008],[-64.826950000000011,63.45249199999995],[-64.850554999999929,63.510826000000009],[-64.942490000000021,63.632210000000043],[-64.955001999999922,63.640274000000034],[-64.973052999999993,63.646942000000024],[-64.99499499999996,63.652488999999946],[-65.046386999999925,63.662209000000075],[-65.06361400000003,63.668053000000043],[-65.070847000000015,63.671936000000017],[-65.166945999999996,63.747772000000055],[-65.166397000000018,63.773323000000119],[-65.153335999999911,63.771102999999925],[-65.150833000000034,63.772217000000126],[-65.154174999999952,63.776939000000027],[-65.15943900000002,63.781105000000082],[-65.204726999999934,63.80332199999998],[-65.293609999999944,63.812767000000065],[-65.298614999999927,63.81249200000002],[-65.301392000000021,63.81082200000003],[-65.303878999999995,63.806938000000002],[-65.300277999999935,63.799995000000024],[-65.281677000000002,63.788887000000045],[-65.215560999999923,63.75471500000009],[-65.15566999999993,63.725326999999993],[-65.135284000000013,63.715271000000143],[-65.053054999999972,63.638046000000088],[-65.039169000000015,63.574165000000107],[-65.069732999999985,63.568886000000134],[-65.085830999999928,63.563881000000094],[-65.091948999999943,63.559714999999983],[-65.099990999999932,63.547217999999987],[-65.102218999999991,63.541664000000026],[-65.102218999999991,63.536658999999929],[-65.099441999999897,63.526381999999955],[-65.026947000000007,63.399162000000103],[-64.965011999999945,63.369438000000059],[-64.952498999999875,63.362212999999997],[-64.942490000000021,63.353049999999996],[-64.909163999999976,63.280548000000124],[-64.901108000000022,63.237495000000024],[-64.908614999999941,63.235550000000046],[-64.921386999999925,63.235825000000034],[-65.046386999999925,63.248329000000069],[-65.068893000000003,63.252494999999954],[-65.082503999999972,63.260826000000066],[-65.103332999999964,63.27777100000003],[-65.114166000000012,63.284996000000092],[-65.123321999999973,63.288330000000087],[-65.136123999999995,63.290833000000021],[-65.141953000000001,63.28943600000008],[-65.148620999999991,63.286110000000065],[-65.146956999999873,63.281380000000013],[-65.083327999999938,63.20388000000014],[-65.057770000000005,63.174712999999997],[-65.054992999999911,63.172217999999987],[-65.046111999999994,63.171104000000014],[-65.016524999999945,63.171515999999997],[-64.998610999999926,63.176102000000014],[-64.944716999999912,63.183327000000077],[-64.920272999999952,63.184158000000082],[-64.911391999999921,63.180824000000086],[-64.811660999999958,63.137497000000053],[-64.797500999999954,63.130547000000035],[-64.783889999999985,63.12221500000004],[-64.755004999999926,63.099158999999986],[-64.753341999999918,63.096657000000107],[-64.762511999999958,63.0472180000001],[-64.771392999999989,62.98333000000008],[-64.703338999999971,62.953323000000069],[-64.696105999999872,62.952217000000076],[-64.676392000000021,62.941658000000018],[-64.645553999999947,62.921660999999972],[-64.634444999999971,62.912491000000102],[-64.627212999999983,62.90415999999999],[-64.626937999999939,62.899994000000106],[-64.629989999999964,62.897491000000116],[-64.638335999999981,62.894440000000088],[-64.733611999999994,62.878875999999991],[-64.769454999999937,62.862213000000111],[-64.855269999999962,62.865273000000002],[-64.881942999999865,62.867493000000024],[-64.903885000000002,62.872490000000084],[-64.923324999999977,62.878875999999991],[-65.005004999999983,62.90776800000009],[-65.162215999999944,62.943047000000035],[-65.225280999999995,62.954993999999942],[-65.236114999999984,62.957771000000037],[-65.243056999999965,62.961662000000103],[-65.248336999999935,62.965828000000045],[-65.25140399999998,62.970543000000077],[-65.255004999999926,62.979713000000118],[-65.254729999999995,62.985268000000019],[-65.26916499999993,62.959991000000059],[-65.194442999999922,62.878875999999991],[-65.190276999999924,62.875267000000008],[-65.175002999999947,62.862495000000024],[-65.153884999999946,62.84693900000002],[-65.14805599999994,62.843322999999998],[-65.129165999999998,62.83638000000002],[-65.115279999999984,62.828880000000083],[-64.984726000000023,62.714157],[-64.978332999999964,62.704711999999972],[-64.94888299999991,62.648604999999975],[-64.964721999999995,62.6336060000001],[-64.980834999999956,62.623604000000114],[-65.062774999999988,62.587494000000049],[-65.071120999999948,62.584435000000042],[-65.087219000000005,62.57888000000014],[-65.114715999999987,62.571663000000058],[-65.145003999999915,62.565826000000072],[-65.187499999999943,62.56221000000005],[-65.19776899999988,62.563048999999978],[-65.205001999999979,62.566101000000117],[-65.212219000000005,62.569992000000013],[-65.22084000000001,62.578331000000048],[-65.288605000000018,62.659987999999998],[-65.294997999999964,62.669441000000006],[-65.296660999999972,62.674163999999962],[-65.290558000000033,62.678878999999995],[-65.273894999999982,62.685265000000129],[-65.267776000000026,62.690269000000058],[-65.266952999999944,62.694434999999999],[-65.279175000000009,62.696654999999964],[-65.321121000000005,62.694434999999999],[-65.327498999999989,62.691658000000075],[-65.329726999999934,62.685546999999985],[-65.328063999999983,62.666100000000142],[-65.337218999999948,62.666664000000083],[-65.346953999999869,62.675827000000083],[-65.353881999999942,62.684433000000013],[-65.356658999999922,62.69499200000007],[-65.339721999999938,62.837493999999992],[-65.391952999999944,62.843605000000025],[-65.436661000000015,62.819442999999978],[-65.566665999999941,62.811661000000015],[-65.579178000000013,62.811934999999949],[-65.601943999999946,62.817772000000105],[-65.60943599999996,62.820831000000055],[-65.61610399999995,62.824715000000083],[-65.746947999999861,62.917770000000075],[-65.909438999999963,62.925827000000027],[-65.933318999999983,62.955826000000059],[-65.910278000000005,62.967765999999983],[-65.839721999999995,63.020828000000051],[-65.834731999999974,63.026382000000069],[-65.833327999999995,63.03138000000007],[-65.838333000000034,63.033333000000027],[-65.84973100000002,63.032767999999976],[-65.866394000000014,63.028602999999976],[-65.926101999999958,63.008331000000112],[-65.949722000000008,62.997772000000055],[-65.955001999999979,62.994155999999975],[-65.955565999999862,62.990829000000076],[-65.946380999999974,62.983047000000113],[-65.945830999999941,62.978874000000133],[-65.950561999999991,62.975822000000051],[-65.960830999999928,62.974433999999974],[-65.973891999999864,62.973877000000073],[-65.987212999999997,62.974709000000132],[-66.014450000000011,62.978874000000133],[-66.031386999999938,62.984717999999987],[-66.039718999999991,62.988602000000014],[-66.052215999999987,62.996658000000082],[-66.14973399999991,63.059990000000084],[-66.155563000000029,63.081383000000017],[-66.162780999999939,63.089989000000116],[-66.174438000000009,63.096382000000062],[-66.266952999999944,63.130820999999969],[-66.275832999999977,63.133881000000031],[-66.282501000000025,63.133330999999998],[-66.287780999999995,63.12971500000009],[-66.291945999999996,63.125267000000122],[-66.293335000000013,63.120543999999995],[-66.291381999999999,63.116104000000121],[-66.206954999999994,63.040833000000077],[-66.196654999999964,63.031661999999983],[-66.182769999999891,63.023604999999975],[-66.121658000000025,63.00110600000005],[-66.105559999999969,62.993880999999988],[-66.098343,62.990273000000059],[-66.091385000000002,62.983604000000014],[-66.089721999999881,62.978600000000029],[-66.097777999999948,62.952492000000063],[-66.103058000000033,62.946655000000135],[-66.107772999999952,62.943878000000041],[-66.11610399999995,62.940544000000045],[-66.135833999999932,62.936652999999978],[-66.147232000000031,62.936104],[-66.159163999999976,62.936652999999978],[-66.168883999999991,62.938881000000094],[-66.192215000000033,62.954437000000041],[-66.220839999999953,62.969437000000028],[-66.284728999999913,62.990273000000059],[-66.293883999999878,62.992767000000015],[-66.345000999999968,62.999161000000015],[-66.351668999999958,62.998603999999943],[-66.366104000000007,62.992493000000081],[-66.37860099999989,62.992493000000081],[-66.392775999999969,62.994995000000131],[-66.408889999999928,63.001938000000109],[-66.444442999999865,63.020546000000024],[-66.46444699999995,63.032211000000075],[-66.518340999999964,63.065269000000058],[-66.525283999999999,63.074715000000026],[-66.551940999999999,63.17943600000001],[-66.626388999999961,63.252220000000136],[-66.646666999999979,63.326384999999959],[-66.638335999999981,63.340271000000143],[-66.637512000000015,63.349998000000085],[-66.636948000000018,63.35833000000008],[-66.637786999999946,63.362770000000069],[-66.642776000000026,63.372489999999971],[-66.650832999999977,63.374992000000077],[-66.657500999999968,63.374435000000005],[-66.664169000000015,63.371658000000082],[-66.735549999999989,63.299438000000066],[-66.738602000000014,63.294159000000093],[-66.740828999999962,63.288048000000003],[-66.740279999999927,63.283607000000075],[-66.731110000000001,63.274712000000022],[-66.720550999999944,63.266388000000006],[-66.685546999999985,63.248046999999985],[-66.671386999999868,63.242767000000129],[-66.646956999999929,63.239159000000029],[-66.639174999999966,63.236107000000118],[-66.607498000000021,63.21027400000014],[-66.602492999999981,63.205269000000101],[-66.600280999999995,63.200829000000113],[-66.558334000000002,63.087212000000022],[-66.537780999999882,62.998047000000042],[-66.540282999999931,62.994155999999975],[-66.546660999999915,62.991379000000109],[-66.557220000000029,62.99193600000001],[-66.673049999999989,63.023048000000074],[-66.682220000000029,63.026382000000069],[-66.763061999999934,63.083054000000061],[-66.768065999999919,63.087768999999923],[-66.773894999999925,63.096382000000062],[-66.774444999999957,63.100548000000003],[-66.778885000000002,63.143607999999972],[-66.789169000000015,63.21138000000002],[-66.806655999999975,63.272491000000116],[-66.807495000000017,63.273323000000062],[-66.811661000000015,63.274437000000034],[-66.82028200000002,63.273323000000062],[-66.829177999999956,63.271660000000111],[-66.837783999999942,63.267769000000044],[-66.846953999999926,63.25750000000005],[-66.849166999999966,63.251389000000131],[-66.849166999999966,63.245544000000052],[-66.846114999999941,63.229713000000061],[-66.844727000000034,63.22665400000011],[-66.837219000000005,63.21804800000001],[-66.828338999999971,63.209159999999997],[-66.819457999999941,63.200272000000041],[-66.813888999999961,63.196098000000006],[-66.803878999999938,63.186378000000104],[-66.801391999999964,63.182495000000131],[-66.799727999999959,63.177490000000091],[-66.799437999999952,63.172492999999974],[-66.801666000000012,63.166382000000112],[-66.806655999999975,63.160545000000127],[-66.818343999999968,63.154159999999933],[-66.835555999999997,63.149161999999933],[-66.844161999999926,63.147217000000126],[-66.855270000000019,63.147217000000126],[-66.868332000000009,63.148880000000077],[-66.87777699999998,63.151931999999988],[-67.018340999999964,63.238883999999985],[-67.023894999999982,63.243050000000096],[-67.025008999999955,63.246658000000025],[-67.024445000000014,63.250274999999988],[-67.023055999999997,63.252777000000037],[-67.006393000000003,63.262215000000083],[-66.971114999999998,63.389717000000019],[-66.972777999999948,63.394997000000103],[-66.977782999999988,63.399719000000005],[-66.988891999999964,63.402489000000003],[-67.011123999999938,63.399993999999992],[-67.017226999999991,63.397217000000069],[-67.040832999999964,63.33554799999996],[-67.039168999999958,63.330551000000071],[-67.035827999999924,63.325272000000098],[-67.025008999999955,63.311104000000057],[-67.016113000000018,63.296660999999972],[-67.014174999999966,63.286385000000053],[-67.017226999999991,63.281105000000025],[-67.033324999999934,63.275268999999923],[-67.051940999999943,63.273323000000062],[-67.171111999999994,63.273880000000133],[-67.179717999999923,63.275551000000007],[-67.203887999999949,63.28527100000008],[-67.431670999999994,63.412765999999976],[-67.499999999999943,63.442764000000125],[-67.621658000000025,63.548881999999992],[-67.683318999999983,63.619438000000002],[-67.838897999999915,63.729713000000118],[-67.897506999999962,63.753052000000139],[-67.914718999999991,63.759438000000046],[-67.92332499999992,63.761108000000036],[-67.926102000000014,63.759163000000058],[-67.925277999999935,63.75471500000009],[-67.921386999999982,63.744438000000059],[-67.918059999999855,63.739159000000086],[-67.820006999999976,63.596382000000006],[-67.710555999999997,63.458603000000039],[-67.683318999999983,63.431664000000069],[-67.675003000000004,63.4180530000001],[-67.67193599999996,63.412490999999989],[-67.667769999999962,63.403046000000074],[-67.666396999999961,63.394439999999975],[-67.666655999999989,63.388046000000145],[-67.678329000000019,63.373047000000099],[-67.685271999999998,63.368880999999988],[-67.694442999999978,63.366385999999977],[-67.716659999999933,63.363884000000098],[-67.724166999999966,63.364159000000086],[-67.737212999999997,63.366385999999977],[-67.746384000000035,63.369438000000059],[-67.820557000000008,63.400269000000037],[-67.827224999999999,63.405266000000097],[-67.837509000000011,63.424164000000019],[-67.854445999999996,63.452774000000034],[-67.858046999999999,63.457497000000046],[-67.871658000000025,63.464714000000129],[-67.950835999999981,63.506660000000124],[-68.025283999999942,63.540832999999964],[-68.033324999999934,63.543883999999991],[-68.041381999999999,63.546104000000014],[-68.053054999999915,63.545273000000009],[-68.061661000000015,63.54332700000009],[-68.075561999999991,63.544159000000036],[-68.365829000000019,63.64527099999998],[-68.388610999999855,63.655548000000124],[-68.400283999999942,63.663879000000009],[-68.405563000000029,63.668602000000021],[-68.428328999999962,63.696381000000031],[-68.542769999999962,63.732490999999925],[-68.645843999999897,63.747490000000028],[-68.713622999999984,63.742493000000081],[-68.709732000000031,63.738045000000113],[-68.711394999999925,63.734717999999987],[-68.716109999999958,63.732207999999957],[-68.723617999999988,63.729713000000118],[-68.795546999999999,63.728600000000085],[-68.804442999999935,63.730270000000019],[-68.876099000000011,63.744713000000104],[-68.915833000000021,63.757216999999969],[-68.924437999999952,63.758888000000013],[-68.962508999999955,63.759163000000058],[-68.994720000000029,63.755554000000018],[-68.996947999999918,63.75360900000004],[-68.998336999999992,63.745270000000005],[-68.995270000000005,63.741379000000109],[-68.989715999999987,63.737495000000081],[-68.977782999999931,63.729713000000118],[-68.933059999999955,63.711936999999978],[-68.919448999999986,63.704993999999999],[-68.824722000000008,63.643883000000073],[-68.813048999999978,63.635551000000078],[-68.809433000000013,63.630821000000026],[-68.807220000000029,63.625824000000136],[-68.809433000000013,63.621658000000025],[-68.793334999999956,63.589157000000114],[-68.766113000000018,63.556656000000032],[-68.754729999999995,63.548607000000004],[-68.717772999999909,63.528603000000089],[-68.557769999999948,63.45249199999995],[-68.495833999999945,63.421378999999945],[-68.35943599999996,63.344710999999961],[-68.288605000000018,63.298332000000016],[-68.270553999999947,63.284996000000092],[-68.206389999999999,63.227211000000011],[-68.202498999999932,63.216933999999981],[-68.206389999999999,63.212493999999992],[-68.18638599999997,63.188324000000136],[-68.156113000000005,63.158324999999934],[-68.146118000000001,63.150269000000037],[-68.139175000000023,63.148605000000032],[-68.128601000000003,63.148048000000131],[-68.115554999999972,63.15248900000006],[-68.082779000000016,63.163605000000018],[-68.063888999999961,63.163605000000018],[-67.952224999999942,63.145546000000081],[-67.926392000000021,63.141106000000036],[-67.917495999999971,63.137214999999969],[-67.916655999999932,63.133049000000085],[-67.92332499999992,63.129433000000063],[-67.912780999999939,63.083327999999995],[-67.646117999999944,63.100272999999959],[-67.632767000000001,63.09887700000013],[-67.610275000000001,63.094154000000117],[-67.604996000000028,63.089989000000116],[-67.599990999999989,63.084434999999928],[-67.599990999999989,63.078880000000026],[-67.601944000000003,63.073326000000066],[-67.61500499999994,63.063605999999993],[-67.624160999999958,63.061104000000057],[-67.636123999999995,63.059715000000097],[-67.682219999999916,63.057770000000119],[-67.689712999999927,63.058044000000052],[-67.709166999999923,63.056655999999919],[-67.719451999999933,63.054993000000024],[-67.727492999999924,63.051659000000029],[-67.77305599999994,63.025826000000052],[-67.772507000000019,62.962212000000136],[-67.769729999999981,62.958327999999938],[-67.763625999999988,62.955551000000071],[-67.748046999999985,62.953049000000135],[-67.738602000000014,62.953323000000069],[-67.728058000000033,62.954993999999942],[-67.721831999999949,62.96265800000009],[-67.718841999999995,62.964493000000061],[-67.718169999999986,62.967327000000068],[-67.719329999999957,62.970490000000098],[-67.72444200000001,62.984161000000086],[-67.729995999999971,62.98832700000014],[-67.736938000000009,62.995544000000109],[-67.733886999999982,63.000832000000116],[-67.698043999999925,63.020828000000051],[-67.686934999999949,63.026657000000114],[-67.659438999999963,63.034164000000033],[-67.56527699999998,63.049438000000123],[-67.553054999999915,63.048607000000118],[-67.529998999999975,63.03694200000001],[-67.510559000000001,63.024712000000079],[-67.499999999999943,63.015549000000078],[-67.499724999999955,63.007773999999984],[-67.509170999999924,63.001938000000109],[-67.531386999999995,62.995269999999948],[-67.550551999999982,62.99193600000001],[-67.573333999999988,62.990273000000059],[-67.593613000000005,62.987495000000081],[-67.630828999999949,62.976379000000122],[-67.651397999999915,62.967490999999939],[-67.670997999999997,62.944323999999995],[-67.671829000000002,62.941322000000127],[-67.672667999999987,62.937996000000055],[-67.672775000000001,62.923324999999977],[-67.665833000000021,62.918884000000048],[-67.659164000000033,62.916664000000026],[-67.654921999999999,62.917282],[-67.648894999999925,62.921104000000071],[-67.646666999999979,62.925270000000125],[-67.638335999999981,62.931938000000116],[-67.572509999999909,62.963882000000126],[-67.566956000000005,62.965546000000131],[-67.470275999999956,62.985268000000019],[-67.462783999999999,62.985268000000019],[-67.39805599999994,62.967209000000082],[-67.194716999999912,62.870270000000062],[-67.048339999999996,62.771378000000141],[-67.012221999999952,62.73443600000013],[-66.95777899999996,62.681106999999997],[-66.913329999999917,62.669991000000039],[-66.824722000000008,62.679161000000079],[-66.813323999999852,62.679992999999968],[-66.741104000000007,62.673882000000106],[-66.733063000000016,62.671661000000029],[-66.726944000000003,62.668602000000021],[-66.728881999999942,62.666100000000142],[-66.735275000000001,62.662490999999932],[-66.744445999999925,62.660271000000137],[-66.752791999999999,62.656936999999971],[-66.760559000000001,62.653602999999976],[-66.768065999999919,62.648879999999963],[-66.773055999999883,62.643050999999957],[-66.775009000000011,62.636940000000095],[-66.773055999999883,62.632492000000127],[-66.606948999999986,62.604996000000085],[-66.425002999999947,62.445267000000115],[-66.359436000000017,62.447487000000137],[-66.351668999999958,62.444992000000127],[-66.349166999999966,62.441376000000048],[-66.327498999999932,62.384438000000046],[-66.330565999999976,62.379158000000018],[-66.337783999999886,62.374992000000077],[-66.426391999999964,62.349433999999974],[-66.435546999999929,62.349158999999986],[-66.458617999999944,62.35193600000008],[-66.469161999999983,62.35193600000008],[-66.475829999999974,62.348602000000085],[-66.478881999999999,62.343323000000112],[-66.478881999999999,62.338325999999995],[-66.476943999999946,62.335823000000005],[-66.470000999999968,62.332214000000022],[-66.374709999999993,62.286110000000065],[-66.329177999999956,62.267494000000056],[-66.318619000000012,62.264717000000132],[-66.355834999999956,62.307770000000062],[-66.359160999999972,62.312492000000134],[-66.363892000000021,62.323051000000021],[-66.361389000000031,62.326942000000088],[-66.355559999999855,62.331940000000088],[-66.351944000000003,62.334991000000116],[-66.332779000000016,62.341934000000094],[-66.3125,62.344993999999986],[-66.294158999999979,62.344711000000018],[-66.285552999999993,62.343605000000139],[-66.208343999999897,62.332214000000022],[-66.165282999999931,62.291381999999999],[-66.160277999999892,62.271378000000084],[-66.167220999999984,62.254439999999988],[-66.201950000000011,62.260551000000078],[-66.256667999999991,62.266105999999979],[-66.261397999999872,62.263054000000068],[-66.257232999999871,62.259720000000073],[-66.241104000000007,62.253326000000015],[-66.212508999999898,62.245270000000119],[-66.166397000000018,62.235267999999962],[-66.081680000000006,62.226379000000065],[-66.058608999999876,62.2241590000001],[-66.051940999999999,62.224709000000132],[-66.045836999999949,62.227485999999999],[-66.043610000000001,62.233604000000128],[-66.038895000000025,62.239432999999963],[-66.033889999999985,62.244995000000131],[-66.028610000000015,62.248604000000114],[-66.025008999999955,62.249718000000087],[-66.015014999999948,62.251389000000131],[-66,62.247771999999998],[-65.993057000000022,62.244155999999975],[-65.939437999999996,62.208602999999925],[-65.933059999999955,62.204163000000108],[-65.929168999999888,62.198044000000095],[-65.930556999999965,62.193321000000083],[-65.934432999999956,62.191657999999961],[-65.952788999999939,62.189156000000082],[-65.963332999999977,62.186935000000005],[-65.969161999999926,62.184714999999983],[-66.043610000000001,62.151657],[-66.050827000000027,62.147774000000084],[-66.132492000000013,62.089432000000045],[-66.110001000000011,62.017494000000113],[-66.041945999999996,61.958046000000081],[-66.035827999999924,61.952773999999977],[-66.033066000000019,61.95249200000012],[-66.019454999999994,61.954993999999999],[-66.003066999999987,61.962212000000022],[-65.999434999999949,61.963051000000121],[-65.992217999999866,61.962769000000094],[-65.988602000000014,61.958885000000066],[-65.949432000000002,61.912491000000102],[-65.946655000000021,61.906936999999914],[-65.946655000000021,61.899162000000047],[-65.948882999999967,61.89527099999998],[-65.955001999999979,61.890274000000034],[-65.961945000000014,61.886383000000137],[-65.97084000000001,61.883881000000088],[-66.057770000000005,61.869713000000047],[-66.066101000000003,61.868599000000074],[-66.275832999999977,61.858330000000024],[-66.287780999999995,61.858330000000024],[-66.395003999999858,61.87082700000002],[-66.404449,61.872765000000129],[-66.521666999999923,61.896942000000024],[-66.543334999999956,61.898880000000133],[-66.555557000000022,61.901382000000012],[-66.626099000000011,61.917213000000004],[-66.632767000000001,61.918884000000048],[-66.659163999999976,61.933601000000067],[-66.665282999999931,61.941375999999991],[-66.662216000000001,61.946655000000135],[-66.746947999999918,62.00777400000004],[-66.755568999999923,62.011108000000036],[-66.781386999999881,62.015549000000135],[-66.803329000000019,62.016937000000041],[-66.812774999999988,62.016663000000108],[-66.825835999999924,62.011940000000095],[-67.091949,62.030822999999998],[-67.104720999999984,62.032211000000132],[-67.254729999999938,62.078049000000078],[-67.345275999999899,62.119437999999946],[-67.463057999999933,62.139435000000049],[-67.499999999999943,62.138657000000137],[-67.731658999999922,62.158356000000026],[-67.757232999999928,62.160544999999956],[-67.798339999999939,62.166100000000085],[-68.003066999999987,62.213882000000126],[-68.113892000000021,62.216103000000032],[-68.233062999999902,62.219711000000132],[-68.256957999999997,62.220825000000104],[-68.269164999999873,62.223045000000127],[-68.299438000000009,62.232208000000128],[-68.325286999999946,62.234993000000145],[-68.401671999999962,62.239432999999963],[-68.46945199999999,62.242767000000129],[-68.519729999999925,62.244713000000047],[-68.548049999999932,62.248604000000114],[-68.564712999999927,62.251938000000109],[-68.615828999999962,62.263885000000073],[-68.722228999999913,62.302216000000044],[-68.725554999999872,62.30471],[-68.726943999999946,62.307770000000062],[-68.759170999999924,62.328049000000021],[-68.882216999999969,62.360550000000103],[-68.922501000000011,62.365547000000049],[-68.995833999999945,62.373322000000087],[-69.039000999999985,62.381355000000042],[-69.121384000000035,62.410820000000115],[-69.160003999999958,62.425270000000069],[-69.193054000000018,62.438042000000053],[-69.231673999999884,62.455269000000101],[-69.270554000000004,62.478325000000098],[-69.36082499999992,62.536385000000053],[-69.40834000000001,62.569992000000013],[-69.430556999999965,62.584160000000054],[-69.426666000000012,62.55443600000001],[-69.428329000000019,62.548332000000016],[-69.442215000000033,62.547493000000031],[-69.449721999999952,62.551102000000014],[-69.519164999999987,62.602493000000095],[-69.583892999999989,62.651932000000102],[-69.597228999999913,62.662490999999932],[-69.597504000000015,62.665268000000026],[-69.565551999999968,62.718048000000067],[-69.557219999999973,62.726379000000009],[-69.543335000000013,62.732765000000086],[-69.525557999999933,62.738044999999943],[-69.50389100000001,62.741378999999938],[-69.482497999999964,62.763611000000026],[-69.727492999999981,62.779991000000109],[-69.906386999999881,62.768599999999992],[-70.121932999999956,62.748878000000104],[-70.217498999999862,62.747772000000111],[-70.229171999999949,62.748878000000104],[-70.240279999999984,62.751389000000074],[-70.354995999999915,62.788329999999974],[-70.360000999999954,62.790276000000063],[-70.367767000000015,62.793883999999991],[-70.477782999999988,62.848328000000038],[-70.499434999999949,62.864441000000056],[-70.508056999999951,62.865828999999962],[-70.665558000000033,62.880547000000092],[-70.830291999999929,62.896660000000111],[-70.853332999999964,62.899994000000106],[-70.885558999999944,62.907211000000018],[-70.896118000000001,62.91443600000008],[-70.893065999999976,62.917770000000075],[-70.885833999999988,62.920546999999999],[-70.871384000000035,62.924713000000054],[-70.863616999999977,62.925552000000039],[-70.848343,62.924713000000054],[-70.847777999999892,62.947212000000036],[-70.974837999999977,62.989437000000009],[-70.977341000000024,62.983768000000055],[-71.013061999999991,62.989990000000091],[-71.060271999999941,62.981102000000078],[-71.071670999999981,62.979431000000034],[-71.120833999999945,62.979431000000034],[-71.135833999999932,62.980820000000051],[-71.152221999999995,62.985268000000019],[-71.156661999999983,62.989159000000086],[-71.156661999999983,62.999434999999949],[-71.136672999999973,63.028602999999976],[-71.118103000000019,63.032219000000055],[-71.091384999999946,63.029991000000052],[-71.020888999999954,63.044270000000097],[-71.013724999999965,63.043602000000021],[-71.007384999999942,63.043437999999981],[-71.003219999999942,63.044768999999974],[-70.863892000000021,63.112213000000054],[-70.856383999999991,63.139434999999992],[-70.908889999999985,63.17083000000008],[-70.920546999999942,63.168883999999991],[-70.952498999999989,63.162766000000033],[-70.971389999999928,63.158882000000006],[-70.976943999999946,63.15665400000006],[-70.990279999999984,63.148048000000131],[-70.997498000000007,63.141662999999937],[-71.001953000000015,63.128044000000045],[-71.002791999999999,63.123322000000144],[-71.00140399999998,63.118881000000044],[-70.993332000000009,63.112770000000125],[-70.990829000000019,63.108330000000137],[-70.989989999999977,63.102492999999981],[-70.993606999999997,63.098045000000013],[-71.029723999999987,63.071937999999989],[-71.041672000000005,63.069442999999922],[-71.127212999999983,63.071663000000115],[-71.138610999999912,63.073326000000066],[-71.195266999999944,63.031661999999983],[-71.195830999999998,63.026657000000114],[-71.198607999999979,63.019989000000123],[-71.208618000000001,63.01166500000005],[-71.232773000000009,63.001938000000109],[-71.243880999999988,63.00110600000005],[-71.255844000000025,63.001938000000109],[-71.262512000000015,63.004166000000112],[-71.40055799999999,63.051659000000029],[-71.408339999999953,63.055267000000129],[-71.413895000000025,63.060546999999985],[-71.421386999999982,63.071663000000115],[-71.454726999999934,63.10193600000008],[-71.465012000000002,63.103325000000098],[-71.605834999999956,63.134995000000004],[-71.624999999999943,63.140831000000048],[-71.70666499999993,63.174995000000081],[-71.713897999999972,63.179161000000136],[-71.770003999999915,63.25638600000002],[-71.794998000000021,63.326660000000004],[-71.795546999999942,63.384720000000073],[-71.805831999999953,63.382767000000001],[-72.009170999999981,63.391106000000036],[-72.063048999999921,63.396385000000009],[-72.076400999999976,63.398048000000074],[-72.083069000000023,63.400542999999971],[-72.141678000000013,63.436104000000114],[-72.146118000000001,63.439987000000031],[-72.145554000000004,63.44609800000012],[-72.126662999999951,63.450271999999984],[-72.023055999999997,63.448043999999982],[-71.933318999999926,63.443321000000026],[-71.825835999999981,63.435265000000129],[-71.785278000000005,63.431938000000002],[-71.748046999999985,63.428047000000106],[-71.711120999999935,63.422768000000133],[-71.683059999999955,63.419716000000051],[-71.634734999999921,63.419716000000051],[-71.61500499999994,63.422493000000145],[-71.59944200000001,63.42582700000014],[-71.411666999999909,63.485824999999977],[-71.316955999999948,63.530823000000055],[-71.227492999999924,63.598877000000016],[-71.229720999999984,63.604713000000061],[-71.234726000000023,63.608047000000056],[-71.245620999999971,63.610939000000087],[-71.261123999999995,63.612495000000024],[-71.295273000000009,63.612495000000024],[-71.306945999999982,63.611381999999935],[-71.323623999999938,63.605270000000132],[-71.328063999999983,63.602218999999934],[-71.331680000000006,63.598328000000038],[-71.333069000000023,63.583603000000096],[-71.332503999999972,63.581664999999987],[-71.328063999999983,63.576942000000031],[-71.325561999999991,63.571938000000046],[-71.326110999999912,63.570549000000028],[-71.331680000000006,63.565543999999989],[-71.335280999999895,63.564437999999996],[-71.379990000000021,63.565543999999989],[-71.407501000000025,63.567771999999934],[-71.414168999999958,63.570549000000028],[-71.416397000000018,63.572769000000051],[-71.378052000000025,63.595268000000033],[-71.367492999999968,63.601935999999966],[-71.363616999999977,63.607216000000051],[-71.362503000000004,63.61332700000014],[-71.377486999999974,63.632767000000115],[-71.396666999999923,63.635826000000066],[-71.407776000000013,63.635551000000078],[-71.411391999999978,63.634437999999989],[-71.418059999999969,63.629990000000021],[-71.452498999999989,63.604439000000127],[-71.441101000000003,63.590827999999988],[-71.439437999999996,63.588042999999971],[-71.446944999999914,63.580826000000002],[-71.455841000000021,63.57888000000014],[-71.470275999999956,63.578049000000135],[-71.561661000000015,63.580275999999969],[-71.576950000000011,63.581664999999987],[-71.580565999999976,63.583878000000141],[-71.581389999999942,63.59304800000001],[-71.583618000000001,63.649719000000118],[-71.569457999999997,63.675552000000039],[-71.562209999999993,63.685546999999985],[-71.581116000000009,63.714995999999985],[-71.585007000000019,63.71665999999999],[-71.615828999999906,63.722213999999951],[-71.629165999999941,63.723877000000073],[-71.638061999999877,63.721099999999979],[-71.660004000000015,63.706940000000088],[-71.664718999999877,63.703049000000021],[-71.667220999999927,63.697212000000036],[-71.700561999999991,63.696381000000031],[-71.823897999999872,63.78054800000001],[-71.830001999999979,63.784439000000077],[-71.891113000000018,63.80832700000002],[-71.904449,63.809989999999971],[-71.915558000000033,63.810271999999998],[-71.938599000000011,63.808044000000052],[-71.958344000000011,63.802490000000034],[-71.970550999999944,63.795830000000024],[-71.985549999999932,63.781937000000028],[-72.000564999999995,63.761383000000023],[-72.004181000000017,63.752776999999924],[-71.999725000000012,63.748328999999956],[-71.991104000000007,63.74610100000001],[-71.972778000000005,63.748047000000099],[-71.966949,63.75110600000005],[-71.954726999999934,63.76527400000009],[-71.946654999999964,63.770271000000037],[-71.939162999999951,63.772491000000059],[-71.934433000000013,63.772766000000047],[-71.853881999999999,63.761383000000023],[-71.848617999999988,63.759438000000046],[-71.843886999999995,63.755554000000018],[-71.879439999999988,63.681937999999946],[-71.882766999999944,63.678047000000049],[-71.920273000000009,63.655548000000124],[-71.933884000000035,63.649437000000034],[-71.963622999999984,63.649162000000047],[-72.051940999999943,63.67860399999995],[-72.154175000000009,63.735550000000103],[-72.169448999999986,63.748604],[-72.21305799999999,63.683876000000112],[-72.212783999999942,63.680550000000039],[-72.213897999999915,63.677772999999945],[-72.218886999999995,63.673882000000049],[-72.223891999999864,63.672218000000044],[-72.234160999999972,63.670273000000066],[-72.245269999999948,63.669715999999994],[-72.28694200000001,63.671660999999972],[-72.317504999999983,63.674164000000133],[-72.324172999999973,63.676658999999972],[-72.327498999999989,63.67971799999998],[-72.363891999999964,63.749435000000005],[-72.363616999999977,63.754440000000045],[-72.357772999999952,63.761383000000023],[-72.352782999999988,63.76527400000009],[-72.342498999999975,63.771378000000141],[-72.324722000000008,63.776939000000027],[-72.317779999999914,63.777771000000087],[-72.302779999999927,63.776657000000114],[-72.291381999999942,63.773605000000032],[-72.270003999999915,63.787216000000001],[-72.215012000000002,63.867767000000072],[-72.209732000000031,63.893051000000071],[-72.223052999999993,63.92943600000001],[-72.232772999999895,63.948325999999952],[-72.238892000000021,63.952492000000063],[-72.246384000000035,63.950272000000041],[-72.250564999999938,63.947769000000051],[-72.36471599999993,63.845543000000134],[-72.383056999999951,63.815543999999932],[-72.376388999999961,63.812209999999936],[-72.371658000000025,63.809158000000025],[-72.366942999999992,63.804710000000057],[-72.365554999999915,63.800270000000069],[-72.363051999999925,63.791107000000068],[-72.368056999999965,63.782494000000099],[-72.372771999999998,63.778603000000032],[-72.436110999999926,63.781661999999983],[-72.515838999999971,63.786384999999996],[-72.526397999999915,63.787773000000072],[-72.531386999999995,63.791107000000068],[-72.532227000000034,63.796661000000029],[-72.531386999999995,63.799438000000123],[-72.519729999999925,63.804710000000057],[-72.496658000000025,63.803604000000064],[-72.474166999999909,63.804710000000057],[-72.463897999999972,63.806655999999975],[-72.459731999999974,63.809158000000025],[-72.456116000000009,63.814438000000109],[-72.456954999999994,63.815826000000015],[-72.465011999999945,63.819160000000011],[-72.521117999999944,63.84027100000003],[-72.537216000000001,63.844154000000003],[-72.585555999999997,63.852776000000006],[-72.634734999999978,63.852493000000038],[-72.637512000000015,63.873604000000057],[-72.641112999999962,63.904434000000094],[-72.611663999999962,63.943046999999979],[-72.592772999999852,64.018051000000128],[-72.592772999999852,64.022217000000069],[-72.658339999999896,64.076660000000004],[-72.664718999999934,64.080551000000071],[-72.67471299999994,64.083327999999995],[-72.682495000000017,64.079711999999972],[-72.685546999999929,64.076385000000016],[-72.688048999999978,64.070540999999992],[-72.704726999999991,64.015549000000078],[-72.705841000000021,64.009155000000021],[-72.702498999999932,64.005553999999961],[-72.696945000000028,64.003052000000082],[-72.668335000000013,63.996101000000124],[-72.660004000000015,63.992493000000024],[-72.658614999999998,63.987770000000069],[-72.666396999999961,63.980545000000006],[-72.678878999999938,63.972488000000055],[-72.692490000000021,63.966660000000104],[-72.699722000000008,63.964439000000027],[-72.720000999999968,63.961105000000032],[-72.753341999999918,64.000274999999988],[-72.758346999999958,64.004166000000055],[-72.779449,64.010544000000039],[-72.836120999999991,64.019714000000079],[-72.931380999999988,64.052475000000015],[-72.94027699999998,64.058594000000028],[-72.941375999999991,64.063599000000067],[-72.93971299999987,64.067764000000068],[-72.933318999999983,64.076385000000016],[-72.925551999999868,64.084152000000131],[-72.919723999999917,64.086929000000055],[-72.911117999999931,64.08859300000006],[-72.888061999999991,64.086105000000089],[-72.878326000000015,64.086655000000121],[-72.874435000000005,64.08859300000006],[-72.870833999999945,64.093872000000033],[-72.868880999999931,64.099152000000117],[-72.868332000000009,64.108321999999987],[-72.897232000000031,64.156937000000028],[-72.905272999999909,64.164993000000095],[-72.911666999999966,64.168868999999972],[-73.223891999999921,64.31164600000011],[-73.271117999999888,64.283875000000023],[-73.267226999999991,64.273880000000133],[-73.270003999999972,64.265823000000125],[-73.273055999999997,64.26249700000011],[-73.279174999999952,64.258606000000043],[-73.339721999999938,64.258040999999992],[-73.365829000000019,64.261932000000058],[-73.380554000000018,64.268600000000049],[-73.384170999999981,64.272491000000116],[-73.386947999999904,64.277480999999966],[-73.417769999999905,64.371093999999914],[-73.415558000000033,64.445816000000036],[-73.326950000000011,64.476089000000002],[-73.167770000000019,64.576660000000118],[-73.164718999999934,64.579712000000029],[-73.164718999999934,64.60554499999995],[-73.165557999999976,64.607483000000116],[-73.169448999999872,64.609984999999995],[-73.296950999999922,64.656937000000084],[-73.302779999999927,64.658875000000023],[-73.309433000000013,64.658600000000035],[-73.342223999999931,64.644150000000081],[-73.346664000000033,64.641098],[-73.347504000000015,64.63499500000006],[-73.341110000000015,64.626083000000051],[-73.326110999999969,64.609984999999995],[-73.314437999999939,64.598038000000031],[-73.308043999999995,64.593322999999998],[-73.302215999999987,64.583878000000084],[-73.298614999999927,64.559418000000107],[-73.299163999999962,64.544982999999945],[-73.303328999999962,64.538315000000011],[-73.30749499999996,64.535812000000021],[-73.315276999999924,64.532211000000132],[-73.32417299999986,64.52998400000007],[-73.424164000000019,64.509995000000004],[-73.463333000000034,64.502486999999974],[-73.47222899999997,64.504440000000102],[-73.475829999999917,64.508040999999935],[-73.477218999999991,64.512207000000046],[-73.473052999999993,64.553589000000045],[-73.448714999999936,64.565422000000012],[-73.467223999999987,64.612762000000089],[-73.595000999999968,64.629699999999957],[-73.655563000000029,64.631653000000085],[-73.655563000000029,64.623596000000134],[-73.667496000000028,64.577209000000039],[-73.750289999999893,64.536377000000073],[-73.75389100000001,64.535263000000043],[-73.764450000000011,64.537491000000045],[-73.787780999999939,64.548035000000084],[-73.803054999999915,64.555251999999996],[-73.821121000000005,64.567490000000078],[-73.837783999999999,64.579712000000029],[-73.84944200000001,64.587493999999992],[-73.861388999999974,64.594436999999971],[-73.876662999999951,64.600815000000125],[-73.886947999999961,64.603592000000049],[-73.910277999999948,64.605819999999994],[-73.920272999999952,64.605255000000113],[-73.929442999999992,64.602203000000031],[-73.932495000000017,64.593597000000102],[-73.931106999999997,64.583878000000084],[-73.844726999999978,64.501937999999996],[-73.925551999999925,64.460265999999933],[-73.972777999999892,64.430267000000129],[-73.999434999999892,64.328048999999965],[-74.062774999999988,64.334427000000119],[-74.102218999999877,64.367476999999951],[-74.128051999999911,64.533051],[-74.127486999999974,64.534424000000115],[-74.105835000000013,64.535812000000021],[-74.082229999999925,64.534988000000055],[-74.065276999999924,64.533051],[-74.055557000000022,64.610535000000027],[-74.050551999999982,64.724991000000045],[-74.053878999999938,64.728592000000106],[-74.060546999999985,64.733322000000101],[-74.089721999999995,64.751099000000011],[-74.096114999999941,64.751389000000017],[-74.114440999999943,64.745819000000097],[-74.120543999999995,64.74192800000003],[-74.195266999999888,64.663040000000024],[-74.208892999999932,64.614151000000049],[-74.212783999999999,64.602768000000083],[-74.224715999999944,64.592484000000013],[-74.240279999999984,64.58027600000014],[-74.381942999999922,64.569992000000127],[-74.390288999999996,64.569716999999912],[-74.397507000000019,64.572220000000073],[-74.535278000000005,64.622208000000057],[-74.657500999999968,64.700272000000098],[-74.701675000000023,64.732483000000002],[-74.704177999999899,64.735535000000084],[-74.700835999999867,64.740265000000136],[-74.683318999999926,64.758331000000112],[-74.567504999999983,64.832764000000054],[-74.501113999999973,64.833603000000039],[-74.487777999999935,64.834152000000017],[-74.478881999999999,64.835815000000082],[-74.476395000000025,64.838882000000012],[-74.476943999999946,64.84165999999999],[-74.540557999999976,64.889160000000004],[-74.545836999999949,64.892212000000086],[-74.561110999999926,64.896102999999982],[-74.621932999999956,64.903869999999927],[-74.639998999999932,64.903595000000109],[-74.648620999999935,64.901382000000126],[-74.660277999999892,64.896378000000027],[-74.732773000000009,64.854705999999965],[-74.741378999999938,64.847488000000112],[-74.743057000000022,64.842209000000139],[-74.741942999999992,64.835815000000082],[-74.738892000000021,64.831375000000094],[-74.72222899999997,64.822220000000016],[-74.714721999999938,64.815535999999952],[-74.710007000000019,64.810532000000023],[-74.706664999999987,64.800537000000077],[-74.706664999999987,64.794983000000116],[-74.710830999999985,64.782761000000107],[-74.718886999999938,64.773604999999975],[-74.726394999999968,64.770828000000108],[-74.837219000000005,64.778595000000053],[-74.868332000000009,64.781936999999971],[-74.893341000000021,64.784714000000065],[-74.902221999999938,64.78804000000008],[-74.909164000000033,64.791367000000037],[-74.915833000000021,64.795822000000044],[-74.924438000000009,64.799149],[-74.944153000000028,64.803589000000045],[-74.955001999999979,64.804428000000144],[-74.975554999999872,64.801376000000062],[-74.985274999999945,64.795822000000044],[-74.985549999999876,64.790268000000083],[-74.982498000000021,64.785263000000043],[-74.978881999999999,64.781372000000147],[-74.963332999999977,64.773604999999975],[-74.834732000000031,64.716385000000116],[-74.733321999999987,64.685531999999967],[-74.694442999999978,64.676376000000005],[-74.675551999999982,64.670258000000047],[-74.660003999999958,64.663879000000009],[-74.613051999999925,64.640274000000034],[-74.545273000000009,64.602203000000031],[-74.512787000000003,64.583603000000096],[-74.475280999999939,64.561371000000008],[-74.470000999999968,64.557479999999941],[-74.47084000000001,64.555542000000003],[-74.513625999999874,64.533325000000104],[-74.520279000000016,64.532211000000132],[-74.585830999999985,64.480270000000075],[-74.685546999999985,64.391936999999984],[-74.685821999999973,64.371093999999914],[-74.797774999999945,64.380813999999987],[-74.974716000000001,64.416091999999992],[-74.985274999999945,64.418869000000086],[-75.010558999999944,64.429977000000122],[-75.056380999999988,64.452208999999982],[-75.142501999999979,64.483321999999987],[-75.174712999999997,64.492752000000053],[-75.182769999999948,64.492477000000065],[-75.188598999999954,64.489426000000037],[-75.188888999999904,64.483321999999987],[-75.187209999999993,64.473602000000085],[-75.182495000000017,64.468323000000112],[-75.177215999999987,64.464705999999978],[-75.151397999999915,64.460265999999933],[-75.146117999999944,64.457214000000022],[-75.14416499999993,64.453049000000021],[-75.15055799999999,64.447204999999997],[-75.154448999999943,64.444702000000063],[-75.199721999999952,64.428040000000067],[-75.207779000000016,64.427765000000022],[-75.21556099999998,64.428864000000033],[-75.224166999999909,64.432205000000067],[-75.295272999999952,64.46665999999999],[-75.323897999999986,64.481934000000081],[-75.332503999999972,64.490814000000114],[-75.344161999999926,64.49914600000011],[-75.34973100000002,64.50221300000004],[-75.381667999999991,64.513611000000026],[-75.409164000000033,64.522766000000104],[-75.479720999999927,64.53915399999994],[-75.490829000000019,64.539703000000088],[-75.566100999999946,64.549988000000042],[-75.666396999999961,64.563873000000115],[-75.693329000000006,64.569992000000127],[-75.703887999999949,64.572769000000051],[-75.721389999999985,64.579163000000051],[-75.736938000000009,64.586104999999975],[-75.74722300000002,64.594436999999971],[-75.763625999999988,64.604980000000126],[-75.773894999999925,64.608322000000044],[-75.796951000000035,64.612198000000149],[-75.824172999999973,64.611649],[-75.843063000000029,64.607758000000103],[-75.847228999999913,64.604430999999977],[-75.837219000000005,64.561371000000008],[-75.823623999999938,64.535812000000021],[-75.818893000000003,64.530823000000055],[-75.807495000000017,64.525269000000037],[-75.729172000000005,64.503051999999968],[-75.644729999999925,64.468872000000033],[-75.639449999999954,64.46527100000003],[-75.630554000000018,64.457214000000022],[-75.631667999999991,64.453598],[-75.636123999999938,64.449142000000052],[-75.641388000000006,64.448028999999963],[-75.696655000000021,64.43942300000009],[-75.708343999999954,64.437759000000028],[-75.727782999999931,64.442474000000061],[-75.746947999999975,64.453049000000021],[-75.765839000000028,64.46527100000003],[-75.77305599999994,64.467484000000127],[-75.874709999999993,64.486923000000047],[-75.895279000000016,64.48803700000002],[-75.908339999999953,64.487198000000035],[-75.920273000000009,64.484420999999998],[-75.922500999999954,64.481094000000041],[-75.910552999999993,64.478317000000118],[-75.875274999999988,64.47387700000013],[-75.857772999999952,64.468048000000067],[-75.720839999999953,64.383331000000055],[-75.717223999999987,64.379700000000014],[-75.718886999999995,64.374419999999986],[-75.723327999999924,64.369705000000124],[-75.726944000000003,64.367203000000018],[-75.83805799999999,64.369141000000013],[-75.861664000000019,64.371093999999914],[-75.950561999999934,64.399155000000007],[-76.043883999999991,64.368317000000047],[-76.253615999999965,64.35775799999999],[-76.264450000000011,64.319153000000028],[-76.214721999999995,64.314986999999974],[-76.205565999999976,64.313309000000004],[-76.196655000000021,64.310806000000071],[-76.188323999999852,64.306931000000077],[-76.189712999999927,64.301376000000005],[-76.197219999999959,64.29693600000013],[-76.205840999999964,64.294708000000014],[-76.300551999999982,64.278869999999984],[-76.484725999999966,64.266662999999994],[-76.493606999999997,64.268600000000049],[-76.503066999999987,64.275269000000094],[-76.506957999999941,64.284424000000001],[-76.505568999999923,64.289153999999996],[-76.503615999999909,64.291091999999935],[-76.502501999999936,64.295258000000047],[-76.506667999999934,64.297485000000108],[-76.541381999999999,64.304703000000075],[-76.591949,64.31053199999991],[-76.705840999999964,64.300812000000008],[-76.719451999999933,64.296646000000123],[-76.733886999999868,64.290543000000014],[-76.736664000000019,64.285812000000078],[-76.738892000000021,64.276382000000012],[-76.721663999999976,64.238312000000064],[-76.714721999999995,64.233870999999965],[-76.706115999999952,64.231369000000086],[-76.684722999999963,64.227768000000026],[-76.674438000000009,64.224990999999932],[-76.667220999999927,64.221924000000058],[-76.660278000000005,64.218322999999998],[-76.654723999999931,64.209152000000017],[-76.654723999999931,64.196640000000059],[-76.65834000000001,64.189972000000068],[-76.662215999999944,64.186646000000053],[-76.670546999999942,64.184143000000063],[-76.84722899999997,64.23054500000012],[-76.968337999999903,64.259720000000016],[-77.138335999999981,64.289429000000041],[-77.276108000000022,64.256378000000097],[-77.296111999999937,64.251938000000052],[-77.327498999999989,64.246367999999961],[-77.351944000000003,64.243866000000082],[-77.366104000000007,64.243866000000082],[-77.379990000000021,64.2452550000001],[-77.381377999999984,64.246643000000006],[-77.382216999999969,64.2494200000001],[-77.381377999999984,64.253601000000003],[-77.378875999999934,64.256943000000092],[-77.434158000000025,64.320267000000001],[-77.588332999999977,64.368317000000047],[-77.652221999999938,64.388046000000088],[-77.660278000000005,64.386383000000023],[-77.664444000000003,64.3836060000001],[-77.665832999999907,64.376923000000147],[-77.664718999999991,64.374146000000053],[-77.658889999999985,64.364990000000091],[-77.67971799999998,64.321105999999986],[-77.747222999999963,64.337769000000037],[-77.831389999999942,64.412490999999989],[-77.970276000000013,64.454436999999928],[-78.178054999999972,64.567490000000078],[-78.183318999999926,64.572495000000117],[-78.168578999999966,64.626197999999931],[-78.160552999999993,64.690536000000066],[-78.184433000000013,64.731093999999985],[-78.073623999999938,64.813599000000124],[-78.064437999999996,64.849426000000051],[-78.065276999999867,64.853591999999992],[-78.06639100000001,64.855820000000108],[-78.073623999999938,64.859420999999998],[-78.102492999999981,64.868866000000025],[-78.117217999999923,64.876082999999994],[-78.120834000000002,64.881088000000034],[-78.129715000000033,64.893875000000037],[-78.146118000000001,64.938309000000004],[-78.148055999999997,64.943862999999965],[-78.149733999999967,64.952209000000039],[-78.145279000000016,64.957489000000123],[-77.973052999999993,65.04136699999998],[-77.67971799999998,65.123306000000014],[-77.543610000000001,65.139709000000096],[-77.50306699999993,65.138596000000007],[-77.488326999999913,65.139434999999935],[-77.479720999999984,65.141098000000056],[-77.344726999999978,65.173309000000131],[-77.328612999999962,65.178864000000033],[-77.322783999999956,65.18331900000004],[-77.315825999999959,65.190536000000009],[-77.313048999999978,65.195816000000036],[-77.315552000000025,65.199417000000096],[-77.3824919999999,65.247482000000105],[-77.397232000000031,65.254990000000134],[-77.422774999999945,65.264435000000049],[-77.444716999999912,65.275543000000027],[-77.498046999999985,65.306641000000013],[-77.513061999999934,65.318877999999984],[-77.515015000000005,65.325820999999962],[-77.512222000000008,65.330551000000014],[-77.471114999999998,65.371368000000018],[-77.466949,65.375259000000085],[-77.461120999999878,65.379149999999981],[-77.452498999999875,65.380813999999987],[-77.438048999999921,65.379700000000014],[-77.41361999999998,65.371643000000063],[-77.402495999999985,65.369141000000127],[-77.345839999999896,65.358597000000088],[-77.337783999999999,65.357483000000116],[-77.323058999999944,65.357757999999933],[-77.30610699999994,65.359711000000061],[-77.295546999999999,65.361922999999933],[-77.291945999999939,65.363876000000062],[-77.287505999999951,65.367751999999996],[-77.287216000000001,65.375259000000085],[-77.289992999999924,65.378860000000145],[-77.295273000000009,65.383331000000055],[-77.319457999999997,65.393326000000002],[-77.326950000000011,65.395538000000045],[-77.341949,65.401657000000057],[-77.367492999999911,65.412491000000102],[-77.398620999999935,65.426651000000049],[-77.420272999999952,65.439972000000012],[-77.428329000000019,65.447754000000145],[-77.434432999999956,65.456940000000088],[-77.430556999999908,65.458878000000027],[-77.421660999999972,65.461380000000077],[-77.385559000000001,65.468048000000067],[-77.336670000000026,65.471375000000023],[-77.265288999999882,65.471923999999944],[-77.238051999999925,65.469437000000084],[-77.154449,65.445815999999979],[-77.134734999999978,65.439423000000033],[-77.124434999999892,65.434143000000006],[-77.115828999999962,65.429703000000131],[-77.111663999999962,65.426085999999998],[-77.111114999999927,65.421371000000136],[-77.106383999999991,65.413605000000075],[-77.09944200000001,65.409149000000014],[-77.08666999999997,65.407211000000075],[-76.962783999999999,65.407211000000075],[-76.956954999999994,65.410537999999974],[-76.952498999999989,65.414993000000038],[-76.956116000000009,65.421371000000136],[-76.955565999999976,65.422759999999982],[-76.951675000000023,65.425262000000032],[-76.944442999999978,65.427765000000022],[-76.920837000000006,65.429428000000144],[-76.849990999999989,65.428313999999943],[-76.824722000000008,65.425262000000032],[-76.626937999999939,65.398880000000133],[-76.361937999999952,65.342209000000025],[-76.235001000000011,65.312759000000142],[-76.164444000000003,65.296097000000145],[-76.072509999999909,65.277205999999921],[-75.96665999999999,65.255829000000119],[-75.953888000000006,65.255264000000068],[-75.925277999999935,65.257217000000026],[-75.920273000000009,65.258330999999998],[-75.912215999999944,65.257217000000026],[-75.898345999999947,65.253875999999991],[-75.805556999999965,65.229705999999965],[-75.785552999999936,65.224426000000108],[-75.769164999999987,65.21887200000009],[-75.765014999999892,65.216660000000047],[-75.760009999999909,65.210815000000139],[-75.741378999999995,65.173874000000012],[-75.739989999999921,65.168319999999994],[-75.570847000000015,65.120818999999926],[-75.528610000000015,65.108871000000079],[-75.475006000000008,65.086105000000089],[-75.46665999999999,65.082214000000022],[-75.457229999999925,65.074707000000046],[-75.446945000000028,65.06581100000011],[-75.428054999999972,65.048324999999977],[-75.424438000000009,65.043869000000086],[-75.410552999999936,65.024704000000099],[-75.415557999999976,64.977478000000076],[-75.420273000000009,64.972214000000065],[-75.428054999999972,64.968322999999998],[-75.496947999999975,64.940536000000066],[-75.507232999999985,64.938309000000004],[-75.51916499999993,64.936919999999986],[-75.533614999999941,64.936919999999986],[-75.557220000000029,64.940262000000132],[-75.634734999999921,64.94720500000011],[-75.654448999999943,64.946365000000071],[-75.663054999999929,64.945251000000098],[-75.667496000000028,64.940811000000053],[-75.601944000000003,64.867752000000053],[-75.594161999999983,64.860259999999926],[-75.587508999999898,64.856644000000074],[-75.56806899999998,64.850540000000024],[-75.555557000000022,64.848602000000085],[-75.461394999999925,64.811645999999996],[-75.389175000000023,64.736099000000024],[-75.373046999999985,64.714996000000099],[-75.316665999999941,64.719437000000028],[-75.308333999999888,64.721099999999979],[-75.298186999999984,64.725769000000128],[-75.294723999999974,64.728043000000127],[-75.291381999999885,64.733871000000079],[-75.289444000000003,64.739975000000072],[-75.291381999999885,64.74443100000002],[-75.30221599999993,64.751099000000011],[-75.310546999999929,64.754990000000078],[-75.329726999999991,64.761107999999979],[-75.333892999999989,64.763321000000133],[-75.344161999999926,64.772217000000069],[-75.373885999999914,64.833054000000118],[-75.357223999999917,64.897766000000104],[-75.422775000000001,64.890273999999977],[-75.451675000000023,64.875259000000028],[-75.460830999999985,64.87164300000012],[-75.469727000000034,64.869431000000077],[-75.55749499999996,64.87414600000011],[-75.563323999999966,64.877197000000137],[-75.565552000000025,64.879425000000083],[-75.567504999999983,64.883605999999986],[-75.56527699999998,64.886932000000058],[-75.473891999999921,64.935806000000014],[-75.390288999999996,64.979430999999977],[-75.384734999999978,64.981934000000138],[-75.376098999999897,64.983322000000044],[-75.363051999999982,64.98414600000001],[-75.353332999999964,64.983597000000088],[-75.344161999999926,64.981094000000098],[-75.335555999999997,64.977768000000083],[-75.264175000000023,64.966095000000053],[-75.196105999999986,65.068604000000107],[-75.189163000000008,65.079712000000086],[-75.185546999999872,65.091369999999927],[-75.186934999999949,65.101653999999996],[-75.192490000000021,65.105545000000063],[-75.196655000000021,65.107207999999957],[-75.212508999999955,65.109421000000111],[-75.225554999999986,65.109421000000111],[-75.240828999999962,65.10832199999993],[-75.259170999999981,65.102203000000088],[-75.263625999999988,65.0977630000001],[-75.265563999999927,65.09165999999999],[-75.262512000000015,65.080551000000071],[-75.260009999999852,65.072769000000108],[-75.261123999999995,65.059142999999949],[-75.263061999999934,65.052199999999971],[-75.279998999999975,65.035262999999986],[-75.299727999999959,65.024704000000099],[-75.348617999999931,65.003876000000048],[-75.360001000000011,65.003876000000048],[-75.367492999999968,65.006378000000097],[-75.373046999999985,65.009430000000009],[-75.378875999999991,65.016663000000051],[-75.379165999999998,65.021378000000084],[-75.381103999999937,65.025818000000072],[-75.402495999999871,65.055817000000104],[-75.410003999999958,65.063873000000001],[-75.425551999999982,65.077208999999925],[-75.441375999999991,65.089157],[-75.448043999999982,65.094147000000021],[-75.516402999999855,65.138596000000007],[-75.728058000000033,65.224151999999947],[-75.761947999999961,65.237762000000032],[-75.781676999999945,65.243042000000116],[-75.835555999999997,65.255264000000068],[-75.864166000000012,65.258330999999998],[-75.890563999999983,65.269150000000081],[-75.939712999999983,65.292480000000012],[-75.943877999999984,65.29525799999999],[-75.950835999999981,65.316376000000105],[-75.950287000000003,65.318329000000062],[-75.941101000000003,65.321380999999974],[-75.931106999999884,65.322220000000129],[-75.904449,65.322220000000129],[-75.873885999999914,65.320541000000105],[-75.857772999999952,65.319153000000028],[-75.603057999999976,65.295531999999923],[-75.592223999999931,65.287201000000039],[-75.575561999999934,65.278046000000018],[-75.566390999999896,65.274994000000049],[-75.555267000000015,65.273605000000089],[-75.495834000000002,65.269150000000081],[-75.48443599999996,65.268326000000116],[-75.211945000000014,65.250549000000035],[-75.186661000000015,65.251938000000052],[-75.153885000000002,65.256943000000092],[-75.114440999999999,65.266387999999949],[-75.101669000000015,65.271378000000027],[-75.093886999999938,65.274994000000049],[-75.083618000000001,65.286102000000085],[-75.081679999999892,65.292206000000078],[-75.070847000000015,65.330276000000026],[-75.090835999999911,65.355545000000006],[-75.109160999999858,65.379974000000118],[-75.110824999999977,65.384720000000073],[-75.111114999999984,65.388885000000073],[-75.110549999999932,65.391098],[-75.108046999999942,65.393051000000128],[-75.097778000000005,65.394989000000066],[-75.08277899999996,65.394989000000066],[-74.823623999999938,65.377472000000068],[-74.660552999999993,65.346374999999966],[-74.645844000000011,65.341370000000097],[-74.635009999999966,65.338593000000003],[-74.624161000000015,65.336655000000064],[-74.58944699999995,65.332489000000123],[-74.546660999999915,65.33137499999998],[-74.524445000000014,65.333328000000108],[-74.508621000000005,65.336655000000064],[-74.496947999999975,65.340820000000065],[-74.357773000000009,65.398604999999975],[-74.347838999999965,65.407181000000037],[-74.323897999999986,65.437759000000028],[-74.318892999999946,65.447204999999997],[-74.31527699999998,65.458037999999988],[-74.311385999999914,65.463882000000012],[-74.182770000000005,65.525269000000037],[-74.105835000000013,65.534988000000055],[-73.845276000000013,65.532211000000132],[-73.791381999999999,65.524428999999998],[-73.767776000000026,65.520828000000108],[-73.747222999999963,65.517487000000074],[-73.736937999999952,65.514709000000096],[-73.732772999999952,65.511932000000002],[-73.731383999999935,65.506943000000035],[-73.730835000000013,65.504166000000112],[-73.735001000000011,65.501662999999951],[-73.740279999999984,65.496933000000126],[-73.740829000000019,65.490814000000114],[-73.736937999999952,65.487761999999975],[-73.711670000000026,65.471099999999979],[-73.703063999999927,65.466934000000094],[-73.694152999999915,65.464432000000045],[-73.663895000000025,65.456940000000088],[-73.651397999999972,65.454711999999915],[-73.641113000000018,65.455261000000064],[-73.559997999999894,65.462494000000049],[-73.500564999999938,65.474426000000051],[-73.56361400000003,65.562194999999974],[-73.618332000000009,65.619705000000067],[-73.662215999999944,65.658599999999979],[-73.684157999999911,65.715271000000087],[-73.68499799999995,65.730545000000006],[-73.704726999999934,65.758041000000048],[-73.709731999999917,65.762496999999996],[-73.720550999999887,65.769440000000145],[-73.810821999999973,65.811096000000134],[-73.841110000000015,65.81999200000007],[-73.884170999999981,65.821930000000009],[-73.886123999999995,65.821381000000031],[-73.923614999999984,65.824432000000058],[-73.931670999999938,65.825546000000031],[-73.942490000000021,65.828323000000125],[-74.011947999999961,65.854705999999908],[-74.029174999999952,65.861923000000047],[-74.058043999999938,65.875534000000016],[-74.129439999999988,65.924697999999978],[-74.258895999999993,66.001663000000065],[-74.296950999999979,66.018326000000116],[-74.337783999999999,66.036652000000117],[-74.37388599999997,66.053863999999976],[-74.388061999999934,66.06164600000011],[-74.425551999999925,66.084717000000126],[-74.444992000000013,66.096939000000077],[-74.455565999999862,66.105820000000051],[-74.471389999999985,66.127197000000081],[-74.472777999999948,66.133041000000048],[-74.472504000000015,66.139160000000118],[-74.470000999999968,66.145828000000051],[-74.466110000000015,66.151932000000102],[-74.446655000000021,66.168594000000098],[-74.434432999999956,66.178314],[-74.406113000000005,66.195816000000036],[-74.366652999999928,66.214157000000057],[-74.342223999999987,66.22526600000009],[-74.316390999999953,66.235259999999926],[-74.306655999999975,66.238876000000005],[-74.187209999999993,66.269713999999965],[-74.077788999999939,66.300812000000008],[-73.86082499999992,66.388321000000076],[-73.744995000000017,66.437759000000028],[-73.666107000000011,66.471924000000115],[-73.606658999999979,66.495254999999986],[-73.529998999999975,66.522766000000047],[-73.460555999999997,66.544434000000138],[-73.444153000000028,66.551086000000055],[-73.430556999999908,66.55831900000004],[-73.420272999999952,66.571655000000021],[-73.418335000000013,66.579711999999972],[-73.418335000000013,66.584717000000012],[-73.416396999999961,66.589981000000023],[-73.400283999999942,66.611649000000114],[-73.396956999999986,66.61554000000001],[-73.379714999999976,66.632477000000051],[-73.351944000000003,66.649994000000049],[-73.328339000000028,66.6602630000001],[-73.296386999999982,66.665817000000061],[-73.267226999999991,66.672760000000096],[-73.108611999999937,66.723311999999964],[-73.00111400000003,66.815536000000122],[-72.87388599999997,66.931930999999963],[-72.852492999999981,66.968597000000102],[-72.837783999999999,66.998031999999967],[-72.831389999999885,67.013321000000076],[-72.831115999999952,67.018326000000116],[-72.828063999999927,67.024994000000049],[-72.824172999999973,67.029434000000094],[-72.806655999999919,67.037201000000039],[-72.791671999999949,67.043320000000051],[-72.738891999999908,67.063034000000016],[-72.716659999999933,67.06860400000005],[-72.68499799999995,67.076096000000007],[-72.626099000000011,67.084717000000126],[-72.550827000000027,67.082763999999997],[-72.525832999999977,67.083328000000108],[-72.464172000000019,67.08998100000008],[-72.43110699999994,67.096099999999922],[-72.399445000000014,67.103592000000049],[-72.368606999999997,67.112487999999985],[-72.351394999999968,67.119705000000124],[-72.337783999999999,67.126373000000058],[-72.315552000000025,67.139435000000105],[-72.282501000000025,67.161102000000142],[-72.276108000000022,67.166930999999977],[-72.258346999999901,67.24803199999991],[-72.28694200000001,67.290817000000061],[-72.363616999999977,67.353317000000004],[-72.436385999999914,67.472214000000122],[-72.481110000000001,67.609711000000004],[-72.48582499999992,67.623031999999967],[-72.490829000000019,67.62831100000011],[-72.49749799999995,67.633040999999935],[-72.508895999999993,67.63638300000008],[-72.597778000000005,67.639709000000096],[-72.666396999999961,67.684143000000063],[-72.676391999999964,67.693862999999965],[-72.677779999999984,67.699416999999983],[-72.675002999999947,67.70526099999995],[-72.668883999999935,67.710541000000035],[-72.661666999999909,67.714706000000035],[-72.613892000000021,67.735259999999982],[-72.596953999999926,67.740814],[-72.591948999999886,67.74331699999999],[-72.583327999999881,67.750274999999988],[-72.608886999999982,67.785812000000078],[-72.612503000000004,67.790268000000026],[-72.619445999999925,67.794708000000014],[-72.735001000000011,67.841659999999933],[-72.820007000000032,67.851089000000115],[-72.833327999999995,67.849991000000045],[-72.843886999999938,67.850815000000011],[-72.848052999999936,67.853592000000106],[-72.942215000000033,67.925262000000089],[-72.944442999999978,67.928040000000067],[-72.944992000000013,67.93081699999999],[-72.94387799999987,67.937759000000085],[-72.942490000000021,67.941085999999984],[-72.929992999999968,67.948867999999948],[-72.922774999999945,67.952774000000034],[-72.904175000000009,67.959717000000012],[-72.902495999999928,67.963882000000012],[-72.896117999999944,68.014160000000004],[-72.910552999999993,68.054153000000042],[-72.913895000000025,68.060806000000014],[-72.941100999999946,68.078323000000069],[-72.956954999999994,68.094986000000119],[-72.981110000000001,68.139160000000061],[-72.992767000000015,68.198593000000074],[-72.993880999999988,68.212204000000042],[-73.161117999999988,68.228866999999923],[-73.190276999999924,68.248871000000065],[-73.189437999999996,68.254715000000033],[-73.189986999999917,68.259430000000066],[-73.194716999999969,68.26527400000009],[-73.200835999999981,68.269714000000135],[-73.215560999999923,68.272766000000047],[-73.271117999999888,68.281936999999971],[-73.303328999999962,68.278434999999945],[-73.314499000000012,68.278434999999945],[-73.336670000000026,68.275604000000044],[-73.355186000000003,68.267830000000004],[-73.395554000000004,68.258605999999929],[-73.496108999999933,68.275542999999971],[-73.410004000000015,68.310806000000127],[-73.39916999999997,68.314987000000031],[-73.354674999999929,68.329215999999974]],[[-124.43055699999996,73.878586000000098],[-124.45028699999995,73.878586000000098],[-124.46721600000001,73.8808140000001],[-124.515289,73.89498900000001],[-124.53666699999991,73.902480999999909],[-124.54611199999999,73.906647000000021],[-124.55055199999998,73.912201000000039],[-124.55277999999993,73.916931000000034],[-124.53056299999997,73.917480000000012],[-124.5133439999999,73.916656000000046],[-124.43250299999994,73.912766000000033],[-124.42027300000001,73.90914900000007],[-124.41583300000002,73.90498400000007],[-124.40888999999993,73.900269000000037],[-124.40943899999996,73.893326000000059],[-124.42027300000001,73.882476999999994],[-124.43055699999996,73.878586000000098]],[[-99.804557999999929,73.889099000000101],[-99.732773000000009,73.849991000000102],[-99.71362299999987,73.846375000000023],[-99.589721999999881,73.837769000000094],[-99.531386999999938,73.831940000000088],[-99.493880999999988,73.825821000000076],[-99.480285999999978,73.821930000000009],[-99.235000999999897,73.737761999999918],[-99.115004999999996,73.74859600000002],[-98.97193900000002,73.750548999999921],[-98.829177999999956,73.751663000000121],[-98.756393000000003,73.75610400000005],[-98.71665999999999,73.766663000000051],[-98.688323999999966,73.772018000000116],[-98.641953000000001,73.777206000000035],[-98.514449999999954,73.787490999999989],[-98.424437999999952,73.793594000000098],[-98.290832999999964,73.801651000000049],[-98.207229999999925,73.80525200000011],[-98.190552000000025,73.803588999999988],[-98.179992999999911,73.804152999999928],[-98.134170999999867,73.809708000000057],[-98.095000999999968,73.815536000000122],[-98.071670999999924,73.819443000000092],[-97.976944000000003,73.84275800000006],[-97.960281000000009,73.846938999999963],[-97.948333999999988,73.851653999999996],[-97.943053999999904,73.856934000000081],[-97.942763999999954,73.862762000000032],[-97.941375999999991,73.868042000000059],[-97.936385999999914,73.87831100000011],[-97.918335000000013,73.890273999999977],[-97.90834000000001,73.894714000000135],[-97.887512000000015,73.899428999999998],[-97.805267000000015,73.911102000000028],[-97.788054999999986,73.912766000000033],[-97.761948000000018,73.911925999999994],[-97.581954999999937,73.893875000000037],[-97.562774999999988,73.890823000000069],[-97.544723999999917,73.886108000000036],[-97.529175000000009,73.879700000000071],[-97.520844000000011,73.873871000000065],[-97.514175000000023,73.867752000000053],[-97.50028999999995,73.861923000000047],[-97.471389999999985,73.857758000000047],[-97.456954999999994,73.857758000000047],[-97.39973399999991,73.858871000000136],[-97.357772999999952,73.862488000000099],[-97.34584000000001,73.864990000000148],[-97.327498999999989,73.865814000000114],[-97.260284000000013,73.860260000000096],[-97.223617999999931,73.856369000000029],[-96.972504000000015,73.744141000000013],[-96.962218999999891,73.738586000000112],[-96.955841000000021,73.732482999999945],[-96.937209999999993,73.703598000000113],[-96.932770000000005,73.692200000000071],[-96.93472300000002,73.686920000000043],[-96.963897999999972,73.63998399999997],[-96.968613000000005,73.633330999999998],[-96.988891999999964,73.624695000000088],[-97.001953000000015,73.6202550000001],[-97.184998000000007,73.562194999999974],[-97.202498999999932,73.557205000000124],[-97.436110999999926,73.525542999999971],[-97.623885999999857,73.538879000000122],[-97.638061999999934,73.538589000000115],[-97.641112999999962,73.533599999999922],[-97.668335000000013,73.483321999999987],[-97.667496000000028,73.479431000000091],[-97.663054999999929,73.4727630000001],[-97.654723999999931,73.466934000000094],[-97.638335999999981,73.460266000000104],[-97.623321999999973,73.456375000000037],[-97.607223999999974,73.454711999999972],[-97.579453000000001,73.454987000000131],[-97.562774999999988,73.459152000000131],[-97.534163999999976,73.473877000000073],[-97.522232000000031,73.478592000000106],[-97.50389100000001,73.483046999999942],[-97.437209999999993,73.491928000000087],[-97.417220999999984,73.493317000000047],[-97.401947000000007,73.493042000000059],[-97.232223999999917,73.474426000000051],[-97.197219999999959,73.469711000000018],[-97.183059999999955,73.464995999999985],[-97.172225999999966,73.460266000000104],[-97.166106999999954,73.454162999999994],[-97.157226999999921,73.395538000000045],[-97.150283999999999,73.389984000000027],[-97.169448999999986,73.35664399999996],[-97.17193599999996,73.352768000000083],[-97.183883999999921,73.350540000000137],[-97.207503999999972,73.348328000000095],[-97.236937999999896,73.348602000000028],[-97.243057000000022,73.354706000000022],[-97.375548999999921,73.347214000000122],[-97.645003999999858,73.318054000000018],[-97.660278000000005,73.316086000000098],[-97.708617999999944,73.304703000000075],[-97.841384999999889,73.273315000000082],[-97.84445199999999,73.268326000000116],[-97.848052999999936,73.254440000000102],[-97.847778000000005,73.249420000000043],[-97.848617999999988,73.244980000000055],[-97.86250299999989,73.233871000000136],[-97.983611999999994,73.181091000000094],[-98.029175000000009,73.165268000000083],[-98.076674999999966,73.151382000000126],[-98.112503000000004,73.142487000000074],[-98.151672000000019,73.131087999999977],[-98.202788999999996,73.110535000000084],[-98.222777999999948,73.099991000000045],[-98.229996000000028,73.090820000000122],[-98.231383999999878,73.085541000000148],[-98.235001000000011,73.079711999999915],[-98.240829000000019,73.075272000000098],[-98.319457999999997,73.050537000000077],[-98.365829000000019,73.037766000000147],[-98.450287000000003,73.020264000000111],[-98.459166999999923,72.99331699999999],[-98.453613000000018,72.898605000000089],[-98.450561999999991,72.874985000000095],[-98.445830999999998,72.865814000000114],[-98.438598999999954,72.860535000000141],[-98.428054999999915,72.856094000000041],[-98.419998000000021,72.858597000000032],[-98.413329999999974,72.864151000000049],[-98.403335999999967,72.881363000000022],[-98.403335999999967,72.887207000000046],[-98.405838000000017,72.891662999999994],[-98.402221999999995,72.897491000000059],[-98.397780999999952,72.902771000000143],[-98.388061999999991,72.908034999999927],[-98.266402999999855,72.972763000000043],[-98.255004999999926,72.977478000000076],[-98.227218999999877,72.987487999999985],[-98.176940999999999,72.998596000000134],[-97.99499499999996,73.037491000000102],[-97.980559999999969,73.039702999999975],[-97.864166000000012,73.047485000000108],[-97.846953999999982,73.048598999999911],[-97.684433000000013,73.033051000000114],[-97.668335000000013,73.03137200000009],[-97.527495999999985,73.011383000000137],[-97.442489999999964,72.999145999999996],[-97.299728000000016,72.969711000000132],[-97.283324999999991,72.963882000000069],[-97.229720999999984,72.943038999999999],[-97.225006000000008,72.939972000000125],[-97.258056999999951,72.883605999999986],[-97.266402999999968,72.878585999999984],[-97.265288999999996,72.84887700000013],[-97.203613000000018,72.825821000000076],[-97.081679999999949,72.77998400000007],[-97.030288999999982,72.74136400000009],[-97.023055999999997,72.732208000000128],[-97.023055999999997,72.727203000000088],[-97.029723999999987,72.716659999999933],[-97.079453000000001,72.701934999999992],[-97.105834999999956,72.696365000000128],[-97.134444999999914,72.688309000000061],[-97.161117999999988,72.67804000000001],[-97.170546999999885,72.673599000000081],[-97.179442999999992,72.667480000000069],[-97.183059999999955,72.661926000000051],[-97.19027699999998,72.640549000000021],[-97.198333999999932,72.609984999999995],[-97.196655000000021,72.604430999999977],[-97.185271999999998,72.601929000000098],[-97.165557999999919,72.60165400000011],[-97.09056099999998,72.605254999999943],[-97.081008999999938,72.605927000000122],[-97.07028200000002,72.608597000000088],[-97.042770000000019,72.623306000000127],[-97.035827999999981,72.628860000000145],[-97.005568999999866,72.644714000000022],[-96.982223999999974,72.655258000000117],[-96.968886999999938,72.660262999999986],[-96.915558000000033,72.678588999999988],[-96.611938000000009,72.74693300000007],[-96.517501999999922,72.714706000000092],[-96.52194199999991,72.674423000000047],[-96.459731999999917,72.607758000000103],[-96.405272999999966,72.559418000000107],[-96.374709999999993,72.534424000000115],[-96.336945000000014,72.500824000000023],[-96.325561999999991,72.488312000000064],[-96.30221599999993,72.433868000000018],[-96.297501000000011,72.42164600000001],[-96.298339999999939,72.415817000000004],[-96.538605000000018,72.343323000000055],[-96.668335000000013,72.309708000000001],[-96.696945000000028,72.310531999999967],[-96.738892000000021,72.321105999999986],[-96.776397999999972,72.323318000000029],[-96.831389999999999,72.323608000000036],[-96.868332000000009,72.321930000000123],[-96.871932999999956,72.321105999999986],[-96.864440999999943,72.317764000000068],[-96.771118000000001,72.298874000000069],[-96.668883999999878,72.27915999999999],[-96.578339000000028,72.278594999999996],[-96.561110999999983,72.275543000000027],[-96.554169000000002,72.263885000000016],[-96.487212999999883,72.136108000000036],[-96.485001000000011,72.129974000000004],[-96.483062999999959,72.11303700000002],[-96.487503000000004,72.101653999999996],[-96.498336999999935,72.090270999999973],[-96.508346999999958,72.084991000000116],[-96.521117999999944,72.079987000000131],[-96.537216000000001,72.07499700000011],[-96.557220000000029,72.071930000000009],[-96.721663999999919,72.052765000000022],[-96.77305599999994,72.053040000000067],[-96.789444000000003,72.052200000000028],[-96.866942999999992,72.041091999999992],[-96.853881999999999,72.036376999999959],[-96.828888000000006,72.030822999999998],[-96.672501000000011,72.012771999999984],[-96.635009999999966,72.013885000000073],[-96.618057000000022,72.018326000000002],[-96.609160999999915,72.024155000000007],[-96.600554999999986,72.02777100000003],[-96.567779999999971,72.033600000000092],[-96.521117999999944,72.038879000000065],[-96.501953000000015,72.038589000000059],[-96.488601999999958,72.034987999999998],[-96.489990000000034,72.018326000000002],[-96.490829000000019,72.012206999999989],[-96.493056999999965,72.001098999999954],[-96.502228000000002,71.975540000000137],[-96.505843999999968,71.969711000000132],[-96.512786999999889,71.964431999999988],[-96.522506999999962,71.959152000000074],[-96.554442999999935,71.949141999999995],[-96.565552000000025,71.946930000000123],[-96.573897999999986,71.948318000000029],[-96.589447000000007,71.954437000000041],[-96.602782999999988,71.958038000000101],[-96.617492999999911,71.959991000000059],[-96.638335999999981,71.957488999999953],[-96.73332199999993,71.928863999999976],[-96.749160999999958,71.923874000000069],[-96.761947999999961,71.918594000000041],[-96.764450000000011,71.914992999999981],[-96.761397999999929,71.909714000000008],[-96.749725000000012,71.903046000000018],[-96.736389000000031,71.899429000000055],[-96.724166999999966,71.898605000000089],[-96.700835999999924,71.899994000000106],[-96.64527899999996,71.917480000000012],[-96.607223999999974,71.92692599999998],[-96.565552000000025,71.93220500000001],[-96.522781000000009,71.934418000000107],[-96.509170999999924,71.933044000000109],[-96.503890999999953,71.931656000000032],[-96.491668999999888,71.926085999999941],[-96.49110399999995,71.919434000000081],[-96.493056999999965,71.914153999999996],[-96.525832999999977,71.868866000000082],[-96.557769999999948,71.829436999999984],[-96.570846999999901,71.819442999999978],[-96.579726999999934,71.814987000000031],[-96.591949,71.810805999999957],[-96.613327000000027,71.807205000000124],[-96.726668999999958,71.793593999999928],[-96.744720000000029,71.792206000000022],[-96.738051999999982,71.824996999999996],[-96.791381999999942,71.827774000000034],[-96.983611999999994,71.775817999999958],[-97.013061999999991,71.749146000000053],[-97.084166999999923,71.700272000000098],[-97.165008999999941,71.675537000000077],[-97.210006999999962,71.663605000000075],[-97.434433000000013,71.617751999999996],[-97.470550999999944,71.612487999999985],[-97.505004999999983,71.611649],[-97.656386999999938,71.614700000000028],[-97.696655000000021,71.619705000000067],[-97.713332999999977,71.623871000000008],[-97.726395000000025,71.628310999999997],[-97.787215999999944,71.644149999999968],[-97.974715999999944,71.660812000000135],[-97.988051999999982,71.661926000000108],[-98.035277999999948,71.653320000000008],[-98.053329000000019,71.648331000000042],[-98.072784000000013,71.641663000000051],[-98.112777999999935,71.636932000000115],[-98.131103999999937,71.638046000000088],[-98.178878999999938,71.641663000000051],[-98.196654999999907,71.643600000000106],[-98.207503999999972,71.646103000000039],[-98.218063000000029,71.649719000000118],[-98.240829000000019,71.659714000000008],[-98.252791999999886,71.666091999999992],[-98.331116000000009,71.708327999999995],[-98.349166999999909,71.718597000000045],[-98.3558349999999,71.7227630000001],[-98.359725999999966,71.728043000000014],[-98.359436000000017,71.733871000000079],[-98.333327999999995,71.787490999999989],[-98.325561999999934,71.798325000000091],[-98.321395999999936,71.803314000000057],[-98.315276999999924,71.809143000000063],[-98.279174999999952,71.834717000000069],[-98.259170999999924,71.844711000000075],[-98.228881999999999,71.862198000000092],[-98.211944999999957,71.878585999999984],[-98.208617999999944,71.884430000000009],[-98.209166999999979,71.889160000000004],[-98.221938999999963,71.89498900000001],[-98.255279999999971,71.902480999999966],[-98.267226999999991,71.90415999999999],[-98.282776000000013,71.899155000000121],[-98.291381999999999,71.894714000000022],[-98.450561999999991,71.79414399999996],[-98.462508999999955,71.783874999999966],[-98.477782999999931,71.767212000000086],[-98.488892000000021,71.749419999999986],[-98.49749799999995,71.733321999999987],[-98.49749799999995,71.721649000000127],[-98.493880999999988,71.713882000000012],[-98.381377999999984,71.653594999999996],[-98.367492999999911,71.647491000000002],[-98.179992999999911,71.571930000000123],[-98.041381999999885,71.530823000000055],[-98.037506000000008,71.526657],[-98.120543999999995,71.460540999999978],[-98.180831999999953,71.423598999999967],[-98.198043999999982,71.414703000000031],[-98.466110000000015,71.313309000000061],[-98.505568999999923,71.299149000000114],[-98.541381999999942,71.289429000000041],[-98.55471799999998,71.287201000000096],[-98.701675000000023,71.271927000000005],[-98.72084000000001,71.269989000000066],[-98.729720999999927,71.270538000000045],[-98.75111400000003,71.274154999999951],[-98.816390999999953,71.289154000000053],[-98.829453000000001,71.293869000000086],[-98.844726999999978,71.305542000000116],[-98.882216999999969,71.333878000000027],[-98.938323999999852,71.369141000000013],[-98.960281000000009,71.379974000000004],[-98.978881999999999,71.382476999999994],[-98.995543999999995,71.382751000000098],[-99.014724999999942,71.381653000000028],[-99.034438999999963,71.378860000000032],[-99.042770000000019,71.374419999999986],[-99.045546999999942,71.368590999999981],[-99.051392000000021,71.363036999999963],[-99.05972300000002,71.358597000000145],[-99.077498999999989,71.353592000000106],[-99.115829000000019,71.350540000000024],[-99.220839999999896,71.342209000000082],[-99.238051999999982,71.344986000000006],[-99.288054999999872,71.402771000000087],[-99.313323999999966,71.43942300000009],[-99.462783999999942,71.59304800000001],[-99.529723999999987,71.605255],[-99.558608999999876,71.613037000000134],[-99.574172999999973,71.619705000000067],[-99.578888000000006,71.622757000000036],[-99.591675000000009,71.635268999999994],[-99.676392000000021,71.72526600000009],[-99.677779999999927,71.729156000000046],[-99.677215999999987,71.736923000000047],[-99.674437999999896,71.742752000000053],[-99.673049999999989,71.749146000000053],[-99.673889000000031,71.753876000000105],[-99.676392000000021,71.758605999999986],[-99.678328999999962,71.760544000000095],[-99.842223999999987,71.834991000000002],[-99.959166999999979,71.854155999999932],[-99.977218999999991,71.855819999999937],[-100.05110200000001,71.865814],[-100.067497,71.870529000000033],[-100.10193599999997,71.884720000000016],[-100.31471299999993,71.979979999999955],[-100.32195299999989,71.984985000000052],[-100.33222999999998,71.997208000000057],[-100.33583099999993,72.006653000000142],[-100.579453,72.154434000000037],[-100.63445299999995,72.18553200000008],[-100.64417300000002,72.188308999999947],[-100.72000099999997,72.201660000000118],[-100.88527699999997,72.207764000000111],[-100.88999899999988,72.207489000000123],[-100.92388900000003,72.199416999999983],[-100.95140099999992,72.171097000000145],[-100.96777299999997,72.174149000000057],[-101.01334399999996,72.191086000000041],[-101.02084400000001,72.196365000000014],[-101.054169,72.231658999999922],[-101.05555700000002,72.236649],[-101.11776700000001,72.284424000000001],[-101.19444299999998,72.324432000000002],[-101.20861799999994,72.329712000000086],[-101.220551,72.332214000000135],[-101.23889200000002,72.33387799999997],[-101.27667200000002,72.328323000000069],[-101.32528699999995,72.314986999999974],[-101.395554,72.286926000000051],[-101.40416699999997,72.281372000000033],[-101.40972899999986,72.275543000000027],[-101.46945199999999,72.265549000000021],[-101.50917099999998,72.283051000000057],[-101.58556399999998,72.301376000000005],[-101.63474299999996,72.306931000000077],[-101.65638699999994,72.305252000000053],[-101.66416900000002,72.301650999999993],[-101.672234,72.292755000000056],[-101.68499799999989,72.28776600000009],[-101.69444299999986,72.288040000000024],[-101.77694700000001,72.299713000000054],[-101.83056599999992,72.319153000000028],[-101.84472699999992,72.324432000000002],[-101.88834399999996,72.358597000000145],[-101.94167299999987,72.451935000000049],[-101.98131599999999,72.478111000000126],[-102.08033799999993,72.516006000000118],[-102.22222899999991,72.542206000000078],[-102.25862100000001,72.549149000000057],[-102.37721299999998,72.577484000000084],[-102.46584299999995,72.604706000000022],[-102.6219329999999,72.664703000000145],[-102.73638899999992,72.719986000000006],[-102.74166899999989,72.724152000000061],[-102.75583599999993,72.761383000000023],[-102.76471699999996,72.784987999999998],[-102.76306199999999,72.790817000000004],[-102.75306699999999,72.811096000000134],[-102.74944299999999,72.817214999999976],[-102.74305699999996,72.82249500000006],[-102.73500100000001,72.826096000000121],[-102.69860799999992,72.836654999999951],[-102.66361999999992,72.853316999999947],[-102.64666699999992,72.864426000000037],[-102.61277799999993,72.896652000000131],[-102.59722899999991,72.913605000000018],[-102.59361299999995,72.919983000000002],[-102.59166699999997,72.925536999999963],[-102.59306300000003,72.931656000000032],[-102.59416199999998,72.942748999999992],[-102.593887,72.949141999999995],[-102.59166699999997,72.954987000000074],[-102.576683,72.979706000000022],[-102.56304899999998,72.991089000000045],[-102.51306199999993,73.026093000000117],[-102.50110599999994,73.030548000000124],[-102.38806199999999,73.062759000000028],[-102.36805699999996,73.067490000000134],[-102.27610800000002,73.08248900000001],[-102.24694799999997,73.083878000000027],[-102.13722199999989,73.086929000000055],[-102.08444199999985,73.084152000000131],[-102.014183,73.079711999999915],[-101.97083999999995,73.070540999999992],[-101.88417099999992,73.024704000000099],[-101.81777999999991,72.966660000000104],[-101.810272,72.960541000000035],[-101.75527999999997,72.930542000000059],[-101.74109599999991,72.924149000000057],[-101.67527799999999,72.909714000000122],[-101.59528399999994,72.902205999999921],[-101.52166699999998,72.87831100000011],[-101.50974299999996,72.871642999999949],[-101.40444899999989,72.782486000000119],[-101.41332999999997,72.748322000000087],[-101.37249800000001,72.727203000000088],[-101.36665299999999,72.725266000000033],[-101.29750099999995,72.709991000000059],[-101.03333299999997,72.689697000000137],[-100.91583299999996,72.688034000000016],[-100.88221699999991,72.689697000000137],[-100.82778899999994,72.705826000000059],[-100.81945799999994,72.710266000000104],[-100.81220999999994,72.715545999999961],[-100.81194299999999,72.719710999999961],[-100.79833999999994,72.743590999999981],[-100.70722999999998,72.755829000000006],[-100.53307299999994,72.751389000000017],[-100.50917099999992,72.749146000000053],[-100.49833699999994,72.74803200000008],[-100.47582999999997,72.742751999999996],[-100.44803599999995,72.735535000000084],[-100.43443300000001,72.73692299999999],[-100.41221599999994,72.74192800000003],[-100.34973100000002,72.770538000000101],[-100.34084300000001,72.774993999999992],[-100.33168000000001,72.78054800000001],[-100.314438,72.796371000000022],[-100.31555199999997,72.801376000000062],[-100.35077699999994,72.851326000000086],[-100.35160799999994,72.853660999999988],[-100.35711699999996,72.859154000000103],[-100.46916199999998,72.950272000000041],[-100.48638899999992,72.949141999999995],[-100.49889399999995,72.950546000000145],[-100.49973299999999,72.95637499999998],[-100.46305799999993,73.014709000000039],[-100.45194999999995,73.020538000000045],[-100.421944,73.034987999999942],[-100.36776700000001,73.046936000000017],[-100.35637700000001,73.049423000000047],[-100.34221600000001,73.044144000000074],[-100.31667299999992,73.034149000000014],[-100.30943299999996,73.028046000000074],[-100.31555199999997,73.022490999999945],[-100.34306300000003,73.013885000000073],[-100.3577729999999,73.010544000000039],[-100.38137799999998,72.949141999999995],[-100.32899499999991,72.891372999999987],[-100.31732899999992,72.888869999999997],[-100.28527800000001,72.873596000000077],[-100.21721599999995,72.876647999999989],[-100.196663,72.877762000000018],[-100.09638999999993,72.88638300000008],[-100.06722999999994,72.902205999999921],[-100.031387,72.934982000000048],[-100.04750099999995,72.957214000000135],[-100.11277799999999,73.025818000000072],[-100.16972399999992,73.078598000000113],[-100.23222399999997,73.134430000000123],[-100.24445299999996,73.136932000000002],[-100.25446299999999,73.137206999999989],[-100.28888699999993,73.135818000000029],[-100.32362399999994,73.133331000000112],[-100.345551,73.130264000000011],[-100.38249200000001,73.122757000000092],[-100.39138799999995,73.118317000000047],[-100.41443600000002,73.104706000000078],[-100.44275699999997,73.087204000000042],[-100.51862299999993,73.0977630000001],[-100.58667000000003,73.132751000000098],[-100.60193599999997,73.140823000000069],[-100.60777300000001,73.146378000000141],[-100.58612099999999,73.167480000000126],[-100.58000199999987,73.173035000000027],[-100.49082900000002,73.230819999999937],[-100.40666199999987,73.280273000000079],[-100.39778100000001,73.284713999999951],[-100.37832600000002,73.289978000000133],[-100.36110699999995,73.290267999999969],[-100.28138699999994,73.27915999999999],[-100.1347429999999,73.221100000000035],[-100.05332899999996,73.186371000000008],[-100.03751399999999,73.183868000000018],[-100.021118,73.183044000000052],[-100.00418099999996,73.183319000000097],[-99.841110000000015,73.191360000000145],[-99.801666000000012,73.195526000000029],[-99.771666999999979,73.201096000000121],[-99.77027899999996,73.203873000000044],[-99.771666999999979,73.208038000000045],[-99.786391999999921,73.212493999999936],[-99.811934999999949,73.215546000000074],[-99.84944200000001,73.21527100000003],[-99.886123999999995,73.213318000000072],[-99.925827000000027,73.214996000000042],[-99.945267000000001,73.216660000000047],[-99.96444699999995,73.219436999999971],[-100.07749899999999,73.251389000000074],[-100.09500100000002,73.257217000000026],[-100.15915699999994,73.289428999999984],[-100.19943199999994,73.31860400000005],[-100.27223199999992,73.358597000000088],[-100.32362399999994,73.3836060000001],[-100.33332799999994,73.388321000000133],[-100.358047,73.393326000000002],[-100.37389399999995,73.395828000000051],[-100.38417099999987,73.396378000000084],[-100.38806199999993,73.395538000000045],[-100.4058379999999,73.361374000000012],[-100.387787,73.338593000000003],[-100.56166099999996,73.286652000000117],[-100.583618,73.283599999999979],[-100.823059,73.260818000000086],[-100.84056099999992,73.259720000000016],[-100.88945000000001,73.264435000000049],[-100.97749299999998,73.280273000000079],[-101.30499299999991,73.361649000000057],[-101.31276700000001,73.371094000000085],[-101.31139400000001,73.382751000000042],[-101.31054699999999,73.392487000000017],[-101.31139400000001,73.398331000000042],[-101.31723,73.401657000000057],[-101.47055099999994,73.436096000000134],[-101.55832700000002,73.446640000000002],[-101.58084099999996,73.450272000000098],[-101.61665299999993,73.485260000000096],[-101.62138400000003,73.490265000000136],[-101.44055200000003,73.549149000000057],[-101.42748999999992,73.552200000000084],[-101.40083299999992,73.553589000000045],[-101.31582599999996,73.550811999999951],[-101.2808379999999,73.552475000000072],[-101.26888999999994,73.556090999999924],[-101.25974300000001,73.561646000000053],[-101.25527999999997,73.567763999999954],[-101.25222799999995,73.578873000000044],[-101.25306699999993,73.584991000000002],[-101.25110599999994,73.589706000000035],[-101.24194299999994,73.595261000000107],[-101.23082699999998,73.600266000000147],[-101.21721600000001,73.604155999999932],[-101.199432,73.60554500000012],[-100.92639200000002,73.600266000000147],[-100.90943900000002,73.599716000000114],[-100.890289,73.596100000000092],[-100.87748699999997,73.59027100000003],[-100.77084400000001,73.539978000000076],[-100.71749899999992,73.509155000000078],[-100.70667299999997,73.499420000000043],[-100.70221699999996,73.494431000000077],[-100.70140100000003,73.488585999999941],[-100.69721999999996,73.482483000000002],[-100.69110099999995,73.476929000000041],[-100.67278299999998,73.464432000000045],[-100.51834099999996,73.416930999999977],[-100.49973299999999,73.412490999999932],[-100.46472199999988,73.407211000000075],[-100.44444299999992,73.40637200000009],[-100.43055700000002,73.406936999999971],[-100.41722099999998,73.413315000000068],[-100.41500899999994,73.41804500000012],[-100.42971799999998,73.430267000000072],[-100.45500199999998,73.441924999999969],[-100.484734,73.451935000000049],[-100.50279199999989,73.45748900000001],[-100.531387,73.466094999999939],[-100.58389299999993,73.482208000000014],[-100.59221599999995,73.486374000000069],[-100.59861799999999,73.491089000000102],[-100.60611,73.497207999999944],[-100.61000099999995,73.503052000000139],[-100.610817,73.509155000000078],[-100.60804699999994,73.514999000000103],[-100.60388199999994,73.521102999999982],[-100.55915799999997,73.546097000000088],[-100.54387700000001,73.556366000000139],[-100.541382,73.562194999999974],[-100.54277000000002,73.573883000000023],[-100.54998799999993,73.594711000000075],[-100.55166600000001,73.598876999999959],[-100.573624,73.596649000000014],[-100.628601,73.593322999999998],[-100.76750199999998,73.603867000000037],[-100.89167799999996,73.619980000000055],[-100.91139199999998,73.622756999999979],[-100.91194200000001,73.625259000000028],[-100.91139199999998,73.630539000000113],[-100.87943999999999,73.635818000000086],[-100.86472300000003,73.641662999999994],[-100.86110699999995,73.645827999999995],[-100.85360699999995,73.662201000000039],[-100.858047,73.667205999999908],[-100.97444199999995,73.679153000000042],[-100.99194299999999,73.678863999999976],[-101.03333299999997,73.671371000000136],[-101.04695099999998,73.673035000000141],[-101.057503,73.676650999999993],[-101.11833199999995,73.723312000000021],[-101.120003,73.727203000000088],[-101.01390100000003,73.797211000000061],[-100.99749799999989,73.802475000000015],[-100.98222399999997,73.80581699999999],[-100.95973199999997,73.809143000000006],[-100.93804899999998,73.810256999999979],[-100.82861300000002,73.815536000000122],[-100.79527300000001,73.812484999999924],[-100.77583300000003,73.812195000000088],[-100.754997,73.812484999999924],[-100.73416099999997,73.815262000000018],[-100.71444700000001,73.820267000000058],[-100.69915800000001,73.826096000000064],[-100.66416900000002,73.844986000000063],[-100.64835399999993,73.848327999999981],[-100.554169,73.854705999999965],[-100.52999899999998,73.853591999999935],[-100.41777000000002,73.845534999999984],[-100.39555399999995,73.840820000000122],[-100.38945000000001,73.83859300000006],[-100.370003,73.828049000000021],[-100.34999099999993,73.818603999999993],[-100.33612099999993,73.814697000000024],[-100.06304899999998,73.764999000000046],[-99.865828999999962,73.837769000000094],[-99.857773000000009,73.84275800000006],[-99.870109999999954,73.861541999999986],[-99.869109999999921,73.867370999999991],[-99.869780999999932,73.870201000000009],[-99.877105999999912,73.876541000000032],[-99.886771999999951,73.8822100000001],[-99.892440999999963,73.883536999999933],[-99.961944999999957,73.873306000000071],[-99.971663999999976,73.868042000000059],[-99.988051999999925,73.856934000000081],[-99.990829000000019,73.851089000000002],[-99.997498000000007,73.845534999999984],[-100.00834699999996,73.841369999999984],[-100.02639799999997,73.836929000000055],[-100.04943800000001,73.832764000000054],[-100.13667299999997,73.827484000000027],[-100.175003,73.828049000000021],[-100.24944299999993,73.833878000000027],[-100.26139799999993,73.838318000000072],[-100.29972799999996,73.860260000000096],[-100.29695100000004,73.865814000000114],[-100.29222099999993,73.872208000000001],[-100.27860999999996,73.888596000000007],[-100.26583900000003,73.899994000000049],[-100.252792,73.905258000000003],[-100.24305700000002,73.907486000000006],[-100.14306599999992,73.929977000000008],[-100.12721299999993,73.933319000000097],[-100.104446,73.936371000000008],[-100.03751399999999,73.942473999999947],[-99.981109999999944,73.945816000000093],[-99.938599000000011,73.946091000000081],[-99.896956999999986,73.944138000000009],[-99.856109999999887,73.940811000000053],[-99.816100999999946,73.93609600000002],[-99.800827000000027,73.931655999999975],[-99.800551999999925,73.925812000000008],[-99.813323999999966,73.921371000000079],[-99.806220999999937,73.902100000000019],[-99.810058999999967,73.898766000000023],[-99.810889999999972,73.894928000000107],[-99.808227999999986,73.891937000000041],[-99.804557999999929,73.889099000000101]],[[-89.988892000000021,73.988312000000121],[-90.007781999999963,73.984984999999995],[-90.058043999999938,73.992477000000122],[-90.158614999999998,74.001389000000131],[-90.217772999999966,74.004439999999988],[-90.250290000000007,74.00999500000006],[-90.265015000000005,74.014708999999982],[-90.281112999999891,74.02165199999996],[-90.284728999999913,74.024994000000106],[-90.285003999999958,74.029709000000139],[-90.276397999999858,74.038589000000002],[-90.271117999999944,74.043320000000108],[-90.240554999999972,74.053863999999976],[-90.206115999999952,74.057755000000043],[-89.991942999999935,74.066665999999998],[-89.97193900000002,74.064697000000137],[-89.941375999999991,74.057479999999998],[-89.914443999999946,74.047485000000108],[-89.90194699999995,74.03776600000009],[-89.903885000000002,74.03137200000009],[-89.918609999999944,74.010543999999982],[-89.928329000000019,74.005554000000132],[-89.988892000000021,73.988312000000121]],[[-98.918610000000001,73.806091000000094],[-98.96166999999997,73.80525200000011],[-99.104172000000005,73.81442300000009],[-99.140838999999914,73.818054000000132],[-99.36361699999992,73.864426000000037],[-99.381942999999922,73.86914100000007],[-99.429717999999923,73.891662999999937],[-99.437499999999943,73.89694199999991],[-99.43638599999997,73.902206000000092],[-99.429717999999923,73.908035000000098],[-99.422501000000011,73.911102000000028],[-99.406113000000005,73.915267999999912],[-99.282500999999968,73.936919999999986],[-99.223891999999978,73.940262000000075],[-99.092772999999909,73.952209000000039],[-99.020279000000016,73.979706000000022],[-98.938048999999921,73.998596000000134],[-98.801666000000012,74.018051000000128],[-98.66194200000001,74.03137200000009],[-98.575835999999981,74.03137200000009],[-98.532501000000025,74.032211000000018],[-98.491942999999935,74.034148999999957],[-98.425277999999992,74.043869000000029],[-98.3558349999999,74.057479999999998],[-98.275832999999921,74.07388300000008],[-98.255004999999926,74.078598000000113],[-98.230285999999978,74.083327999999938],[-98.170836999999949,74.09248400000007],[-98.039992999999981,74.105820000000051],[-97.994445999999925,74.109421000000111],[-97.806106999999884,74.11943100000002],[-97.758346999999958,74.118590999999981],[-97.737212999999997,74.117477000000008],[-97.703613000000018,74.113876000000118],[-97.690826000000015,74.111374000000069],[-97.653609999999958,74.099991000000045],[-97.64805599999994,74.0977630000001],[-97.642226999999934,74.087204000000042],[-97.637787000000003,74.075546000000031],[-97.638335999999981,74.063873000000001],[-97.649444999999957,74.052474999999959],[-97.656661999999983,74.04693599999996],[-97.673324999999863,74.035537999999974],[-97.717223999999987,74.009720000000016],[-97.728058000000033,74.004166000000055],[-97.763625999999931,73.988312000000121],[-97.823058999999887,73.968597000000102],[-98.124161000000015,73.878586000000098],[-98.145003999999915,73.873596000000077],[-98.168334999999956,73.870818999999983],[-98.392776000000026,73.84526100000005],[-98.478881999999999,73.837494000000106],[-98.777221999999995,73.813599000000124],[-98.918610000000001,73.806091000000094]],[[-92.638061999999877,74.103043000000127],[-92.36860699999994,74.041091999999992],[-92.356948999999986,74.038040000000024],[-92.33444199999991,74.03137200000009],[-92.31138599999997,74.02165199999996],[-92.296951000000035,74.014435000000049],[-92.289444000000003,74.009155000000021],[-92.282775999999956,74.003325999999959],[-92.273620999999991,73.990540000000067],[-92.272781000000009,73.984421000000054],[-92.28195199999999,73.974990999999989],[-92.291107000000011,73.969711000000075],[-92.310546999999929,73.961104999999975],[-92.327788999999939,73.951385000000073],[-92.330001999999979,73.945526000000086],[-92.329726999999991,73.942473999999947],[-92.309433000000013,73.940811000000053],[-92.1324919999999,73.946365000000014],[-92.118606999999997,73.949142000000109],[-92.116652999999985,73.95109599999995],[-92.113327000000027,73.95637499999998],[-92.110000999999897,73.964706000000035],[-92.113051999999982,73.974426000000108],[-92.114440999999999,73.976654000000053],[-92.113051999999982,73.981368999999916],[-92.107773000000009,73.984711000000061],[-92.094161999999983,73.989151000000049],[-91.925551999999982,74.012771999999927],[-91.877212999999983,74.016936999999928],[-91.838332999999977,74.018875000000094],[-91.570847000000015,74.025818000000072],[-91.528335999999911,74.024429000000055],[-91.139998999999932,74.00999500000006],[-91.097504000000015,74.008331000000055],[-91.065001999999993,74.006103999999993],[-91.046951000000035,74.004166000000055],[-90.735549999999932,73.968322999999998],[-90.660003999999958,73.953873000000044],[-90.633056999999951,73.948317999999972],[-90.441375999999934,73.919708000000128],[-90.406661999999983,73.914703000000088],[-90.364440999999999,73.911652000000061],[-90.354720999999984,73.912201000000039],[-90.344955000000027,73.914368000000081],[-90.341674999999952,73.917206000000078],[-90.339721999999938,73.920532000000094],[-90.341110000000015,73.924149000000057],[-90.33555599999994,73.925812000000008],[-90.317779999999971,73.925261999999975],[-90.225006000000008,73.908599999999979],[-90.195830999999998,73.901931999999988],[-90.194442999999922,73.899719000000005],[-90.204178000000013,73.888321000000019],[-90.230285999999978,73.862198000000035],[-90.241942999999992,73.851929000000041],[-90.25140399999998,73.846649000000127],[-90.264450000000011,73.84165999999999],[-90.275283999999942,73.83859300000006],[-90.283066000000019,73.838318000000072],[-90.360000999999954,73.800812000000121],[-90.474716000000001,73.72164900000007],[-90.581389999999999,73.65776100000005],[-90.724715999999944,73.583054000000118],[-90.84973100000002,73.540268000000083],[-90.921386999999925,73.495255000000043],[-90.930283000000031,73.483871000000079],[-90.932219999999973,73.481934000000081],[-91.089172000000019,73.384155000000021],[-91.152221999999995,73.361099000000024],[-91.171386999999982,73.351089000000059],[-91.180557000000022,73.345825000000104],[-91.186385999999914,73.340271000000087],[-91.238602000000014,73.279984000000127],[-91.253066999999874,73.269150000000081],[-91.262222000000008,73.263885000000016],[-91.367767000000015,73.200821000000133],[-91.569457999999997,73.063309000000061],[-91.642776000000026,73.021103000000039],[-91.647506999999962,73.016663000000051],[-91.645003999999972,72.998032000000023],[-91.770844000000011,72.913040000000024],[-91.799727999999959,72.897216999999955],[-91.808333999999888,72.891937000000098],[-91.812774999999988,72.885818000000086],[-91.813048999999921,72.880264000000068],[-91.81138599999997,72.868042000000116],[-91.818893000000003,72.862198000000092],[-91.84973100000002,72.846100000000035],[-92.06610099999989,72.752487000000087],[-92.095839999999896,72.743042000000003],[-92.127486999999917,72.734421000000111],[-92.166396999999961,72.725539999999967],[-92.232223999999974,72.713043000000027],[-92.274718999999891,72.70748900000001],[-92.314437999999996,72.704987000000131],[-92.335280999999952,72.704437000000098],[-92.393340999999907,72.707213999999965],[-92.431106999999997,72.710541000000092],[-92.524719000000005,72.720534999999927],[-92.745269999999891,72.739975000000129],[-92.898346000000004,72.750275000000045],[-93.077498999999875,72.769439999999975],[-93.248885999999914,72.789703000000031],[-93.337783999999999,72.8077550000001],[-93.349166999999852,72.802475000000072],[-93.366652999999985,72.797760000000039],[-93.391952999999944,72.794144000000131],[-93.412216000000001,72.792206000000022],[-93.580001999999922,72.778046000000074],[-93.679992999999911,72.779709000000025],[-93.726104999999905,72.781097000000102],[-93.764450000000011,72.781372000000147],[-93.932769999999948,72.774155000000007],[-94.038604999999961,72.766388000000063],[-94.099166999999966,72.764160000000118],[-94.132492000000013,72.764709000000039],[-94.170546999999942,72.767487000000074],[-94.18249499999996,72.769439999999975],[-94.24610899999999,72.77388000000002],[-94.262786999999889,72.774155000000007],[-94.298049999999989,72.770263999999941],[-94.315552000000025,72.763046000000145],[-94.321944999999971,72.759430000000066],[-94.327498999999989,72.754440000000045],[-94.334441999999967,72.738036999999963],[-94.332779000000016,72.731934000000024],[-94.327498999999989,72.721649000000127],[-94.319457999999997,72.717484000000127],[-94.3125,72.715545999999961],[-94.297501000000011,72.713318000000015],[-94.26916499999993,72.719147000000021],[-94.265288999999939,72.723877000000073],[-94.263901000000033,72.729980000000012],[-94.258346999999958,72.732483000000002],[-94.236388999999917,72.734985000000052],[-94.160278000000005,72.729431000000034],[-94.103606999999897,72.718596999999988],[-94.09333799999996,72.714995999999928],[-94.001403999999923,72.704162999999994],[-93.985000999999954,72.70387299999993],[-93.886672999999973,72.704712000000086],[-93.839447000000007,72.717209000000082],[-93.798339999999996,72.702208999999925],[-93.823058999999887,72.653046000000018],[-93.817229999999938,72.642211999999972],[-93.801665999999955,72.634430000000009],[-93.786117999999931,72.629149999999981],[-93.76945499999988,72.624984999999981],[-93.75778200000002,72.623032000000023],[-93.686660999999901,72.622208000000057],[-93.674438000000009,72.618866000000082],[-93.589721999999995,72.58137499999998],[-93.568619000000012,72.570831000000112],[-93.49888599999997,72.521927000000119],[-93.463333000000034,72.462204000000099],[-93.466110000000015,72.451385000000016],[-93.46945199999999,72.439697000000024],[-93.628052000000025,72.341934000000037],[-93.64527899999996,72.337204000000042],[-93.666397000000018,72.333602999999982],[-93.688323999999909,72.331099999999992],[-93.748610999999983,72.329712000000086],[-93.767226999999991,72.327209000000096],[-93.787216000000001,72.322769000000108],[-93.801392000000021,72.317764000000068],[-93.819732999999928,72.30720500000001],[-93.827498999999989,72.301926000000037],[-93.913329999999974,72.241652999999928],[-93.925277999999935,72.233047000000056],[-94.014175000000023,72.163879000000122],[-94.036666999999852,72.142212000000086],[-94.040282999999988,72.137497000000053],[-94.043610000000001,72.131363000000022],[-94.045546999999885,72.126922999999977],[-94.044723999999974,72.115814000000114],[-94.042220999999927,72.106644000000074],[-94.043883999999935,72.096939000000134],[-94.048339999999939,72.091094999999939],[-94.054717999999923,72.085265999999933],[-94.066665999999941,72.076660000000004],[-94.080840999999964,72.066939999999931],[-94.091675000000009,72.061645999999996],[-94.127685999999926,72.056366000000082],[-94.143341000000021,72.057480000000055],[-94.172500999999954,72.0577550000001],[-94.186660999999958,72.055816999999934],[-94.198883000000023,72.052765000000022],[-94.188720999999987,72.045258000000103],[-94.19505300000003,72.042091000000084],[-94.198387000000025,72.03910100000013],[-94.199546999999995,72.036438000000032],[-94.196053000000006,72.032432999999969],[-94.188384999999982,72.030930000000126],[-94.172042999999917,72.029594000000088],[-94.149886999999921,72.029433999999981],[-94.137382999999886,72.031769000000111],[-94.130554000000018,72.033104000000037],[-94.125214000000028,72.035095000000126],[-94.091385000000002,72.037766000000147],[-94.06082200000003,72.035262999999986],[-94.029723999999931,71.999419999999986],[-94.063048999999921,71.978317000000061],[-94.082229999999981,71.976089000000115],[-94.191719000000035,71.994316000000083],[-94.353881999999942,72.018050999999957],[-94.371933000000013,72.019440000000145],[-94.418059999999912,72.02276599999999],[-94.449721999999952,72.023315000000139],[-94.743880999999931,72.011383000000023],[-94.780288999999982,72.006103999999993],[-94.825561999999991,71.997481999999991],[-94.902221999999881,71.989151000000106],[-95.121932999999956,71.966095000000053],[-95.161117999999931,71.964706000000092],[-95.17582699999997,71.966934000000037],[-95.20777899999996,71.988876000000118],[-95.213333000000034,71.99443100000002],[-95.206664999999987,72.097488000000112],[-95.204453000000001,72.102767999999969],[-95.196654999999964,72.106644000000074],[-95.039444000000003,72.131363000000022],[-94.981673999999998,72.139434999999992],[-94.929717999999923,72.143599999999992],[-94.899993999999992,72.144440000000031],[-94.868057000000022,72.145538000000101],[-94.752228000000002,72.153320000000065],[-94.760833999999932,72.15498400000007],[-94.80610699999994,72.15914900000007],[-94.839171999999905,72.158599999999979],[-94.961394999999982,72.155258000000003],[-95.027495999999985,72.14498900000001],[-95.12110899999999,72.136658000000068],[-95.139998999999932,72.135544000000095],[-95.158889999999985,72.135818000000029],[-95.171111999999937,72.139159999999947],[-95.206664999999987,72.180817000000047],[-95.211670000000026,72.187194999999974],[-95.213622999999984,72.193313999999987],[-95.214721999999938,72.200271999999984],[-95.214721999999938,72.20526099999995],[-95.203887999999893,72.221924000000058],[-95.191375999999991,72.2452550000001],[-95.171111999999937,72.283324999999991],[-95.133330999999885,72.46026599999999],[-95.200287000000003,72.524428999999998],[-95.226394999999968,72.53166200000004],[-95.283065999999906,72.535538000000088],[-95.316100999999946,72.539703000000088],[-95.321395999999993,72.546097000000145],[-95.344451999999933,72.58137499999998],[-95.346664000000033,72.587493999999992],[-95.345551,72.593322999999998],[-95.331679999999949,72.598328000000038],[-95.313323999999966,72.601089000000059],[-95.315826000000015,72.606368999999916],[-95.355559999999969,72.637771999999984],[-95.364440999999886,72.643326000000116],[-95.458617999999944,72.68220500000001],[-95.475554999999986,72.686371000000122],[-95.492766999999901,72.688034000000016],[-95.50556899999998,72.686371000000122],[-95.52555799999999,72.681656000000089],[-95.535827999999924,72.681366000000025],[-95.548614999999927,72.68220500000001],[-95.576110999999969,72.689971999999955],[-95.590560999999923,72.695525999999973],[-95.602218999999934,72.702208999999925],[-95.666106999999897,72.801376000000062],[-95.673614999999984,72.813873000000058],[-95.675551999999982,72.82499700000011],[-95.675277999999935,72.841094999999996],[-95.671936000000017,72.852478000000019],[-95.653885000000002,72.876923000000033],[-95.645844000000011,72.91276600000009],[-95.655563000000029,73.019989000000066],[-95.683318999999983,73.075821000000019],[-95.582503999999972,73.127762000000132],[-95.575012000000015,73.164993000000095],[-95.600540000000024,73.283905000000004],[-95.650832999999977,73.325272000000041],[-95.646666999999979,73.330826000000059],[-95.613616999999977,73.342758000000003],[-95.623610999999983,73.361099000000024],[-95.653610000000015,73.412490999999932],[-95.681670999999994,73.444138000000066],[-95.683884000000035,73.450272000000098],[-95.700287000000003,73.55386400000009],[-95.668364999999937,73.581787000000077],[-95.612563999999963,73.610976999999991],[-95.656059000000027,73.631866000000116],[-95.676085999999998,73.665061999999978],[-95.681945999999982,73.711928999999998],[-95.673049999999989,73.723312000000021],[-95.658889999999985,73.732482999999945],[-95.645844000000011,73.735535000000084],[-95.450835999999981,73.771103000000096],[-95.428329000000019,73.77276599999999],[-95.299727999999959,73.771103000000096],[-95.283614999999941,73.769149999999968],[-95.266402999999912,73.764160000000118],[-95.236938000000009,73.752212999999983],[-95.160278000000005,73.713042999999971],[-95.154723999999987,73.706940000000031],[-95.138335999999924,73.700821000000019],[-95.106948999999986,73.691925000000083],[-95.076401000000033,73.683318999999983],[-95.024170000000026,73.671646000000123],[-94.95666499999993,73.659149000000127],[-94.890563999999927,73.649155000000121],[-94.845550999999944,73.644150000000081],[-94.828613000000018,73.643051000000071],[-94.812209999999993,73.643326000000116],[-94.652221999999995,73.648605000000089],[-94.634170999999924,73.649429000000055],[-94.618056999999908,73.651382000000012],[-94.619155999999975,73.654434000000094],[-94.638061999999991,73.665817000000118],[-94.649445000000014,73.670821999999987],[-94.676392000000021,73.676650999999993],[-94.732773000000009,73.681366000000025],[-94.773055999999997,73.679977000000008],[-94.81471299999987,73.680817000000104],[-94.866104000000007,73.687195000000031],[-94.883330999999998,73.692200000000071],[-95.075561999999877,73.773315000000139],[-95.089172000000019,73.783325000000048],[-95.111937999999952,73.801086000000055],[-95.11610399999995,73.806641000000127],[-95.108046999999999,73.812195000000088],[-95.070847000000015,73.822768999999994],[-95.036666999999909,73.829436999999928],[-95.00556899999998,73.832489000000066],[-94.976668999999958,73.831100000000049],[-94.958054000000004,73.831940000000088],[-94.963332999999977,73.838318000000072],[-94.982497999999964,73.845534999999984],[-95.005004999999983,73.852767999999969],[-95.024445000000014,73.855255000000056],[-95.045546999999942,73.855545000000063],[-95.076675000000023,73.852477999999962],[-95.109160999999972,73.843597000000045],[-95.116393999999957,73.839157],[-95.127212999999927,73.825821000000076],[-95.136123999999938,73.823608000000092],[-95.154174999999952,73.823608000000092],[-95.263061999999991,73.862762000000032],[-95.304169000000002,73.8808140000001],[-95.311385999999914,73.885269000000108],[-95.323333999999932,73.89694199999991],[-95.327788999999882,73.90914900000007],[-95.329726999999991,73.919982999999945],[-95.326110999999969,73.944138000000009],[-95.324721999999952,73.952484000000084],[-95.319167999999877,73.964157000000114],[-95.298339999999996,73.980819999999994],[-95.245270000000005,74.010268999999994],[-95.227782999999988,74.014160000000061],[-95.220001000000025,74.014708999999982],[-95.192489999999964,74.008881000000088],[-95.174438000000009,74.008881000000088],[-95.040833000000021,74.026382000000012],[-94.90695199999999,74.047485000000108],[-94.850280999999995,74.058868000000132],[-94.80610699999994,74.068054000000075],[-94.787506000000008,74.072769000000108],[-94.755279999999914,74.087204000000042],[-94.745833999999945,74.092209000000082],[-94.732223999999974,74.095260999999994],[-94.618332000000009,74.090271000000143],[-94.460281000000009,74.094437000000028],[-94.436934999999949,74.095824999999934],[-94.42721599999993,74.100815000000011],[-94.421111999999994,74.105820000000051],[-94.412780999999995,74.115265000000136],[-94.406112999999948,74.118865999999969],[-94.392226999999991,74.121918000000107],[-94.217498999999975,74.131652999999972],[-94.177779999999927,74.1336060000001],[-94.093063000000029,74.136383000000023],[-93.992492999999911,74.138596000000007],[-93.951950000000011,74.138885000000073],[-93.914169000000015,74.136107999999979],[-93.90194699999995,74.133331000000112],[-93.758346999999958,74.096939000000134],[-93.761397999999986,74.129150000000038],[-93.759445000000028,74.139160000000118],[-93.754456000000005,74.144714000000079],[-93.730835000000013,74.154160000000047],[-93.690551999999968,74.162200999999982],[-93.641112999999962,74.167754999999943],[-93.583617999999888,74.170822000000044],[-93.515015000000005,74.173035000000027],[-93.431670999999994,74.172211000000061],[-93.327498999999989,74.169983000000116],[-93.243880999999988,74.164993000000038],[-93.028885000000002,74.149993999999992],[-92.979445999999996,74.145828000000108],[-92.796386999999982,74.124985000000038],[-92.638061999999877,74.103043000000127]],[[-98.657226999999978,74.29942299999999],[-98.746947999999975,74.298035000000084],[-98.810271999999941,74.298325000000091],[-98.831679999999949,74.299149000000057],[-98.859436000000017,74.301376000000118],[-98.86221299999994,74.302475000000129],[-98.864715999999987,74.304703000000075],[-98.863051999999982,74.307479999999998],[-98.857223999999974,74.311371000000065],[-98.752501999999936,74.334152000000074],[-98.718338000000017,74.336655000000007],[-98.630829000000006,74.34248400000007],[-98.616652999999985,74.341934000000037],[-98.585830999999985,74.338593000000003],[-98.573623999999938,74.334991000000002],[-98.535278000000005,74.328873000000101],[-98.521666999999979,74.324706999999989],[-98.511123999999995,74.318329000000006],[-98.515563999999927,74.314147999999932],[-98.525009000000011,74.31053200000008],[-98.568618999999899,74.304703000000075],[-98.657226999999978,74.29942299999999]],[[-120.14998600000001,74.272491000000059],[-119.86472300000003,74.237762000000032],[-119.84528399999999,74.235809000000074],[-119.79527299999995,74.234420999999998],[-119.72501399999993,74.233871000000136],[-119.60916099999997,74.233321999999987],[-119.63971699999996,74.193039000000113],[-119.65139799999997,74.181655999999919],[-119.67250099999995,74.165817000000004],[-119.69082599999996,74.156936999999971],[-119.70249899999999,74.153046000000074],[-119.72305299999994,74.144714000000079],[-119.79415899999998,74.115265000000136],[-119.80332900000002,74.110535000000084],[-119.82417299999992,74.094711000000132],[-119.833618,74.082763999999997],[-119.83612099999999,74.075821000000019],[-119.83277900000002,74.064147999999989],[-119.82721699999991,74.05914300000012],[-119.77916699999997,74.033875000000023],[-119.76806599999986,74.030273000000079],[-119.74481199999997,74.025513000000046],[-119.72860699999995,74.02915999999999],[-119.72609699999992,74.035812000000078],[-119.72638699999993,74.041931000000091],[-119.73777799999999,74.058029000000147],[-119.650284,74.118590999999981],[-119.51000999999991,74.209152000000017],[-119.50083899999998,74.213882000000012],[-119.48916599999995,74.217483999999956],[-119.46528599999994,74.221100000000035],[-119.44972199999995,74.221924000000001],[-119.25723299999999,74.218323000000112],[-119.18472300000002,74.216933999999924],[-119.16528299999987,74.214995999999985],[-119.14862099999999,74.212204000000099],[-119.137787,74.208603000000039],[-119.12110899999993,74.199707000000103],[-119.11554699999999,74.194977000000051],[-119.10193600000002,74.179428000000144],[-119.09638999999999,74.168319999999994],[-119.09084300000001,74.156936999999971],[-119.07055700000001,74.114700000000084],[-119.06527699999998,74.103317000000061],[-119.07084699999996,74.089980999999966],[-119.08084099999996,74.077773999999977],[-119.08805799999999,74.072769000000108],[-119.10166900000002,74.069716999999969],[-119.11972000000003,74.068054000000075],[-119.14723199999997,74.062195000000031],[-119.15222199999994,74.056091000000038],[-119.18720999999999,73.994141000000127],[-119.18720999999999,73.987762000000089],[-119.16750299999995,73.987198000000149],[-118.98889200000002,73.998032000000023],[-118.97305299999999,74.000274999999988],[-118.96362299999993,74.004990000000021],[-118.80777,74.090546000000131],[-118.80055199999998,74.095824999999934],[-118.79028299999993,74.10775799999999],[-118.78751399999999,74.114700000000084],[-118.79277000000002,74.125809000000004],[-118.79804999999999,74.130814000000044],[-118.80695299999996,74.133880999999974],[-118.82333399999999,74.136383000000023],[-118.83693699999992,74.139435000000105],[-118.84805299999994,74.143326000000002],[-118.86721799999998,74.151382000000069],[-118.88333099999994,74.166382000000056],[-118.88612399999994,74.171921000000054],[-118.88110399999999,74.178040000000067],[-118.84388699999994,74.188309000000118],[-118.72000100000002,74.212768999999923],[-118.67388899999997,74.219986000000063],[-118.60722399999997,74.228317000000118],[-118.50583599999999,74.239974999999959],[-118.17999299999991,74.272217000000126],[-118.12249799999995,74.275818000000015],[-118.10193600000002,74.276382000000126],[-118.031387,74.275269000000094],[-117.97361799999999,74.269150000000025],[-117.91860999999989,74.262207000000046],[-117.62832599999996,74.244980000000055],[-117.51251199999996,74.238585999999998],[-117.43859900000001,74.22943099999992],[-117.422234,74.226929000000041],[-117.37609899999995,74.218323000000112],[-117.28943599999997,74.199707000000103],[-117.15722700000003,74.167754999999943],[-116.82833899999997,74.072495000000004],[-116.78500400000001,74.059708000000001],[-116.735817,74.039703000000145],[-116.62249799999989,73.990814],[-116.52806099999998,73.949706999999989],[-116.441101,73.913605000000018],[-116.34805299999999,73.875534000000016],[-116.33805799999999,73.87164300000012],[-116.32778899999988,73.867752000000053],[-116.31471299999993,73.864426000000037],[-116.29888900000003,73.861649000000114],[-116.20805399999995,73.838318000000072],[-116.05583199999995,73.792755000000113],[-116.00556899999998,73.773315000000139],[-115.97638699999999,73.755554000000018],[-115.91443599999997,73.726379000000122],[-115.89444699999996,73.718596999999988],[-115.817497,73.698318000000029],[-115.603882,73.652205999999978],[-115.40222199999999,73.568329000000006],[-115.36694299999999,73.545822000000101],[-115.34889199999998,73.531937000000028],[-115.33194700000001,73.511658000000068],[-115.31500199999999,73.479705999999908],[-115.32305899999994,73.474426000000051],[-115.449432,73.426651000000049],[-115.46140300000002,73.42303499999997],[-115.69943199999989,73.368866000000139],[-115.83473199999997,73.33998100000008],[-115.862213,73.334427000000119],[-116.26750199999998,73.273041000000148],[-116.33556399999998,73.267211999999915],[-116.37249800000001,73.265549000000021],[-116.42500299999995,73.261658000000125],[-116.45612299999993,73.257492000000013],[-116.46945199999999,73.254715000000147],[-116.69304699999992,73.203873000000044],[-116.80943299999996,73.168045000000006],[-116.94803599999995,73.124985000000038],[-117.02639799999997,73.106934000000024],[-117.16915899999998,73.081940000000088],[-117.39388999999994,73.048598999999911],[-117.42639200000002,73.044983000000059],[-117.46610999999996,73.03637700000013],[-117.708054,72.977768000000083],[-117.83667000000003,72.938583000000108],[-117.891953,72.919983000000002],[-117.925003,72.908875000000023],[-117.97501399999993,72.896378000000027],[-118.01611300000002,72.888321000000019],[-118.11527999999993,72.870818999999983],[-118.21806300000003,72.854705999999965],[-118.27362099999999,72.844436999999914],[-118.314438,72.836104999999918],[-118.36609599999997,72.824432000000115],[-118.38999899999993,72.817764000000125],[-118.44444299999998,72.798874000000012],[-118.45333900000003,72.794434000000138],[-118.46000700000002,72.78915400000011],[-118.46472199999994,72.783325000000104],[-118.48528299999992,72.767487000000074],[-118.49610899999999,72.763610999999969],[-118.53472899999991,72.754715000000033],[-118.54943799999995,72.752487000000087],[-118.58528100000001,72.750275000000045],[-118.65805099999994,72.74803200000008],[-118.70861799999994,72.743590999999981],[-118.75306699999999,72.73692299999999],[-118.77861000000001,72.731093999999985],[-119.11444099999994,72.639435000000049],[-119.1375119999999,72.632477000000051],[-119.15888999999999,72.624984999999981],[-119.16750299999995,72.620529000000033],[-119.30943300000001,72.438873000000058],[-119.3163909999999,72.425812000000121],[-119.33000199999987,72.394149999999968],[-119.33249699999999,72.387206999999989],[-119.33000199999987,72.381653000000142],[-119.32501200000002,72.376648000000102],[-119.30999800000001,72.368042000000003],[-119.30277999999993,72.363037000000134],[-119.30248999999998,72.356644000000017],[-119.31111099999993,72.352203000000088],[-119.40444899999994,72.325545999999974],[-119.429169,72.319716999999969],[-119.51555599999989,72.305817000000104],[-119.62666300000001,72.278320000000122],[-119.65750099999991,72.267211999999972],[-119.67804699999999,72.259430000000009],[-119.760559,72.228867000000037],[-119.80139200000002,72.22137500000008],[-119.837784,72.219711000000075],[-119.97250399999996,72.221100000000092],[-120.12372599999998,72.232597000000112],[-120.13405599999999,72.233756999999969],[-120.13871799999998,72.236420000000066],[-120.13621499999994,72.239929000000132],[-120.12888299999992,72.241928000000144],[-120.14362299999993,72.2494200000001],[-120.12943999999999,72.251663000000065],[-120.12721299999993,72.258606000000043],[-120.12999000000002,72.264160000000061],[-120.13999899999993,72.267761000000064],[-120.15750099999997,72.269714000000022],[-120.17582699999997,72.268875000000094],[-120.24109599999997,72.26249700000011],[-120.25110599999999,72.258606000000043],[-120.25945299999995,72.246643000000006],[-120.26139799999987,72.239700000000028],[-120.25862099999995,72.23414600000001],[-120.23144500000001,72.214812999999992],[-120.225281,72.212479000000144],[-120.21028899999999,72.20881700000001],[-120.19810499999994,72.204322999999988],[-120.18894999999998,72.199150000000088],[-120.18578299999996,72.196151999999984],[-120.14527900000002,72.149994000000049],[-120.14499699999993,72.143599999999992],[-120.17582699999997,72.094437000000084],[-120.19415299999997,72.078323000000125],[-120.30526699999996,72.013046000000088],[-120.329453,71.999146000000053],[-120.34750399999996,71.990814000000057],[-120.38362100000001,71.981658999999979],[-120.41332999999986,71.971374999999966],[-120.423317,71.96748400000007],[-120.43916299999989,71.958328000000108],[-120.445267,71.953048999999965],[-120.4491579999999,71.946930000000123],[-120.45278899999994,71.934707999999944],[-120.45249899999993,71.927765000000136],[-120.44972200000001,71.922210999999947],[-120.439438,71.912201000000039],[-120.43167099999994,71.908034999999984],[-120.391953,71.893051000000071],[-120.38445300000001,71.888885000000016],[-120.37917299999998,71.883881000000031],[-120.38082900000001,71.87831099999994],[-120.41500899999994,71.776382000000126],[-120.42278299999998,71.764160000000118],[-120.42471299999994,71.757216999999969],[-120.42639199999996,71.74443100000002],[-120.423607,71.738875999999948],[-120.41332999999986,71.72886699999998],[-120.40805099999994,71.723877000000073],[-120.40055799999993,71.719437000000084],[-120.37998999999996,71.699707000000046],[-120.37748699999992,71.694138000000066],[-120.37693799999994,71.688034000000073],[-120.38082900000001,71.681931000000077],[-120.43611099999998,71.611922999999933],[-120.47305299999999,71.565536000000066],[-120.49665799999997,71.544144000000017],[-120.54332699999992,71.516662999999994],[-120.60166900000002,71.493591000000038],[-120.63639799999999,71.485535000000141],[-120.78028899999998,71.457214000000079],[-120.80750299999988,71.452484000000027],[-120.87721299999998,71.441360000000145],[-120.921944,71.435532000000023],[-121.13333099999994,71.409424000000058],[-121.33249699999993,71.386932000000002],[-121.39444700000001,71.380264000000011],[-121.42916899999994,71.378311000000053],[-121.44833399999999,71.379425000000026],[-121.59056099999998,71.396378000000141],[-121.60305799999998,71.399428999999998],[-121.59137699999991,71.402771000000087],[-121.57611099999997,71.404434000000037],[-121.54915599999993,71.40914900000007],[-121.53751399999999,71.412490999999989],[-121.53195199999993,71.417755],[-121.52861000000001,71.423874000000012],[-121.531677,71.429427999999973],[-121.53694200000001,71.434418000000051],[-121.54998799999993,71.443588000000091],[-121.56973299999999,71.451660000000061],[-121.59638999999999,71.456940000000145],[-121.63027999999991,71.460540999999978],[-121.66860999999994,71.46276899999998],[-121.70361300000002,71.460815000000139],[-121.74388099999999,71.453323000000012],[-121.75556899999998,71.450271999999984],[-121.77639799999997,71.443038999999942],[-121.81220999999994,71.426651000000106],[-121.82917800000001,71.418319999999994],[-121.84612299999998,71.409714000000065],[-121.90194700000001,71.378586000000098],[-121.96528599999999,71.34275800000006],[-122.07501199999996,71.286926000000051],[-122.12165799999991,71.267211999999972],[-122.14417300000002,71.260817999999915],[-122.21056399999986,71.24832200000003],[-122.25446299999999,71.242477000000122],[-122.29833999999994,71.236374000000012],[-122.35526999999996,71.227768000000083],[-122.43028299999997,71.214157000000114],[-122.50556899999992,71.197754000000032],[-122.593887,71.178040000000124],[-122.60500299999995,71.174988000000042],[-122.61638600000003,71.171646000000067],[-122.64584400000001,71.160538000000088],[-122.66221599999994,71.151931999999988],[-122.67832900000002,71.143326000000059],[-122.7069469999999,71.124420000000043],[-122.74249299999997,71.101089000000002],[-122.76999699999988,71.089157000000057],[-122.781113,71.086104999999918],[-122.79611199999988,71.084152000000017],[-122.84944199999995,71.0816650000001],[-123.07611099999986,71.079163000000051],[-123.09500099999997,71.079987000000017],[-123.1260989999999,71.083878000000084],[-123.162781,71.092758000000117],[-123.22332799999998,71.114150999999993],[-123.25945300000001,71.129700000000128],[-123.29305999999985,71.146102999999982],[-123.31696299999999,71.158599999999979],[-123.37027,71.188873000000115],[-123.3952789999999,71.207763999999941],[-123.42999299999997,71.236923000000104],[-123.44860799999998,71.257767000000115],[-123.46640000000002,71.285537999999974],[-123.51390099999998,71.349152000000061],[-123.56696299999993,71.406096999999932],[-123.63417099999992,71.472487999999942],[-123.66583299999996,71.496368000000132],[-123.67971799999998,71.505264000000068],[-123.84388699999994,71.583328000000108],[-123.88722200000001,71.623595999999964],[-123.89917000000003,71.633041000000048],[-123.94888299999997,71.658325000000048],[-123.97582999999997,71.670258000000103],[-124.01334400000002,71.685806000000071],[-124.02390300000002,71.689148000000046],[-124.07055700000001,71.701935000000049],[-124.11138900000003,71.709991000000116],[-124.13694800000002,71.714432000000045],[-124.38474299999996,71.75471500000009],[-124.458054,71.76638800000012],[-124.609734,71.788040000000137],[-124.65278599999994,71.79525799999999],[-124.67887899999999,71.800812000000121],[-124.700287,71.806366000000139],[-124.83194700000001,71.840820000000008],[-124.86665299999993,71.85054000000008],[-125.07694999999995,71.909149000000127],[-125.16000400000001,71.924683000000073],[-125.23638900000003,71.941910000000064],[-125.24722300000002,71.945511000000124],[-125.25361599999997,71.950255999999968],[-125.24472000000003,71.954422000000079],[-125.04804999999999,71.955536000000052],[-124.98029300000002,71.943587999999977],[-124.96945199999999,71.939972000000125],[-124.95388800000001,71.938034000000016],[-124.94275699999997,71.939972000000125],[-124.93804899999998,71.945525999999916],[-124.93554699999999,71.951659999999947],[-124.93971299999998,71.956940000000031],[-124.94833399999999,71.961105000000032],[-124.98777799999999,71.969711000000132],[-125.02278100000001,71.972504000000129],[-125.23277300000001,71.975524999999948],[-125.35221899999999,71.97468600000002],[-125.41639700000002,71.974135999999987],[-125.47833300000002,71.972763000000043],[-125.59111000000001,71.966385000000116],[-125.62666299999995,71.963608000000022],[-125.68639399999995,71.954987000000074],[-125.72165699999994,71.952209000000096],[-125.76139799999993,71.950821000000019],[-125.80139199999996,71.952209000000096],[-125.93582199999992,71.958602999999982],[-125.97361799999999,71.960541000000092],[-125.984444,71.963882000000126],[-125.99333200000001,71.96804800000001],[-125.997772,71.973602000000028],[-125.99333200000001,71.978867000000093],[-125.97778299999999,71.979706000000022],[-125.966949,71.976379000000122],[-125.90055799999999,71.962494000000049],[-125.88054699999992,71.963318000000015],[-125.84973099999991,71.967209000000082],[-125.80999799999995,71.975540000000137],[-125.787781,71.982208000000128],[-125.77887699999991,71.986374000000012],[-125.765289,71.996094000000085],[-125.75418100000002,72.006103999999993],[-125.74082899999996,72.022751000000028],[-125.73388699999998,72.034133999999995],[-125.724716,72.051926000000094],[-125.71777299999985,72.070540999999992],[-125.71528599999994,72.083603000000039],[-125.71528599999994,72.090270999999973],[-125.71749899999992,72.096375000000023],[-125.72165699999994,72.101929000000041],[-125.72833299999996,72.106644000000074],[-125.73944099999989,72.110260000000096],[-125.71444700000001,72.157485999999949],[-125.57389799999993,72.247467000000142],[-125.51445000000001,72.291076999999973],[-125.46777299999997,72.351074000000096],[-125.43221999999997,72.403580000000034],[-125.43666099999996,72.409134000000051],[-125.30055199999993,72.483307000000025],[-125.29110699999995,72.487183000000073],[-125.27971600000001,72.490524000000107],[-125.25787399999996,72.495125000000144],[-125.247772,72.49523899999997],[-125.17194399999994,72.513596000000064],[-125.1394499999999,72.524138999999991],[-125.02806099999998,72.566071000000079],[-125,72.605254999999943],[-124.94055199999997,72.70248400000014],[-124.97193899999991,72.755829000000006],[-125.02610800000002,72.821091000000081],[-124.95916699999998,72.856369000000086],[-124.89334100000002,72.873871000000122],[-124.87917299999998,72.876373000000001],[-124.801941,72.887497000000053],[-124.76695299999994,72.890823000000125],[-124.72749299999987,72.888596000000064],[-124.68804899999986,72.887497000000053],[-124.66944899999993,72.888884999999959],[-124.63667299999997,72.892761000000064],[-124.60611,72.897216999999955],[-124.591949,72.899994000000049],[-124.49722300000002,72.919707999999957],[-124.48554999999999,72.923035000000084],[-124.47582999999997,72.927200000000084],[-124.47305299999999,72.933318999999926],[-124.49305700000002,72.97164900000007],[-124.49722300000002,72.977203000000031],[-124.62138399999992,73.001389000000131],[-124.71250899999995,73.003876000000048],[-124.72609699999998,73.006653000000142],[-124.73777799999999,73.010268999999994],[-124.76972999999992,73.021378000000084],[-124.82417299999992,73.046097000000032],[-124.83332799999994,73.050262000000032],[-124.84916699999997,73.059417999999994],[-124.862503,73.068878000000041],[-124.86694299999994,73.074432000000058],[-124.86888099999999,73.080551000000071],[-124.86389200000002,73.086105000000089],[-124.79472399999992,73.134720000000129],[-124.78500400000001,73.13888500000013],[-124.71362299999987,73.149428999999998],[-124.59916699999985,73.227768000000026],[-124.58640299999996,73.238037000000077],[-124.57389799999993,73.248321999999973],[-124.56360599999988,73.259155000000135],[-124.50805699999995,73.32638500000013],[-124.44583099999994,73.411102000000142],[-124.44055199999997,73.416655999999932],[-124.43306000000001,73.421370999999965],[-124.40556299999997,73.434143000000006],[-124.30555699999991,73.478592000000106],[-124.29332699999998,73.481659000000036],[-124.252228,73.483596999999975],[-124.22833300000002,73.483321999999987],[-124.20916699999998,73.481659000000036],[-124.18998699999997,73.481659000000036],[-124.17304999999999,73.483596999999975],[-124.16055299999999,73.486923000000047],[-124.07000699999998,73.546097000000088],[-124.041946,73.582214000000079],[-124.03888699999993,73.586929000000112],[-124.07167099999998,73.61775200000011],[-124.0786129999999,73.622756999999979],[-124.07611099999991,73.643051000000071],[-124.073059,73.649155000000121],[-124.06777999999991,73.654709000000139],[-124.05526700000001,73.658034999999984],[-123.94554099999993,73.681656000000032],[-123.86138899999997,73.695815999999979],[-123.83389299999999,73.700272000000041],[-123.774719,73.764435000000105],[-123.80471799999987,73.796936000000017],[-123.83833300000003,73.821106000000043],[-123.84777800000001,73.825271999999927],[-123.93639399999995,73.840546000000018],[-123.95834399999995,73.841369999999984],[-123.98055999999991,73.840820000000122],[-124.01999699999999,73.838318000000072],[-124.06639100000001,73.839432000000045],[-124.08583099999998,73.841094999999996],[-124.13417099999992,73.848327999999981],[-124.16306299999985,73.854156000000103],[-124.19860799999992,73.864699999999971],[-124.21749899999986,73.872757000000092],[-124.36860699999988,74.014435000000049],[-124.41166699999991,74.056366000000025],[-124.42666600000001,74.109711000000118],[-124.43415800000002,74.134430000000066],[-124.600281,74.268326000000059],[-124.61805699999996,74.26638800000012],[-124.66082799999992,74.264708999999925],[-124.68083200000001,74.266098000000113],[-124.69304699999986,74.269440000000031],[-124.77500900000001,74.319152999999972],[-124.78415699999999,74.329987000000074],[-124.781387,74.336104999999975],[-124.77084400000001,74.340271000000087],[-124.75556899999992,74.342758000000003],[-124.69722000000002,74.347214000000065],[-124.40471600000001,74.369141000000127],[-124.10861199999999,74.392761000000121],[-123.89527899999996,74.396378000000084],[-123.85694899999987,74.399429000000112],[-123.676941,74.418320000000108],[-123.63834399999996,74.421371000000136],[-123.57444800000002,74.424149000000114],[-123.41887700000001,74.428314000000114],[-123.20584100000002,74.443039000000056],[-123.02250700000002,74.444702000000007],[-122.68998699999992,74.453872999999987],[-122.43804899999998,74.464995999999928],[-122.33750900000001,74.471099999999979],[-122.118607,74.49192800000003],[-122.06610099999995,74.49803200000008],[-121.93859900000001,74.518326000000002],[-121.76666299999999,74.539703000000031],[-121.73000299999995,74.543319999999994],[-121.65194699999995,74.548598999999967],[-121.61028299999992,74.550537000000134],[-121.56416300000001,74.551086000000055],[-121.51862299999993,74.548874000000012],[-121.31082200000003,74.531661999999983],[-121.25361599999997,74.525818000000129],[-121.13612399999994,74.506943000000035],[-121.08389299999993,74.493590999999981],[-121.05777,74.486649000000057],[-121.01112399999988,74.472214000000122],[-121.00222799999995,74.46775800000006],[-120.98998999999998,74.458037999999988],[-120.98055999999991,74.447479000000101],[-120.97693599999991,74.441925000000083],[-120.97556299999991,74.429703000000131],[-120.90638699999994,74.415268000000026],[-120.70584100000002,74.373596000000134],[-120.48166700000002,74.329987000000074],[-120.21721599999989,74.282486000000006],[-120.14998600000001,74.272491000000059]],[[-97.652785999999992,74.455826000000059],[-97.675551999999982,74.454987000000131],[-97.691939999999988,74.455261000000064],[-97.708892999999989,74.457214000000022],[-97.777221999999995,74.476379000000122],[-97.789444000000003,74.479980000000012],[-97.792495999999915,74.485809000000017],[-97.781386999999995,74.497208000000114],[-97.768616000000009,74.508041000000105],[-97.761672999999917,74.512496999999996],[-97.753890999999953,74.515548999999965],[-97.618057000000022,74.552200000000028],[-97.532227000000034,74.606369000000086],[-97.513625999999988,74.611374000000126],[-97.470001000000025,74.621094000000028],[-97.445830999999998,74.626082999999994],[-97.422774999999945,74.629424999999912],[-97.406951999999933,74.62831100000011],[-97.389724999999999,74.626373000000001],[-97.368056999999965,74.622756999999979],[-97.357772999999952,74.621368000000132],[-97.291381999999942,74.605255000000113],[-97.267226999999934,74.597214000000008],[-97.261672999999917,74.594711000000075],[-97.256957999999997,74.590546000000074],[-97.261948000000018,74.583878000000084],[-97.299987999999871,74.551376000000062],[-97.376098999999954,74.511658000000068],[-97.387511999999958,74.506377999999984],[-97.606383999999991,74.461929000000055],[-97.652785999999992,74.455826000000059]],[[-95.311110999999983,74.497757000000092],[-95.331389999999999,74.496093999999971],[-95.353332999999964,74.496368000000075],[-95.458892999999989,74.49859600000002],[-95.480559999999912,74.5],[-95.522781000000009,74.504990000000078],[-95.603057999999919,74.515548999999965],[-95.661666999999966,74.523605000000032],[-95.697768999999937,74.529709000000025],[-95.71665999999999,74.533874999999966],[-95.809432999999956,74.554427999999973],[-95.845000999999968,74.563873000000058],[-95.862212999999997,74.56999200000007],[-95.866394000000014,74.574158000000011],[-95.860549999999989,74.579163000000051],[-95.857497999999964,74.580551000000128],[-95.682495000000017,74.634995000000004],[-95.653885000000002,74.642211999999915],[-95.638061999999991,74.643326000000116],[-95.624161000000015,74.641662999999994],[-95.628601000000003,74.640823000000125],[-95.517501999999922,74.630264000000068],[-95.497498000000007,74.627197000000137],[-95.441101000000003,74.613876000000005],[-95.403609999999958,74.603316999999947],[-95.334441999999967,74.580825999999945],[-95.317779999999971,74.573883000000137],[-95.291945999999939,74.560257000000036],[-95.260283999999956,74.540543000000071],[-95.25111400000003,74.53414900000007],[-95.244995000000017,74.527771000000087],[-95.246383999999978,74.521652000000074],[-95.25111400000003,74.516098000000056],[-95.259170999999981,74.510544000000095],[-95.271117999999944,74.505554000000018],[-95.289443999999946,74.501389000000017],[-95.311110999999983,74.497757000000092]],[[-97.175827000000027,75.24414100000007],[-97.194442999999978,75.242752000000053],[-97.216110000000015,75.24470500000001],[-97.225006000000008,75.24803199999991],[-97.231948999999929,75.254440000000045],[-97.27806099999998,75.343597000000102],[-97.275283999999999,75.347487999999998],[-97.258056999999951,75.349426000000108],[-97.208617999999944,75.342209000000025],[-97.190551999999968,75.33526599999999],[-97.161666999999852,75.322220000000073],[-97.153060999999923,75.315262000000075],[-97.148894999999925,75.297760000000039],[-97.146956999999986,75.27998400000007],[-97.147507000000019,75.273880000000077],[-97.155838000000017,75.255264000000011],[-97.161666999999852,75.250000000000057],[-97.175827000000027,75.24414100000007]],[[-103.9175029999999,75.054977000000008],[-104.22917199999995,75.018051000000071],[-104.261124,75.018326000000116],[-104.45944199999991,75.028869999999984],[-104.662216,75.062485000000038],[-104.84722899999991,75.109146000000067],[-104.85722399999992,75.164703000000031],[-104.82000699999998,75.177765000000022],[-104.79998799999998,75.189423000000033],[-104.79305999999997,75.194702000000063],[-104.74472000000003,75.246093999999971],[-104.76862299999999,75.281937000000028],[-104.71083099999993,75.322220000000073],[-104.68222000000003,75.33776899999998],[-104.67360699999995,75.341660000000047],[-104.49722299999996,75.406372000000033],[-104.42804699999994,75.420821999999987],[-104.37777699999998,75.42804000000001],[-104.33000199999992,75.433043999999938],[-104.18222000000003,75.435531999999967],[-104.15177900000003,75.434555000000103],[-104.11416600000001,75.430267000000072],[-103.97112299999998,75.404434000000094],[-103.953056,75.399994000000106],[-103.935272,75.394989000000066],[-103.84805299999999,75.364990000000034],[-103.81054699999993,75.348602000000142],[-103.74166899999994,75.286102000000028],[-103.587219,75.169983000000059],[-103.58306899999997,75.164703000000031],[-103.59028599999999,75.159424000000058],[-103.60888699999992,75.149155000000007],[-103.7302929999999,75.099990999999989],[-103.76390100000003,75.088882000000126],[-103.79943799999995,75.077484000000084],[-103.81777999999997,75.072494999999947],[-103.88999899999999,75.058318999999983],[-103.9175029999999,75.054977000000008]],[[-100.17223399999995,75.601379000000009],[-100.15722700000003,75.589432000000045],[-100.15778399999994,75.584991000000116],[-100.17639200000002,75.57998699999996],[-100.23332199999993,75.569153000000085],[-100.383331,75.553588999999988],[-100.45417800000001,75.546371000000022],[-100.47972099999993,75.545822000000044],[-100.47556299999997,75.549987999999985],[-100.45749699999999,75.554152999999985],[-100.43195299999991,75.55831900000004],[-100.40666199999987,75.561370999999951],[-100.36110699999995,75.565535999999952],[-100.31777999999986,75.573043999999982],[-100.30332900000002,75.577484000000027],[-100.29361,75.584427000000005],[-100.30332900000002,75.58859300000006],[-100.31973299999999,75.590820000000122],[-100.33917199999996,75.591369999999984],[-100.36332699999997,75.59027100000003],[-100.52778599999994,75.577208999999982],[-100.74973299999994,75.558029000000033],[-100.86527999999998,75.547211000000061],[-100.88555899999994,75.545822000000044],[-100.90862300000003,75.546371000000022],[-100.950287,75.549713000000111],[-100.99445300000002,75.554977000000122],[-101.02333099999993,75.559981999999991],[-101.03333299999997,75.563034000000073],[-101.03943600000002,75.567215000000147],[-101.02583299999998,75.570540999999992],[-100.84277299999991,75.586929000000055],[-100.70249899999993,75.588882000000012],[-100.68055699999996,75.589432000000045],[-100.65583800000002,75.59165999999999],[-100.64167800000001,75.596100000000035],[-100.62027,75.606094000000041],[-100.59861799999999,75.610259999999926],[-100.51112399999994,75.61914100000007],[-100.39444700000001,75.623031999999967],[-100.27639799999997,75.623031999999967],[-100.23500099999995,75.623031999999967],[-100.21777299999997,75.621917999999994],[-100.204453,75.617477000000065],[-100.19499200000001,75.613312000000064],[-100.17223399999995,75.601379000000009]],[[-94.363892000000021,75.590820000000122],[-94.326950000000011,75.579711999999972],[-94.243880999999931,75.549713000000111],[-94.205275999999913,75.529709000000025],[-94.010283999999956,75.442200000000071],[-93.989715999999987,75.434982000000105],[-93.839721999999938,75.388046000000031],[-93.742492999999968,75.364426000000094],[-93.499160999999958,75.264709000000096],[-93.487502999999947,75.256653000000028],[-93.493331999999953,75.247207999999944],[-93.529175000000009,75.176376000000062],[-93.488892000000021,75.072494999999947],[-93.434157999999968,74.966385000000002],[-93.406386999999995,74.883605999999986],[-93.458053999999947,74.714996000000099],[-93.462508999999955,74.708602999999925],[-93.467772999999966,74.703048999999965],[-93.484726000000023,74.687759000000142],[-93.49610899999999,74.68193100000002],[-93.530563000000029,74.667755000000056],[-93.563323999999966,74.659424000000115],[-93.691665999999941,74.63998400000014],[-93.717223999999874,74.636932000000058],[-93.741378999999995,74.635543999999982],[-94.040282999999988,74.640823000000125],[-94.249999999999886,74.646378000000027],[-94.388061999999991,74.635269000000108],[-94.471114999999884,74.626648000000046],[-94.511947999999961,74.623306000000071],[-94.547500999999897,74.621368000000132],[-94.643340999999964,74.623596000000077],[-94.687774999999931,74.62831100000011],[-95.024718999999948,74.673035000000084],[-95.080001999999979,74.680817000000047],[-95.085830999999985,74.687195000000031],[-95.076949999999954,74.697479000000044],[-95.072783999999956,74.702209000000096],[-95.104445999999996,74.744141000000127],[-95.266402999999912,74.793319999999937],[-95.283324999999991,74.79803499999997],[-95.298339999999996,74.800262000000032],[-95.403335999999911,74.803863999999976],[-95.434158000000025,74.801376000000005],[-95.457503999999972,74.798324999999977],[-95.479172000000005,74.78804000000008],[-95.483062999999902,74.783325000000048],[-95.482772999999952,74.779433999999981],[-95.475554999999986,74.769989000000066],[-95.462219000000005,74.756653000000142],[-95.547226000000023,74.761107999999979],[-95.625823999999909,74.807480000000055],[-95.705565999999976,74.829987000000131],[-95.740828999999906,74.82388300000008],[-95.771392999999932,74.823608000000092],[-95.864166000000012,74.826096000000064],[-95.959473000000003,74.856369000000029],[-96.002501999999879,74.872757000000092],[-96.006667999999934,74.876923000000147],[-96.077224999999942,74.902771000000087],[-96.135283999999899,74.951096000000121],[-96.141678000000013,74.957214000000079],[-96.136948000000018,74.963043000000084],[-96.124709999999936,74.975815000000068],[-96.094726999999978,74.991364000000033],[-96.070847000000015,75.001938000000052],[-96.056380999999988,75.010268999999937],[-96.055557000000022,75.016097999999943],[-96.060546999999985,75.019440000000088],[-96.07417299999986,75.023605000000089],[-96.083068999999966,75.024429000000055],[-96.142226999999991,75.017761000000064],[-96.147507000000019,75.013611000000083],[-96.200835999999924,74.954712000000029],[-96.203339000000028,74.951660000000061],[-96.20666499999993,74.943038999999999],[-96.203887999999949,74.93691999999993],[-96.205840999999964,74.92025799999999],[-96.209732000000031,74.915543000000127],[-96.221389999999985,74.910263000000043],[-96.247771999999884,74.90554800000001],[-96.268341000000021,74.903870000000097],[-96.31527699999998,74.90248100000008],[-96.337219000000005,74.903595000000053],[-96.357497999999964,74.906647000000021],[-96.373610999999983,74.910263000000043],[-96.387221999999952,74.914703000000088],[-96.396666999999923,74.919708000000128],[-96.40306099999998,74.925812000000121],[-96.386123999999995,74.97387700000013],[-96.357497999999964,74.97137500000008],[-96.341385000000002,74.972487999999998],[-96.328063999999983,74.974701000000096],[-96.320557000000008,74.979430999999977],[-96.318343999999968,74.982208000000071],[-96.322234999999864,75.001389000000074],[-96.331115999999895,75.004715000000147],[-96.476669000000015,75.004440000000102],[-96.500838999999928,75.002777000000037],[-96.523055999999997,74.999145999999939],[-96.533889999999985,74.994705000000067],[-96.55972300000002,74.986098999999967],[-96.580291999999986,74.98414600000001],[-96.599990999999989,74.983322000000044],[-96.614165999999955,74.984984999999938],[-96.616942999999992,74.991088999999988],[-96.604720999999984,75.063309000000004],[-96.571395999999936,75.101089000000115],[-96.463057999999933,75.19331399999993],[-96.456389999999999,75.196930000000009],[-96.378600999999946,75.21665999999999],[-96.077788999999996,75.272491000000059],[-95.948043999999982,75.283325000000104],[-95.922500999999954,75.286102000000028],[-95.903335999999911,75.289978000000076],[-95.910552999999936,75.29525799999999],[-95.934433000000013,75.297211000000118],[-95.978058000000033,75.298874000000012],[-96.026671999999962,75.299149000000057],[-96.049987999999928,75.296936000000073],[-96.061935000000005,75.315262000000075],[-96.003615999999965,75.343047999999953],[-95.932494999999903,75.353043000000071],[-95.934714999999983,75.350173999999981],[-95.93472300000002,75.347762999999986],[-95.919998000000021,75.34693900000002],[-95.890288999999996,75.349152000000004],[-95.887443999999959,75.360268000000133],[-95.83677699999987,75.369926000000021],[-95.830780000000004,75.371429000000035],[-95.829781000000025,75.372589000000119],[-95.83061199999986,75.374428000000023],[-95.832786999999939,75.375923000000114],[-95.848274000000004,75.378432999999973],[-95.906775999999979,75.387428000000057],[-95.927779999999871,75.398041000000148],[-96.033324999999934,75.40109300000006],[-96.055267000000015,75.400818000000072],[-96.078887999999893,75.396103000000039],[-96.079178000000013,75.391098],[-96.083618000000001,75.385543999999982],[-96.099730999999963,75.380264000000125],[-96.126099000000011,75.37692300000009],[-96.151108000000022,75.374984999999924],[-96.175277999999992,75.379424999999969],[-96.178878999999995,75.384430000000009],[-96.161941999999954,75.395537999999988],[-96.14973399999991,75.400818000000072],[-96.135009999999966,75.406372000000033],[-96.095839999999896,75.417755000000056],[-96.0625,75.424988000000099],[-95.974166999999966,75.436096000000077],[-95.958344000000011,75.436371000000065],[-95.93638599999997,75.43414300000012],[-95.874160999999958,75.423874000000069],[-95.831046999999955,75.41531400000008],[-95.832549999999969,75.413651000000129],[-95.83322099999998,75.409988000000112],[-95.831046999999955,75.406982000000085],[-95.825881999999979,75.403320000000122],[-95.814383999999961,75.400322000000074],[-95.769553999999857,75.400322000000074],[-95.691100999999946,75.40525800000006],[-95.682495000000017,75.408324999999991],[-95.676102000000014,75.415817000000118],[-95.678328999999962,75.421920999999998],[-95.68472300000002,75.428314000000114],[-95.691665999999998,75.429703000000131],[-95.715835999999911,75.429153000000099],[-95.734160999999915,75.426085999999998],[-95.758620999999948,75.42553700000002],[-95.781677000000002,75.42804000000001],[-95.800551999999925,75.431656000000032],[-95.825011999999958,75.439972000000125],[-95.830001999999922,75.4433140000001],[-95.836945000000014,75.453598000000113],[-95.83805799999999,75.459152000000074],[-95.835555999999997,75.464431999999988],[-95.832229999999981,75.470535000000098],[-95.824172999999973,75.477767999999912],[-95.800551999999925,75.49136400000009],[-95.762222000000008,75.508041000000048],[-95.749725000000012,75.513321000000133],[-95.470000999999968,75.566939999999988],[-95.275283999999942,75.599426000000051],[-95.264175000000023,75.59387200000009],[-95.234436000000017,75.584717000000012],[-95.212783999999999,75.582489000000066],[-95.178604000000007,75.584427000000005],[-95.12470999999988,75.59526100000005],[-95.104172000000005,75.60026600000009],[-95.093338000000017,75.603591999999992],[-95.085830999999985,75.607208000000014],[-95.084166999999979,75.609146000000123],[-95.075286999999946,75.614426000000037],[-95.063323999999909,75.618866000000025],[-95.044448999999872,75.62164300000012],[-94.917769999999962,75.637207000000046],[-94.901672000000019,75.637497000000053],[-94.741378999999938,75.62414600000011],[-94.559722999999963,75.612488000000099],[-94.511123999999995,75.611099000000081],[-94.46556099999998,75.608321999999987],[-94.404175000000009,75.599152000000117],[-94.363892000000021,75.590820000000122]],[[-95.910003999999901,75.560256999999979],[-95.911117999999988,75.554152999999985],[-95.93472300000002,75.540543000000071],[-96.170837000000006,75.458038000000101],[-96.220276000000013,75.455551000000071],[-96.238892000000021,75.456650000000025],[-96.255004999999983,75.461380000000077],[-96.399170000000026,75.516388000000063],[-96.417220999999984,75.523315000000139],[-96.42471299999994,75.528595000000053],[-96.450995999999975,75.529991000000052],[-96.441161999999963,75.535987999999975],[-96.415832999999907,75.543648000000132],[-96.412659000000019,75.546150000000011],[-96.411666999999909,75.548819999999978],[-96.417992000000027,75.552658000000065],[-96.431167999999957,75.555489000000023],[-96.441832999999974,75.555664000000093],[-96.450995999999975,75.553154000000063],[-96.503837999999917,75.535156000000029],[-96.507995999999935,75.532982000000118],[-96.518165999999951,75.526320999999996],[-96.525161999999909,75.519325000000038],[-96.553603999999893,75.508880999999917],[-96.552215999999987,75.503326000000015],[-96.549437999999896,75.497208000000114],[-96.545546999999999,75.492203000000075],[-96.541107000000011,75.488037000000134],[-96.533324999999934,75.48275799999999],[-96.517501999999922,75.478043000000127],[-96.503341999999975,75.471374999999966],[-96.500564999999995,75.464996000000099],[-96.50418099999996,75.460266000000104],[-96.511948000000018,75.455826000000059],[-96.65834000000001,75.388596000000064],[-96.833617999999944,75.352478000000019],[-96.851104999999905,75.350266000000147],[-96.862212999999997,75.350815000000125],[-96.876098999999954,75.353591999999992],[-96.93249499999996,75.376082999999994],[-97.030838000000017,75.454437000000041],[-97.053054999999915,75.492203000000075],[-97.053054999999915,75.497208000000114],[-97.006957999999941,75.508331000000112],[-96.940825999999959,75.521652000000017],[-96.913619999999923,75.526382000000069],[-96.891677999999956,75.529160000000047],[-96.666945999999996,75.552765000000022],[-96.469382999999993,75.588425000000029],[-96.466552999999919,75.591933999999924],[-96.467727999999909,75.599091000000044],[-96.470054999999888,75.602264000000048],[-96.422500999999954,75.623596000000077],[-96.424438000000009,75.635544000000095],[-96.415008999999941,75.646941999999967],[-96.396392999999989,75.649994000000049],[-96.379715000000033,75.651093000000003],[-96.347228999999913,75.651382000000126],[-96.335555999999997,75.650818000000015],[-96.314437999999996,75.647766000000104],[-96.241104000000007,75.629974000000061],[-96.133330999999941,75.606644000000074],[-96.115829000000019,75.60386699999998],[-96.101944000000003,75.603591999999992],[-96.025436000000013,75.602844000000061],[-95.95777899999996,75.583603000000039],[-95.938889000000017,75.577484000000027],[-95.923888999999974,75.571655000000021],[-95.916397000000018,75.566375999999991],[-95.910003999999901,75.560256999999979]],[[-96.954453000000001,75.595534999999984],[-96.975005999999894,75.594711000000018],[-96.996658000000025,75.597762999999929],[-97.005004999999983,75.604431000000091],[-97.001953000000015,75.610809000000074],[-96.988601999999958,75.618042000000059],[-96.978607000000011,75.623031999999967],[-96.960830999999985,75.627472000000125],[-96.779449,75.6602630000001],[-96.751952999999958,75.664703000000088],[-96.729720999999984,75.665267999999969],[-96.720551,75.66415399999994],[-96.715835999999967,75.659988000000055],[-96.718886999999995,75.653870000000097],[-96.722305000000006,75.652954000000022],[-96.740279999999927,75.646941999999967],[-96.849166999999966,75.613312000000064],[-96.954453000000001,75.595534999999984]],[[-96.579177999999899,75.736923000000104],[-96.696655000000021,75.730819999999994],[-96.710555999999997,75.733597000000088],[-96.717223999999987,75.739700000000028],[-96.67860399999995,75.777481000000023],[-96.666945999999996,75.786652000000117],[-96.660827999999981,75.789429000000041],[-96.541107000000011,75.822219999999959],[-96.525283999999942,75.826384999999959],[-96.507506999999976,75.828323000000125],[-96.48443599999996,75.827208999999925],[-96.468062999999916,75.822495000000004],[-96.455841000000021,75.817764000000068],[-96.457503999999972,75.801085999999998],[-96.459166999999979,75.789429000000041],[-96.539718999999991,75.74331699999999],[-96.553603999999893,75.738586000000055],[-96.579177999999899,75.736923000000104]],[[-111.79998799999998,75.839157],[-111.823624,75.83859300000006],[-111.86582899999996,75.840545999999961],[-111.900284,75.843596999999988],[-111.91722099999993,75.846939000000134],[-111.92250100000001,75.852767999999969],[-111.91972399999997,75.85775799999999],[-111.90139799999997,75.863876000000118],[-111.85665899999992,75.867751999999996],[-111.79972799999996,75.871093999999971],[-111.61305199999993,75.881927000000132],[-111.59528399999999,75.882751000000098],[-111.58306899999991,75.881927000000132],[-111.5786129999999,75.879974000000004],[-111.58194699999996,75.876083000000108],[-111.59306300000003,75.87303200000008],[-111.62917299999992,75.856934000000024],[-111.64806399999998,75.851928999999984],[-111.75695799999994,75.841659999999933],[-111.79998799999998,75.839157]],[[-122.34084300000001,75.862761999999975],[-122.36277799999999,75.858032000000094],[-122.39862099999993,75.859421000000111],[-122.66471899999993,75.89387499999998],[-122.69167299999998,75.900269000000037],[-122.69360399999999,75.902206000000035],[-122.69554099999993,75.908035000000041],[-122.68277,75.911652000000004],[-122.633331,75.919708000000071],[-122.58222999999998,75.921921000000054],[-122.53751399999993,75.922484999999995],[-122.37917299999992,75.915817000000004],[-122.35305800000003,75.914429000000098],[-122.337784,75.911377000000016],[-122.32833900000003,75.905822999999998],[-122.32417299999997,75.899719000000005],[-122.33473200000003,75.869141000000013],[-122.34084300000001,75.862761999999975]],[[-121.09306299999997,75.726089000000059],[-121.1100009999999,75.724700999999982],[-121.14306599999992,75.725815000000125],[-121.27555799999993,75.747481999999991],[-121.28832999999997,75.752777000000037],[-121.28582799999998,75.758881000000088],[-121.27194199999997,75.770537999999988],[-121.26306199999993,75.774154999999951],[-121.11694299999999,75.795821999999987],[-121.04332699999992,75.808868000000132],[-121.02944899999989,75.811371000000122],[-121.01917299999997,75.818054000000075],[-121.01500699999997,75.824707000000046],[-121.00083899999993,75.856644000000017],[-120.99833699999988,75.867751999999996],[-121.00695799999988,75.879700000000071],[-121.01363399999997,75.884720000000073],[-121.04222099999998,75.894149999999968],[-121.04750099999995,75.899993999999992],[-121.04250299999995,75.90554800000001],[-121.03859699999998,75.908325000000104],[-120.997772,75.926376000000062],[-120.98000300000001,75.929427999999973],[-120.87777699999998,75.936096000000134],[-120.86776700000001,75.924698000000149],[-120.86776700000001,75.913315000000125],[-120.86972000000003,75.881087999999977],[-120.87110899999993,75.87553400000013],[-120.88474300000001,75.844986000000006],[-120.89835399999998,75.825821000000019],[-120.92111199999999,75.803314000000114],[-120.93804899999998,75.790543000000014],[-120.99388099999993,75.757767000000115],[-121.01862299999993,75.744431000000134],[-121.03278399999994,75.737762000000089],[-121.05248999999992,75.732758000000103],[-121.09306299999997,75.726089000000059]],[[-95.792769999999962,75.899719000000005],[-95.809432999999956,75.894714000000135],[-95.818893000000003,75.907211000000075],[-95.825561999999991,75.913315000000125],[-95.847777999999892,75.929427999999973],[-95.862503000000004,75.936096000000134],[-95.882492000000013,75.941086000000041],[-95.896956999999986,75.947753999999975],[-95.899993999999992,75.953873000000044],[-95.890839000000028,75.959427000000005],[-95.860001000000011,75.966660000000047],[-95.796660999999972,75.973312000000078],[-95.770554000000004,75.974991000000102],[-95.746947999999918,75.97387700000013],[-95.73582499999992,75.968323000000112],[-95.736938000000009,75.962494000000106],[-95.751952999999958,75.927475000000072],[-95.761947999999961,75.916092000000049],[-95.779723999999931,75.90498400000007],[-95.792769999999962,75.899719000000005]],[[-94.405563000000029,75.75082400000008],[-94.582778999999903,75.74581900000004],[-94.629165999999998,75.746094000000085],[-94.676102000000014,75.747756999999979],[-94.72084000000001,75.753876000000048],[-94.739440999999999,75.75749200000007],[-94.777495999999928,75.768600000000049],[-94.795272999999952,75.775818000000072],[-94.809157999999968,75.782486000000063],[-94.822234999999978,75.794144000000074],[-94.898894999999925,75.912765999999976],[-94.902785999999992,75.919434000000138],[-94.905272999999966,75.925537000000077],[-94.906112999999948,75.93081699999999],[-94.904449,75.9369200000001],[-94.89527899999996,75.942200000000014],[-94.879989999999964,75.945526000000029],[-94.865554999999972,75.947478999999987],[-94.813613999999973,75.950546000000088],[-94.737777999999992,75.952208999999982],[-94.699722000000008,75.955551000000128],[-94.53832999999986,75.986099000000081],[-94.481948999999929,75.974426000000051],[-94.466948999999886,75.968597000000045],[-94.453338999999914,75.961929000000112],[-94.449721999999952,75.955261000000121],[-94.443603999999993,75.938309000000118],[-94.420272999999952,75.868590999999981],[-94.410277999999948,75.86192299999999],[-94.370833999999945,75.842209000000082],[-94.322234999999978,75.814986999999974],[-94.305557000000022,75.80304000000001],[-94.287780999999939,75.783875000000023],[-94.288054999999986,75.777481000000023],[-94.291381999999999,75.772217000000012],[-94.296950999999979,75.766388000000006],[-94.310271999999941,75.761383000000137],[-94.326400999999976,75.757217000000082],[-94.353881999999942,75.753876000000048],[-94.405563000000029,75.75082400000008]],[[-103.137787,75.74275200000011],[-103.20667300000002,75.74275200000011],[-103.3011019999999,75.744705000000067],[-103.32389799999999,75.747208000000057],[-103.36888099999999,75.753876000000048],[-103.38082899999995,75.759430000000009],[-103.382767,75.765549000000021],[-103.31139399999995,75.805252000000053],[-103.07749899999999,75.890823000000069],[-103.05943300000001,75.896378000000141],[-103.03751399999993,75.901657000000114],[-103.01194799999996,75.906097000000102],[-102.98693800000001,75.909424000000058],[-102.69611399999997,75.946640000000002],[-102.59889199999986,75.953598],[-102.52278099999995,75.958038000000045],[-102.43360899999999,75.964157000000057],[-102.291382,75.977203000000145],[-102.21749899999998,75.985535000000141],[-102.19138299999997,75.989699999999971],[-102.16471899999993,75.99054000000001],[-102.07861300000002,75.97137500000008],[-101.98916599999995,75.950821000000076],[-101.98332199999987,75.945816000000036],[-101.98860200000001,75.934418000000051],[-102.020554,75.925537000000077],[-102.09472700000003,75.911652000000004],[-102.14639299999993,75.903320000000008],[-102.19638099999997,75.899719000000005],[-102.29638699999998,75.894989000000123],[-102.31916799999999,75.893051000000014],[-102.34665699999999,75.889434999999935],[-102.39417299999997,75.880814000000044],[-102.43055699999991,75.869979999999998],[-102.44082600000002,75.86442599999998],[-102.44943199999994,75.85832199999993],[-102.45584099999996,75.852478000000133],[-102.46000699999996,75.847214000000122],[-102.47165699999988,75.818329000000062],[-102.48277300000001,75.806366000000025],[-102.49694799999992,75.79553199999998],[-102.50917099999998,75.789429000000041],[-102.54527300000001,75.779709000000139],[-102.59028599999994,75.770537999999988],[-102.61165599999998,75.767211999999972],[-102.636124,75.764708999999982],[-102.86638599999998,75.753601000000003],[-103.015289,75.747208000000057],[-103.137787,75.74275200000011]],[[-122.81916799999999,76.06053200000008],[-122.78056300000003,76.057205000000124],[-122.68776700000001,76.059982000000048],[-122.66194200000001,76.05693100000002],[-122.64277599999997,76.052475000000129],[-122.63082900000001,76.046646000000123],[-122.72501399999987,76.023605000000089],[-122.88194299999998,76.011108000000092],[-122.89250199999998,76.013611000000026],[-122.89611799999994,76.026931999999988],[-122.89222699999999,76.031096999999988],[-122.85082999999997,76.057205000000124],[-122.81916799999999,76.06053200000008]],[[-102.38999899999993,76.083603000000096],[-102.37554899999998,76.079163000000108],[-102.37138399999998,76.079163000000108],[-102.36805699999996,76.077209000000096],[-102.3563769999999,76.075820999999962],[-102.35333300000002,76.073883000000023],[-102.33889799999997,76.069443000000035],[-102.33249699999999,76.065536000000066],[-102.32167099999998,76.053589000000102],[-102.31639100000001,76.036925999999994],[-102.31889299999989,76.031096999999988],[-102.319458,76.024704000000042],[-102.32972699999993,76.015823000000125],[-102.34388699999994,76.010269000000108],[-102.36582900000002,76.005829000000119],[-102.41665599999999,76.000275000000101],[-102.51722699999993,75.991088999999988],[-102.56777999999991,75.985535000000141],[-102.695267,75.973312000000078],[-102.71472199999988,75.97026100000005],[-102.73972299999997,75.968048000000124],[-102.79055800000003,75.961380000000133],[-102.81139399999995,75.959990999999945],[-102.93611099999998,75.94802900000002],[-103.01027699999997,75.943038999999942],[-103.08528099999995,75.935806000000127],[-103.15695199999993,75.925812000000121],[-103.21888699999994,75.920258000000103],[-103.26500699999997,75.914429000000098],[-103.28943600000002,75.913040000000137],[-103.33944700000001,75.908035000000041],[-103.37998999999996,75.906097000000102],[-103.39639299999993,75.904434000000037],[-103.43305999999995,75.903320000000008],[-103.45333899999997,75.901657000000114],[-103.52443699999998,75.89888000000002],[-103.59277299999997,75.897217000000069],[-103.61332700000003,75.895538000000101],[-103.63474300000001,75.891098000000056],[-103.65556300000003,75.888596000000007],[-103.69972199999989,75.887496999999996],[-103.72332799999987,75.889160000000118],[-103.77111799999994,75.896378000000141],[-103.81166100000002,75.899428999999941],[-103.88806199999993,75.898041000000035],[-103.90194700000001,75.898604999999975],[-103.91471899999993,75.90248100000008],[-103.91500899999994,75.907760999999937],[-103.91722099999993,75.913605000000132],[-103.92555199999998,75.919144000000131],[-103.93611099999998,75.924149],[-103.96472199999999,75.934418000000051],[-103.97165699999994,75.938309000000118],[-103.94220699999994,75.942749000000106],[-103.90194700000001,75.943862999999908],[-103.82556199999999,75.950821000000076],[-103.80248999999998,75.953873000000044],[-103.78527799999995,75.957489000000066],[-103.77139299999988,75.963043000000084],[-103.75834700000001,75.966660000000047],[-103.7083439999999,75.972488000000112],[-103.68776699999989,75.97387700000013],[-103.598343,75.977203000000145],[-103.57444799999996,75.976654000000053],[-103.55471799999998,75.975266000000147],[-103.52250699999991,75.97554000000008],[-103.49694799999997,75.979980000000069],[-103.474716,75.985259999999982],[-103.45694700000001,75.990814000000114],[-103.41306299999997,76.001663000000008],[-103.39138800000001,76.006104000000107],[-103.36582899999996,76.009429999999952],[-103.34028599999988,76.013884999999959],[-103.31500199999999,76.017212000000086],[-103.29028299999999,76.018599999999992],[-103.26363399999997,76.019440000000088],[-103.22138999999993,76.019150000000025],[-103.196663,76.020537999999988],[-103.17887899999999,76.024994000000049],[-103.15666199999993,76.036652000000061],[-103.13667299999992,76.041656000000046],[-103.120003,76.043320000000051],[-103.05110200000001,76.043593999999985],[-103.00639299999995,76.044707999999957],[-102.98110999999989,76.04693600000013],[-102.95556599999998,76.050261999999975],[-102.91555800000003,76.060257000000092],[-102.88971700000002,76.064423000000147],[-102.86833199999995,76.066940000000045],[-102.86028299999992,76.066666000000112],[-102.85582699999992,76.067764000000011],[-102.75666799999993,76.073044000000095],[-102.708618,76.077484000000084],[-102.68138099999999,76.079163000000108],[-102.65805099999994,76.082214000000135],[-102.60777299999995,76.085814999999968],[-102.53138699999994,76.089431999999931],[-102.46806300000003,76.090271000000087],[-102.42804699999999,76.089431999999931],[-102.40416699999997,76.087769000000037],[-102.39639299999999,76.086655000000064],[-102.38999899999993,76.083603000000096]],[[-118.31639100000001,75.57249500000006],[-118.35472099999993,75.558868000000018],[-118.58306900000002,75.499419999999986],[-118.60472099999998,75.496368000000075],[-118.7036129999999,75.503052000000082],[-118.72250400000001,75.504440000000045],[-118.82749899999999,75.532761000000107],[-118.87361099999998,75.547484999999995],[-118.87777699999998,75.553314],[-118.92804699999999,75.562759000000085],[-118.95305599999995,75.564697000000024],[-119.08194700000001,75.567764000000125],[-119.13082900000001,75.566939999999988],[-119.19695299999995,75.562484999999924],[-119.22250400000001,75.565262000000018],[-119.34028599999999,75.579436999999928],[-119.36749299999991,75.58415199999996],[-119.38333099999994,75.589157000000057],[-119.39527899999996,75.594711000000018],[-119.40583800000002,75.600540000000024],[-119.408051,75.605820000000108],[-119.40471600000001,75.611923000000047],[-119.39750700000002,75.618317000000104],[-119.37554899999998,75.631088000000034],[-119.27528399999994,75.674698000000035],[-119.18831599999987,75.702484000000084],[-119.11389200000002,75.720535000000041],[-118.95472699999999,75.778594999999996],[-118.78888699999999,75.843048000000067],[-118.762787,75.856934000000024],[-118.75834699999996,75.862198000000035],[-118.75334199999992,75.866379000000109],[-118.71694899999994,75.882751000000098],[-118.61916399999996,75.915543000000071],[-118.58139,75.924987999999985],[-118.56388899999996,75.928589000000045],[-118.40444899999994,75.960815000000082],[-118.36776699999996,75.966385000000002],[-118.34028599999999,75.967484000000013],[-118.19415300000003,75.967484000000013],[-118.16832699999998,75.968323000000112],[-118.15222199999994,75.97137500000008],[-118.13751200000002,75.979705999999965],[-118.13137799999998,75.985535000000141],[-118.13137799999998,75.991363999999976],[-118.12748699999992,75.997482000000105],[-118.10500299999995,76.023880000000077],[-118.08860800000002,76.029434000000094],[-118.07140400000003,76.034149000000127],[-118.03751399999987,76.038315000000011],[-117.99804699999993,76.039978000000133],[-117.95722999999992,76.043045000000063],[-117.93360899999993,76.047485000000052],[-117.89972699999998,76.057479999999998],[-117.88971699999996,76.060806000000014],[-117.88500999999997,76.066086000000098],[-117.89138799999995,76.072220000000129],[-117.89277600000003,76.077484000000084],[-117.88612399999988,76.079712000000029],[-117.77887699999991,76.108597000000088],[-117.72609699999998,76.115540000000067],[-117.70694700000001,76.117203000000018],[-117.662216,76.117751999999939],[-117.64111299999996,76.116652999999985],[-117.62304699999999,76.114426000000094],[-117.51944700000001,76.099716000000001],[-117.49166899999989,76.094986000000119],[-117.47138999999993,76.088882000000069],[-117.46389799999997,76.083054000000004],[-117.48916600000001,76.04693600000013],[-117.57305899999994,75.981934000000081],[-117.681107,75.921097000000088],[-117.70445299999989,75.916930999999977],[-117.74694799999997,75.910812000000135],[-117.77555799999993,75.89888000000002],[-117.83833299999998,75.859985000000052],[-117.93720999999999,75.785262999999986],[-117.94499199999996,75.77915999999999],[-117.95221700000002,75.771927000000005],[-117.95638999999994,75.765822999999955],[-117.95638999999994,75.75999500000006],[-117.97138999999993,75.728867000000037],[-118.01583899999997,75.699416999999983],[-118.06220999999999,75.685806000000014],[-118.096947,75.678589000000102],[-118.11389200000002,75.673874000000069],[-118.14277599999997,75.663879000000122],[-118.22193900000002,75.633881000000031],[-118.26363400000002,75.616928000000087],[-118.2675089999999,75.61285399999997],[-118.266953,75.609985000000108],[-118.26834099999991,75.59165999999999],[-118.31639100000001,75.57249500000006]],[[-78.926391999999964,75.875809000000004],[-78.914169000000015,75.87303200000008],[-78.904174999999896,75.867203000000075],[-78.881377999999984,75.853317000000061],[-78.876663000000008,75.849152000000061],[-78.879439999999931,75.844147000000021],[-78.897781000000009,75.839706000000092],[-78.921111999999994,75.837494000000049],[-79.048889000000031,75.836928999999998],[-79.067779999999971,75.840271000000143],[-79.072783999999956,75.844437000000028],[-79.068618999999956,75.848328000000095],[-79.05749499999996,75.853317000000061],[-79.042495999999915,75.858032000000094],[-79.021666999999923,75.867477000000008],[-79.031676999999945,75.870819000000097],[-79.05471799999998,75.872757000000036],[-79.268889999999999,75.875259000000142],[-79.319457999999941,75.87359600000002],[-79.343063000000029,75.871093999999971],[-79.361389000000031,75.86692800000003],[-79.408339999999953,75.852767999999969],[-79.420273000000009,75.848038000000088],[-79.428054999999972,75.842484000000127],[-79.458617999999944,75.810806000000071],[-79.598052999999936,75.861374000000069],[-79.620270000000005,75.862761999999975],[-79.705840999999964,75.860535000000084],[-79.726944000000003,75.861099000000024],[-79.739990000000034,75.86442599999998],[-79.752227999999889,75.878586000000098],[-79.580001999999979,75.945251000000042],[-79.567504999999983,75.949142000000109],[-79.396956999999986,76.001938000000052],[-79.375,76.005554000000075],[-79.272780999999952,76.028045999999961],[-79.137786999999946,76.077209000000096],[-79.129714999999976,76.082763999999997],[-79.121932999999956,76.088593000000003],[-79.113051999999925,76.100540000000137],[-79.091384999999889,76.114426000000094],[-79.081954999999994,76.116379000000052],[-78.923888999999974,76.121094000000085],[-78.904174999999896,76.119705000000067],[-78.893065999999976,76.115540000000067],[-78.821670999999924,76.098328000000038],[-78.805832000000009,76.09304800000001],[-78.798049999999876,76.08638000000002],[-78.799164000000019,76.079987000000074],[-78.825835999999924,76.05802900000009],[-78.833892999999989,76.052475000000129],[-78.845551,76.047485000000052],[-78.861389000000031,76.043320000000051],[-78.921660999999915,76.031937000000028],[-78.998610999999983,76.014998999999989],[-79.069732999999928,75.998322000000144],[-79.085007000000019,75.993866000000082],[-79.144729999999981,75.975266000000147],[-79.156112999999948,75.969986000000063],[-79.166655999999932,75.964157000000057],[-79.171936000000017,75.958878000000084],[-79.176392000000021,75.952774000000034],[-79.176940999999943,75.946365000000014],[-79.174437999999952,75.93942300000009],[-79.168335000000013,75.931931000000134],[-79.140288999999939,75.918868999999972],[-79.111938000000009,75.910263000000043],[-79.029449,75.888321000000133],[-79.010284000000013,75.884720000000073],[-78.989440999999943,75.881927000000132],[-78.943603999999993,75.878036000000066],[-78.926391999999964,75.875809000000004]],[[-94.843613000000005,76.122208000000057],[-94.831116000000009,76.09664900000007],[-94.870270000000005,76.068877999999984],[-94.889175000000023,76.05802900000009],[-94.905562999999916,76.05386400000009],[-94.92860399999995,76.051086000000112],[-95.006667999999991,76.047485000000052],[-95.027221999999938,76.047760000000096],[-95.048888999999974,76.050812000000008],[-95.062499999999943,76.056090999999981],[-95.086394999999925,76.068054000000018],[-95.101943999999946,76.07777400000009],[-95.139724999999999,76.107757999999933],[-95.14416499999993,76.111922999999933],[-95.147232000000031,76.116927999999973],[-95.146392999999989,76.118042000000003],[-95.12110899999999,76.118591000000094],[-95.09445199999999,76.113602000000128],[-95.076949999999954,76.108322000000101],[-95.060546999999985,76.105819999999994],[-95.030562999999972,76.104706000000022],[-95.013061999999934,76.105819999999994],[-94.992767000000015,76.109421000000054],[-94.854445999999996,76.136658000000011],[-94.843613000000005,76.122208000000057]],[[-81.327788999999996,76.147217000000012],[-81.338607999999965,76.146378000000084],[-81.452498999999875,76.155822999999941],[-81.462508999999955,76.15887500000008],[-81.456954999999994,76.163605000000075],[-81.415833000000021,76.176926000000037],[-81.378051999999968,76.184417999999994],[-81.348891999999978,76.187485000000095],[-81.294448999999929,76.187759000000028],[-81.267226999999991,76.187759000000028],[-81.221663999999976,76.185531999999967],[-81.203338999999971,76.181091000000038],[-81.201401000000033,76.177765000000022],[-81.208617999999944,76.172211000000004],[-81.306106999999884,76.151093000000117],[-81.327788999999996,76.147217000000012]],[[-102.53083800000002,76.223312000000021],[-102.52722199999994,76.216934000000094],[-102.53138699999994,76.211655000000121],[-102.58056599999986,76.152481000000023],[-102.636124,76.125534000000073],[-102.65055799999999,76.119980000000112],[-102.67138699999998,76.114151000000106],[-102.73665599999998,76.098601999999971],[-102.78056300000003,76.089706000000035],[-102.80638099999999,76.085541000000035],[-102.85777300000001,76.078873000000101],[-102.93360899999999,76.070831000000112],[-103.34221599999995,76.036652000000061],[-103.36472300000003,76.035812000000021],[-103.67999299999997,76.034149000000127],[-103.82000700000003,76.031372000000033],[-103.86638600000003,76.030823000000055],[-103.91443599999997,76.03166200000004],[-103.962219,76.034714000000122],[-103.97277799999995,76.039703000000088],[-103.92388899999997,76.040817000000061],[-103.87832599999996,76.043869000000029],[-103.86945299999996,76.047485000000052],[-103.88861099999997,76.049712999999997],[-103.98332199999999,76.057205000000124],[-104.06054699999999,76.062195000000031],[-104.08677699999998,76.06053200000008],[-104.08743999999996,76.05819699999995],[-104.13082899999989,76.056366000000025],[-104.39111300000002,76.078323000000069],[-104.40833999999995,76.082214000000135],[-104.47833300000002,76.135817999999972],[-104.48277299999995,76.142211999999972],[-104.46389799999992,76.15887500000008],[-104.45417800000001,76.164429000000041],[-104.31582600000002,76.208037999999988],[-104.29804999999993,76.212494000000049],[-104.27250700000002,76.216095000000109],[-104.24722300000002,76.218596999999988],[-104.17223399999995,76.224152000000117],[-104.14806399999986,76.2227630000001],[-104.07472200000001,76.222213999999951],[-103.9569469999999,76.233047000000113],[-103.91805999999997,76.239975000000129],[-103.85138699999999,76.250000000000057],[-103.59445199999999,76.26527400000009],[-103.33693699999998,76.27998400000007],[-103.13137799999993,76.303040000000067],[-103.11000100000001,76.304703000000018],[-103.05999799999995,76.306366000000139],[-102.86472299999997,76.311095999999964],[-102.81696299999999,76.312194999999974],[-102.765556,76.311645999999996],[-102.72693599999997,76.30581699999999],[-102.66915899999992,76.295822000000101],[-102.66555799999998,76.294708000000128],[-102.65222199999994,76.287766000000033],[-102.64277599999997,76.269989000000123],[-102.63362100000001,76.257491999999957],[-102.62554899999992,76.251937999999996],[-102.6036069999999,76.24552900000009],[-102.55832700000002,76.235809000000017],[-102.54055799999998,76.229431000000091],[-102.53083800000002,76.223312000000021]],[[-89.398894999999982,76.43553200000008],[-89.425003000000004,76.43553200000008],[-89.599166999999966,76.440262000000132],[-89.613616999999977,76.440811000000053],[-89.625548999999978,76.444976999999994],[-89.615004999999996,76.449141999999995],[-89.559158000000025,76.470535000000098],[-89.533065999999963,76.47665400000011],[-89.49499499999996,76.472488000000055],[-89.488327000000027,76.46804800000001],[-89.465835999999911,76.462203999999986],[-89.446380999999917,76.457763999999997],[-89.40834000000001,76.450546000000145],[-89.386123999999938,76.447754000000089],[-89.378051999999968,76.444138000000009],[-89.380553999999961,76.439147999999989],[-89.398894999999982,76.43553200000008]],[[-83.962783999999999,76.426375999999948],[-83.986114999999984,76.423309000000017],[-84.009170999999924,76.425812000000008],[-84.109436000000017,76.444427000000132],[-84.12388599999997,76.451096000000007],[-84.139449999999954,76.507217000000082],[-84.128052000000025,76.50999500000006],[-84.097503999999901,76.506653000000142],[-84.013625999999931,76.498032000000023],[-83.992492999999854,76.494980000000112],[-83.976944000000003,76.491089000000045],[-83.918334999999956,76.469437000000028],[-83.908050999999944,76.464996000000099],[-83.962783999999999,76.426375999999948]],[[-104.05387899999999,76.563034000000073],[-104.03388999999999,76.559708000000001],[-103.87888299999997,76.573608000000092],[-103.86860699999994,76.579162999999994],[-103.86665299999993,76.584991000000116],[-103.87138400000003,76.596649000000127],[-103.86721799999998,76.603043000000014],[-103.85944399999994,76.607208000000014],[-103.82640100000003,76.618317000000047],[-103.804169,76.621918000000107],[-103.78751399999993,76.620529000000147],[-103.58194699999996,76.547759999999982],[-103.58805799999993,76.541930999999977],[-103.59249899999998,76.535812000000135],[-103.59166700000003,76.53137200000009],[-103.587784,76.524993999999936],[-103.57028199999996,76.521103000000096],[-103.404449,76.494705000000124],[-103.38445299999995,76.492203000000018],[-103.32112100000001,76.494980000000112],[-103.24500299999994,76.485535000000027],[-103.05777,76.457763999999997],[-103.03666699999991,76.453873000000101],[-103.01418299999995,76.447754000000089],[-103.00805699999989,76.441650000000038],[-103.00446299999999,76.435257000000092],[-103.00446299999999,76.429977000000008],[-103.011124,76.423309000000017],[-103.01917300000002,76.418045000000063],[-103.02971599999989,76.412491000000045],[-103.0425029999999,76.406372000000033],[-103.098343,76.384720000000016],[-103.17250099999995,76.362762000000032],[-103.20472699999993,76.354705999999965],[-103.281387,76.336929000000112],[-103.37805200000003,76.325546000000088],[-103.55444299999999,76.310257000000036],[-103.70056199999993,76.304152999999985],[-103.75195299999996,76.303589000000045],[-103.848343,76.310257000000036],[-104.06194299999993,76.317490000000021],[-104.11165599999998,76.316376000000048],[-104.33500699999996,76.318603999999993],[-104.37888299999992,76.323317999999972],[-104.396118,76.327774000000034],[-104.40471599999995,76.333328000000051],[-104.404449,76.334427000000005],[-104.38971700000002,76.342758000000117],[-104.37581599999993,76.348328000000038],[-104.362213,76.352202999999975],[-104.34333799999996,76.354156000000103],[-104.32972699999999,76.358032000000037],[-104.328056,76.363876000000005],[-104.39111300000002,76.461105000000032],[-104.43388399999998,76.484984999999995],[-104.44888300000002,76.491089000000045],[-104.47332799999998,76.49331699999999],[-104.48249800000002,76.490540000000124],[-104.48361199999999,76.485808999999961],[-104.49749800000001,76.481093999999928],[-104.52278100000001,76.480545000000006],[-104.56388900000002,76.482208000000128],[-104.65888999999987,76.545822000000044],[-104.66583300000002,76.551651000000049],[-104.63722200000001,76.603317000000118],[-104.56304899999998,76.612761999999975],[-104.53666699999997,76.617203000000075],[-104.445267,76.635818000000029],[-104.40666199999987,76.645538000000101],[-104.37416100000002,76.655823000000055],[-104.35193600000002,76.660263000000043],[-104.31500199999994,76.663879000000122],[-104.26750199999998,76.667206000000022],[-104.21665999999999,76.668320000000051],[-104.13417099999998,76.669434000000024],[-104.05332899999996,76.664703000000088],[-104.031113,76.661652000000061],[-103.96333299999998,76.649994000000049],[-103.93971299999998,76.644714000000135],[-103.926941,76.638046000000145],[-103.9225009999999,76.633605999999986],[-103.92610200000001,76.621918000000107],[-103.93831599999999,76.610535000000141],[-103.95861799999994,76.599152000000117],[-104.02778599999988,76.579162999999994],[-104.051941,76.568878000000041],[-104.05387899999999,76.563034000000073]],[[-98.418059999999912,76.668320000000051],[-98.403885000000002,76.661377000000016],[-98.413939999999911,76.647491000000059],[-98.423606999999947,76.641486999999927],[-98.425780999999972,76.63848900000005],[-98.425277999999992,76.63564300000013],[-98.429169000000002,76.626922999999977],[-98.419723999999917,76.622482000000048],[-98.376099000000011,76.611923000000047],[-98.357773000000009,76.608321999999987],[-98.281386999999995,76.602203000000145],[-98.180557000000022,76.586929000000055],[-98.189712999999983,76.580276000000083],[-98.242766999999958,76.571655000000135],[-98.258621000000005,76.573318000000086],[-98.278335999999967,76.581100000000049],[-98.298339999999996,76.585266000000104],[-98.319457999999997,76.58859300000006],[-98.362502999999947,76.593323000000112],[-98.395554000000004,76.594437000000084],[-98.40194699999995,76.591934000000094],[-98.398894999999925,76.581375000000037],[-98.378051999999968,76.572220000000016],[-98.357773000000009,76.565536000000122],[-98.322784000000013,76.561096000000134],[-98.080565999999976,76.531097000000102],[-97.944442999999978,76.518051000000128],[-97.897780999999895,76.515823000000012],[-97.807770000000005,76.514435000000105],[-97.764450000000011,76.510544000000039],[-97.750290000000007,76.506942999999978],[-97.693328999999949,76.487762000000089],[-97.684722999999963,76.47164900000007],[-97.662215999999944,76.425261999999975],[-97.662505999999894,76.419434000000081],[-97.670273000000009,76.414992999999981],[-97.706954999999937,76.405548000000067],[-97.718886999999995,76.40109300000006],[-97.727218999999991,76.395537999999988],[-97.731673999999998,76.38998400000014],[-97.761397999999986,76.334991000000002],[-97.728881999999999,76.282760999999994],[-97.726104999999905,76.278320000000065],[-97.699432000000002,76.266663000000108],[-97.64805599999994,76.250275000000045],[-97.610549999999989,76.242203000000075],[-97.591674999999952,76.23692299999999],[-97.575561999999991,76.231369000000029],[-97.523055999999997,76.205826000000116],[-97.516952999999944,76.199997000000053],[-97.509170999999981,76.188873000000001],[-97.494994999999903,76.148880000000133],[-97.494445999999868,76.138885000000073],[-97.503066999999874,76.127472000000068],[-97.517776000000026,76.119141000000127],[-97.542496000000028,76.108322000000101],[-97.563323999999966,76.097487999999998],[-97.588333000000034,76.080826000000002],[-97.656386999999938,75.972762999999986],[-97.647507000000019,75.944427000000076],[-97.64555399999989,75.938873000000058],[-97.642226999999934,75.9327550000001],[-97.612503000000004,75.901932000000102],[-97.597778000000005,75.889434999999935],[-97.597778000000005,75.846939000000134],[-97.654174999999896,75.798324999999977],[-97.664169000000015,75.793320000000108],[-97.693603999999993,75.785812000000078],[-97.707503999999972,75.783324999999991],[-97.837219000000005,75.765549000000021],[-97.913329999999974,75.751663000000065],[-97.930557000000022,75.746933000000013],[-97.938598999999954,75.741364000000033],[-97.870543999999938,75.73054499999995],[-97.827224999999885,75.726929000000098],[-97.690276999999867,75.720535000000041],[-97.425551999999982,75.692200000000071],[-97.404448999999943,75.68803400000013],[-97.386672999999973,75.682754999999986],[-97.375823999999852,75.676376000000118],[-97.369995000000017,75.670822000000101],[-97.368606999999997,75.659424000000115],[-97.369155999999975,75.653320000000065],[-97.384734999999978,75.643326000000059],[-97.394454999999937,75.638321000000019],[-97.410003999999958,75.620818999999983],[-97.41194200000001,75.61554000000001],[-97.423889000000031,75.528595000000053],[-97.422501000000011,75.506377999999984],[-97.417495999999971,75.494705000000124],[-97.401397999999858,75.458602999999982],[-97.398055999999997,75.45248400000014],[-97.378326000000015,75.43414300000012],[-97.349730999999963,75.419983000000002],[-97.330565999999919,75.414153999999996],[-97.293883999999991,75.405548000000067],[-97.285003999999958,75.402205999999978],[-97.280837999999903,75.396941999999967],[-97.293334999999956,75.390823000000125],[-97.305557000000022,75.390274000000034],[-97.320557000000008,75.391098],[-97.341675000000009,75.393875000000094],[-97.441665999999998,75.414992999999981],[-97.469161999999983,75.422760000000096],[-97.484160999999915,75.429428000000087],[-97.49610899999999,75.442200000000071],[-97.49888599999997,75.469986000000006],[-97.496658000000025,75.478592000000106],[-97.573623999999882,75.513046000000145],[-97.711944999999901,75.566666000000055],[-97.728881999999999,75.570267000000058],[-97.744155999999975,75.571106000000043],[-97.762511999999958,75.568054000000132],[-97.818061999999884,75.54898100000014],[-97.827552999999909,75.545815000000005],[-97.827056999999911,75.539817999999968],[-97.821724000000017,75.537323000000129],[-97.811561999999924,75.535156000000029],[-97.802054999999996,75.53532400000006],[-97.801940999999999,75.524429000000112],[-97.789992999999924,75.51887499999998],[-97.774169999999913,75.508331000000112],[-97.758895999999993,75.496643000000063],[-97.748046999999872,75.484421000000111],[-97.744720000000029,75.478317000000061],[-97.743332000000009,75.471924000000115],[-97.745269999999948,75.466660000000104],[-97.756392999999946,75.462204000000042],[-97.783324999999877,75.45748900000001],[-97.80749499999996,75.456650000000025],[-97.835830999999985,75.460815000000025],[-97.840835999999854,75.464996000000099],[-97.845001000000025,75.469986000000006],[-97.855674999999906,75.484482000000014],[-97.85600299999993,75.487488000000042],[-97.858001999999885,75.494644000000051],[-97.859169000000009,75.497985999999969],[-97.86983499999991,75.501160000000084],[-97.882338999999945,75.503494000000103],[-97.90834000000001,75.513321000000133],[-97.932495000000017,75.512496999999996],[-97.951950000000011,75.507492000000127],[-98.041672000000005,75.483322000000101],[-98.043335000000013,75.481368999999972],[-97.985549999999989,75.457214000000135],[-97.957503999999915,75.44720499999994],[-97.933318999999983,75.448029000000133],[-97.911117999999931,75.446090999999967],[-97.782776000000013,75.428314000000114],[-97.774718999999948,75.423035000000141],[-97.793610000000001,75.413040000000024],[-97.808608999999933,75.408875000000023],[-97.934432999999899,75.407486000000063],[-97.984726000000023,75.408875000000023],[-98.004729999999881,75.413605000000075],[-98.028060999999923,75.413879000000009],[-98.019890000000032,75.407042999999987],[-98.028724999999895,75.404541000000108],[-98.032386999999915,75.400879000000145],[-98.029556000000014,75.398375999999985],[-98.021225000000015,75.39521000000002],[-97.96055599999994,75.384720000000016],[-97.920272999999952,75.38081399999993],[-97.901397999999915,75.379974000000061],[-97.884445000000028,75.376373000000058],[-97.872771999999998,75.37081900000004],[-97.876662999999894,75.364990000000034],[-97.887786999999946,75.360535000000027],[-97.910277999999948,75.356644000000131],[-97.926392000000021,75.35554500000012],[-97.990554999999972,75.355819999999994],[-98.042769999999962,75.35914600000001],[-98.070107000000007,75.364700000000028],[-98.070769999999982,75.367088000000081],[-98.074112000000014,75.369033999999942],[-98.082779000000016,75.370033000000035],[-98.107772999999895,75.371917999999994],[-98.124709999999993,75.367202999999961],[-98.136397999999986,75.361923000000104],[-98.141953000000001,75.356644000000131],[-98.153610000000015,75.345535000000041],[-98.165282999999988,75.334152000000017],[-98.164718999999934,75.329163000000051],[-98.129165999999998,75.30192599999998],[-98.120543999999995,75.297760000000039],[-98.101395000000025,75.291931000000034],[-98.064712999999927,75.285812000000021],[-97.913054999999986,75.264159999999947],[-97.87388599999997,75.270263999999997],[-97.755843999999911,75.229431000000091],[-97.74360699999994,75.224991000000102],[-97.735001000000011,75.207214000000022],[-97.736937999999952,75.204437000000098],[-97.759734999999978,75.188582999999994],[-97.676940999999999,75.164154000000053],[-97.62860099999989,75.151093000000117],[-97.602492999999924,75.147217000000069],[-97.597503999999958,75.149155000000007],[-97.605834999999956,75.158325000000048],[-97.614440999999886,75.162766000000147],[-97.613051999999982,75.164703000000031],[-97.597778000000005,75.164703000000031],[-97.578613000000018,75.15887500000008],[-97.567779999999971,75.152481000000023],[-97.567504999999926,75.147491000000002],[-97.582503999999915,75.137496999999996],[-97.619445999999925,75.118590999999924],[-97.639998999999989,75.116379000000052],[-97.746947999999975,75.111649000000057],[-97.843886999999938,75.110260000000039],[-97.86250299999989,75.111099000000024],[-97.881377999999927,75.11692800000003],[-98.024719000000005,75.162490999999932],[-98.033614999999998,75.17164600000001],[-98.034438999999963,75.181656000000089],[-98.02694699999995,75.187195000000088],[-98.02027899999996,75.196640000000002],[-98.019164999999987,75.201096000000064],[-98.025833000000034,75.210815000000082],[-98.041381999999885,75.216385000000002],[-98.061661000000015,75.22026100000005],[-98.085281000000009,75.2227630000001],[-98.098617999999931,75.2227630000001],[-98.146666999999866,75.180816999999934],[-98.146666999999866,75.163879000000065],[-98.145553999999947,75.159987999999998],[-98.136123999999995,75.154160000000047],[-98.121384000000035,75.147491000000002],[-98.081389999999999,75.130538999999999],[-98.039169000000015,75.116379000000052],[-98.025557999999933,75.113601999999958],[-98.00306699999993,75.112761999999918],[-97.981673999999941,75.110809000000017],[-97.966949,75.104155999999989],[-97.947219999999902,75.079987000000074],[-97.938888999999904,75.069716999999969],[-97.938598999999954,75.064986999999917],[-97.945830999999998,75.026657],[-97.949996999999996,75.021103000000039],[-97.960006999999905,75.017487000000131],[-97.982497999999907,75.015273999999977],[-98.00306699999993,75.015549000000021],[-98.02027899999996,75.018326000000116],[-98.108886999999982,75.022491000000116],[-98.259170999999924,75.022766000000104],[-98.276947000000007,75.022217000000012],[-98.300277999999935,75.021103000000039],[-98.369719999999973,75.014435000000049],[-98.444442999999978,75.004990000000134],[-98.46833799999996,75.003052000000025],[-98.634734999999978,74.992477000000065],[-98.723891999999921,74.989426000000037],[-98.785004000000015,74.994980000000055],[-98.985001000000011,75.000000000000114],[-99.066955999999948,74.996368000000132],[-99.354445999999882,74.984420999999998],[-99.376662999999951,74.98553499999997],[-99.394164999999987,74.988037000000077],[-99.406113000000005,74.993316999999934],[-99.393615999999952,75.027205999999978],[-99.387512000000015,75.03776600000009],[-99.335555999999997,75.070541000000105],[-99.299437999999952,75.092758000000003],[-99.28195199999999,75.102768000000083],[-99.27694699999995,75.108032000000094],[-99.272232000000031,75.115814000000057],[-99.281386999999995,75.122481999999991],[-99.308043999999995,75.122481999999991],[-99.325835999999924,75.11831699999999],[-99.34056099999998,75.113037000000134],[-99.445540999999935,75.058318999999983],[-99.482497999999964,75.03776600000009],[-99.496657999999968,75.026382000000012],[-99.5,75.020537999999988],[-99.496108999999933,75.014708999999982],[-99.480285999999978,75.009155000000135],[-99.445540999999935,75.003875999999991],[-99.432495000000017,75.000275000000101],[-99.42721599999993,74.996368000000132],[-99.426391999999964,74.991364000000033],[-99.538605000000018,74.974152000000004],[-99.562499999999943,74.972214000000065],[-99.602782999999988,74.971100000000035],[-99.619719999999973,74.97137500000008],[-99.701675000000023,74.973602000000142],[-99.990554999999915,74.984420999999998],[-100.05722000000003,74.986923000000104],[-100.14584400000001,74.991088999999988],[-100.21056399999998,74.997208000000001],[-100.25306699999993,75.002777000000037],[-100.34777799999995,75.016937000000098],[-100.36389200000002,75.021378000000027],[-100.38945000000001,75.031097000000045],[-100.39388999999994,75.037201000000039],[-100.396118,75.043594000000041],[-100.39750699999991,75.055542000000059],[-100.39723199999997,75.066666000000112],[-100.39472999999998,75.078323000000069],[-100.38583399999999,75.095535000000098],[-100.38054699999986,75.101928999999984],[-100.37805200000003,75.113311999999951],[-100.39806399999998,75.158600000000092],[-100.41221599999994,75.16804500000012],[-100.43250299999994,75.173598999999967],[-100.45333900000003,75.177200000000028],[-100.47693599999997,75.179428000000144],[-100.51112399999994,75.184143000000006],[-100.52834300000001,75.187759000000028],[-100.54444899999993,75.193039000000113],[-100.54695099999998,75.199417000000096],[-100.53859699999998,75.204711999999972],[-100.46333299999998,75.223602000000085],[-100.43859900000001,75.226653999999996],[-100.41722099999998,75.227478000000133],[-100.32528699999995,75.230545000000063],[-100.30222299999997,75.230820000000108],[-100.27999899999998,75.22886699999998],[-100.24833699999999,75.223877000000073],[-100.22556299999997,75.223037999999974],[-100.031387,75.226929000000041],[-100.00778200000002,75.228043000000014],[-99.990554999999915,75.231369000000029],[-99.987777999999992,75.236099000000081],[-99.995269999999948,75.239975000000129],[-100.00945300000001,75.242203000000075],[-100.11945300000002,75.248596000000077],[-100.20333900000003,75.253326000000072],[-100.22609699999998,75.254165999999941],[-100.314438,75.250824000000023],[-100.35417200000001,75.251663000000008],[-100.37554899999986,75.255264000000011],[-100.39388999999994,75.260269000000108],[-100.406113,75.266663000000108],[-100.40278599999999,75.272491000000059],[-100.33444199999991,75.274428999999998],[-100.31166100000002,75.277206000000092],[-100.29387700000001,75.281371999999976],[-100.279449,75.286652000000061],[-100.25805700000001,75.297760000000039],[-100.24445299999996,75.308868000000018],[-100.25723299999993,75.313308999999947],[-100.28222699999992,75.310257000000036],[-100.33277900000002,75.302200000000084],[-100.35944399999994,75.299712999999997],[-100.49999999999989,75.292480000000012],[-100.52306399999998,75.293045000000006],[-100.60888699999998,75.305817000000047],[-100.62249799999995,75.309143000000063],[-100.76555599999989,75.34637500000008],[-100.77887699999991,75.35054000000008],[-100.76888999999994,75.355255000000113],[-100.67639199999996,75.376648000000046],[-100.65222199999999,75.378585999999984],[-100.63305700000001,75.378036000000122],[-100.61805700000002,75.376648000000046],[-100.60221899999993,75.373596000000134],[-100.61833199999995,75.368866000000082],[-100.64389,75.364700000000028],[-100.67999299999997,75.361923000000104],[-100.69833399999993,75.356644000000131],[-100.68222000000003,75.350266000000147],[-100.63806199999999,75.345825000000048],[-100.61472299999997,75.346100000000092],[-100.59472699999998,75.347487999999998],[-100.44748699999991,75.369980000000055],[-100.43277,75.375259000000028],[-100.42832899999991,75.380539000000113],[-100.44055200000003,75.386658000000125],[-100.56527699999998,75.422211000000004],[-100.58444199999997,75.426376000000005],[-100.60694899999999,75.42804000000001],[-100.67555199999993,75.426926000000037],[-100.71694899999989,75.429153000000099],[-100.72305299999999,75.432479999999998],[-100.69776899999999,75.436371000000065],[-100.67331699999994,75.438582999999937],[-100.43388399999998,75.445815999999979],[-100.33972199999999,75.447479000000101],[-100.27084400000001,75.448593000000074],[-100.17666600000001,75.449141999999995],[-100.11138899999997,75.451096000000007],[-100.06276700000001,75.454437000000041],[-100.01194800000002,75.461380000000077],[-100.00917099999992,75.466095000000109],[-100.01944700000001,75.468596999999988],[-100.10056299999997,75.470535000000098],[-100.19193999999999,75.467758000000003],[-100.21528599999988,75.467758000000003],[-100.30695300000002,75.47164900000007],[-100.30555699999996,75.473602000000028],[-100.12999000000002,75.525818000000129],[-100.03415699999988,75.529433999999981],[-99.966948999999943,75.533325000000048],[-99.845000999999968,75.540817000000004],[-99.831389999999999,75.544144000000131],[-99.832229999999981,75.545532000000037],[-99.845000999999968,75.547484999999995],[-99.856383999999991,75.548035000000027],[-99.899993999999992,75.547484999999995],[-99.946655000000021,75.544708000000071],[-99.990279999999984,75.544434000000138],[-100.03859699999998,75.549149],[-100.03943600000002,75.554152999999985],[-100.02806099999998,75.557205000000067],[-99.823623999999938,75.58415199999996],[-99.800551999999925,75.586655000000121],[-99.756393000000003,75.588043000000027],[-99.736938000000009,75.587204000000099],[-99.712508999999955,75.589157000000057],[-99.672774999999945,75.606094000000041],[-99.667770000000019,75.611099000000081],[-99.685821999999973,75.613876000000005],[-99.790833000000021,75.616653000000099],[-99.84056099999998,75.612488000000099],[-99.863051999999982,75.614426000000037],[-99.862503000000004,75.618866000000025],[-99.823623999999938,75.651657],[-99.817504999999926,75.655258000000003],[-99.788054999999929,75.658324999999934],[-99.458617999999944,75.672485000000052],[-99.226669000000015,75.675537000000134],[-99.202498999999989,75.675537000000134],[-99.083617999999944,75.675812000000008],[-99.033066000000019,75.677200000000084],[-98.982773000000009,75.681090999999981],[-98.929717999999923,75.686371000000008],[-98.905562999999916,75.689972000000068],[-98.889998999999989,75.695251000000042],[-98.891388000000006,75.699141999999938],[-98.907775999999956,75.704712000000029],[-98.925827000000027,75.707489000000123],[-98.950286999999889,75.709991000000002],[-98.97193900000002,75.710266000000047],[-99.329453000000001,75.695251000000042],[-99.55749499999996,75.691925000000026],[-99.619995000000017,75.694138000000009],[-99.643889999999999,75.694138000000009],[-99.740828999999906,75.690811000000053],[-99.84973100000002,75.677475000000072],[-100.031677,75.664428999999984],[-100.256393,75.651657],[-100.37332199999997,75.654709000000082],[-100.39723199999997,75.654434000000037],[-100.54028299999993,75.645537999999931],[-100.62888299999997,75.634720000000129],[-100.65416699999997,75.631653000000028],[-100.80471799999998,75.614990000000148],[-100.82972699999999,75.61303700000002],[-101.22556299999991,75.587494000000106],[-101.24916100000002,75.587204000000099],[-101.30638099999999,75.591094999999996],[-101.37721299999993,75.59887700000013],[-101.38806199999999,75.60026600000009],[-101.47165699999999,75.602203000000145],[-101.4955369999999,75.601929000000041],[-101.74944299999999,75.574432000000058],[-101.89835399999998,75.556091000000094],[-101.97250399999996,75.548325000000034],[-101.99638399999998,75.547211000000061],[-102.06723,75.546097000000088],[-102.13639799999993,75.553314],[-102.15915699999999,75.554977000000122],[-102.20667300000002,75.553314],[-102.35193599999997,75.542206000000022],[-102.39916999999997,75.537200999999982],[-102.44860799999998,75.530547999999953],[-102.49916099999996,75.521103000000096],[-102.53415699999999,75.511383000000023],[-102.67304999999999,75.514709000000039],[-102.86694299999999,75.601089000000002],[-102.87805200000003,75.607758000000047],[-102.88194299999992,75.613312000000064],[-102.88390400000003,75.61914100000007],[-102.87777699999992,75.624695000000031],[-102.86054999999999,75.62831100000011],[-102.8125,75.631088000000034],[-102.79305999999991,75.630539000000056],[-102.70140100000003,75.628860000000032],[-102.68916299999995,75.670532000000094],[-102.58168000000001,75.71276899999998],[-102.56360599999999,75.718322999999998],[-102.53888699999993,75.72137499999991],[-102.37748699999992,75.729155999999989],[-102.35193599999997,75.729155999999989],[-102.31139400000001,75.72665400000011],[-102.26390100000003,75.721924000000058],[-102.16832699999992,75.709152000000074],[-102.15416700000003,75.706100000000106],[-102.07861300000002,75.688309000000004],[-102.05776999999995,75.690811000000053],[-102.03666699999997,75.694138000000009],[-102.01862299999999,75.699416999999983],[-102.00917099999998,75.703048999999908],[-102.00805700000001,75.704987000000074],[-102.09166699999997,75.721924000000058],[-102.120003,75.776382000000012],[-102.10185200000001,75.784247999999991],[-102.09361299999989,75.791091999999992],[-102.112213,75.793594000000041],[-102.23277299999995,75.786652000000117],[-102.28222700000003,75.781937000000084],[-102.32668299999995,75.779983999999956],[-102.34388699999994,75.781937000000084],[-102.36609599999997,75.789978000000019],[-102.37165800000002,75.795821999999987],[-102.37332200000003,75.801650999999993],[-102.37082700000002,75.807480000000055],[-102.36250299999995,75.818054000000075],[-102.33944700000001,75.834991000000059],[-102.31667299999998,75.846649000000127],[-102.29028299999993,75.857208000000128],[-102.26640299999997,75.86192299999999],[-102.16306299999997,75.878860000000032],[-102.13806199999993,75.881087999999977],[-101.864441,75.902206000000035],[-101.82640099999992,75.898331000000042],[-101.80526700000001,75.891937000000041],[-101.79943800000001,75.886658000000068],[-101.77194199999997,75.868590999999981],[-101.74833699999999,75.859146000000067],[-101.74109599999991,75.856934000000024],[-101.55638099999987,75.821105999999986],[-101.47028399999999,75.772217000000012],[-101.46888699999994,75.766388000000006],[-101.45973199999997,75.761107999999922],[-101.43859900000001,75.755554000000132],[-101.41416899999996,75.752487000000031],[-101.301941,75.746094000000085],[-101.254997,75.744705000000067],[-101.24416400000001,75.746933000000013],[-101.23388699999998,75.751389000000131],[-101.20249899999993,75.767211999999972],[-101.18221999999997,75.779709000000139],[-101.23110999999994,75.777205999999978],[-101.328056,75.774429000000055],[-101.34777799999995,75.774994000000106],[-101.35555999999991,75.779433999999924],[-101.35861199999999,75.784988000000112],[-101.35193599999991,75.790543000000014],[-101.34137699999997,75.796097000000032],[-101.326683,75.801650999999993],[-101.323624,75.807480000000055],[-101.32501200000002,75.813309000000061],[-101.33500700000002,75.825272000000098],[-101.34056099999992,75.830276000000026],[-101.35637700000001,75.843048000000067],[-101.36389199999996,75.8477630000001],[-101.37805199999997,75.851928999999984],[-101.39277600000003,75.854431000000034],[-101.40833999999995,75.855820000000051],[-101.42388900000003,75.856369000000029],[-101.48889199999996,75.854156000000046],[-101.52694699999995,75.85832199999993],[-101.537216,75.861374000000069],[-101.54638699999992,75.867477000000008],[-101.57917799999996,75.908600000000092],[-101.56500199999988,75.929703000000018],[-101.49665800000002,75.954987000000017],[-101.47778299999999,75.96026599999999],[-101.45221700000002,75.963608000000079],[-101.39417299999997,75.97554000000008],[-101.30915800000002,76.008330999999998],[-101.30277999999987,76.013046000000031],[-101.31582599999996,76.019150000000025],[-101.33556399999992,76.020827999999995],[-101.36971999999992,76.016937000000098],[-101.38249200000001,76.010818000000086],[-101.39195299999989,76.000549000000035],[-101.40833999999995,75.995529000000147],[-101.61721799999998,75.980820000000108],[-101.641953,75.979705999999965],[-101.67832900000002,75.979705999999965],[-101.68388399999998,75.980270000000075],[-101.728882,75.987488000000099],[-101.80638099999999,76.007492000000013],[-101.83249699999999,76.016662999999994],[-101.84889199999992,76.024704000000042],[-101.89362299999993,76.060257000000092],[-101.90055799999999,76.066666000000112],[-101.90722700000003,76.078598000000056],[-101.90862299999998,76.084427000000062],[-101.90750099999997,76.096100000000092],[-101.90222199999999,76.107757999999933],[-101.88861099999991,76.119141000000127],[-101.761124,76.174148999999943],[-101.71140300000002,76.184708000000001],[-101.685272,76.187759000000028],[-101.60833699999995,76.194427000000019],[-101.53362299999998,76.205261000000064],[-101.48860200000001,76.213608000000022],[-101.46556099999998,76.218872000000033],[-101.39611799999989,76.243317000000047],[-101.38500999999997,76.248871000000065],[-101.387787,76.251937999999996],[-101.44193999999993,76.241653000000042],[-101.49694799999992,76.233871000000079],[-101.69888299999997,76.219437000000084],[-101.74973299999999,76.215820000000122],[-101.77471899999995,76.215546000000018],[-102.051941,76.213608000000022],[-102.11444099999994,76.215546000000018],[-102.13305699999989,76.219986000000006],[-102.14835399999998,76.226653999999996],[-102.16583300000002,76.238312000000008],[-102.15972899999997,76.243042000000059],[-102.13362100000001,76.246368000000075],[-102.08222999999998,76.250824000000023],[-102.06388899999996,76.255264000000011],[-102.05803700000001,76.259155000000078],[-102.00110599999999,76.352768000000026],[-102.029449,76.3808140000001],[-102.051941,76.38638300000008],[-102.05332900000002,76.392211999999915],[-102.05082700000003,76.398041000000148],[-102.03999299999998,76.403595000000109],[-102.01862299999999,76.409423999999944],[-101.88583399999993,76.444976999999994],[-101.86221299999994,76.450272000000041],[-101.80832699999996,76.454163000000108],[-101.78333299999991,76.454437000000041],[-101.67111199999999,76.449141999999995],[-101.45667300000002,76.436371000000065],[-101.43472300000002,76.434418000000107],[-101.41166699999997,76.430817000000047],[-101.31582599999996,76.414428999999984],[-101.30249000000003,76.408324999999991],[-101.29138199999994,76.401657],[-101.28362300000003,76.396102999999982],[-101.27667200000002,76.389435000000049],[-101.24027999999993,76.371643000000006],[-101.22805800000003,76.366928000000144],[-101.20612299999993,76.361374000000126],[-101.13694799999996,76.350815000000068],[-101.06806899999998,76.331940000000145],[-101.05832700000002,76.326935000000105],[-101.09388699999994,76.283051],[-101.00446299999993,76.237761999999975],[-100.98111,76.235260000000096],[-100.92832899999996,76.225815000000011],[-100.91000399999996,76.222213999999951],[-100.86582900000002,76.212204000000042],[-100.783073,76.191085999999984],[-100.75110599999994,76.18220500000001],[-100.71056399999998,76.166381999999999],[-100.63027999999991,76.133331000000055],[-100.43998699999992,76.105255],[-100.31582600000002,76.051376000000118],[-100.30943299999996,76.048035000000084],[-100.13166799999993,75.952484000000027],[-100.047234,75.913879000000065],[-99.982498000000021,75.890548999999908],[-99.888335999999981,75.886383000000023],[-99.753615999999909,75.906372000000147],[-99.730834999999956,75.910538000000031],[-99.71556099999998,75.916092000000049],[-99.678328999999962,75.931366000000139],[-99.587783999999999,75.94999700000011],[-99.508621000000005,75.957489000000066],[-99.483611999999937,75.958603000000039],[-99.457503999999972,75.961380000000133],[-99.442490000000021,75.965819999999951],[-99.439437999999996,75.970534999999984],[-99.45461999999992,75.974808000000053],[-99.494445999999982,75.973602000000085],[-99.657776000000013,75.961380000000133],[-99.785277999999948,75.951385000000016],[-99.811110999999983,75.948317999999915],[-99.859436000000017,75.935256999999979],[-99.86332699999997,75.935532000000023],[-99.898620999999991,75.950271999999984],[-100.07749899999999,76.038879000000122],[-100.08249699999999,76.043869000000029],[-100.09221600000001,76.054977000000008],[-100.14222699999999,76.112198000000149],[-100.15278599999994,76.132477000000108],[-100.12499999999994,76.148880000000133],[-100.10388199999994,76.153320000000008],[-100.07167099999998,76.155822999999941],[-100.031113,76.155548000000124],[-100.01139799999999,76.15387000000004],[-99.868332000000009,76.139984000000027],[-99.730834999999956,76.117477000000122],[-99.680832000000009,76.118591000000094],[-99.650832999999977,76.127472000000068],[-99.609160999999972,76.135817999999972],[-99.556106999999997,76.141663000000051],[-99.502227999999945,76.146103000000039],[-99.483062999999902,76.146942000000024],[-99.429717999999923,76.15387000000004],[-99.414444000000003,76.158325000000048],[-99.421386999999925,76.160262999999986],[-99.445267000000001,76.16137700000013],[-99.498885999999914,76.157761000000107],[-99.548888999999974,76.153320000000008],[-99.668059999999912,76.139709000000039],[-99.693054000000018,76.138596000000121],[-99.716949,76.139709000000039],[-99.874434999999892,76.17053199999998],[-99.915833000000021,76.180267000000072],[-99.948882999999967,76.189697000000137],[-100.15028399999994,76.1933140000001],[-100.17832900000002,76.19081100000011],[-100.20140099999998,76.189972000000012],[-100.22556299999997,76.19081100000011],[-100.43888900000002,76.212494000000049],[-100.47222899999991,76.226378999999952],[-100.49861099999998,76.237761999999975],[-100.51278699999989,76.249146000000053],[-100.514183,76.254166000000112],[-100.51112399999994,76.259720000000129],[-100.49944299999999,76.26527400000009],[-100.465012,76.274993999999992],[-100.43804899999998,76.278870000000097],[-100.41665599999999,76.280272999999966],[-100.36638600000003,76.281661999999983],[-100.26917300000002,76.278595000000053],[-100.18276999999995,76.270828000000108],[-100.111107,76.266388000000063],[-99.895553999999947,76.274703999999986],[-99.86999499999996,76.275817999999958],[-99.844727000000034,76.280272999999966],[-99.848617999999931,76.283874999999966],[-100.03859699999998,76.318878000000097],[-100.27722199999994,76.378585999999984],[-100.30166600000001,76.382750999999985],[-100.32362399999994,76.384155000000135],[-100.35056299999991,76.384430000000009],[-100.37444299999999,76.382750999999985],[-100.48137700000001,76.373871000000122],[-100.55332899999996,76.371094000000028],[-100.67360699999995,76.371917999999994],[-100.69444299999998,76.374985000000095],[-100.95249899999999,76.474700999999982],[-100.97222899999997,76.485260000000039],[-100.98388699999992,76.494430999999963],[-100.98554999999993,76.499145999999996],[-100.98249800000002,76.504990000000021],[-100.962784,76.510268999999994],[-100.93943799999988,76.514435000000105],[-100.89277600000003,76.519440000000145],[-100.82972699999999,76.519714000000079],[-100.80526700000001,76.522217000000069],[-100.737213,76.531097000000102],[-100.72083999999995,76.546097000000032],[-100.72341899999998,76.551094000000148],[-100.72332799999992,76.556091000000038],[-100.71250899999995,76.560531999999967],[-100.65306099999992,76.576385000000016],[-100.45861799999994,76.613602000000014],[-100.383827,76.627502000000106],[-100.36389200000002,76.631087999999977],[-100.318893,76.635544000000095],[-100.21665999999988,76.643051000000014],[-100.19193999999999,76.642212000000086],[-100.05222300000003,76.631363000000022],[-99.981673999999998,76.622207999999944],[-99.911117999999988,76.61303700000002],[-99.885009999999909,76.610535000000141],[-99.837783999999886,76.608596999999975],[-99.811385999999914,76.609710999999947],[-99.796111999999994,76.613875999999948],[-99.795272999999952,76.618317000000047],[-99.770554000000004,76.627762000000132],[-99.741942999999992,76.632751000000098],[-99.725829999999917,76.634720000000129],[-99.684433000000013,76.633331000000112],[-99.588333000000034,76.623871000000065],[-99.569457999999997,76.620529000000147],[-99.366942999999935,76.526382000000069],[-99.256957999999941,76.470535000000098],[-99.260559000000001,76.464706000000092],[-99.255279999999914,76.453598000000056],[-99.184433000000013,76.415817000000118],[-99.163619999999923,76.409149000000127],[-99.12332200000003,76.400818000000015],[-99.099990999999989,76.398041000000148],[-99.079726999999991,76.397217000000012],[-99.066101000000003,76.398605000000089],[-99.06639100000001,76.404434000000094],[-99.083617999999944,76.416092000000106],[-99.110001000000011,76.426650999999993],[-99.118332000000009,76.433044000000109],[-99.137221999999952,76.451934999999992],[-99.133895999999993,76.456650000000025],[-99.122498000000007,76.461105000000032],[-98.994155999999975,76.471099999999922],[-98.980834999999956,76.47164900000007],[-98.955276000000026,76.469147000000021],[-98.946945000000028,76.463042999999971],[-98.948043999999925,76.45277399999992],[-98.950286999999889,76.446365000000071],[-98.943603999999993,76.440811000000053],[-98.925827000000027,76.43609600000002],[-98.906386999999881,76.433318999999983],[-98.882767000000001,76.431366000000025],[-98.857773000000009,76.431366000000025],[-98.846114999999998,76.43609600000002],[-98.856110000000001,76.463882000000126],[-98.865279999999927,76.469147000000021],[-98.898620999999991,76.481093999999928],[-98.953888000000006,76.499145999999996],[-99.038054999999986,76.529708999999968],[-99.050551999999982,76.536102000000142],[-99.051940999999999,76.539978000000019],[-99.027221999999938,76.601088999999945],[-98.999160999999958,76.604980000000012],[-98.971663999999976,76.607758000000047],[-98.86082499999992,76.61442599999998],[-98.714721999999938,76.614150999999993],[-98.611114999999984,76.610260000000096],[-98.589172000000019,76.611374000000069],[-98.56639100000001,76.613602000000014],[-98.538894999999968,76.616379000000109],[-98.518065999999976,76.621368000000075],[-98.511123999999995,76.625259000000142],[-98.489731000000006,76.644707000000096],[-98.48832699999997,76.650818000000015],[-98.546951000000035,76.658035000000098],[-98.591109999999901,76.661652000000061],[-98.595000999999968,76.659424000000115],[-98.592498999999975,76.653870000000097],[-98.598617999999988,76.651093000000003],[-98.623046999999872,76.647217000000126],[-98.674438000000009,76.64387499999998],[-98.744445999999982,76.64387499999998],[-98.814163000000008,76.653595000000053],[-98.851105000000018,76.661652000000061],[-98.857773000000009,76.663879000000122],[-98.855834999999956,76.67025799999999],[-98.852492999999924,76.671646000000067],[-98.821395999999936,76.676925999999924],[-98.733611999999994,76.682754999999986],[-98.712509000000011,76.683044000000052],[-98.504729999999938,76.681090999999924],[-98.480285999999921,76.679152999999985],[-98.439986999999974,76.673035000000084],[-98.418059999999912,76.668320000000051]],[[-99.996947999999975,76.734420999999998],[-99.976395000000025,76.733597000000032],[-99.86999499999996,76.736374000000126],[-99.819457999999884,76.738312000000064],[-99.748336999999992,76.74275200000011],[-99.720839999999953,76.74581900000004],[-99.693877999999984,76.747756999999979],[-99.646392999999989,76.748031999999967],[-99.622498000000007,76.7452550000001],[-99.528884999999946,76.72554000000008],[-99.447768999999994,76.706100000000106],[-99.430556999999965,76.699416999999926],[-99.433883999999978,76.69470200000012],[-99.52806099999998,76.67442299999999],[-99.556106999999997,76.670532000000094],[-99.581680000000006,76.67025799999999],[-99.626937999999996,76.673035000000084],[-99.657776000000013,76.677765000000079],[-99.733321999999987,76.702484000000027],[-99.888389999999902,76.718651000000136],[-99.900222999999926,76.72015399999998],[-99.915557999999976,76.72015399999998],[-100.01112399999988,76.719147000000135],[-100.02999899999992,76.715820000000008],[-100.05139200000002,76.715546000000074],[-100.09750400000001,76.717209000000025],[-100.12138399999998,76.719711000000075],[-100.128601,76.721924000000058],[-100.12805199999997,76.723038000000031],[-100.10193599999997,76.744705000000067],[-100.08277899999996,76.748031999999967],[-100.05526700000001,76.75082400000008],[-100.03778099999988,76.751389000000131],[-99.999434999999949,76.751099000000067],[-99.972228999999913,76.747208000000001],[-99.975006000000008,76.742477000000065],[-99.994155999999975,76.739151000000049],[-100.004997,76.735535000000027],[-99.996947999999975,76.734420999999998]],[[-120.88362100000001,76.739700000000028],[-120.886124,76.728591999999992],[-120.90334299999995,76.723876999999959],[-120.94499199999996,76.717758000000117],[-120.97000100000002,76.716660000000047],[-121.09084299999989,76.71887200000009],[-121.11749299999991,76.719711000000075],[-121.16000400000001,76.723312000000135],[-121.18110699999994,76.727203000000031],[-121.18472299999991,76.731094000000098],[-121.18167099999999,76.732208000000071],[-121.15666199999998,76.733597000000032],[-121.12832600000002,76.730819999999994],[-121.083618,76.729155999999932],[-121.05972300000002,76.731369000000086],[-121.05638099999999,76.732483000000059],[-121.01806599999998,76.751389000000131],[-120.99082900000002,76.754715000000147],[-120.97833300000002,76.755264000000068],[-120.91443599999997,76.754165999999998],[-120.89083900000003,76.749710000000107],[-120.88474300000001,76.745529000000033],[-120.88362100000001,76.739700000000028]],[[-101.38054699999992,76.553588999999988],[-101.40416699999997,76.552765000000022],[-101.45388799999989,76.554153000000099],[-101.54083300000002,76.560806000000071],[-101.56471299999993,76.563599000000067],[-101.62332199999992,76.572768999999937],[-101.68831599999999,76.586380000000077],[-101.57556199999999,76.614150999999993],[-101.52194199999991,76.623871000000065],[-101.38583399999993,76.642487000000074],[-101.31777999999991,76.642761000000007],[-101.21362299999993,76.651931999999988],[-101.05999800000001,76.685805999999957],[-101.04250300000001,76.690536000000009],[-101.03943600000002,76.696365000000014],[-101.04028299999993,76.702209000000039],[-101.03307299999994,76.708038000000045],[-101.00583599999993,76.71887200000009],[-100.98361199999999,76.724700999999925],[-100.95749699999999,76.729155999999932],[-100.90249599999993,76.736374000000126],[-100.74388099999999,76.753326000000129],[-100.69193999999999,76.754715000000147],[-100.53443900000002,76.757217000000026],[-100.50917099999992,76.756378000000097],[-100.484734,76.754715000000147],[-100.26888999999989,76.737198000000092],[-100.24889400000001,76.734711000000061],[-100.25917099999998,76.728591999999992],[-100.26666299999999,76.726379000000065],[-100.29305999999997,76.721924000000058],[-100.297234,76.721924000000058],[-100.31723,76.716660000000047],[-100.48721299999988,76.684418000000051],[-100.761124,76.635818000000029],[-100.92304999999999,76.610260000000096],[-101.19275699999997,76.571381000000031],[-101.27390300000002,76.560806000000071],[-101.326683,76.556366000000082],[-101.38054699999992,76.553588999999988]],[[-89.934432999999956,76.47665400000011],[-89.978881999999999,76.469711000000132],[-89.999725000000012,76.470260999999994],[-90.040833000000021,76.476928999999927],[-90.081680000000006,76.484984999999995],[-90.151108000000022,76.504439999999988],[-90.184433000000013,76.515274000000034],[-90.21444699999995,76.528594999999996],[-90.226669000000015,76.535538000000031],[-90.412216000000001,76.636108000000036],[-90.478058000000033,76.662200999999982],[-90.504456000000005,76.675261999999918],[-90.56361400000003,76.709991000000002],[-90.573333999999988,76.715820000000008],[-90.59445199999999,76.729705999999965],[-90.600280999999939,76.734984999999995],[-90.600829999999974,76.741088999999988],[-90.599990999999989,76.746643000000006],[-90.597777999999948,76.750000000000114],[-90.58666999999997,76.761383000000137],[-90.579178000000013,76.766937000000098],[-90.57028200000002,76.771927000000005],[-90.544448999999986,76.783051000000057],[-90.510284000000013,76.793320000000108],[-90.474716000000001,76.799713000000054],[-90.230559999999969,76.828048999999965],[-90.103058000000033,76.836105000000032],[-90.025283999999999,76.839156999999943],[-89.983063000000016,76.836928999999998],[-89.927779999999984,76.828873000000101],[-89.865279999999984,76.816086000000098],[-89.825835999999981,76.806091000000038],[-89.779448999999886,76.7852630000001],[-89.673888999999974,76.737487999999928],[-89.673888999999974,76.731369000000086],[-89.687774999999988,76.708878000000084],[-89.702224999999999,76.689697000000024],[-89.729445999999996,76.673309000000017],[-89.744155999999975,76.669434000000024],[-89.768065999999976,76.668045000000006],[-89.819732999999928,76.667206000000022],[-89.837218999999891,76.663040000000137],[-89.840835999999911,76.657211000000132],[-89.862777999999992,76.60386699999998],[-89.862502999999947,76.597488000000112],[-89.858336999999949,76.591094999999939],[-89.817504999999983,76.546936000000017],[-89.794448999999929,76.533325000000048],[-89.756119000000012,76.524703999999929],[-89.721663999999976,76.519714000000079],[-89.699157999999954,76.516936999999984],[-89.684433000000013,76.511658000000011],[-89.671386999999982,76.504166000000055],[-89.673888999999974,76.502212999999927],[-89.757507000000032,76.486099000000024],[-89.783614999999884,76.483047000000056],[-89.934432999999956,76.47665400000011]],[[-108.65110800000002,76.813599000000011],[-108.65110800000002,76.808868000000075],[-108.65527299999991,76.803863999999976],[-108.67804699999999,76.784988000000112],[-108.68443299999996,76.780548000000067],[-108.69055200000003,76.774429000000055],[-108.69249000000002,76.769989000000066],[-108.68831599999999,76.766098],[-108.67971799999992,76.763321000000076],[-108.66278099999994,76.761383000000137],[-108.596947,76.760818000000086],[-108.55248999999992,76.761383000000137],[-108.52722199999999,76.760268999999937],[-108.50389099999995,76.756103999999937],[-108.48889199999996,76.751663000000065],[-108.46333299999998,76.739151000000049],[-108.45500199999998,76.733322000000044],[-108.44638099999997,76.723602000000142],[-108.44220699999994,76.717758000000117],[-108.43804899999998,76.708038000000045],[-108.44193999999999,76.696365000000014],[-108.45889299999988,76.684708000000057],[-108.54472399999997,76.646378000000141],[-108.56555200000003,76.641663000000108],[-108.58667000000003,76.641663000000108],[-108.60749800000002,76.642487000000074],[-108.628601,76.645263999999997],[-108.65387699999997,76.647217000000126],[-108.68110699999994,76.647766000000047],[-108.70417799999996,76.646378000000141],[-108.72083999999995,76.642487000000074],[-108.72721899999999,76.638046000000145],[-108.72693600000002,76.634155000000078],[-108.69915800000001,76.605545000000063],[-108.69055200000003,76.600540000000024],[-108.62721299999998,76.575546000000031],[-108.61054999999993,76.569717000000026],[-108.58389299999993,76.477478000000076],[-108.58112299999999,76.439147999999989],[-108.55803699999996,76.408599999999979],[-108.475281,76.406937000000084],[-108.36389200000002,76.399994000000049],[-108.32888800000001,76.396652000000131],[-108.31861900000001,76.394150000000081],[-108.28971899999993,76.384430000000009],[-108.26917300000002,76.374985000000095],[-108.07749899999999,76.28054800000001],[-108.11472299999997,76.261383000000023],[-108.252228,76.196929999999952],[-108.33139,76.181931000000077],[-108.38027999999997,76.165268000000026],[-108.39222699999993,76.159424000000001],[-108.40862300000003,76.14776599999999],[-108.396118,76.046097000000145],[-108.35193600000002,76.048874000000069],[-108.02555799999999,76.062195000000031],[-108.00140399999998,76.063033999999959],[-107.916946,76.063033999999959],[-107.83833300000003,76.061371000000065],[-107.81220999999999,76.056090999999981],[-107.73665599999998,76.039428999999984],[-107.72471599999994,76.035538000000088],[-107.63834399999996,75.996368000000132],[-107.63249200000001,75.991088999999988],[-107.63305699999995,75.981369000000086],[-107.639183,75.976089000000002],[-107.65139799999997,75.97026100000005],[-107.78555299999999,75.919983000000116],[-107.84221599999995,75.899993999999992],[-107.90194700000001,75.896103000000096],[-107.91805999999997,75.891373000000101],[-107.93028300000003,75.885544000000039],[-108.031113,75.822495000000004],[-108.04361,75.802199999999971],[-108.02417000000003,75.783875000000023],[-108.02027900000002,75.780823000000112],[-108.00639299999995,75.779433999999924],[-107.9569469999999,75.784714000000008],[-107.91332999999986,75.789429000000041],[-107.87361099999993,75.798035000000141],[-107.82084699999996,75.829162999999994],[-107.77834300000001,75.854706000000078],[-107.75974299999996,75.869705000000124],[-107.75974299999996,75.874419999999986],[-107.739441,75.879150000000038],[-107.51555599999995,75.899993999999992],[-107.36945299999996,75.911652000000004],[-107.33750899999995,75.911377000000016],[-107.18666099999996,75.90387000000004],[-107.08000199999998,75.892761000000007],[-107.08583099999998,75.872482000000048],[-107.09028599999994,75.867477000000008],[-107.10500300000001,75.834717000000126],[-107.09805299999999,75.823043999999925],[-107.03167699999995,75.771103000000039],[-106.96362299999993,75.738586000000055],[-106.89666699999998,75.720261000000107],[-106.88027999999991,75.765822999999955],[-106.83056599999998,75.785812000000078],[-106.79444899999993,75.791656000000103],[-106.74471999999992,75.79553199999998],[-106.72277799999995,75.795821999999987],[-106.67944299999999,75.793594000000041],[-106.6558379999999,75.793594000000041],[-106.636124,75.794434000000081],[-106.61582899999996,75.797211000000004],[-106.62110899999993,75.803314000000114],[-106.6383439999999,75.806931000000077],[-106.67944299999999,75.812485000000095],[-106.72666900000002,75.813873000000001],[-106.78611799999993,75.813309000000061],[-106.829453,75.816665999999998],[-106.85082999999992,75.819992000000013],[-106.87000299999994,75.824997000000053],[-106.88890100000003,75.834717000000126],[-106.89584400000001,75.844437000000028],[-106.89666699999998,75.935256999999979],[-106.89611799999994,75.941086000000041],[-106.89334100000002,75.947478999999987],[-106.86971999999997,75.964157000000057],[-106.63890099999998,76.053040000000124],[-106.60610999999994,76.057754999999986],[-106.58583099999993,76.058593999999971],[-106.368607,76.055817000000047],[-106.33667000000003,76.054703000000075],[-106.30082699999997,76.051376000000118],[-106.01611299999996,76.019714000000022],[-105.93720999999999,76.010269000000108],[-105.89998600000001,76.005554000000075],[-105.837219,75.996932999999956],[-105.73500100000001,75.974991000000102],[-105.66832699999998,75.955551000000128],[-105.61945299999996,75.93942300000009],[-105.60637699999995,75.934708000000057],[-105.59528399999988,75.929703000000018],[-105.47888199999994,75.863036999999963],[-105.46528599999999,75.851928999999984],[-105.45333900000003,75.841659999999933],[-105.445831,75.830551000000071],[-105.40028399999989,75.694427000000076],[-105.38834399999996,75.656372000000033],[-105.391953,75.63888500000013],[-105.48750299999995,75.560806000000127],[-105.49638399999998,75.55525200000011],[-105.51666299999994,75.550537000000077],[-105.54083300000002,75.546936000000017],[-105.60444599999988,75.539978000000019],[-105.63667299999997,75.533600000000092],[-105.68582200000003,75.519440000000145],[-105.74082900000002,75.494979999999941],[-105.75140399999998,75.489700000000084],[-105.74804699999999,75.485809000000017],[-105.73693799999995,75.48275799999999],[-105.68666100000002,75.483047000000113],[-105.67166099999986,75.481093999999985],[-105.61138900000003,75.47164900000007],[-105.59277299999997,75.46748400000007],[-105.593613,75.462769000000037],[-105.64639299999993,75.365265000000022],[-105.65110799999997,75.359421000000054],[-105.66055299999994,75.349716000000114],[-105.72666900000002,75.31303400000013],[-105.7386019999999,75.309418000000051],[-105.76251199999996,75.304976999999951],[-105.79361,75.302200000000084],[-105.81304899999998,75.29942299999999],[-105.82140399999992,75.295822000000101],[-105.86694299999999,75.275818000000015],[-105.87526699999995,75.271102999999982],[-105.93776699999989,75.214432000000045],[-105.93888900000002,75.208603000000039],[-105.93582199999997,75.202774000000034],[-105.929169,75.197754000000145],[-105.89222699999999,75.190810999999997],[-105.87249800000001,75.171920999999998],[-105.876938,75.145828000000051],[-105.88527699999997,75.14027400000009],[-105.90499899999998,75.136383000000023],[-105.92582699999997,75.135268999999994],[-106.00361599999991,75.135544000000039],[-106.01889,75.133881000000088],[-106.07028200000002,75.106644000000017],[-106.07945299999989,75.096939000000077],[-106.07333399999993,75.087203999999986],[-106.01862299999999,75.074158000000068],[-106.00446299999999,75.068054000000018],[-105.99416399999996,75.062195000000031],[-105.99333199999995,75.055817000000047],[-106.011124,75.050812000000008],[-106.23528299999998,75.021378000000027],[-106.26000999999997,75.019150000000081],[-106.45500199999992,75.005829000000119],[-106.54554699999989,75.001663000000008],[-106.564438,75.00082400000008],[-106.66332999999992,75.004165999999998],[-106.72556299999997,75.00221300000004],[-106.77111799999989,74.996643000000006],[-106.78639199999998,74.991928000000144],[-106.78307299999994,74.989975000000015],[-106.78333299999997,74.986098999999967],[-106.78582799999992,74.98054500000012],[-106.79194599999994,74.975266000000147],[-106.807503,74.969711000000075],[-106.93055699999996,74.933594000000085],[-106.97222899999997,74.926086000000055],[-107.01000999999991,74.922484999999995],[-107.05110200000001,74.921646000000067],[-107.07362399999994,74.919983000000116],[-107.16000399999996,74.910538000000088],[-107.19722000000002,74.910812000000021],[-107.21584300000001,74.911925999999994],[-107.46417199999996,74.934418000000051],[-107.506958,74.939972000000068],[-107.63082900000001,74.961104999999975],[-107.66251399999999,74.966660000000047],[-107.68804899999998,74.976379000000065],[-107.69554099999999,74.982208000000071],[-107.72389199999998,75.016388000000006],[-107.72389199999998,75.020264000000054],[-107.71972699999998,75.02609300000006],[-107.704453,75.030823000000112],[-107.68138099999999,75.042480000000012],[-107.67944299999994,75.048599000000081],[-107.68110699999994,75.05304000000001],[-107.69499199999996,75.075272000000041],[-107.70584100000002,75.086105000000032],[-107.716949,75.090820000000065],[-107.739441,75.095825000000104],[-107.75834700000001,75.096939000000077],[-107.77333099999998,75.096099999999922],[-107.78307299999994,75.093596999999988],[-107.77999899999998,75.072220000000129],[-107.77084400000001,75.06581100000011],[-107.75778200000002,75.06053199999991],[-107.74500299999994,75.054153000000042],[-107.739441,75.048874000000069],[-107.73972299999997,75.043045000000063],[-107.74388099999993,75.037201000000039],[-107.77778599999999,75.029434000000094],[-107.89499699999999,75.003601000000003],[-107.94193999999999,74.93081699999999],[-107.95527600000003,74.928589000000045],[-107.97749299999998,74.927475000000072],[-108.02417000000003,74.929152999999985],[-108.13417099999992,74.927765000000079],[-108.21083099999987,74.923599000000024],[-108.37304699999999,74.910538000000088],[-108.3916779999999,74.911377000000016],[-108.43639400000001,74.915268000000083],[-108.45500199999998,74.918319999999994],[-108.52971599999995,74.936645999999996],[-108.54110700000001,74.940536000000009],[-108.548607,74.946365000000014],[-108.54795799999999,74.951653000000022],[-108.55055199999998,74.956375000000094],[-108.55999800000001,74.960815000000139],[-108.67971799999992,74.970261000000107],[-108.781113,74.979980000000069],[-108.80721999999997,74.983597000000032],[-108.80721999999997,74.984711000000004],[-108.79611199999999,74.985809000000131],[-108.74553699999996,74.984420999999998],[-108.63890100000003,74.981094000000098],[-108.614441,74.979705999999965],[-108.55999800000001,74.976379000000065],[-108.53028899999993,74.973312000000135],[-108.51139799999999,74.97554000000008],[-108.52667199999996,75.001663000000008],[-108.53056300000003,75.005554000000075],[-108.53806299999985,75.009430000000009],[-108.628601,75.046096999999975],[-108.65139799999992,75.053863999999976],[-108.79472399999997,75.069153000000028],[-108.83249699999993,75.069992000000013],[-108.92777999999993,75.05192599999998],[-108.94972200000001,75.040267999999969],[-109.00110599999999,75.004990000000134],[-109.11971999999997,74.979430999999977],[-109.34584000000001,74.944702000000063],[-109.36416600000001,74.939697000000024],[-109.39998600000001,74.918319999999994],[-109.40722700000003,74.912490999999989],[-109.40695199999993,74.908599999999922],[-109.420547,74.893051000000014],[-109.50805700000001,74.866379000000109],[-109.52278099999995,74.863312000000008],[-109.56861900000001,74.857758000000047],[-109.58721899999995,74.856644000000017],[-109.66139199999992,74.856369000000029],[-109.76944700000001,74.859421000000111],[-109.79750099999995,74.863602000000014],[-109.81111099999993,74.868042000000059],[-109.83361799999994,74.869704999999954],[-109.87249800000001,74.869141000000013],[-109.93472300000002,74.860809000000017],[-109.95500199999987,74.857208000000014],[-109.99471999999997,74.848327999999981],[-110.01640299999991,74.842209000000082],[-110.13971700000002,74.833054000000061],[-110.30444299999994,74.846375000000023],[-110.32501200000002,74.847488000000112],[-110.34555099999989,74.846939000000134],[-110.36000100000001,74.843872000000033],[-110.37053700000001,74.839980999999966],[-110.40416699999997,74.826660000000004],[-110.39620999999994,74.813689999999951],[-110.39666699999998,74.799423000000104],[-110.43666100000002,74.793319999999937],[-110.58999599999993,74.778046000000074],[-110.59137699999997,74.724152000000061],[-110.75666799999993,74.685257000000092],[-110.77250699999996,74.680817000000047],[-110.78639199999998,74.674698000000035],[-110.79638699999998,74.668869000000029],[-110.807503,74.657486000000006],[-110.83389299999993,74.651931999999988],[-110.98111,74.621368000000132],[-111.28056300000003,74.567764000000125],[-111.38722200000001,74.563034000000073],[-111.40915699999999,74.562759000000085],[-111.43055699999996,74.560532000000023],[-111.55888399999998,74.52748100000008],[-111.64250199999992,74.501389000000017],[-111.67722300000003,74.493317000000047],[-111.700287,74.49136400000009],[-111.82389799999999,74.48332199999993],[-111.94554099999993,74.474425999999994],[-111.98416099999997,74.468872000000033],[-112.087219,74.452208999999925],[-112.29305999999991,74.427765000000022],[-112.37053699999996,74.418594000000041],[-112.43831599999999,74.414429000000041],[-112.54194599999988,74.409424000000001],[-112.75306699999993,74.401382000000012],[-112.85694899999993,74.398330999999985],[-112.91999799999991,74.397490999999945],[-113.00890400000003,74.398040999999978],[-113.25723299999993,74.405258000000117],[-113.406113,74.413315000000068],[-113.42832899999996,74.414703000000145],[-113.47168699999997,74.41891499999997],[-113.64083900000003,74.437485000000095],[-113.69638099999997,74.446091000000024],[-113.84221600000001,74.479706000000078],[-113.94167299999998,74.50360100000006],[-114.05387899999999,74.530822999999998],[-114.12110899999993,74.549987999999985],[-114.29834,74.602768000000026],[-114.34861799999999,74.618866000000082],[-114.37470999999994,74.629150000000095],[-114.39695699999993,74.639160000000004],[-114.43804899999986,74.659424000000115],[-114.44360399999994,74.664153999999996],[-114.44776899999994,74.674698000000035],[-114.42859599999991,74.691925000000026],[-114.41972399999992,74.698029000000076],[-114.40750099999997,74.704163000000108],[-114.39444700000001,74.708328000000108],[-114.21444699999995,74.755554000000132],[-114.10166899999996,74.776657000000057],[-114.01027699999992,74.790543000000071],[-113.73166699999996,74.827208999999982],[-113.71000699999996,74.829711999999915],[-113.55695300000002,74.839157],[-113.41861,74.84275800000006],[-113.28278399999999,74.848602000000085],[-113.25334199999998,74.87359600000002],[-113.22269399999988,74.896469000000025],[-113.15194699999995,74.924987999999985],[-113.1205369999999,74.932480000000112],[-113.00750699999992,74.954163000000051],[-112.91111799999987,74.970825000000048],[-112.86749299999997,74.97554000000008],[-112.84528399999994,74.976929000000098],[-112.57224299999996,74.99275200000011],[-112.52416999999991,74.995529000000033],[-112.5,74.996010000000012],[-112.453056,74.996933000000013],[-112.37444299999993,74.998321999999973],[-112.01500699999991,75.002486999999974],[-111.962219,75.001389000000074],[-111.935272,74.998871000000122],[-111.89890299999996,74.994980000000055],[-111.86527999999993,74.988312000000064],[-111.84056099999998,74.986374000000126],[-111.76444999999995,74.981659000000093],[-111.75334199999998,74.981659000000093],[-111.718613,74.986649],[-111.62666300000001,75.003875999999991],[-111.58972199999999,75.006378000000041],[-111.55139200000002,75.011383000000137],[-111.53527800000001,75.014998999999989],[-111.28971899999999,75.086105000000032],[-111.02916700000003,75.171097000000032],[-110.920547,75.223602000000085],[-110.91361999999998,75.228591999999935],[-110.91278099999994,75.233871000000136],[-110.91750300000001,75.239699999999971],[-111.05249000000003,75.270263999999997],[-111.06806899999987,75.271927000000119],[-111.23082699999998,75.264159999999947],[-111.24889400000001,75.259155000000078],[-111.25195300000001,75.254165999999941],[-111.25083899999993,75.248596000000077],[-111.25167799999997,75.243042000000059],[-111.25611900000001,75.236649000000114],[-111.26112399999994,75.232208000000014],[-111.27778599999994,75.220534999999984],[-111.33416699999992,75.19747899999993],[-111.39167800000001,75.181091000000094],[-111.47501399999999,75.161652000000004],[-111.56082200000003,75.146103000000096],[-111.57721700000002,75.143600000000106],[-111.59612299999998,75.143326000000002],[-111.69526699999989,75.145828000000051],[-111.70584100000002,75.151093000000117],[-111.787216,75.166655999999932],[-111.958054,75.13499500000006],[-112.22833300000002,75.124694999999974],[-112.39055599999995,75.123032000000023],[-112.40972899999997,75.12359600000002],[-112.42916899999994,75.125259000000085],[-112.439438,75.128586000000041],[-112.44833399999999,75.133041000000048],[-112.47084000000001,75.146378000000084],[-112.46833800000002,75.151382000000069],[-112.46166999999997,75.154433999999981],[-112.45249899999999,75.155822999999998],[-112.41197199999993,75.159012000000075],[-112.36860699999994,75.169144000000131],[-112.35833700000001,75.173035000000027],[-112.29472399999992,75.198028999999963],[-112.29583700000001,75.202774000000034],[-112.33944700000001,75.223602000000085],[-112.39750700000002,75.241089000000102],[-112.40888999999993,75.240814000000114],[-112.4366609999999,75.230545000000063],[-112.46193700000003,75.218872000000033],[-112.46417200000002,75.213043000000027],[-112.46305799999999,75.208327999999995],[-112.45056199999999,75.204711999999972],[-112.43749999999994,75.198868000000118],[-112.43221999999997,75.19331399999993],[-112.43250299999994,75.1869200000001],[-112.44471699999997,75.18331900000004],[-112.46665999999999,75.179977000000065],[-112.56111099999993,75.178314],[-112.59249899999998,75.181656000000089],[-112.60888699999992,75.185256999999979],[-112.62554899999998,75.190810999999997],[-112.6347429999999,75.196365000000128],[-112.63722200000001,75.204987000000131],[-112.63694800000002,75.210541000000148],[-112.632767,75.215820000000122],[-112.61609599999997,75.223877000000073],[-112.59472699999998,75.230270000000075],[-112.58583099999998,75.239150999999993],[-112.59472699999998,75.250000000000057],[-112.61277799999999,75.259430000000123],[-112.65167200000002,75.275269000000037],[-112.66583300000002,75.278595000000109],[-112.679169,75.277771000000143],[-112.71305799999999,75.256104000000107],[-112.718887,75.250275000000045],[-112.735817,75.203323000000125],[-112.73416099999992,75.19747899999993],[-112.72888199999994,75.192749000000106],[-112.71584299999995,75.187195000000088],[-112.698036,75.177765000000022],[-112.68859899999995,75.171920999999998],[-112.699997,75.138321000000133],[-112.80695300000002,75.115814000000057],[-112.89417300000002,75.103317000000061],[-112.95667300000002,75.097214000000122],[-113.25446299999999,75.076096000000007],[-113.29888899999997,75.073044000000095],[-113.343887,75.072220000000129],[-113.610817,75.062759000000142],[-113.68083200000001,75.05192599999998],[-113.699432,75.051375999999948],[-113.89417299999997,75.052199999999914],[-113.91750299999995,75.053589000000102],[-113.94138299999986,75.056931000000077],[-113.950287,75.06053199999991],[-113.96888699999994,75.075272000000041],[-113.97305299999994,75.086655000000064],[-113.97305299999994,75.096374999999966],[-113.93138099999999,75.189148000000046],[-113.82055700000001,75.314423000000147],[-113.80583199999995,75.326660000000118],[-113.78278399999999,75.33776899999998],[-113.72805800000003,75.345825000000048],[-113.66055299999994,75.351379000000065],[-113.64222699999993,75.353591999999992],[-113.573624,75.366928000000144],[-113.34056099999992,75.413315000000068],[-113.38110399999999,75.418320000000108],[-113.47112300000003,75.427764999999965],[-113.577789,75.411652000000117],[-113.66027799999995,75.398605000000089],[-113.74445299999996,75.385818000000086],[-113.83389299999988,75.37692300000009],[-113.87138400000003,75.374145999999996],[-113.90222199999999,75.3744200000001],[-113.91139199999998,75.378036000000122],[-113.92111199999994,75.383881000000031],[-113.958618,75.411102000000085],[-113.98166700000002,75.431091000000038],[-113.98416099999992,75.437758999999971],[-113.99221799999998,75.448318000000029],[-114.02416999999997,75.461105000000032],[-114.04083300000002,75.463882000000126],[-114.06500199999988,75.466095000000109],[-114.08389299999999,75.464706000000092],[-114.08693699999998,75.462494000000049],[-114.08917199999996,75.458602999999982],[-114.093887,75.410812000000078],[-114.09166699999992,75.404984000000127],[-114.08583099999993,75.400269000000094],[-114.07778899999988,75.394150000000081],[-114.06610099999995,75.389160000000061],[-114.05638099999987,75.383330999999998],[-114.04472399999992,75.373032000000023],[-114.04055800000003,75.36775200000011],[-114.04055800000003,75.362198000000092],[-114.04750100000001,75.35054000000008],[-114.13751200000002,75.244979999999998],[-114.15805099999994,75.233321999999987],[-114.17083699999989,75.226929000000041],[-114.18666100000002,75.223312000000078],[-114.203056,75.221375000000023],[-114.22277799999995,75.2227630000001],[-114.26363399999991,75.229705999999908],[-114.28472899999997,75.234985000000108],[-114.319458,75.24470500000001],[-114.34638999999993,75.25471500000009],[-114.35082999999997,75.26638800000012],[-114.34916699999985,75.271378000000141],[-114.35109699999992,75.276093000000003],[-114.35888699999992,75.281371999999976],[-114.49999999999994,75.312194999999974],[-114.51278699999995,75.314697000000081],[-114.52806099999992,75.314423000000147],[-114.54276999999996,75.31303400000013],[-114.60973399999995,75.27998400000007],[-114.61527999999993,75.274994000000049],[-114.61138900000003,75.265273999999977],[-114.598343,75.261658000000068],[-114.57972699999999,75.263321000000019],[-114.57250999999997,75.264434999999992],[-114.54666099999997,75.266937000000041],[-114.49638399999998,75.265548999999965],[-114.46806299999997,75.262207000000046],[-114.44304699999986,75.257216999999969],[-114.41278099999994,75.24803199999991],[-114.39723200000003,75.238876000000005],[-114.30249000000003,75.1827550000001],[-114.297234,75.179152999999928],[-114.29472399999997,75.173309000000131],[-114.29804999999999,75.166655999999932],[-114.30860899999993,75.154709000000025],[-114.32112099999995,75.143326000000002],[-114.33528099999995,75.13108799999992],[-114.34944199999995,75.119140999999956],[-114.36749299999985,75.106934000000024],[-114.39499699999993,75.090546000000131],[-114.42971799999987,75.073044000000095],[-114.46640000000002,75.06053199999991],[-114.48332199999987,75.056090999999981],[-114.51889,75.050261999999975],[-114.60082999999997,75.038315000000011],[-114.72416699999997,75.011932000000058],[-114.76342799999998,75.002472000000012],[-114.825287,74.988037000000077],[-114.88861099999991,74.977478000000019],[-114.94915800000001,74.969986000000063],[-115.03222699999992,74.961655000000007],[-115.05082700000003,74.961104999999975],[-115.066101,74.961655000000007],[-115.16055299999999,74.979430999999977],[-115.18582200000003,74.985259999999982],[-115.195267,74.989975000000015],[-115.22609699999992,75.049713000000054],[-115.22638699999993,75.058318999999983],[-115.225281,75.064147999999989],[-115.21861299999995,75.070831000000112],[-115.21167000000003,75.07638500000013],[-115.199432,75.082763999999997],[-115.18331899999993,75.088882000000126],[-115.17415599999993,75.094147000000021],[-115.17304999999999,75.099990999999989],[-115.17278299999992,75.10775799999999],[-115.17832899999996,75.115814000000057],[-115.216949,75.167480000000126],[-115.23554999999993,75.174698000000092],[-115.24861099999998,75.178314],[-115.25695799999994,75.179977000000065],[-115.26083399999993,75.179977000000065],[-115.25611900000001,75.178040000000067],[-115.252228,75.173874000000126],[-115.25361599999991,75.164429000000098],[-115.256393,75.158035000000041],[-115.26139799999999,75.151932000000102],[-115.27916699999997,75.140823000000012],[-115.291382,75.134430000000066],[-115.33640300000002,75.116652999999985],[-115.35305799999998,75.111099000000024],[-115.37304699999999,75.105820000000051],[-115.38694799999996,75.102203000000088],[-115.40416700000003,75.098877000000016],[-115.42666600000001,75.098038000000088],[-115.451683,75.098877000000016],[-115.48361199999994,75.106093999999985],[-115.51944700000001,75.117751999999996],[-115.62389399999995,75.121368000000018],[-115.60472099999993,75.108597000000088],[-115.54888899999997,75.055817000000047],[-115.53971899999993,75.044434000000081],[-115.53751399999993,75.039429000000041],[-115.53751399999993,75.027205999999978],[-115.54527300000001,75.015823000000125],[-115.5516659999999,75.009155000000135],[-115.57472200000001,74.998321999999973],[-115.60249299999998,74.98553499999997],[-115.61833200000001,74.979155999999932],[-115.658051,74.967208999999968],[-115.67194399999988,74.964706000000035],[-115.69055200000003,74.964157000000057],[-115.73500100000001,74.967208999999968],[-115.75723299999999,74.969986000000063],[-115.84777800000001,74.98553499999997],[-116.16306299999991,75.040267999999969],[-116.27916699999997,75.099425999999994],[-116.28639199999992,75.13108799999992],[-116.27694699999995,75.135268999999994],[-116.26889,75.141373000000044],[-116.2455369999999,75.162766000000147],[-116.24109599999997,75.168869000000086],[-116.23860200000001,75.196930000000009],[-116.23916599999995,75.201385000000016],[-116.24694799999992,75.205261000000064],[-116.26834100000002,75.206100000000049],[-116.287216,75.205551000000071],[-116.52722199999999,75.184708000000001],[-116.56054699999999,75.179152999999928],[-116.58084100000002,75.174423000000104],[-116.59388699999994,75.170258000000103],[-116.60249299999998,75.164993000000038],[-116.618607,75.152481000000023],[-116.66332999999997,75.122481999999991],[-116.679169,75.117203000000018],[-116.69415299999997,75.116652999999985],[-116.71721599999995,75.116652999999985],[-117.16860999999994,75.157486000000063],[-117.38417099999992,75.178588999999988],[-117.41915899999992,75.182480000000055],[-117.45777899999996,75.188873000000001],[-117.47501399999993,75.192200000000128],[-117.66361999999998,75.239150999999993],[-117.67832900000002,75.244431000000077],[-117.68305999999995,75.248596000000077],[-117.68388400000003,75.253052000000139],[-117.67166099999997,75.288879000000122],[-117.666946,75.294144000000017],[-117.66194199999995,75.298035000000084],[-117.53666699999997,75.361649],[-117.45527599999997,75.400269000000094],[-117.42054699999994,75.413315000000068],[-117.35360699999995,75.437485000000038],[-117.32112099999995,75.448593000000074],[-117.26139799999993,75.468871999999976],[-117.24054699999999,75.473602000000028],[-117.218887,75.476379000000122],[-117.14666699999998,75.480270000000019],[-117.10305799999998,75.482208000000128],[-117.041382,75.483597000000145],[-116.89778100000001,75.482482999999945],[-116.87748699999997,75.481368999999972],[-116.75334199999998,75.479431000000034],[-116.13474300000001,75.476379000000122],[-116.11554699999994,75.476928999999984],[-116.02194199999997,75.484985000000052],[-115.97332799999998,75.492751999999996],[-115.92250100000001,75.503876000000048],[-115.81833599999987,75.529709000000025],[-115.68888900000002,75.56442300000009],[-115.64639299999999,75.573607999999922],[-115.61972000000003,75.578872999999987],[-115.56527699999987,75.583878000000027],[-115.53056299999997,75.584991000000116],[-115.50611900000001,75.587204000000099],[-115.46305799999999,75.591933999999924],[-115.36609599999997,75.602768000000026],[-115.28832999999997,75.620529000000147],[-115.28611799999993,75.624420000000043],[-115.27722199999999,75.630539000000056],[-115.26777600000003,75.635818000000029],[-115.20333900000003,75.657211000000132],[-115.18611099999993,75.662766000000033],[-115.09665699999994,75.687194999999974],[-115.08194700000001,75.689423000000147],[-115.07028200000002,75.689972000000068],[-115.04250300000001,75.689697000000081],[-114.99973299999994,75.690811000000053],[-114.99804699999999,75.695816000000093],[-115.00556899999992,75.698868000000004],[-115.02834300000001,75.701660000000118],[-115.05277999999998,75.703048999999908],[-115.07611099999991,75.702484000000084],[-115.10305800000003,75.700821000000133],[-115.14555399999995,75.694138000000009],[-115.21721600000001,75.679321000000073],[-115.27916699999997,75.667755],[-115.32472199999995,75.659988000000055],[-115.38305700000001,75.653870000000097],[-115.40194699999995,75.652480999999966],[-115.47193900000002,75.650269000000037],[-115.51888999999994,75.649994000000049],[-115.60637700000001,75.651093000000003],[-115.66750299999995,75.647217000000126],[-115.71444700000001,75.642487000000131],[-115.889183,75.614426000000037],[-116.09166700000003,75.580551000000128],[-116.108047,75.574157999999954],[-116.11916400000001,75.572768999999994],[-116.34750399999996,75.559143000000006],[-116.38971700000002,75.5577550000001],[-116.46028099999995,75.557480000000055],[-116.48610699999995,75.5577550000001],[-116.84361299999989,75.564987000000031],[-117.19499200000001,75.573607999999922],[-117.21556099999998,75.574707000000103],[-117.23277300000001,75.576935000000049],[-117.24276700000001,75.580551000000128],[-117.25,75.586105000000089],[-117.25110599999994,75.597488000000112],[-117.24833699999999,75.603043000000014],[-117.23999000000003,75.614990000000148],[-117.23361199999994,75.620529000000147],[-117.21362299999993,75.633330999999998],[-117.07805599999995,75.707214000000079],[-117.06443799999994,75.714157000000114],[-117.03971899999999,75.725815000000125],[-117.02362099999993,75.732483000000116],[-117.01666299999994,75.737198000000149],[-116.95556599999992,75.761932000000115],[-116.923317,75.774704000000099],[-116.88667299999992,75.786926000000051],[-116.86888099999999,75.790543000000014],[-116.85056299999991,75.79304500000012],[-116.81639099999995,75.796371000000136],[-116.76278699999995,75.799988000000099],[-116.71972699999998,75.801650999999993],[-116.58860799999997,75.803314000000114],[-116.53056300000003,75.802765000000022],[-116.32417299999992,75.804703000000131],[-116.10582699999998,75.806931000000077],[-116.03721599999994,75.809708000000001],[-115.82305899999994,75.827208999999925],[-115.80444299999994,75.829987000000131],[-115.79444899999999,75.834152000000131],[-115.78415699999994,75.845260999999994],[-115.77971600000001,75.852203000000088],[-115.76500699999997,75.854431000000034],[-115.74944299999999,75.854980000000012],[-115.73693800000001,75.854431000000034],[-115.72638699999993,75.853317000000061],[-115.69193999999993,75.848328000000095],[-115.67388900000003,75.844147000000021],[-115.65943900000002,75.839706000000092],[-115.62277199999994,75.834427000000119],[-115.59445199999999,75.833327999999995],[-115.50723299999993,75.834991000000059],[-115.40499899999998,75.838043000000027],[-115.38194299999992,75.839706000000092],[-115.36416599999995,75.844147000000021],[-115.35193599999997,75.852203000000088],[-115.31360599999994,75.855255],[-115.13945000000001,75.859421000000111],[-115.07277699999986,75.85775799999999],[-115.04998799999998,75.855820000000051],[-115.00083899999998,75.853317000000061],[-114.98082699999992,75.853043000000127],[-114.932503,75.856644000000017],[-114.91194199999995,75.859711000000118],[-114.83860799999997,75.874419999999986],[-114.817497,75.880814000000044],[-114.80444299999994,75.886932000000002],[-114.798607,75.892212000000029],[-114.80999800000001,75.899428999999941],[-114.82417299999986,75.904160000000104],[-114.83667000000003,75.905822999999998],[-114.88166799999993,75.907486000000119],[-114.90722700000003,75.906372000000147],[-115.01806599999992,75.89888000000002],[-115.06416299999989,75.894714000000135],[-115.10527000000002,75.888596000000007],[-115.22165699999999,75.880264000000011],[-115.29277000000002,75.878311000000053],[-115.39472999999992,75.877762000000132],[-115.54055799999998,75.881362999999965],[-115.68222000000003,75.888321000000133],[-115.74694799999986,75.889434999999935],[-115.83029199999993,75.887772000000041],[-115.86888099999999,75.884430000000066],[-116.00472999999994,75.868590999999981],[-116.05332899999991,75.865540000000124],[-116.10665899999998,75.864150999999936],[-116.13474300000001,75.86442599999998],[-116.15083299999992,75.864700000000084],[-116.48277299999995,75.873871000000065],[-116.62389400000001,75.881927000000132],[-116.64972699999998,75.884995000000117],[-116.67666600000001,75.889709000000039],[-116.69972199999995,75.894989000000123],[-116.71501199999994,75.900269000000037],[-116.72444200000001,75.906372000000147],[-116.73416099999992,75.922484999999995],[-116.73361199999999,75.928589000000045],[-116.73137699999995,75.945251000000042],[-116.72666899999996,75.951385000000016],[-116.71389799999997,75.956649999999911],[-116.69972199999995,75.959990999999945],[-116.67748999999998,75.963882000000012],[-116.63221699999997,75.969147000000078],[-116.58528099999995,75.971924000000001],[-116.56139400000001,75.972762999999986],[-116.53721599999994,75.972488000000112],[-116.51611300000002,75.971100000000035],[-116.48528299999998,75.966385000000002],[-116.470551,75.96887200000009],[-116.46193700000003,75.974991000000102],[-116.46833800000002,75.986374000000126],[-116.52834299999995,76.027480999999966],[-116.60221899999993,76.022216999999955],[-116.645554,76.023041000000092],[-116.66944899999999,76.025818000000015],[-116.6875,76.02915999999999],[-116.69888300000002,76.034424000000115],[-116.70556599999998,76.039153999999996],[-116.708618,76.043869000000029],[-116.70777900000002,76.049988000000042],[-116.70612299999999,76.05386400000009],[-116.70168299999995,76.059982000000048],[-116.69638099999992,76.064987000000087],[-116.64138800000001,76.113312000000121],[-116.53388999999999,76.153320000000008],[-116.51611300000002,76.157761000000107],[-116.34221599999995,76.183043999999995],[-116.29611199999999,76.188582999999994],[-116.21362299999998,76.194977000000051],[-116.16361999999992,76.197204999999997],[-116.08416699999998,76.198318000000086],[-116.05943300000001,76.198029000000133],[-115.95889299999999,76.194138000000066],[-115.90862300000003,76.191924999999912],[-115.86554699999999,76.188309000000061],[-115.81582600000002,76.186920000000043],[-115.64334099999996,76.186096000000077],[-115.59500100000002,76.187759000000028],[-115.44721999999996,76.186920000000043],[-115.32749899999999,76.184708000000001],[-115.27306399999998,76.18220500000001],[-115.154449,76.169434000000081],[-115.13027999999997,76.165816999999947],[-115.02166699999998,76.15637200000009],[-114.87554899999998,76.149719000000118],[-114.85109699999992,76.149429000000112],[-114.79077100000001,76.151077000000043],[-114.72833300000002,76.153046000000074],[-114.68499799999995,76.156097000000045],[-114.66972399999997,76.158325000000048],[-114.66251399999999,76.160537999999974],[-114.662781,76.161651999999947],[-114.68083199999995,76.164992999999981],[-114.70639,76.167205999999965],[-114.80082699999997,76.168594000000041],[-114.85056299999997,76.170258000000047],[-114.89862099999993,76.172485000000108],[-114.94499200000001,76.176085999999998],[-114.99305700000002,76.182480000000055],[-115.00974299999996,76.187485000000095],[-115.01444999999995,76.192749000000049],[-115.02250700000002,76.196929999999952],[-115.04527300000001,76.202208999999982],[-115.08944699999995,76.208878000000027],[-115.15972899999997,76.218596999999988],[-115.27223200000003,76.230270000000019],[-115.37304699999999,76.230820000000051],[-115.54943800000001,76.230545000000063],[-115.75666799999993,76.234146000000123],[-115.78195199999993,76.235260000000096],[-115.82721699999991,76.23942599999998],[-115.84777800000001,76.243042000000059],[-115.86665299999993,76.247482000000048],[-115.88194299999992,76.252776999999924],[-115.91471899999993,76.275269000000037],[-115.92166099999997,76.281096999999932],[-115.92500299999989,76.286652000000061],[-115.90943899999996,76.345535000000041],[-115.90139799999997,76.349991000000102],[-115.86054999999999,76.362488000000099],[-115.64835399999998,76.420258000000047],[-115.62638899999996,76.425812000000008],[-115.51471700000002,76.45138500000013],[-115.49973299999994,76.454712000000086],[-115.46665999999993,76.455826000000059],[-115.26944700000001,76.461105000000032],[-115.02139299999993,76.474700999999982],[-115.00167799999997,76.477203000000088],[-114.978882,76.481658999999979],[-114.95638999999994,76.487198000000149],[-114.94638099999992,76.492477000000122],[-114.93360899999999,76.504990000000021],[-114.92999299999997,76.510268999999994],[-114.91944899999999,76.514435000000105],[-114.89972699999987,76.516936999999984],[-114.74054699999988,76.517212000000029],[-114.71112099999999,76.516936999999984],[-114.70194999999995,76.515274000000034],[-114.69611399999991,76.511382999999967],[-114.69833399999999,76.507492000000127],[-114.720551,76.501099000000124],[-114.70694699999996,76.489700000000028],[-114.61028299999992,76.488312000000121],[-114.45140099999998,76.49693300000007],[-114.29361,76.480269999999962],[-114.25167799999991,76.474990999999989],[-114.20722999999987,76.46804800000001],[-114.17471299999994,76.460266000000047],[-114.14806399999998,76.45138500000013],[-114.13555899999989,76.446365000000071],[-114.11833199999995,76.435257000000092],[-114.11193800000001,76.429428000000087],[-114.10333299999996,76.418869000000029],[-114.096947,76.403595000000109],[-114.09111000000001,76.388885000000016],[-114.10611,76.35554500000012],[-114.11749299999997,76.353317000000004],[-114.12943999999993,76.31191999999993],[-114.05972299999996,76.21775800000006],[-113.99665800000002,76.192749000000049],[-113.98332199999999,76.190262000000018],[-113.9583439999999,76.188873000000001],[-113.94833399999999,76.189423000000033],[-113.70889299999999,76.203598000000113],[-113.685272,76.206100000000049],[-113.63890100000003,76.212769000000094],[-113.61609599999997,76.218323000000055],[-113.52443700000003,76.235809000000017],[-113.36501299999992,76.258605999999929],[-113.32333399999993,76.262772000000041],[-113.26055899999994,76.264434999999992],[-112.99916100000002,76.267487000000074],[-112.95667300000002,76.263611000000026],[-112.90972899999997,76.257491999999957],[-112.89222699999993,76.253876000000105],[-112.86860699999994,76.244704999999954],[-112.85888699999998,76.239975000000129],[-112.85305800000003,76.234146000000123],[-112.75055700000001,76.200546000000031],[-112.71721599999995,76.198318000000086],[-112.62138399999998,76.198318000000086],[-112.59028599999999,76.196639999999945],[-112.48194899999999,76.181366000000082],[-112.46278399999994,76.178313999999943],[-112.45388800000001,76.176376000000005],[-112.42500299999995,76.167755000000113],[-112.43138099999993,76.161926000000108],[-112.43859900000001,76.15887500000008],[-112.47721899999999,76.151382000000012],[-112.49416400000001,76.146652000000017],[-112.50389099999995,76.138596000000121],[-112.52610800000002,76.110535000000027],[-112.52806099999998,76.103867000000037],[-112.52278100000001,76.099152000000004],[-112.42278299999987,76.047211000000118],[-112.41332999999992,76.042480000000012],[-112.38555899999994,76.036652000000061],[-112.29888900000003,76.029434000000094],[-112.15416699999997,76.014998999999989],[-112.06861899999996,76.003326000000129],[-112.04332699999992,75.998871000000122],[-111.9786069999999,75.981369000000086],[-111.78443900000002,75.949707000000103],[-111.76390100000003,75.946930000000009],[-111.75279199999994,75.942749000000106],[-111.72778299999999,75.92164600000001],[-111.72666900000002,75.915817000000004],[-111.729446,75.911101999999971],[-111.736107,75.90498400000007],[-111.77749599999999,75.894714000000135],[-111.87138400000003,75.887496999999996],[-111.94444299999998,75.884995000000117],[-112.00945300000001,75.881652999999972],[-112.03472899999997,75.879974000000004],[-112.05222300000003,75.878036000000066],[-112.07501200000002,75.873871000000065],[-112.165009,75.851928999999984],[-112.17971799999998,75.848038000000088],[-112.18694299999993,75.844986000000006],[-112.22556299999997,75.811096000000077],[-112.218613,75.808029000000147],[-112.20834399999995,75.80664100000007],[-112.19248999999996,75.805817000000104],[-112.02834299999995,75.815261999999962],[-111.85861199999988,75.826934999999992],[-111.69082599999996,75.822769000000108],[-111.64499699999993,75.821655000000135],[-111.604446,75.826660000000004],[-111.53971899999993,75.838318000000015],[-111.49638400000003,75.839706000000092],[-111.47638699999999,75.839157],[-111.45195000000001,75.836655000000064],[-111.44499200000001,75.832213999999965],[-111.35527000000002,75.724426000000108],[-111.35388199999994,75.718597000000102],[-111.35500299999995,75.714432000000102],[-111.38971700000002,75.663039999999967],[-111.40834000000001,75.620818999999983],[-111.40722700000003,75.614990000000148],[-111.35360700000001,75.57249500000006],[-111.31861900000001,75.545258000000103],[-111.27139299999999,75.522491000000002],[-111.24722299999996,75.518051000000014],[-111.22165699999999,75.516936999999984],[-110.995003,75.529160000000047],[-110.97222899999997,75.532486000000119],[-110.89943700000003,75.550262000000089],[-110.79499799999996,75.565262000000018],[-110.77166699999992,75.566666000000055],[-110.54222099999993,75.568878000000097],[-110.49553699999996,75.569153000000085],[-110.47582999999992,75.568329000000119],[-110.45612299999999,75.565535999999952],[-110.43110699999994,75.554152999999985],[-110.42443799999995,75.548873999999955],[-110.42223399999995,75.545532000000037],[-110.33389299999993,75.539154000000053],[-110.19583099999994,75.539703000000031],[-110.06777999999997,75.540543000000071],[-109.97416699999991,75.537490999999989],[-109.75,75.529709000000025],[-109.55304699999999,75.521652000000017],[-109.30444299999999,75.514999000000046],[-109.25389100000001,75.514160000000118],[-109.18360899999999,75.5086060000001],[-109.07472199999995,75.498322000000087],[-108.93639400000001,75.47665399999994],[-108.89943699999998,75.476379000000122],[-108.89584399999995,75.477203000000088],[-108.891953,75.480270000000019],[-108.91639700000002,75.513321000000133],[-108.92443800000001,75.52388000000002],[-108.83612099999993,75.612762000000032],[-108.8269499999999,75.686646000000053],[-108.84277299999991,75.691359999999975],[-108.88194299999998,75.692200000000071],[-108.91332999999992,75.691086000000041],[-108.94499199999996,75.694976999999938],[-109.05832699999996,75.728043000000071],[-109.05860899999993,75.733047000000056],[-109.06276699999989,75.737762000000089],[-109.12638900000002,75.7494200000001],[-109.21000699999996,75.762771999999984],[-109.26555599999995,75.770264000000054],[-109.30526700000001,75.771103000000039],[-109.45221700000002,75.783051000000057],[-109.62943999999993,75.799988000000099],[-109.63751200000002,75.822769000000108],[-109.62805200000003,75.829162999999994],[-109.62638900000002,75.83248900000001],[-109.65722699999992,75.866379000000109],[-109.66361999999998,75.870819000000097],[-109.72972099999998,75.876647999999932],[-109.737503,75.876647999999932],[-109.845551,75.863036999999963],[-109.85722399999992,75.860809000000017],[-109.88390400000003,75.849991000000045],[-109.90778399999994,75.849991000000045],[-109.93639399999989,75.856644000000017],[-110.05555699999996,75.890548999999908],[-110.05583200000001,75.894439999999975],[-110.04055800000003,75.898604999999975],[-109.92610200000001,75.927765000000079],[-109.826683,75.930541999999946],[-109.69776899999999,75.940262000000075],[-109.672234,75.943862999999908],[-109.65666199999998,75.94802900000002],[-109.42138699999998,76.035812000000021],[-109.30499299999991,76.100540000000137],[-109.30943300000001,76.106094000000098],[-109.31360599999999,76.109146000000067],[-109.396118,76.133041000000048],[-109.69999699999994,76.218872000000033],[-109.72250400000001,76.222213999999951],[-109.80943300000001,76.234421000000111],[-109.83416699999998,76.236099000000024],[-109.85861199999999,76.235809000000017],[-109.882767,76.233871000000079],[-109.89666699999992,76.230270000000019],[-109.90222199999999,76.226089000000115],[-109.90167199999996,76.221099999999979],[-109.88305699999995,76.198868000000118],[-109.88667299999997,76.194977000000051],[-109.89666699999992,76.193588000000034],[-109.91944899999993,76.196639999999945],[-109.94055200000003,76.20248400000014],[-110.01471700000002,76.229706000000078],[-110.06833599999993,76.250000000000057],[-110.08528100000001,76.255829000000062],[-110.12332199999997,76.266098000000056],[-110.15306099999998,76.27388000000002],[-110.201683,76.285538000000031],[-110.24109599999991,76.290543000000127],[-110.26583900000003,76.291367000000093],[-110.33138999999989,76.290817000000061],[-110.35804699999994,76.292206000000022],[-110.372772,76.294433999999967],[-110.38362099999995,76.297760000000039],[-110.39306599999986,76.391937000000098],[-110.38527699999986,76.423035000000084],[-110.38390400000003,76.427475000000129],[-110.28943600000002,76.433044000000109],[-110.095551,76.454163000000108],[-109.80721999999997,76.490540000000124],[-109.74638400000003,76.505553999999961],[-109.71833799999996,76.515274000000034],[-109.70639,76.521103000000096],[-109.70694700000001,76.526093000000117],[-109.71140300000002,76.529984000000013],[-109.72416699999997,76.531662000000097],[-109.74916100000002,76.531662000000097],[-109.81111099999993,76.527206000000035],[-109.83222999999992,76.529160000000047],[-109.84722899999991,76.532486000000063],[-109.83750900000001,76.538879000000065],[-109.75527999999997,76.572768999999937],[-109.70667299999997,76.587494000000106],[-109.64666699999998,76.593323000000112],[-109.56082199999997,76.640823000000069],[-109.5097429999999,76.708328000000051],[-109.30277999999998,76.79693600000013],[-109.22277800000001,76.808029000000147],[-109.12777699999992,76.819443000000035],[-109.02583299999998,76.822769000000108],[-108.97444199999995,76.816086000000098],[-108.95084400000002,76.81164600000011],[-108.93582200000003,76.809417999999937],[-108.91887699999995,76.809417999999937],[-108.88945000000001,76.814147999999989],[-108.84500099999997,76.823608000000036],[-108.82195299999989,76.829987000000074],[-108.81331599999999,76.833878000000141],[-108.81360599999999,76.837769000000037],[-108.81582600000002,76.84304800000001],[-108.81388899999996,76.847488000000055],[-108.78859699999992,76.857208000000128],[-108.77362099999999,76.85775799999999],[-108.74804699999999,76.855820000000051],[-108.65556300000003,76.817490000000078],[-108.65110800000002,76.813599000000011]],[[-97.045272999999952,76.797760000000096],[-97.075287000000003,76.793320000000108],[-97.093886999999995,76.79693600000013],[-97.188598999999954,76.822769000000108],[-97.200561999999991,76.829437000000041],[-97.200835999999924,76.834152000000074],[-97.200835999999924,76.857482999999945],[-97.187499999999943,76.860260000000039],[-97.149170000000026,76.859711000000118],[-97.128875999999991,76.85775799999999],[-97.086945000000014,76.851089000000115],[-97.005004999999983,76.819716999999969],[-96.997222999999963,76.813309000000004],[-97.009170999999981,76.807479999999998],[-97.026397999999915,76.802475000000129],[-97.045272999999952,76.797760000000096]],[[-113.46610999999996,76.766388000000006],[-113.61361699999992,76.713043000000084],[-113.628601,76.708038000000045],[-113.65249599999999,76.704436999999984],[-113.67999299999985,76.704436999999984],[-113.70417799999996,76.706374999999923],[-113.78472899999997,76.717209000000025],[-113.83667000000003,76.719986000000063],[-113.889183,76.718597000000102],[-114.05471799999992,76.703598000000056],[-114.16194200000001,76.716933999999981],[-114.21444699999995,76.720535000000041],[-114.50110599999999,76.73414600000001],[-114.73416099999997,76.746643000000006],[-114.78694200000001,76.750274999999931],[-114.82501200000002,76.753601000000003],[-114.85888699999998,76.758040999999992],[-114.87304699999993,76.760818000000086],[-114.87526700000001,76.765549000000021],[-114.87581599999999,76.770827999999995],[-114.85526999999996,76.794434000000081],[-114.83721899999989,76.801650999999993],[-114.80444299999994,76.813309000000004],[-114.76666299999988,76.82388300000008],[-114.62416099999996,76.86192299999999],[-114.60637700000001,76.865814000000057],[-114.58583099999993,76.867476999999951],[-114.33693700000003,76.877197000000081],[-114.13834400000002,76.884430000000066],[-113.96221899999995,76.889984000000084],[-113.885559,76.891663000000051],[-113.80750299999994,76.889435000000105],[-113.7625119999999,76.884430000000066],[-113.73444399999994,76.879149999999981],[-113.49804699999993,76.833328000000108],[-113.48750299999989,76.827773999999977],[-113.44915799999995,76.777205999999978],[-113.45388800000001,76.772765999999933],[-113.46610999999996,76.766388000000006]],[[-109.06610099999995,76.900543000000084],[-109.07444800000002,76.894714000000079],[-109.12581599999987,76.898604999999975],[-109.22917200000001,76.906936999999971],[-109.254997,76.910812000000135],[-109.29888899999997,76.922211000000061],[-109.30777,76.928040000000067],[-109.30387899999994,76.933867999999961],[-109.28278399999999,76.937759000000028],[-109.256958,76.938873000000058],[-109.20527600000003,76.935256999999979],[-109.17944299999999,76.932480000000055],[-109.12721299999998,76.923873999999955],[-109.09249899999992,76.912200999999925],[-109.07695000000001,76.906097000000102],[-109.06610099999995,76.900543000000084]],[[-97.256392999999946,76.967484000000127],[-97.284164000000033,76.965820000000122],[-97.335007000000019,76.968048000000067],[-97.40943900000002,76.973037999999974],[-97.458618000000001,76.977203000000145],[-97.473052999999936,76.980545000000063],[-97.423889000000031,77.005829000000062],[-97.374709999999936,77.022491000000059],[-97.286117999999874,77.033325000000104],[-97.243057000000022,77.037491000000045],[-97.199158000000011,77.037766000000033],[-97.154723999999931,77.030273000000022],[-97.136672999999973,77.025542999999971],[-97.092223999999987,77.010818000000029],[-97.093063000000029,77.004990000000134],[-97.231109999999944,76.971375000000023],[-97.256392999999946,76.967484000000127]],[[-95.659728999999913,77.058868000000075],[-95.585555999999883,77.053314000000057],[-95.56082200000003,77.053589000000045],[-95.465285999999935,77.058319000000097],[-95.417769999999962,77.05693100000002],[-95.386672999999973,77.052475000000072],[-95.368331999999953,77.048599000000024],[-95.337218999999948,77.039978000000076],[-95.288054999999872,77.022491000000059],[-95.224715999999944,77.006378000000041],[-95.181945999999925,76.996368000000132],[-95.168334999999956,76.99414100000007],[-95.115829000000019,76.995818999999983],[-95,76.99054000000001],[-94.906386999999881,76.976089000000002],[-94.813888999999904,76.971375000000023],[-94.728606999999954,76.972762999999929],[-94.714172000000019,76.97387700000013],[-94.688599000000011,76.97526600000009],[-94.636123999999995,76.976929000000041],[-94.593063000000029,76.975540000000024],[-94.526397999999972,76.969437000000084],[-94.510009999999909,76.966094999999996],[-94.494155999999919,76.960265999999933],[-94.489715999999987,76.956100000000049],[-94.40194699999995,76.918319999999994],[-94.25778200000002,76.896378000000084],[-94.254729999999995,76.891373000000044],[-94.238891999999964,76.889435000000105],[-94.207229999999925,76.888046000000088],[-94.15972899999997,76.887496999999996],[-94.096389999999985,76.888885000000073],[-94.081680000000006,76.89027400000009],[-94.054992999999854,76.894714000000079],[-94.032226999999921,76.903320000000008],[-94.026107999999965,76.909149000000014],[-94.010559000000001,76.919144000000131],[-94.001113999999916,76.923598999999967],[-93.986663999999962,76.928864000000033],[-93.964721999999995,76.932480000000055],[-93.943603999999937,76.933867999999961],[-93.899993999999936,76.93331900000004],[-93.755004999999926,76.922484999999995],[-93.739166000000012,76.920822000000044],[-93.658339999999896,76.909987999999998],[-93.649445000000014,76.908035000000041],[-93.641953000000001,76.905258000000117],[-93.635833999999988,76.89888000000002],[-93.488602000000014,76.839706000000092],[-93.301392000000021,76.768600000000049],[-93.208054000000004,76.746933000000013],[-93.202788999999939,76.747481999999934],[-93.192214999999976,76.747208000000001],[-93.187499999999943,76.745529000000033],[-93.179717999999923,76.741088999999988],[-93.169723999999974,76.686919999999986],[-93.174438000000009,76.674987999999985],[-93.18638599999997,76.660812000000021],[-93.300277999999878,76.552199999999971],[-93.306655999999919,76.54664600000001],[-93.461394999999982,76.49832200000003],[-93.595276000000013,76.462493999999992],[-93.629989999999964,76.451934999999992],[-93.641953000000001,76.44720500000011],[-93.651947000000007,76.441650000000038],[-93.652221999999938,76.437759000000142],[-93.650283999999999,76.43553200000008],[-93.548339999999882,76.386108000000092],[-93.528609999999958,76.384720000000016],[-93.509445000000028,76.386658000000125],[-93.498336999999992,76.388885000000016],[-93.46362299999987,76.399429000000055],[-93.456954999999994,76.403595000000109],[-93.467399999999998,76.40792799999997],[-93.480559999999969,76.409927000000039],[-93.500838999999985,76.4102630000001],[-93.508895999999993,76.406647000000078],[-93.520554000000004,76.405823000000112],[-93.537780999999995,76.407486000000006],[-93.554992999999968,76.411377000000073],[-93.570846999999958,76.416382000000112],[-93.580565999999976,76.423035000000084],[-93.576401000000033,76.426650999999993],[-93.533065999999963,76.443039000000056],[-93.518889999999999,76.448318000000029],[-93.501403999999923,76.452209000000096],[-93.476562000000001,76.454772999999932],[-93.454223999999954,76.456436000000053],[-93.422226000000023,76.458328000000108],[-93.392776000000026,76.461655000000064],[-93.370270000000005,76.466385000000059],[-93.357223999999917,76.470535000000098],[-93.123610999999926,76.573043999999982],[-93.111114999999927,76.580276000000083],[-93.095276000000013,76.590546000000018],[-93.096953999999926,76.596649000000127],[-93.09973100000002,76.601653999999996],[-93.046386999999925,76.616089000000102],[-92.945830999999998,76.622482000000048],[-92.90306099999998,76.621918000000107],[-92.880279999999971,76.620818999999983],[-92.857223999999917,76.618317000000047],[-92.789718999999934,76.609146000000123],[-92.705276000000026,76.594437000000084],[-92.68360899999999,76.592484000000127],[-92.654998999999975,76.594711000000018],[-92.642501999999979,76.598037999999974],[-92.632767000000001,76.602478000000133],[-92.618057000000022,76.607483000000002],[-92.605834999999956,76.610535000000141],[-92.564437999999939,76.616089000000102],[-92.541106999999897,76.617752000000053],[-92.506393000000003,76.617477000000008],[-92.468338000000017,76.61303700000002],[-92.440825999999959,76.603317000000118],[-92.42111199999988,76.598037999999974],[-92.40055799999999,76.594986000000006],[-92.386948000000018,76.593872000000033],[-92.36860699999994,76.594437000000084],[-92.330840999999964,76.597214000000008],[-92.183318999999983,76.614699999999914],[-92.077498999999989,76.637207000000046],[-92.043609999999887,76.646942000000081],[-92.004332999999917,76.657897999999932],[-91.991942999999992,76.660812000000021],[-91.970001000000025,76.664428999999984],[-91.938599000000011,76.668320000000051],[-91.910003999999901,76.670532000000094],[-91.775557999999933,76.679703000000018],[-91.668609999999944,76.684708000000057],[-91.535827999999924,76.688873000000058],[-91.410552999999936,76.689148000000102],[-91.385283999999956,76.688309000000118],[-91.132767000000001,76.664428999999984],[-91.008895999999936,76.651657000000114],[-90.986114999999984,76.649155000000064],[-90.883895999999936,76.626647999999989],[-90.871383999999978,76.622757000000092],[-90.854720999999984,76.61554000000001],[-90.849990999999875,76.609146000000123],[-90.844161999999926,76.603592000000106],[-90.837218999999948,76.599152000000117],[-90.817779999999971,76.593597000000045],[-90.779998999999975,76.585815000000082],[-90.741104000000007,76.580551000000071],[-90.674438000000009,76.573318000000086],[-90.626388999999961,76.56999200000007],[-90.582503999999972,76.565262000000018],[-90.56361400000003,76.559708000000001],[-90.50306699999993,76.53137200000009],[-90.498610999999926,76.524993999999936],[-90.468613000000005,76.479155999999989],[-90.468063000000029,76.473038000000088],[-90.48332199999993,76.46804800000001],[-90.510833999999988,76.463882000000126],[-90.538054999999929,76.46138000000002],[-90.61610399999995,76.45637499999998],[-90.638335999999924,76.455826000000059],[-90.779175000000009,76.461105000000032],[-90.826400999999976,76.463042999999971],[-91.090560999999923,76.478043000000127],[-91.304169000000002,76.504166000000055],[-91.34973100000002,76.509430000000066],[-91.373885999999857,76.511107999999979],[-91.414718999999934,76.512771999999984],[-91.441101000000003,76.512771999999984],[-91.564162999999951,76.500823999999966],[-91.566665999999998,76.498871000000008],[-91.416396999999961,76.460266000000047],[-91.402495999999985,76.457488999999953],[-91.271117999999944,76.453873000000101],[-91.147506999999962,76.450821000000019],[-91.057219999999973,76.450546000000145],[-90.99110399999995,76.447754000000089],[-90.974166999999966,76.446091000000138],[-90.797774999999945,76.42692599999998],[-90.642226999999991,76.410537999999917],[-90.414443999999946,76.403046000000018],[-90.368331999999953,76.399994000000049],[-90.317229999999938,76.394714000000022],[-90.281386999999995,76.389160000000004],[-90.06361400000003,76.361648999999943],[-89.831389999999942,76.34027100000003],[-89.543883999999935,76.316939999999988],[-89.367766999999958,76.304152999999985],[-89.305557000000022,76.299149],[-89.292496000000028,76.296097000000088],[-89.230559999999912,76.272766000000047],[-89.217772999999909,76.266663000000108],[-89.208617999999944,76.260818000000029],[-89.201110999999912,76.254166000000112],[-89.192214999999976,76.242203000000075],[-89.192490000000021,76.236099000000024],[-89.198607999999865,76.22526600000009],[-89.209166999999979,76.221099999999979],[-89.295546999999942,76.197754000000145],[-89.326400999999919,76.189423000000033],[-89.349730999999963,76.183594000000028],[-89.378051999999968,76.180267000000072],[-89.588332999999921,76.165816999999947],[-89.831954999999994,76.160812000000078],[-89.888610999999912,76.166091999999992],[-89.904175000000009,76.168869000000086],[-89.976105000000018,76.173874000000126],[-90.37332200000003,76.181366000000082],[-90.397780999999952,76.180542000000116],[-90.416945999999996,76.178863999999976],[-90.438598999999954,76.175537000000077],[-90.453613000000018,76.17053199999998],[-90.455840999999964,76.167205999999965],[-90.455565999999976,76.165543000000014],[-90.438598999999954,76.162201000000096],[-90.414443999999946,76.159987999999942],[-90.256957999999941,76.146942000000024],[-90.22222899999997,76.144440000000145],[-90.151671999999905,76.141663000000051],[-90.064162999999894,76.136932000000115],[-90.048614999999984,76.132751000000042],[-90.06361400000003,76.127762000000075],[-90.085280999999895,76.1244200000001],[-90.110824999999977,76.124145999999996],[-90.308884000000035,76.138321000000076],[-90.448607999999979,76.154984000000013],[-90.666397000000018,76.166930999999977],[-90.786117999999988,76.171371000000136],[-90.937209999999936,76.180817000000104],[-91.112212999999883,76.191924999999912],[-91.204726999999934,76.212769000000094],[-91.219726999999978,76.218323000000055],[-91.256957999999941,76.227203000000088],[-91.274444999999957,76.230270000000019],[-91.423614999999984,76.253876000000105],[-91.445830999999941,76.256653000000028],[-91.571395999999936,76.26527400000009],[-91.59722899999997,76.264999000000103],[-91.613616999999977,76.262206999999989],[-91.599730999999963,76.25610400000005],[-91.579453000000001,76.251663000000121],[-91.416655999999989,76.22526600000009],[-91.332779000000016,76.214157],[-91.33666999999997,76.178588999999988],[-91.27194199999991,76.155822999999941],[-91.220276000000013,76.161651999999947],[-91.203339000000028,76.16137700000013],[-91.163329999999974,76.159714000000008],[-91.116652999999985,76.15637200000009],[-90.882491999999957,76.137207000000103],[-90.700287000000003,76.119431000000134],[-90.67971799999998,76.117203000000018],[-90.665008999999998,76.112198000000149],[-90.757506999999976,76.07638500000013],[-90.785277999999948,76.072769000000051],[-90.809432999999956,76.071930000000066],[-90.833618000000001,76.072769000000051],[-90.855270000000019,76.072220000000129],[-90.862502999999947,76.069992000000127],[-90.866104000000007,76.067215000000033],[-90.864715999999987,76.064987000000087],[-90.848891999999978,76.060806000000014],[-90.71578199999999,76.06343099999998],[-90.703605999999922,76.064926000000014],[-90.663940000000025,76.074265000000025],[-90.660941999999864,76.076431000000014],[-90.611664000000019,76.084717000000069],[-90.599166999999966,76.088042999999971],[-90.575012000000015,76.090271000000087],[-90.548339999999939,76.091370000000097],[-90.474166999999966,76.089706000000035],[-90.429442999999992,76.088318000000129],[-90.408614999999998,76.08638000000002],[-90.194442999999922,76.062759000000142],[-90.190552000000025,76.06109600000002],[-90.193877999999984,76.055251999999996],[-90.202498999999989,76.050261999999975],[-90.215012000000002,76.04582199999993],[-90.233886999999925,76.041092000000106],[-90.27416999999997,76.034424000000115],[-90.301666000000012,76.032486000000006],[-90.328613000000018,76.031372000000033],[-90.404723999999931,76.031096999999988],[-90.635947999999985,76.028152000000034],[-90.718452000000013,76.022658999999976],[-90.904175000000009,76.015549000000021],[-90.929168999999888,76.015549000000021],[-91.005279999999971,76.024994000000049],[-91.144729999999981,76.021102999999982],[-91.160827999999924,76.018051000000071],[-91.155272999999909,76.014160000000004],[-91.069732999999928,75.990265000000022],[-90.950286999999946,75.962204000000099],[-90.941939999999988,75.955551000000128],[-90.938598999999954,75.951385000000016],[-90.941939999999988,75.945526000000029],[-90.948882999999967,75.939972000000012],[-90.968063000000029,75.931091000000094],[-91.016953000000001,75.925537000000077],[-91.070557000000008,75.922484999999995],[-91.100280999999995,75.918594000000098],[-91.118880999999931,75.913879000000065],[-91.129439999999988,75.908600000000092],[-91.143340999999964,75.897217000000069],[-91.125823999999852,75.857483000000002],[-91.132492000000013,75.851928999999984],[-91.135833999999932,75.846099999999979],[-91.134170999999924,75.842484000000127],[-91.129990000000021,75.839157],[-91.107498000000021,75.840545999999961],[-91.091675000000009,75.843323000000055],[-91.079452999999944,75.848038000000088],[-91.053328999999906,75.881087999999977],[-90.939986999999974,75.915268000000083],[-90.903060999999923,75.924698000000149],[-90.895844000000011,75.927200000000028],[-90.886123999999995,75.931655999999975],[-90.847778000000005,75.952208999999982],[-90.833618000000001,75.96026599999999],[-90.827788999999996,75.966385000000002],[-90.805557000000022,75.985535000000141],[-90.793883999999991,75.99470500000001],[-90.777495999999985,75.996094000000028],[-90.755843999999968,75.994980000000055],[-90.717223999999931,75.989151000000049],[-90.569457999999941,75.979980000000069],[-90.48332199999993,75.980270000000075],[-90.464447000000007,75.978591999999992],[-90.444716999999969,75.974151999999947],[-90.433318999999983,75.97026100000005],[-90.429442999999992,75.968323000000112],[-90.434158000000025,75.963318000000072],[-90.442490000000021,75.959717000000012],[-90.49221799999998,75.945816000000036],[-90.519164999999987,75.936096000000134],[-90.526107999999965,75.930541999999946],[-90.528335999999911,75.925537000000077],[-90.531386999999938,75.913605000000132],[-90.531676999999945,75.903595000000053],[-90.529998999999862,75.898331000000042],[-90.521118000000001,75.895538000000101],[-90.504729999999938,75.895263999999941],[-90.496947999999975,75.897766000000047],[-90.34722899999997,75.949417000000096],[-90.342223999999987,75.953049000000078],[-90.337783999999999,75.963043000000084],[-90.339447000000007,75.968323000000112],[-90.256957999999941,75.966933999999981],[-90.118057000000022,75.941924999999969],[-90.114440999999943,75.947753999999975],[-90.102492999999981,75.961654999999951],[-90.072509999999966,75.995529000000147],[-90.060271999999998,76.00471500000009],[-90.052779999999984,76.007217000000026],[-90.037506000000008,76.009155000000135],[-90.015015000000005,76.010269000000108],[-89.966659999999877,76.008605999999986],[-89.947495000000004,76.007217000000026],[-89.929717999999923,76.00471500000009],[-89.924437999999952,76.00221300000004],[-89.909163999999976,75.964995999999985],[-89.825012000000015,75.943038999999942],[-89.687499999999943,75.899993999999992],[-89.689986999999917,75.894989000000123],[-89.702224999999999,75.879700000000071],[-89.70944199999991,75.874146000000053],[-89.724441999999954,75.863036999999963],[-89.750290000000007,75.846649000000127],[-89.772781000000009,75.836380000000077],[-89.778885000000002,75.831665000000044],[-89.782227000000034,75.825821000000019],[-89.776397999999972,75.792755000000056],[-89.775008999999955,75.787491000000102],[-89.765014999999948,75.785812000000078],[-89.738891999999964,75.786652000000117],[-89.692490000000021,75.796371000000136],[-89.68638599999997,75.802474999999959],[-89.688048999999978,75.804428000000087],[-89.689162999999951,75.809708000000001],[-89.685546999999985,75.814147999999989],[-89.61999499999996,75.853592000000106],[-89.611114999999927,75.857208000000128],[-89.587508999999955,75.859146000000067],[-89.558334000000002,75.857483000000002],[-89.439163000000008,75.845260999999994],[-89.422774999999945,75.841934000000094],[-89.410277999999948,75.829712000000086],[-89.392501999999979,75.821105999999986],[-89.37777699999998,75.816665999999998],[-89.320007000000032,75.803863999999976],[-89.277495999999928,75.798324999999977],[-89.201401000000033,75.786926000000051],[-89.172775000000001,75.780548000000124],[-89.164169000000015,75.774704000000099],[-89.160278000000005,75.768051000000128],[-89.160552999999936,75.755828999999949],[-89.166945999999996,75.7452550000001],[-89.253890999999953,75.631088000000034],[-89.262787000000003,75.627761999999962],[-89.275008999999955,75.627761999999962],[-89.336670000000026,75.627761999999962],[-89.543059999999969,75.610535000000141],[-89.649170000000026,75.61554000000001],[-89.763061999999991,75.577484000000027],[-89.765288999999882,75.575546000000088],[-89.739440999999943,75.573607999999922],[-89.722504000000015,75.574157999999954],[-89.681945999999868,75.57998699999996],[-89.649993999999992,75.587204000000099],[-89.605559999999912,75.589705999999978],[-89.588332999999921,75.58859300000006],[-89.550995,75.579711999999972],[-89.542496000000028,75.570540999999992],[-89.548614999999984,75.566085999999984],[-89.56806899999998,75.5619200000001],[-89.628325999999959,75.561370999999951],[-89.676392000000021,75.562194999999917],[-89.692490000000021,75.561096000000134],[-89.706954999999994,75.557480000000055],[-89.700835999999981,75.553040000000067],[-89.645553999999947,75.548325000000034],[-89.576674999999966,75.547759999999982],[-89.550827000000027,75.548873999999955],[-89.526397999999915,75.551926000000094],[-89.515015000000005,75.554152999999985],[-89.500564999999995,75.558868000000018],[-89.491942999999992,75.565535999999952],[-89.473617999999874,75.574707000000103],[-89.458618000000001,75.579436999999928],[-89.441665999999998,75.583327999999995],[-89.431670999999994,75.584427000000005],[-89.403335999999967,75.587204000000099],[-89.351669000000015,75.589157000000057],[-89.302215999999987,75.589157000000057],[-89.235824999999977,75.586655000000121],[-89.217223999999987,75.584991000000116],[-89.182770000000005,75.577208999999982],[-89.174438000000009,75.572768999999994],[-89.168335000000013,75.566666000000055],[-89.156386999999938,75.549713000000111],[-89.154998999999975,75.544434000000138],[-89.149170000000026,75.532211000000075],[-89.143065999999976,75.524429000000112],[-89.09973100000002,75.484146000000067],[-88.963897999999972,75.431931000000077],[-88.950561999999934,75.429703000000131],[-88.921386999999982,75.427199999999971],[-88.87110899999999,75.43414300000012],[-88.841675000000009,75.436371000000065],[-88.818618999999956,75.436920000000043],[-88.796951000000035,75.434982000000105],[-88.779723999999987,75.432479999999998],[-88.768889999999942,75.434708000000001],[-88.747771999999941,75.470825000000104],[-88.75,75.474991000000045],[-88.801392000000021,75.531372000000147],[-88.865829000000019,75.586105000000089],[-88.755004999999983,75.676650999999936],[-88.738892000000021,75.67942800000003],[-88.722777999999892,75.679153000000042],[-88.678329000000019,75.675261999999975],[-88.631667999999991,75.667206000000078],[-88.600829999999917,75.659424000000115],[-88.574172999999917,75.648880000000077],[-88.542770000000019,75.635818000000029],[-88.50778200000002,75.619431000000077],[-88.448883000000023,75.59526100000005],[-88.399445000000014,75.579162999999994],[-88.364166000000012,75.568878000000097],[-88.315826000000015,75.556366000000082],[-88.228881999999999,75.539429000000098],[-88.203613000000018,75.531097000000102],[-88.198882999999967,75.528595000000053],[-88.196945000000028,75.522766000000047],[-88.198607999999979,75.517212000000029],[-88.201401000000033,75.512206999999989],[-88.217498999999918,75.509720000000073],[-88.240828999999962,75.509155000000078],[-88.290833000000021,75.49693300000007],[-88.305831999999896,75.492203000000075],[-88.301391999999964,75.488037000000134],[-88.295273000000009,75.484985000000052],[-88.263061999999934,75.476089000000115],[-88.228881999999999,75.471099999999979],[-88.21305799999999,75.470535000000098],[-88.200835999999924,75.471924000000115],[-88.148055999999997,75.488876000000118],[-88.12249799999995,75.501099000000011],[-88.06806899999998,75.521927000000062],[-87.958054000000004,75.544144000000131],[-87.751403999999923,75.576660000000061],[-87.716110000000015,75.575271999999927],[-87.697768999999937,75.573607999999922],[-87.661391999999921,75.567215000000147],[-87.648346000000004,75.5619200000001],[-87.495543999999995,75.485809000000017],[-87.494995000000017,75.483871000000079],[-87.498885999999914,75.478043000000127],[-87.504729999999995,75.474425999999994],[-87.529998999999918,75.465271000000143],[-87.563889000000017,75.459152000000074],[-87.588607999999965,75.456375000000037],[-87.601394999999968,75.453323000000069],[-87.606383999999935,75.449707000000046],[-87.594726999999978,75.446365000000071],[-87.58277899999996,75.444702000000007],[-87.568344000000025,75.443588000000034],[-87.548614999999927,75.444427000000132],[-87.533614999999884,75.446090999999967],[-87.5,75.452209000000096],[-87.459732000000031,75.461380000000077],[-87.445830999999941,75.465271000000143],[-87.434433000000013,75.468871999999976],[-87.4183349999999,75.479706000000078],[-87.416397000000018,75.485260000000039],[-87.430283000000031,75.501099000000011],[-87.437774999999988,75.5086060000001],[-87.444442999999922,75.513885000000073],[-87.46665999999999,75.521103000000096],[-87.462783999999942,75.563034000000073],[-87.393065999999976,75.604156000000103],[-87.381103999999937,75.609420999999998],[-87.354720999999984,75.61303700000002],[-87.285552999999879,75.620255000000043],[-87.263335999999981,75.621094000000028],[-87.25111400000003,75.621094000000028],[-87.234160999999915,75.618317000000104],[-87.088057999999933,75.57998699999996],[-87.079178000000013,75.566666000000055],[-87.072783999999956,75.559981999999991],[-87.055267000000015,75.546936000000017],[-87.011948000000018,75.531372000000147],[-86.967498999999975,75.518326000000002],[-86.931106999999997,75.508041000000048],[-86.914444000000003,75.503876000000048],[-86.862777999999935,75.491653000000042],[-86.807495000000017,75.479156000000046],[-86.771117999999944,75.475540000000137],[-86.72222899999997,75.474991000000045],[-86.643340999999964,75.478043000000127],[-86.631103999999993,75.477767999999912],[-86.601943999999946,75.476379000000122],[-86.583892999999875,75.474701000000039],[-86.567504999999983,75.472214000000122],[-86.48332199999993,75.456650000000025],[-86.464721999999995,75.452773999999977],[-86.375548999999978,75.427475000000129],[-86.365554999999972,75.423309000000074],[-86.368880999999988,75.418320000000108],[-86.389175000000023,75.40776100000005],[-86.400283999999999,75.402205999999978],[-86.415282999999988,75.398880000000133],[-86.506392999999946,75.388046000000031],[-86.553878999999938,75.381363000000079],[-86.576675000000023,75.377197000000024],[-86.611114999999984,75.36831699999999],[-86.615279999999984,75.365540000000067],[-86.596663999999976,75.361649],[-86.544723999999974,75.35914600000001],[-86.520279000000016,75.360259999999982],[-86.491942999999935,75.362762000000089],[-86.376099000000011,75.376373000000058],[-86.358336999999949,75.379699999999957],[-86.245270000000005,75.401932000000045],[-86.198607999999922,75.416091999999935],[-86.169997999999964,75.418594000000041],[-86.082503999999972,75.421371000000136],[-86.031386999999938,75.422485000000108],[-85.833618000000001,75.416091999999935],[-85.680557000000022,75.408034999999984],[-85.674438000000009,75.418320000000108],[-85.908614999999941,75.460266000000104],[-86.006392999999889,75.472214000000122],[-86.109726000000023,75.481934000000024],[-86.124709999999993,75.485535000000084],[-86.138335999999924,75.489975000000072],[-86.149445000000014,75.496368000000075],[-86.154449,75.500823999999966],[-86.143065999999976,75.508041000000048],[-86.11332699999997,75.514999000000046],[-86.096953999999982,75.51776099999995],[-86.00389100000001,75.531372000000147],[-85.908614999999941,75.543868999999916],[-85.865554999999972,75.544708000000071],[-85.763061999999991,75.546097000000088],[-85.44387799999987,75.560256999999979],[-85.329178000000013,75.561096000000134],[-85.303328999999962,75.568878000000097],[-85.189986999999917,75.611923000000047],[-85.074172999999917,75.651931999999988],[-85.054442999999992,75.656096999999988],[-85.039169000000015,75.657760999999994],[-84.926940999999943,75.658874999999966],[-84.879165999999884,75.656937000000028],[-84.797226000000023,75.652771000000143],[-84.763061999999934,75.650269000000037],[-84.71833799999996,75.642761000000064],[-84.683883999999921,75.634430000000123],[-84.62249799999995,75.628036000000066],[-84.59973100000002,75.626647999999989],[-84.572234999999978,75.626373000000001],[-84.524719000000005,75.628036000000066],[-84.497497999999894,75.631653000000028],[-84.503066999999987,75.633330999999998],[-84.519454999999937,75.636108000000036],[-84.539992999999981,75.637772000000098],[-84.557220000000029,75.63888500000013],[-84.607773000000009,75.639160000000004],[-84.63110399999988,75.640548999999965],[-84.651107999999965,75.643599999999992],[-84.657226999999921,75.647491000000059],[-84.66361999999998,75.68609600000002],[-84.644454999999994,75.687194999999974],[-84.482773000000009,75.694427000000076],[-84.350554999999872,75.697754000000032],[-84.322783999999956,75.699141999999938],[-84.299164000000019,75.70277400000009],[-84.070556999999951,75.761932000000115],[-83.929442999999878,75.810806000000071],[-83.878150999999946,75.818962000000056],[-83.767226999999934,75.824158000000125],[-83.740554999999972,75.824432000000058],[-83.722503999999958,75.822495000000004],[-83.703887999999949,75.818329000000062],[-83.698043999999925,75.814423000000033],[-83.706389999999942,75.812195000000088],[-83.72193900000002,75.810806000000071],[-83.74888599999997,75.80664100000007],[-83.752228000000002,75.801376000000005],[-83.736938000000009,75.795258000000047],[-83.698607999999979,75.790268000000026],[-83.672774999999945,75.788879000000009],[-83.619995000000017,75.789429000000041],[-83.56610099999989,75.791656000000103],[-83.515288999999882,75.789703000000145],[-83.495269999999948,75.78637700000013],[-83.479720999999927,75.782211000000018],[-83.464721999999995,75.776093000000117],[-83.458344000000011,75.770264000000054],[-83.447768999999994,75.755828999999949],[-83.43360899999999,75.750274999999988],[-83.419158999999866,75.748870999999951],[-83.292220999999927,75.737762000000089],[-83.123610999999983,75.734421000000054],[-83.065276999999924,75.739151000000049],[-82.960007000000019,75.756103999999993],[-82.82028200000002,75.781937000000084],[-82.799437999999952,75.786102000000085],[-82.664718999999991,75.811371000000122],[-82.466400000000021,75.828048999999965],[-82.327224999999942,75.836928999999998],[-82.279175000000009,75.836655000000064],[-82.139998999999875,75.826934999999992],[-81.95666499999993,75.815261999999962],[-81.885559000000001,75.811096000000077],[-81.660827999999924,75.811371000000122],[-81.536941999999954,75.809417999999994],[-81.450561999999991,75.800812000000064],[-81.212509000000011,75.771378000000084],[-81.22084000000001,75.704712000000029],[-81.276671999999962,75.668320000000051],[-81.281677000000002,75.663605000000018],[-81.285278000000005,75.657486000000006],[-81.271118000000001,75.651382000000126],[-81.256957999999997,75.649719000000005],[-81.010009999999966,75.633330999999998],[-80.983886999999982,75.633330999999998],[-80.857772999999952,75.634995000000004],[-80.779998999999918,75.637772000000098],[-80.547226000000023,75.650818000000015],[-80.502501999999936,75.652206000000092],[-80.480559999999969,75.651093000000003],[-80.46665999999999,75.649428999999998],[-80.316955999999948,75.630539000000056],[-80.275283999999999,75.624985000000095],[-80.256119000000012,75.62164300000012],[-80.199158000000011,75.608871000000136],[-80.101944000000003,75.586929000000055],[-80.068344000000025,75.578872999999987],[-79.953612999999962,75.540268000000083],[-79.948607999999922,75.534149000000014],[-79.956115999999952,75.530822999999998],[-80.085006999999905,75.507766999999944],[-80.191665999999884,75.489975000000072],[-80.252501999999993,75.485809000000017],[-80.355269999999962,75.473877000000073],[-80.371932999999956,75.468871999999976],[-80.373046999999929,75.463042999999971],[-80.358337000000006,75.458602999999982],[-80.338607999999908,75.456375000000037],[-80.306655999999919,75.456099999999992],[-80.108046999999942,75.469147000000021],[-80.000289999999893,75.476928999999984],[-79.929168999999945,75.479706000000078],[-79.73332199999993,75.471924000000115],[-79.714721999999995,75.470535000000098],[-79.644164999999987,75.462494000000049],[-79.586394999999982,75.454712000000086],[-79.574721999999895,75.449997000000053],[-79.581954999999994,75.446365000000071],[-79.635559000000001,75.445815999999979],[-79.656386999999995,75.444138000000066],[-79.675551999999925,75.441360000000032],[-79.683059999999955,75.435806000000071],[-79.682495000000017,75.430817000000104],[-79.62222300000002,75.402480999999966],[-79.605559999999969,75.398041000000148],[-79.561660999999958,75.394989000000066],[-79.520003999999972,75.391098],[-79.503066999999987,75.388596000000064],[-79.488051999999925,75.383330999999998],[-79.486937999999952,75.379974000000061],[-79.488601999999958,75.362487999999928],[-79.510009999999966,75.338043000000084],[-79.527495999999928,75.322220000000073],[-79.539443999999889,75.317763999999954],[-79.563323999999966,75.31860400000005],[-79.596664000000033,75.316086000000041],[-79.610000999999897,75.310806000000014],[-79.61471599999993,75.305542000000003],[-79.611938000000009,75.298325000000091],[-79.587508999999898,75.287491000000045],[-79.570847000000015,75.283051],[-79.548889000000031,75.281096999999988],[-79.443084999999996,75.280190000000061],[-79.506957999999884,75.229980000000069],[-79.571121000000005,75.199142000000052],[-79.629439999999988,75.174987999999928],[-79.651672000000019,75.172484999999995],[-79.731948999999929,75.164703000000031],[-79.774170000000026,75.167205999999965],[-79.835555999999997,75.160262999999986],[-79.929442999999878,75.140549000000078],[-79.944152999999915,75.136383000000023],[-79.954726999999934,75.12692300000009],[-79.955841000000021,75.113876000000118],[-79.955275999999969,75.106644000000017],[-79.955841000000021,75.100266000000033],[-79.960555999999883,75.094711000000132],[-79.974166999999852,75.08998100000008],[-80.128875999999991,75.068054000000018],[-80.150832999999977,75.065536000000066],[-80.215012000000002,75.063309000000004],[-80.296111999999994,75.058868000000075],[-80.440552000000025,75.038040000000024],[-80.427489999999921,75.029984000000127],[-80.402495999999928,75.021103000000039],[-80.327498999999989,74.998596000000134],[-80.310546999999985,74.996368000000132],[-80.297225999999966,74.996643000000006],[-80.238892000000021,74.994431000000134],[-80.194442999999978,74.989975000000015],[-80.182219999999916,74.986649],[-80.173888999999917,74.982483000000059],[-80.184158000000025,74.979430999999977],[-80.216110000000015,74.976089000000002],[-80.243057000000022,74.973038000000031],[-80.258347000000015,74.969711000000075],[-80.271941999999967,74.964996000000042],[-80.278884999999946,74.959427000000062],[-80.278884999999946,74.957214000000079],[-80.274170000000026,74.951096000000121],[-80.266112999999962,74.946640000000059],[-80.240828999999962,74.946640000000059],[-80.033614999999941,74.974426000000108],[-80.026946999999893,74.979980000000069],[-80.013061999999991,74.986923000000104],[-79.975280999999995,74.9994200000001],[-79.942764000000011,75.006943000000092],[-79.919158999999922,75.010543999999982],[-79.795273000000009,75.027480999999966],[-79.776947000000007,75.028320000000122],[-79.716400000000021,75.028869999999984],[-79.692763999999954,75.028046000000018],[-79.613891999999964,75.01998900000001],[-79.59722899999997,75.017487000000131],[-79.582503999999915,75.014435000000049],[-79.505004999999926,74.998321999999973],[-79.501953000000015,74.99581900000004],[-79.507232999999985,74.993042000000116],[-79.535827999999924,74.991653000000099],[-79.555557000000022,74.987198000000092],[-79.551940999999943,74.981659000000093],[-79.464721999999995,74.933319000000097],[-79.442489999999907,74.921646000000067],[-79.426392000000021,74.917206000000022],[-79.391953000000001,74.911102000000028],[-79.35722399999986,74.907486000000119],[-79.338608000000022,74.903320000000065],[-79.334732000000031,74.899993999999992],[-79.333617999999944,74.896378000000141],[-79.333617999999944,74.894440000000031],[-79.335830999999928,74.889160000000118],[-79.370543999999995,74.876373000000115],[-79.390839000000028,74.872482000000048],[-79.501953000000015,74.859421000000111],[-79.530288999999925,74.857758000000047],[-79.580001999999979,74.858321999999987],[-79.732773000000009,74.836655000000121],[-79.851943999999946,74.818878000000041],[-79.860549999999989,74.814697000000137],[-79.880553999999904,74.813034000000073],[-79.930557000000022,74.813309000000061],[-80.06806899999998,74.836380000000077],[-80.25306699999993,74.870818999999983],[-80.274170000000026,74.881087999999977],[-80.28195199999999,74.889984000000084],[-80.293883999999935,74.919983000000116],[-80.293610000000001,74.926376000000062],[-80.296951000000035,74.931090999999924],[-80.306380999999988,74.939148000000102],[-80.321670999999981,74.937759000000085],[-80.335280999999952,74.933044000000052],[-80.362212999999997,74.923599000000024],[-80.386123999999882,74.913604999999961],[-80.396118000000001,74.908599999999922],[-80.413054999999986,74.897766000000047],[-80.416655999999932,74.89387499999998],[-80.416107000000011,74.88888500000013],[-80.361114999999984,74.868866000000025],[-80.347777999999948,74.864990000000148],[-80.329726999999991,74.861374000000069],[-80.296951000000035,74.856934000000081],[-80.261123999999995,74.852767999999969],[-80.224166999999966,74.849426000000051],[-80.18638599999997,74.843323000000112],[-80.153609999999958,74.836655000000121],[-80.108611999999994,74.824432000000058],[-80.097778000000005,74.820267000000058],[-80.101668999999958,74.789154000000053],[-80.159164000000033,74.730269999999962],[-80.191375999999934,74.698029000000076],[-80.156112999999948,74.636932000000058],[-80.148894999999925,74.631088000000034],[-80.146666999999979,74.626923000000033],[-80.149444999999957,74.622482000000105],[-80.161391999999921,74.612198000000092],[-80.231673999999998,74.578049000000078],[-80.248046999999985,74.576096000000121],[-80.253715999999997,74.576050000000066],[-80.339995999999985,74.580551000000128],[-80.385009999999966,74.5816650000001],[-80.454453000000001,74.580825999999945],[-80.468886999999938,74.579436999999984],[-80.488891999999964,74.575546000000088],[-80.591674999999952,74.56442300000009],[-80.753066999999987,74.563309000000118],[-80.844161999999983,74.562759000000085],[-80.951950000000011,74.566086000000041],[-80.974715999999944,74.566939999999988],[-80.994155999999919,74.569717000000082],[-81.029998999999975,74.576660000000061],[-81.049727999999959,74.579163000000051],[-81.069457999999884,74.579711999999972],[-81.219161999999983,74.571381000000088],[-81.269729999999981,74.566086000000041],[-81.287505999999951,74.563034000000073],[-81.510833999999988,74.514434999999935],[-81.670836999999949,74.478592000000106],[-81.759170999999924,74.461105000000089],[-81.785003999999958,74.457764000000054],[-81.810821999999973,74.456940000000088],[-81.854720999999984,74.459427000000119],[-82.060546999999929,74.475540000000024],[-82.081680000000006,74.477203000000088],[-82.101395000000025,74.479706000000078],[-82.327498999999989,74.510544000000095],[-82.511123999999995,74.527206000000035],[-82.557219999999973,74.514709000000096],[-82.574722000000008,74.511658000000068],[-82.592498999999975,74.510544000000095],[-82.615279999999984,74.511108000000036],[-82.74749799999995,74.518051000000014],[-82.783614999999941,74.520263999999997],[-82.871933000000013,74.538589000000059],[-82.914169000000015,74.549149],[-82.953613000000018,74.565810999999997],[-83.018340999999907,74.594436999999914],[-83.056380999999988,74.61554000000001],[-83.079726999999934,74.630264000000068],[-83.088607999999965,74.636658000000125],[-83.092498999999975,74.641372999999987],[-83.102218999999934,74.65415999999999],[-83.12388599999997,74.684982000000048],[-83.128051999999968,74.691925000000026],[-83.131942999999978,74.708328000000108],[-83.128051999999968,74.71748400000007],[-83.107772999999952,74.748032000000023],[-83.090835999999854,74.757767000000115],[-83.075012000000015,74.762206999999933],[-83.041381999999942,74.769989000000066],[-83.028884999999946,74.774993999999936],[-83.02305599999994,74.780548000000124],[-83.024170000000026,74.783325000000048],[-83.081680000000006,74.818054000000075],[-83.09584000000001,74.82388300000008],[-83.105269999999962,74.826660000000004],[-83.116104000000007,74.828597999999943],[-83.15583799999996,74.826935000000049],[-83.203063999999983,74.820830999999998],[-83.227782999999874,74.820540999999992],[-83.24888599999997,74.823608000000092],[-83.299727999999959,74.835541000000148],[-83.33666999999997,74.849426000000051],[-83.380829000000006,74.866379000000109],[-83.402221999999938,74.875259000000142],[-83.475554999999929,74.896652000000074],[-83.511397999999986,74.901657000000114],[-83.52806099999998,74.901657000000114],[-83.547500999999954,74.897491000000059],[-83.55972300000002,74.892487000000074],[-83.560546999999985,74.887206999999989],[-83.559433000000013,74.880814000000044],[-83.556945999999925,74.875259000000142],[-83.527221999999995,74.84526100000005],[-83.518616000000009,74.839432000000045],[-83.472504000000015,74.815262000000018],[-83.458617999999944,74.808028999999976],[-83.429992999999911,74.797484999999938],[-83.394164999999987,74.790268000000026],[-83.375274999999931,74.786926000000108],[-83.354995999999971,74.784424000000001],[-83.327498999999932,74.779160000000047],[-83.318893000000003,74.774993999999936],[-83.324172999999973,74.755264000000125],[-83.327498999999932,74.75],[-83.454726999999991,74.591094999999996],[-83.474441999999954,74.579711999999972],[-83.484160999999972,74.574996999999939],[-83.598891999999978,74.543594000000098],[-83.611664000000019,74.540817000000004],[-83.720839999999953,74.545532000000037],[-83.785552999999936,74.548598999999967],[-83.805556999999965,74.550812000000121],[-83.830840999999964,74.551376000000062],[-83.855270000000019,74.550812000000121],[-83.907501000000025,74.546936000000073],[-84.037780999999939,74.53414900000007],[-84.063323999999966,74.530822999999998],[-84.107498000000021,74.523314999999968],[-84.145844000000011,74.515548999999965],[-84.216400000000021,74.507216999999969],[-84.238892000000021,74.505554000000018],[-84.285552999999936,74.50360100000006],[-84.332778999999903,74.503876000000105],[-84.355835000000013,74.504440000000045],[-84.396118000000001,74.507492000000127],[-84.641678000000013,74.506943000000035],[-84.850280999999995,74.502212999999983],[-84.871384000000035,74.501389000000017],[-84.889450000000011,74.502212999999983],[-84.899445000000014,74.503326000000072],[-84.91194200000001,74.508041000000105],[-84.916655999999932,74.511108000000036],[-84.983063000000016,74.570541000000048],[-84.985275000000001,74.579163000000051],[-84.974715999999944,74.617477000000065],[-84.960281000000009,74.656937000000084],[-84.955001999999865,74.66276600000009],[-84.950835999999981,74.668869000000029],[-84.950835999999981,74.672760000000096],[-84.952498999999989,74.679153000000042],[-84.955565999999976,74.684708000000114],[-84.964172000000019,74.691925000000026],[-84.973327999999867,74.696091000000138],[-84.990554999999972,74.698029000000076],[-85.003341999999975,74.697479000000044],[-85.063888999999961,74.651657],[-85.072509999999966,74.641098000000113],[-85.044723999999917,74.612198000000092],[-85.037506000000008,74.541092000000049],[-85.036941999999954,74.535263000000043],[-85.038604999999961,74.528870000000097],[-85.043609999999944,74.523314999999968],[-85.074172999999917,74.508880999999974],[-85.087783999999886,74.504990000000078],[-85.104720999999984,74.501663000000121],[-85.125274999999931,74.49859600000002],[-85.21444699999995,74.49192800000003],[-85.259445000000028,74.490540000000124],[-85.353057999999976,74.49859600000002],[-85.363616999999977,74.501937999999996],[-85.369995000000017,74.509430000000066],[-85.363891999999964,74.537490999999989],[-85.365554999999972,74.544144000000131],[-85.370270000000005,74.552475000000072],[-85.468613000000005,74.658875000000023],[-85.474166999999909,74.664428999999984],[-85.482773000000009,74.671646000000123],[-85.49499499999996,74.679153000000042],[-85.504455999999948,74.683318999999926],[-85.520554000000004,74.688033999999959],[-85.527221999999881,74.688873000000115],[-85.543335000000013,74.686371000000065],[-85.549987999999985,74.68193100000002],[-85.524170000000026,74.598602000000142],[-85.520844000000011,74.593048000000124],[-85.509170999999981,74.579987000000017],[-85.486938000000009,74.561096000000134],[-85.481948999999929,74.554152999999985],[-85.479996000000028,74.547760000000039],[-85.479171999999949,74.541655999999989],[-85.480285999999921,74.537200999999982],[-85.50389100000001,74.520538000000101],[-85.527221999999881,74.510269000000051],[-85.542220999999927,74.505554000000018],[-85.560546999999929,74.501389000000017],[-85.580840999999964,74.498322000000087],[-85.604172000000005,74.495818999999926],[-86.013335999999981,74.479431000000091],[-86.059433000000013,74.478592000000106],[-86.082503999999972,74.479156000000046],[-86.120834000000002,74.482207999999957],[-86.123046999999872,74.48332199999993],[-86.122771999999941,74.489975000000129],[-86.101105000000018,74.511383000000023],[-86.085555999999997,74.529434000000037],[-86.079178000000013,74.53915400000011],[-86.077788999999939,74.545257999999933],[-86.082779000000016,74.555251999999939],[-86.153610000000015,74.60914600000001],[-86.177779999999927,74.615265000000022],[-86.197494999999947,74.615265000000022],[-86.215835999999854,74.610809000000074],[-86.224441999999954,74.607758000000047],[-86.235001000000011,74.601929000000041],[-86.240554999999972,74.59693900000002],[-86.242766999999958,74.59137000000004],[-86.23443599999996,74.581100000000106],[-86.227492999999981,74.575271999999984],[-86.223052999999936,74.562194999999974],[-86.232223999999974,74.540268000000083],[-86.235275000000001,74.535263000000043],[-86.244719999999973,74.52388000000002],[-86.278885000000002,74.508605999999929],[-86.332779000000016,74.490265000000136],[-86.399170000000026,74.479431000000091],[-86.423324999999977,74.478866999999923],[-86.443603999999993,74.481093999999985],[-86.462508999999955,74.485535000000084],[-86.633330999999998,74.526093000000003],[-86.664168999999958,74.534714000000065],[-86.69110099999989,74.544144000000131],[-86.708618000000001,74.551086000000055],[-86.720839999999896,74.558594000000085],[-86.759170999999981,74.586380000000133],[-86.762786999999946,74.591933999999981],[-86.761672999999973,74.598037999999974],[-86.751403999999866,74.60386699999998],[-86.74610899999999,74.608871000000136],[-86.75111400000003,74.613602000000071],[-86.766952999999944,74.616088999999988],[-86.785277999999948,74.616928000000144],[-86.799437999999952,74.615265000000022],[-86.801101999999958,74.611374000000126],[-86.800551999999925,74.552200000000028],[-86.797226000000023,74.543594000000098],[-86.794448999999986,74.539978000000076],[-86.705565999999976,74.500275000000045],[-86.693603999999937,74.468048000000067],[-86.905838000000017,74.460541000000092],[-87.225829999999917,74.466934000000094],[-87.27027899999996,74.468323000000055],[-87.304169000000002,74.471649000000127],[-87.320846999999958,74.476653999999996],[-87.352782999999931,74.495254999999986],[-87.474441999999954,74.475815000000011],[-87.508621000000005,74.46775800000006],[-87.527221999999995,74.465545999999961],[-87.574722000000008,74.461929000000055],[-87.669998000000021,74.459991000000059],[-87.710830999999928,74.460815000000025],[-87.732223999999974,74.466385000000116],[-87.755004999999983,74.479431000000091],[-87.848052999999993,74.476089000000115],[-87.903610000000015,74.472214000000122],[-88.036117999999931,74.476928999999984],[-88.263625999999988,74.483597000000145],[-88.356109999999944,74.489150999999993],[-88.496947999999861,74.497757000000092],[-88.517226999999991,74.499709999999993],[-88.529723999999987,74.501937999999996],[-88.535277999999948,74.50360100000006],[-88.539992999999981,74.50610400000005],[-88.571121000000005,74.549987999999985],[-88.570846999999958,74.556091000000094],[-88.560821999999973,74.593048000000124],[-88.542220999999984,74.616088999999988],[-88.406386999999995,74.736098999999967],[-88.347504000000015,74.784714000000008],[-88.484725999999966,74.857758000000047],[-88.528060999999866,74.901931999999988],[-88.537216000000001,74.906937000000028],[-88.547774999999945,74.907760999999994],[-88.557220000000029,74.906647000000021],[-88.56806899999998,74.901382000000126],[-88.664718999999934,74.844986000000006],[-88.675827000000027,74.836929000000055],[-88.74360699999994,74.78387500000008],[-88.749724999999899,74.77777100000003],[-88.752501999999993,74.768326000000002],[-88.75306699999993,74.756103999999993],[-88.749724999999899,74.749709999999936],[-88.748885999999914,74.741364000000033],[-88.749434999999949,74.726089000000059],[-88.753341999999918,74.714157000000114],[-88.811935000000005,74.672211000000118],[-88.821395999999993,74.666382000000112],[-88.835555999999997,74.661377000000073],[-88.848343,74.659149000000127],[-88.862212999999997,74.658875000000023],[-88.873885999999914,74.6602630000001],[-88.883056999999951,74.665267999999969],[-88.889724999999999,74.670531999999923],[-88.917220999999984,74.719711000000132],[-88.918059999999855,74.732483000000116],[-88.914168999999958,74.749145999999996],[-88.910278000000005,74.754990000000021],[-88.905563000000029,74.75999500000006],[-88.904174999999952,74.765549000000078],[-88.906386999999995,74.773041000000035],[-88.909728999999857,74.77777100000003],[-88.926940999999943,74.78387500000008],[-89.073623999999882,74.833878000000027],[-89.088608000000022,74.837204000000042],[-89.097778000000005,74.836105000000089],[-89.099166999999966,74.835266000000104],[-89.059998000000007,74.797484999999938],[-89.053329000000019,74.793594000000041],[-89.042769999999905,74.789702999999975],[-89.011123999999938,74.780822999999941],[-89.010283999999956,74.775543000000084],[-89.012786999999946,74.770538000000045],[-89.041381999999999,74.730269999999962],[-89.047501000000011,74.722487999999998],[-89.055832000000009,74.719146999999964],[-89.077788999999882,74.717209000000025],[-89.102218999999991,74.719437000000028],[-89.178878999999938,74.732208000000128],[-89.178878999999938,74.735260000000039],[-89.181106999999997,74.739700000000028],[-89.190551999999968,74.744430999999963],[-89.223052999999993,74.752487000000031],[-89.243057000000022,74.755264000000125],[-89.265014999999948,74.756378000000097],[-89.271118000000001,74.754715000000033],[-89.216400000000021,74.721100000000092],[-89.202498999999932,74.713882000000126],[-89.189712999999927,74.708602999999925],[-89.141112999999962,74.698029000000076],[-89.12249799999995,74.696091000000138],[-89.105270000000019,74.693039000000056],[-89.095839999999953,74.688033999999959],[-89.095839999999953,74.68193100000002],[-89.125,74.616928000000144],[-89.131942999999922,74.611374000000126],[-89.150557999999933,74.599716000000114],[-89.185271999999998,74.587494000000106],[-89.196945000000028,74.584427000000005],[-89.438889000000017,74.550812000000121],[-89.455001999999922,74.548598999999967],[-89.489715999999987,74.545532000000037],[-89.580565999999976,74.540268000000083],[-89.92860399999995,74.530822999999998],[-89.946105999999986,74.532211000000132],[-90.106658999999979,74.549422999999933],[-90.223891999999921,74.563599000000124],[-90.244995000000017,74.566939999999988],[-90.263335999999924,74.570541000000048],[-90.363051999999982,74.594711000000075],[-90.45666499999993,74.600815000000068],[-90.496384000000035,74.601654000000053],[-90.529998999999862,74.605255000000113],[-90.589721999999995,74.613312000000064],[-90.607223999999917,74.616378999999995],[-90.619995000000017,74.619980000000055],[-90.70805399999989,74.648041000000148],[-90.731673999999941,74.664153999999996],[-90.736938000000009,74.669434000000024],[-90.739440999999999,74.673874000000069],[-90.747771999999998,74.703048999999965],[-90.75111400000003,74.716385000000059],[-90.867492999999911,74.702484000000084],[-90.875823999999966,74.691925000000026],[-90.885559000000001,74.683593999999971],[-90.895614999999964,74.681137000000092],[-91.013625999999988,74.698868000000061],[-91.024718999999948,74.70277400000009],[-91.023620999999991,74.706940000000031],[-91.012221999999952,74.717209000000025],[-90.978332999999964,74.739700000000028],[-90.965012000000002,74.747757000000036],[-90.945830999999941,74.751389000000131],[-90.938598999999954,74.750823999999966],[-90.926101999999958,74.751663000000065],[-90.896118000000001,74.75749200000007],[-90.883895999999936,74.761658000000011],[-90.851395000000025,74.776093000000117],[-90.758057000000008,74.831100000000049],[-90.752791999999943,74.835815000000082],[-90.740829000000019,74.847488000000112],[-90.742492999999911,74.852767999999969],[-90.746658000000025,74.860535000000084],[-90.75778200000002,74.880814000000044],[-90.772232000000031,74.884995000000117],[-90.816956000000005,74.883605999999986],[-90.841110000000015,74.879425000000083],[-90.853881999999942,74.875259000000142],[-90.863892000000021,74.869979999999998],[-90.870270000000005,74.86442599999998],[-90.874435000000005,74.859146000000123],[-90.87388599999997,74.853043000000014],[-90.883330999999998,74.84165999999999],[-90.975006000000008,74.799423000000104],[-91,74.789702999999975],[-91.075286999999946,74.761107999999979],[-91.101943999999946,74.751099000000124],[-91.132767000000001,74.744430999999963],[-91.144729999999981,74.747481999999991],[-91.14416499999993,74.751389000000131],[-91.146666999999923,74.755554000000132],[-91.171660999999972,74.75749200000007],[-91.188599000000011,74.752777000000037],[-91.216110000000015,74.738876000000062],[-91.225829999999917,74.733597000000088],[-91.228881999999942,74.727768000000083],[-91.226944000000003,74.722487999999998],[-91.185271999999941,74.684708000000114],[-91.177489999999977,74.678039999999953],[-91.154998999999975,74.665542999999957],[-91.11471599999993,74.645827999999995],[-91.105835000000013,74.63998400000014],[-91.098052999999879,74.633330999999998],[-91.099730999999963,74.62831100000011],[-91.106658999999979,74.625809000000061],[-91.133056999999951,74.624420000000043],[-91.256393000000003,74.628585999999984],[-91.455841000000021,74.639708999999982],[-91.539992999999924,74.646378000000027],[-91.553328999999962,74.648330999999985],[-91.676101999999901,74.671921000000111],[-91.684998000000007,74.677765000000136],[-91.671660999999972,74.689697000000081],[-91.664169000000015,74.693314000000044],[-91.634170999999981,74.696091000000138],[-91.621932999999956,74.700272000000041],[-91.620270000000005,74.704987000000074],[-91.624435000000005,74.709991000000059],[-91.635833999999932,74.715271000000087],[-91.651671999999962,74.719986000000119],[-91.708618000000001,74.727478000000076],[-91.754181000000017,74.727768000000083],[-91.779449,74.725815000000125],[-91.798888999999917,74.722214000000065],[-91.811110999999983,74.71804800000001],[-91.812499999999886,74.713042999999971],[-91.80296299999992,74.706184000000007],[-91.798888999999917,74.699416999999983],[-91.815551999999968,74.69470200000012],[-91.833069000000023,74.696091000000138],[-91.851105000000018,74.698868000000061],[-91.866652999999928,74.702209000000096],[-91.876663000000008,74.706940000000031],[-91.875274999999931,74.711928999999998],[-91.859160999999972,74.721100000000092],[-91.892226999999934,74.750823999999966],[-91.961944999999957,74.764160000000061],[-91.998610999999983,74.773041000000035],[-92.015838999999971,74.778320000000008],[-92.045546999999999,74.789702999999975],[-92.05749499999996,74.79664600000001],[-92.063613999999973,74.803588999999988],[-92.065276999999924,74.80720500000001],[-92.06639100000001,74.813309000000061],[-92.05749499999996,74.82499700000011],[-92.051665999999955,74.830551000000071],[-92.043334999999956,74.836380000000077],[-92.01916499999993,74.846099999999979],[-92.013061999999991,74.851928999999984],[-92.008056999999951,74.863602000000014],[-92.006393000000003,74.888046000000145],[-92.013335999999924,74.908325000000104],[-92.015288999999939,74.913604999999961],[-92.043334999999956,74.951935000000105],[-92.048049999999989,74.958328000000051],[-92.063323999999966,74.963882000000069],[-92.091674999999896,74.971649000000014],[-92.1058349999999,74.976654000000053],[-92.164169000000015,74.998031999999967],[-92.209732000000031,75.038588999999945],[-92.228881999999999,75.071105999999986],[-92.225829999999917,75.07388300000008],[-92.21556099999998,75.07638500000013],[-92.186385999999914,75.08137499999998],[-92.152495999999985,75.083878000000141],[-92.111664000000019,75.081940000000031],[-92.046188000000029,75.084961000000078],[-92.029998999999918,75.08638000000002],[-92.012511999999958,75.095260999999994],[-92.010009999999966,75.101089000000115],[-92.051392000000021,75.146942000000024],[-92.055557000000022,75.15026899999998],[-92.070556999999894,75.153046000000074],[-92.083618000000001,75.153320000000008],[-92.105269999999962,75.151932000000102],[-92.193329000000006,75.143326000000002],[-92.325561999999991,75.151657000000057],[-92.490829000000019,75.213608000000079],[-92.468886999999938,75.284714000000122],[-92.428604000000007,75.394440000000088],[-92.388335999999924,75.441925000000083],[-92.328063999999983,75.489151000000106],[-92.220276000000013,75.546097000000088],[-92.210281000000009,75.551376000000062],[-92.199431999999945,75.553864000000033],[-92.155838000000017,75.556641000000127],[-92.100280999999995,75.562759000000085],[-92.085830999999985,75.564987000000031],[-92.069457999999997,75.568878000000097],[-92.056655999999975,75.573043999999982],[-92.013901000000033,75.589157000000057],[-92.005004999999926,75.594986000000063],[-92.008346999999958,75.661377000000073],[-92.043609999999887,75.68553200000008],[-92.05749499999996,75.691359999999975],[-92.089995999999985,75.700272000000041],[-92.137512000000015,75.721100000000092],[-92.156661999999983,75.731094000000098],[-92.174437999999952,75.744431000000134],[-92.175551999999925,75.750549000000092],[-92.139724999999999,75.778319999999951],[-92.119155999999919,75.789154000000053],[-92.112777999999992,75.794708000000014],[-92.104720999999984,75.805252000000053],[-92.100554999999929,75.823043999999925],[-92.103881999999942,75.841369999999927],[-92.105269999999962,75.847488000000055],[-92.108611999999994,75.858871000000079],[-92.113327000000027,75.863602000000014],[-92.129714999999976,75.876373000000115],[-92.138061999999991,75.879974000000004],[-92.151108000000022,75.883041000000105],[-92.172774999999945,75.885544000000039],[-92.215012000000002,75.888321000000133],[-92.23832699999997,75.891373000000101],[-92.317779999999914,75.90498400000007],[-92.336394999999868,75.908600000000092],[-92.408614999999998,75.928589000000045],[-92.433060000000012,75.936371000000008],[-92.444442999999922,75.941086000000041],[-92.583618000000001,76.008881000000031],[-92.635833999999988,76.104155999999989],[-92.635833999999988,76.109711000000061],[-92.637222000000008,76.115814],[-92.793883999999935,76.20748900000001],[-92.809433000000013,76.212494000000049],[-92.946654999999964,76.245818999999926],[-93.066956000000005,76.299149],[-93.076674999999909,76.316939999999988],[-93.057220000000029,76.326660000000061],[-93.054992999999968,76.332489000000066],[-93.056380999999874,76.338593000000117],[-93.059158000000025,76.34387200000009],[-93.071945000000028,76.353317000000004],[-93.083618000000001,76.358032000000037],[-93.115279999999927,76.363876000000005],[-93.138061999999934,76.366378999999995],[-93.186935000000005,76.368317000000104],[-93.212783999999942,76.368042000000116],[-93.239989999999977,76.366653000000099],[-93.315276999999924,76.360259999999982],[-93.345275999999956,76.356094000000041],[-93.381377999999927,76.34637500000008],[-93.449996999999996,76.326385000000073],[-93.561934999999949,76.297211000000061],[-93.587783999999886,76.292755],[-93.617492999999968,76.291092000000049],[-93.635833999999988,76.291655999999989],[-93.658339999999896,76.293868999999972],[-93.666397000000018,76.298598999999967],[-93.653335999999911,76.302765000000079],[-93.624434999999892,76.30581699999999],[-93.623610999999926,76.310806000000127],[-93.636123999999995,76.326660000000061],[-93.654174999999896,76.325821000000133],[-93.678878999999938,76.322220000000073],[-93.718886999999995,76.312484999999981],[-93.731383999999991,76.306930999999963],[-93.763901000000033,76.286377000000016],[-93.763901000000033,76.282211000000132],[-93.761948000000018,76.280272999999966],[-93.753890999999953,76.275817999999958],[-93.74110399999995,76.271927000000062],[-93.720551,76.267761000000007],[-93.697220000000016,76.26388500000013],[-93.78443900000002,76.253052000000139],[-93.954453000000001,76.257767000000001],[-93.956116000000009,76.257767000000001],[-93.958343999999954,76.257767000000001],[-94.097504000000015,76.259430000000123],[-94.118880999999988,76.261383000000023],[-94.134170999999867,76.264709000000096],[-94.141387999999949,76.269989000000123],[-94.151671999999905,76.274155000000064],[-94.168610000000001,76.278320000000065],[-94.212509000000011,76.280822999999998],[-94.470839999999953,76.281096999999932],[-94.641677999999956,76.293319999999994],[-94.780288999999982,76.288879000000065],[-94.789992999999981,76.283600000000092],[-94.803329000000019,76.278320000000065],[-94.838608000000022,76.268326000000059],[-95.029174999999952,76.236099000000024],[-95.354995999999915,76.234146000000123],[-95.376099000000011,76.234421000000111],[-95.386947999999961,76.235809000000017],[-95.388061999999934,76.283600000000092],[-95.374435000000005,76.297760000000039],[-95.366942999999935,76.301376000000062],[-95.357223999999974,76.302765000000079],[-95.343063000000029,76.300262000000089],[-95.31806899999998,76.290817000000061],[-95.279175000000009,76.281372000000147],[-95.258895999999993,76.282760999999994],[-95.118332000000009,76.298035000000027],[-95.092772999999909,76.302765000000079],[-95.075561999999877,76.307754999999929],[-95.069732999999928,76.313309000000118],[-95.066558999999984,76.319862000000001],[-95.058883999999978,76.324706999999933],[-95.010558999999944,76.331100000000106],[-94.983886999999982,76.332489000000066],[-94.958892999999989,76.332214000000079],[-94.915008999999884,76.329711999999972],[-94.866394000000014,76.325546000000088],[-94.84973100000002,76.323317999999972],[-94.84056099999998,76.319717000000082],[-94.849990999999875,76.31442300000009],[-94.862777999999878,76.309981999999991],[-94.861663999999962,76.306930999999963],[-94.843613000000005,76.303864000000033],[-94.828613000000018,76.306091000000094],[-94.808608999999933,76.311371000000008],[-94.802489999999977,76.315536000000009],[-94.80082699999997,76.321655000000021],[-94.814163000000008,76.329163000000051],[-94.834441999999967,76.334427000000005],[-94.894729999999925,76.341660000000047],[-94.965012000000002,76.347487999999942],[-95.132767000000001,76.361374000000126],[-95.274719000000005,76.372208000000001],[-95.299437999999952,76.372482000000105],[-95.326401000000033,76.37081900000004],[-95.331679999999949,76.365265000000022],[-95.341384999999946,76.359711000000004],[-95.388900999999976,76.351929000000041],[-95.399993999999992,76.353317000000004],[-95.447220000000016,76.365813999999943],[-95.645279000000016,76.384155000000135],[-95.668335000000013,76.386108000000092],[-95.715835999999911,76.392211999999915],[-95.737502999999947,76.393875000000037],[-95.851105000000018,76.40109300000006],[-95.995834000000002,76.436919999999986],[-96.081679999999892,76.478043000000127],[-96.106948999999986,76.494430999999963],[-96.104171999999949,76.5],[-96.099166999999909,76.505553999999961],[-96.09056099999998,76.510268999999994],[-96.065552000000025,76.521378000000084],[-96.052489999999921,76.524155000000007],[-95.997222999999963,76.519440000000145],[-95.944991999999957,76.518326000000002],[-95.806380999999931,76.516388000000063],[-95.778609999999958,76.518875000000094],[-95.694152999999972,76.545258000000103],[-95.680557000000022,76.550537000000077],[-95.657776000000013,76.561371000000122],[-95.593886999999938,76.593048000000067],[-95.584166999999979,76.598327999999981],[-95.587783999999999,76.603592000000106],[-95.599441999999954,76.605255000000056],[-95.619719999999973,76.606094000000041],[-95.638901000000033,76.604156000000046],[-95.660277999999948,76.599426000000051],[-95.696105999999986,76.584152000000131],[-95.695540999999992,76.580276000000083],[-95.696654999999964,76.574432000000058],[-95.712783999999999,76.568603999999937],[-95.759170999999981,76.553588999999988],[-95.780562999999916,76.548874000000126],[-95.992492999999968,76.54803499999997],[-96.016953000000001,76.549149],[-96.158614999999941,76.583327999999995],[-96.17860399999995,76.594147000000078],[-96.225280999999882,76.625809000000004],[-96.27027899999996,76.632751000000098],[-96.33944699999995,76.63220199999995],[-96.355835000000013,76.633041000000105],[-96.38137799999987,76.635818000000029],[-96.403335999999911,76.639709000000096],[-96.421386999999982,76.646102999999982],[-96.445830999999998,76.657211000000132],[-96.454178000000013,76.662490999999989],[-96.461394999999925,76.668593999999985],[-96.461120999999991,76.673599000000024],[-96.46444699999995,76.679703000000018],[-96.470275999999956,76.685532000000023],[-96.527785999999935,76.693038999999999],[-96.611938000000009,76.702484000000027],[-96.636123999999995,76.704436999999984],[-96.661666999999966,76.704712000000029],[-96.736938000000009,76.697205000000054],[-96.764175000000023,76.695526000000086],[-96.789718999999934,76.695816000000093],[-96.81639100000001,76.697478999999987],[-96.857772999999952,76.701935000000105],[-96.879990000000021,76.705826000000002],[-96.915832999999964,76.714432000000102],[-96.946654999999964,76.723602000000142],[-96.959166999999979,76.729155999999932],[-96.964447000000007,76.733322000000044],[-96.900283999999999,76.795258000000047],[-96.887221999999952,76.805542000000059],[-96.873885999999914,76.810806000000071],[-96.854995999999971,76.813034000000016],[-96.839721999999995,76.810257000000092],[-96.724716000000001,76.783324999999991],[-96.679717999999923,76.770264000000054],[-96.592498999999918,76.758881000000031],[-96.426102000000014,76.744705000000067],[-96.330291999999929,76.750274999999931],[-96.311935000000005,76.751389000000131],[-96.305556999999965,76.753875999999991],[-96.315551999999968,76.802475000000129],[-96.320557000000008,76.80664100000007],[-96.366942999999935,76.812758999999971],[-96.453612999999962,76.815262000000132],[-96.50111400000003,76.818054000000075],[-96.547226000000023,76.822769000000108],[-96.797500999999897,76.861374000000012],[-96.81361400000003,76.868042000000003],[-96.848891999999921,76.887496999999996],[-96.865829000000019,76.898041000000035],[-96.869155999999975,76.904160000000047],[-96.869445999999982,76.913879000000065],[-96.864166000000012,76.919708000000071],[-96.857772999999952,76.924987999999928],[-96.833617999999944,76.9327550000001],[-96.796386999999982,76.937484999999924],[-96.771941999999967,76.937759000000028],[-96.761123999999995,76.937759000000028],[-96.723891999999978,76.935256999999979],[-96.708054000000004,76.93331900000004],[-96.698607999999979,76.934143000000006],[-96.660827999999981,76.947204999999997],[-96.659163999999976,76.949142000000052],[-96.667769999999962,76.954436999999928],[-96.677779999999984,76.957764000000054],[-96.696945000000028,76.960541000000148],[-96.718886999999995,76.963043000000027],[-96.765288999999996,76.96527100000003],[-96.808333999999945,76.966094999999996],[-96.824447999999904,76.96775800000006],[-96.827788999999939,76.968872000000033],[-96.825561999999991,76.974426000000051],[-96.810271999999998,76.979156000000103],[-96.772034000000019,76.98101800000012],[-96.742034999999987,76.982208000000014],[-96.673324999999977,76.982208000000014],[-96.622771999999998,76.979980000000069],[-96.483611999999994,76.971100000000035],[-96.353881999999999,76.993042000000059],[-96.391113000000018,77.026931999999988],[-96.387787000000003,77.03054800000001],[-96.373321999999973,77.031937000000028],[-96.28472899999997,77.039428999999984],[-96.27305599999994,77.040267999999912],[-96.24499499999996,77.041931000000034],[-96.226105000000018,77.043045000000006],[-96.103057999999976,77.044708000000128],[-95.96665999999999,77.053040000000124],[-95.888061999999934,77.06109600000002],[-95.752501999999993,77.06860400000005],[-95.734726000000023,77.06860400000005],[-95.707503999999915,77.066940000000045],[-95.659728999999913,77.058868000000075]],[[-113.32888800000001,77.079987000000017],[-113.353882,77.077484000000084],[-113.40888999999999,77.078873000000044],[-113.45140099999992,77.081664999999987],[-113.49194299999999,77.085541000000035],[-113.49749799999989,77.088318000000129],[-113.49027999999998,77.092484000000013],[-113.34472700000003,77.127762000000018],[-113.33528099999995,77.126083000000051],[-113.31471299999998,77.11775200000011],[-113.29332699999986,77.107483000000116],[-113.28694200000001,77.09637500000008],[-113.29110700000001,77.08998100000008],[-113.30471799999998,77.085266000000047],[-113.32888800000001,77.079987000000017]],[[-113.77861000000001,77.104155999999989],[-113.80695299999991,77.104155999999989],[-113.85333300000002,77.10554499999995],[-113.88054699999992,77.108032000000037],[-113.90888999999999,77.113037000000077],[-113.92443800000001,77.118591000000094],[-113.93138099999999,77.1244200000001],[-113.93138099999999,77.129699999999957],[-113.92722300000003,77.135268999999994],[-113.92083700000001,77.141098],[-113.90110800000002,77.146378000000027],[-113.88082900000001,77.149719000000061],[-113.859444,77.151382000000012],[-113.798607,77.152481000000023],[-113.77417000000003,77.151657000000057],[-113.72250399999996,77.148041000000148],[-113.69915800000001,77.144714000000022],[-113.67555199999993,77.140274000000034],[-113.66443599999997,77.134720000000016],[-113.65778399999999,77.129149999999925],[-113.66416900000002,77.123032000000023],[-113.67916899999989,77.116928000000144],[-113.703056,77.111649],[-113.72778299999993,77.108032000000037],[-113.75306699999993,77.10554499999995],[-113.77861000000001,77.104155999999989]],[[-104.25250199999999,77.072769000000051],[-104.30277999999998,77.072220000000073],[-104.35417200000001,77.073883000000023],[-104.37721299999998,77.076660000000118],[-104.40222199999994,77.081100000000106],[-104.421944,77.087203999999986],[-104.43167099999994,77.098877000000016],[-104.42639200000002,77.116379000000052],[-104.42027300000001,77.122208000000057],[-104.40556299999997,77.127762000000018],[-104.31973299999999,77.151657000000057],[-104.30082700000003,77.15525800000006],[-104.27333099999998,77.159714000000008],[-104.18360899999993,77.167205999999965],[-104.11389199999996,77.166091999999992],[-104.07140399999997,77.16137700000013],[-104.06139400000001,77.158875000000023],[-104.031113,77.15109300000006],[-104.01972999999998,77.146103000000039],[-104.00110599999999,77.135818000000086],[-103.99889399999995,77.123870999999951],[-104.00945300000001,77.118042000000116],[-104.02416999999991,77.112487999999985],[-104.04778299999992,77.106934000000138],[-104.15028399999994,77.08638000000002],[-104.196663,77.077484000000084],[-104.25250199999999,77.072769000000051]],[[-95.22444200000001,77.167205999999965],[-95.245270000000005,77.164153999999996],[-95.291381999999999,77.164992999999981],[-95.314437999999996,77.166656000000103],[-95.362777999999935,77.171920999999998],[-95.419998000000021,77.181931000000077],[-95.572509999999852,77.213042999999971],[-95.613051999999925,77.221924000000115],[-95.634170999999924,77.228043000000127],[-95.638901000000033,77.232208000000128],[-95.639998999999932,77.237761999999975],[-95.636672999999973,77.239150999999936],[-95.631377999999927,77.239700000000084],[-95.608046999999885,77.240814000000057],[-95.511123999999995,77.243042000000003],[-95.438048999999978,77.24443100000002],[-95.387512000000015,77.240814000000057],[-95.37222300000002,77.238037000000134],[-95.356110000000001,77.236374000000069],[-95.31361400000003,77.229156000000046],[-95.244155999999919,77.213882000000126],[-95.216399999999965,77.201660000000004],[-95.206664999999987,77.189147999999989],[-95.206954999999994,77.177764999999965],[-95.214447000000007,77.172485000000108],[-95.22444200000001,77.167205999999965]],[[-90.933059999999955,77.254440000000045],[-90.909164000000033,77.251663000000121],[-90.815001999999993,77.240265000000136],[-90.772232000000031,77.231368999999972],[-90.736388999999974,77.220824999999934],[-90.718338000000017,77.207213999999965],[-90.713622999999984,77.200821000000019],[-90.724166999999909,77.183318999999983],[-90.731948999999986,77.177764999999965],[-90.779175000000009,77.156647000000078],[-90.811385999999914,77.14665199999996],[-90.83555599999994,77.142211999999972],[-90.868331999999953,77.138321000000076],[-90.899993999999992,77.136932000000058],[-90.978606999999897,77.137771999999927],[-91.049728000000016,77.145537999999988],[-91.18472300000002,77.163605000000075],[-91.221664000000033,77.170258000000047],[-91.238892000000021,77.174423000000047],[-91.262512000000015,77.18414300000012],[-91.286391999999921,77.196640000000116],[-91.295546999999999,77.203323000000069],[-91.297501000000011,77.207213999999965],[-91.299164000000019,77.217758000000003],[-91.277221999999995,77.227478000000133],[-91.24749799999995,77.235809000000017],[-91.189712999999983,77.24803200000008],[-91.162216000000001,77.251389000000017],[-91.107223999999917,77.254715000000033],[-91.084732000000031,77.254440000000045],[-91.072234999999921,77.253326000000072],[-91.057219999999973,77.254440000000045],[-90.987503000000004,77.254990000000078],[-90.933059999999955,77.254440000000045]],[[-116.35109699999998,77.539154000000053],[-116.20333900000003,77.519989000000066],[-116.09056099999992,77.491089000000045],[-116.073624,77.485535000000027],[-115.88027999999991,77.433319000000097],[-115.52055399999995,77.364426000000037],[-115.49526999999989,77.359420999999998],[-115.458054,77.348602000000085],[-115.44611399999985,77.343048000000124],[-115.389183,77.312194999999917],[-115.390289,77.306366000000082],[-115.54332699999986,77.265548999999908],[-115.59110999999996,77.259995000000117],[-115.61694299999999,77.258331000000112],[-115.66915899999992,77.256942999999978],[-115.69499199999996,77.255264000000011],[-115.77250700000002,77.247757000000036],[-115.81973299999999,77.237488000000042],[-115.83084099999991,77.233322000000101],[-115.85888699999998,77.220824999999934],[-115.87777699999992,77.215271000000143],[-115.94695299999989,77.20887799999997],[-116.112503,77.193863000000022],[-116.13806199999999,77.192200000000128],[-116.19055200000003,77.191650000000095],[-116.21777299999997,77.192749000000049],[-116.26917300000002,77.190261999999962],[-116.28056300000003,77.183594000000028],[-116.31416300000001,77.144440000000088],[-116.31973299999999,77.11775200000011],[-116.28028899999998,77.067215000000033],[-116.26917300000002,77.055817000000047],[-116.24249299999991,77.044144000000017],[-116.17360699999989,77.027206000000092],[-116.06388900000002,77.007492000000013],[-116.00583599999999,76.997482000000105],[-115.95028699999995,76.991363999999976],[-115.860817,76.979156000000103],[-115.75499699999995,76.960815000000082],[-115.73889199999996,76.955261000000064],[-115.73137700000001,76.949707000000103],[-115.72833300000002,76.943863000000079],[-115.729446,76.938034000000073],[-115.73222399999997,76.931656000000089],[-115.74610899999999,76.925262000000089],[-115.80695300000002,76.90637200000009],[-115.829453,76.900818000000129],[-115.85333299999996,76.897217000000069],[-115.90334300000001,76.893874999999923],[-115.92859599999997,76.893050999999957],[-115.98194899999993,76.895538000000045],[-116.06388900000002,76.902771000000087],[-116.11501299999992,76.909149000000014],[-116.25389100000001,76.932480000000055],[-116.306107,76.936096000000134],[-116.32721699999996,76.935532000000023],[-116.35166899999996,76.9327550000001],[-116.36527999999993,76.926376000000062],[-116.36721799999998,76.915543000000071],[-116.36332699999997,76.90887500000008],[-116.35555999999985,76.903320000000008],[-116.34612299999992,76.898331000000042],[-116.32972699999999,76.89276099999995],[-116.18360899999993,76.845825000000104],[-116.16388699999999,76.841660000000104],[-116.10749800000002,76.833602999999982],[-116.031113,76.820267000000001],[-116.00029000000001,76.811371000000065],[-115.89472999999992,76.703323000000012],[-115.89138800000001,76.697478999999987],[-115.89666699999998,76.691649999999981],[-116.07140400000003,76.625809000000004],[-116.09306299999992,76.619141000000013],[-116.11582900000002,76.61442599999998],[-116.16055299999999,76.611099000000081],[-116.23194899999999,76.603043000000014],[-116.25446299999999,76.598602000000085],[-116.32250999999997,76.581100000000049],[-116.37351999999993,76.581802000000039],[-116.73277300000001,76.572495000000004],[-116.75890399999992,76.56999200000007],[-116.97112299999998,76.548598999999967],[-116.99471999999992,76.545822000000044],[-117.01750199999992,76.542205999999965],[-117.03999299999992,76.537490999999932],[-117.05387899999999,76.533051000000114],[-117.06861900000001,76.526093000000117],[-117.07556199999993,76.520538000000045],[-117.07749899999999,76.514160000000061],[-117.07640099999998,76.508881000000088],[-117.07277699999997,76.503052000000082],[-117.05695299999996,76.491652999999985],[-117.04360999999989,76.48692299999999],[-117.01750199999992,76.482483000000116],[-117.00389099999995,76.477478000000076],[-116.98361199999999,76.454987000000074],[-116.94082599999996,76.386932000000058],[-116.93916299999995,76.380539000000113],[-116.93582200000003,76.351929000000041],[-116.93859900000001,76.34637500000008],[-117.09555099999994,76.295257999999933],[-117.13971700000002,76.286925999999994],[-117.31973299999999,76.257767000000001],[-117.345551,76.256377999999984],[-117.36888099999999,76.256943000000035],[-117.52390300000002,76.263611000000026],[-117.5750119999999,76.26887499999998],[-117.60305799999998,76.27388000000002],[-117.62304699999999,76.278870000000097],[-117.639183,76.28414900000007],[-117.65778399999999,76.293319999999994],[-117.64917000000003,76.305542000000003],[-117.64890299999996,76.311371000000008],[-117.65527299999997,76.317490000000021],[-117.67304999999993,76.322220000000073],[-117.69915800000001,76.324158000000011],[-117.72416699999997,76.324432000000115],[-117.87777699999998,76.341933999999981],[-117.889183,76.355819999999937],[-117.90139799999997,76.367203000000131],[-117.90695199999993,76.372208000000001],[-117.99722299999996,76.396941999999967],[-118.02139299999999,76.401932000000045],[-118.04444899999999,76.404984000000127],[-118.05999800000001,76.409149000000127],[-118.04750100000001,76.441650000000038],[-118.02749599999999,76.484711000000061],[-117.97332799999998,76.596375000000023],[-117.92832899999996,76.676651000000106],[-117.91915899999992,76.68803400000013],[-117.90666199999993,76.694137999999953],[-117.883331,76.700546000000088],[-117.86444099999994,76.704163000000051],[-117.84805299999999,76.708328000000051],[-117.81331599999999,76.719436999999971],[-117.79638699999998,76.725815000000125],[-117.78806299999997,76.732208000000071],[-117.73889200000002,76.772217000000012],[-117.73444399999994,76.778320000000122],[-117.73860200000001,76.784149000000127],[-117.79888899999997,76.817764000000011],[-117.81667299999998,76.821380999999974],[-117.84221600000001,76.82388300000008],[-117.86665299999999,76.822220000000129],[-117.88806199999999,76.818878000000041],[-117.90499899999992,76.812195000000031],[-117.91777000000002,76.799988000000042],[-117.92610200000001,76.788040000000024],[-117.96056399999998,76.769989000000066],[-118.00583599999993,76.761383000000137],[-118.02971600000001,76.758606000000043],[-118.08222999999998,76.756943000000092],[-118.10611,76.75749200000007],[-118.15695199999999,76.76249700000011],[-118.21362299999998,76.769150000000081],[-118.29361,76.773041000000148],[-118.319458,76.773041000000148],[-118.33750900000001,76.768326000000116],[-118.49500299999994,76.712203999999929],[-118.47471599999994,76.679703000000018],[-118.45973199999997,76.673874000000012],[-118.42887899999999,76.663879000000122],[-118.40306099999998,76.657760999999994],[-118.35804699999989,76.64888000000002],[-118.34137699999997,76.643599999999992],[-118.33473199999992,76.637497000000053],[-118.316101,76.574707000000103],[-118.50279199999994,76.509720000000073],[-118.52390299999996,76.503876000000048],[-118.54611199999999,76.5],[-118.57084699999996,76.499145999999996],[-118.59694699999989,76.5],[-118.62361099999993,76.501938000000109],[-118.65167200000002,76.505553999999961],[-118.67804699999994,76.50999500000006],[-118.70916699999998,76.519989000000066],[-118.71333299999998,76.525818000000129],[-118.71362299999998,76.531662000000097],[-118.72222899999991,76.537201000000096],[-118.73473399999995,76.542480000000069],[-118.76139799999999,76.546936000000017],[-118.81471299999998,76.553040000000067],[-118.84166700000003,76.554977000000065],[-118.94415299999997,76.518051000000128],[-118.96806300000003,76.505264000000125],[-118.97582999999992,76.498871000000008],[-118.97609699999998,76.496368000000018],[-118.97250399999996,76.491652999999985],[-118.96777299999997,76.488312000000121],[-118.95527600000003,76.483047000000056],[-118.93110699999994,76.479155999999989],[-118.82195300000001,76.471374999999966],[-118.68195300000002,76.445251000000098],[-118.64862099999999,76.428863999999919],[-118.612503,76.400269000000094],[-118.59416199999993,76.383881000000031],[-118.56610099999995,76.343048000000124],[-118.567497,76.336655000000007],[-118.58168000000001,76.324706999999933],[-118.62554899999998,76.294433999999967],[-118.63751200000002,76.288040000000137],[-118.65556299999997,76.28414900000007],[-118.67916899999994,76.282211000000132],[-118.70556599999992,76.281661999999983],[-118.78083799999996,76.282486000000119],[-118.82833900000003,76.281937000000028],[-118.87666299999989,76.27748100000008],[-118.89584400000001,76.272217000000126],[-118.91139199999992,76.265548999999965],[-118.91915899999998,76.259430000000123],[-118.92443799999995,76.252776999999924],[-118.942207,76.210541000000148],[-118.93776699999995,76.204711999999915],[-118.92331699999994,76.194138000000066],[-118.91278099999994,76.188034000000016],[-118.90471600000001,76.169144000000074],[-118.95527600000003,76.132477000000108],[-118.96501199999994,76.126648000000102],[-119.07584399999996,76.083328000000108],[-119.10109699999998,76.084152000000074],[-119.12470999999999,76.088042999999971],[-119.22972099999993,76.107208000000071],[-119.24526999999995,76.111374000000012],[-119.26000999999997,76.117203000000018],[-119.28250099999997,76.127472000000068],[-119.29943800000001,76.138596000000121],[-119.30832699999996,76.149994000000106],[-119.31054699999999,76.155258000000117],[-119.30583200000001,76.167755000000113],[-119.30082699999997,76.174423000000047],[-119.29499799999996,76.180267000000072],[-119.29527300000001,76.186096000000077],[-119.30166600000001,76.191360000000088],[-119.36916399999996,76.229706000000078],[-119.54915599999998,76.324158000000011],[-119.5864029999999,76.318603999999993],[-119.65499899999992,76.303040000000067],[-119.67527799999993,76.264160000000118],[-119.67500299999995,76.245818999999926],[-119.64555399999995,76.230545000000063],[-119.59445199999999,76.203049000000021],[-119.58583099999998,76.197479000000101],[-119.57277699999992,76.186371000000122],[-119.56806899999987,76.180542000000116],[-119.56582600000002,76.175262000000032],[-119.56696299999999,76.168869000000086],[-119.57277699999992,76.16304000000008],[-119.64334099999996,76.112487999999985],[-119.74527,76.116652999999985],[-119.76999699999993,76.116379000000052],[-119.79305999999991,76.114426000000094],[-119.80499299999997,76.108871000000022],[-119.79723399999995,76.104155999999989],[-119.7727809999999,76.099425999999937],[-119.74416400000001,76.097487999999998],[-119.64723200000003,76.081664999999987],[-119.62666300000001,76.076660000000118],[-119.50389100000001,76.040817000000061],[-119.49137899999999,76.035538000000088],[-119.47833299999996,76.024155000000121],[-119.47389199999998,76.018599999999992],[-119.47222899999997,76.000824000000023],[-119.47609699999998,75.982483000000059],[-119.48110999999989,75.970825000000048],[-119.48916599999995,75.965546000000018],[-119.50974299999996,75.960540999999978],[-119.53555299999994,75.962494000000106],[-119.54638699999998,75.968323000000112],[-119.56111099999998,75.97886699999998],[-119.57195299999995,75.984985000000108],[-119.58583099999998,75.989699999999971],[-119.612503,75.992477000000065],[-119.63694800000002,75.992203000000131],[-119.64890300000002,75.986649000000114],[-119.699997,75.94859300000013],[-119.70333900000003,75.942749000000106],[-119.6875,75.938309000000118],[-119.612503,75.910263000000043],[-119.81082199999997,75.86943100000002],[-119.870003,75.857483000000002],[-119.93554699999993,75.848328000000095],[-119.98000300000001,75.843323000000055],[-120.02583300000003,75.839980999999966],[-120.04915599999987,75.838882000000126],[-120.07640100000003,75.867203000000075],[-120.08500700000002,75.872757000000036],[-120.11416600000001,75.888321000000133],[-120.12805199999997,75.893051000000014],[-120.14916999999997,75.896378000000141],[-120.16639700000002,75.892487000000074],[-120.18028299999997,75.879974000000004],[-120.18331899999993,75.873871000000065],[-120.19722000000002,75.861374000000069],[-120.21501199999994,75.848602000000028],[-120.22582999999992,75.842209000000082],[-120.26972999999992,75.821930000000123],[-120.28888699999987,75.816085999999927],[-120.30915800000002,75.811096000000077],[-120.33222999999998,75.807480000000055],[-120.35555999999997,75.806366000000025],[-120.37805200000003,75.80664100000007],[-120.40387699999991,75.808318999999983],[-120.43028300000003,75.811096000000077],[-120.45445299999994,75.81581100000011],[-120.46694899999994,75.821105999999986],[-120.47582999999997,75.826660000000004],[-120.48528299999998,75.837769000000094],[-120.4886019999999,75.844147000000021],[-120.48972300000003,75.849991000000045],[-120.48832699999997,75.855545000000063],[-120.46305799999999,75.916382000000056],[-120.46000700000002,75.922484999999995],[-120.44860799999987,75.935532000000023],[-120.406113,75.954987000000017],[-120.40583800000002,75.97137500000008],[-120.43499799999989,76.003052000000025],[-120.45889299999999,76.011658000000125],[-120.46749899999998,76.012207000000046],[-120.53333299999991,76.003052000000025],[-120.56054699999999,75.991653000000099],[-120.56331599999993,75.985535000000141],[-120.57417299999997,75.979156000000103],[-120.59388699999994,75.978043000000014],[-120.61361699999998,75.981934000000081],[-120.64306599999986,75.992477000000065],[-120.696663,76.013884999999959],[-120.70722999999998,76.018875000000037],[-120.71611000000001,76.024429000000055],[-120.729446,76.039428999999984],[-120.75167799999997,76.099425999999937],[-120.75110599999999,76.105819999999994],[-120.74833699999999,76.111922999999933],[-120.74305700000002,76.117751999999939],[-120.73222399999997,76.124145999999996],[-120.71193699999998,76.129149999999981],[-120.72749299999992,76.158600000000035],[-120.85722399999986,76.196639999999945],[-120.88362100000001,76.198318000000086],[-120.90249599999999,76.196365000000128],[-120.95639,76.177765000000022],[-120.96806300000003,76.172211000000004],[-121.00890400000003,76.144149999999911],[-121.01251199999996,76.139160000000061],[-121.016953,76.121094000000085],[-121.02528399999989,76.073318000000029],[-121.02278100000001,76.059143000000063],[-120.99328600000001,76.026817000000108],[-120.97961399999997,76.019653000000119],[-120.970123,76.013489000000106],[-120.93195300000002,75.959990999999945],[-120.93306000000001,75.956940000000145],[-120.94583099999994,75.94859300000013],[-120.98082699999998,75.941649999999981],[-120.99944299999999,75.939697000000024],[-121.01445000000001,75.942749000000106],[-121.01722699999999,75.94802900000002],[-121.01112399999988,75.970825000000048],[-121.00055699999996,75.977203000000145],[-120.98610699999995,75.984145999999953],[-121.00761399999999,75.988982999999962],[-121.01527399999998,75.992149000000097],[-121.030441,75.992477000000065],[-121.09277299999997,75.993317000000104],[-121.11389199999996,75.991653000000099],[-121.25945299999995,75.964432000000045],[-121.26583900000003,75.958328000000051],[-121.271118,75.946091000000081],[-121.27887699999985,75.927765000000079],[-121.34861799999993,75.928040000000067],[-121.423317,75.933868000000018],[-121.43639400000001,75.939148000000046],[-121.422775,75.946465000000103],[-121.41665599999988,75.953049000000078],[-121.42415599999993,75.956649999999911],[-121.479446,75.976379000000009],[-121.58306899999997,76.003601000000117],[-121.59500100000002,76.005554000000075],[-121.83473200000003,76.034424000000115],[-122.13417099999998,76.036377000000073],[-122.14499699999999,76.030823000000055],[-122.14472999999992,75.996932999999956],[-122.16944899999999,75.978043000000014],[-122.33583099999998,75.942474000000118],[-122.37666300000001,75.933868000000018],[-122.41639700000002,75.928589000000045],[-122.442207,75.927475000000072],[-122.48916599999995,75.927200000000028],[-122.51666299999994,75.928314],[-122.56360599999999,75.931931000000134],[-122.67610200000001,75.951660000000061],[-122.69638099999997,75.955551000000128],[-122.72250400000001,75.96887200000009],[-122.728882,75.973037999999974],[-122.66915899999998,75.976929000000041],[-122.64943699999998,75.982208000000014],[-122.59111000000001,76.001663000000008],[-122.57640100000003,76.007492000000013],[-122.5625,76.014434999999992],[-122.47556299999997,76.104431000000034],[-122.47112300000003,76.110260000000039],[-122.47193899999996,76.114990000000034],[-122.48554999999993,76.1202550000001],[-122.49833699999994,76.120529000000033],[-122.60134900000003,76.115097000000048],[-122.62222300000002,76.111374000000012],[-122.67832900000002,76.111374000000012],[-122.69999699999994,76.112198000000149],[-122.70445299999994,76.114426000000094],[-122.69554099999993,76.117751999999939],[-122.58721899999995,76.134155000000021],[-122.50195299999996,76.136383000000137],[-122.48999000000003,76.141098],[-122.57417299999992,76.166091999999992],[-122.595551,76.170822000000044],[-122.62027,76.174423000000047],[-122.64666699999998,76.175812000000064],[-122.67027300000001,76.174423000000047],[-122.69360399999999,76.17053199999998],[-122.73361199999994,76.162491000000102],[-122.84277299999997,76.131088000000091],[-122.885559,76.104431000000034],[-122.90194699999995,76.098038000000031],[-122.92138699999987,76.092758000000003],[-123.01139799999993,76.083328000000108],[-123.037781,76.084717000000069],[-122.97917199999995,76.125809000000118],[-122.84861799999999,76.208878000000027],[-122.72112299999998,76.231369000000029],[-122.636124,76.264709000000096],[-122.63166799999999,76.270538000000101],[-122.63751200000002,76.288040000000137],[-122.64527899999996,76.299712999999997],[-122.63249199999996,76.329987000000017],[-122.62638900000002,76.336380000000133],[-122.61776700000001,76.342208999999968],[-122.59889199999998,76.348328000000038],[-122.57861300000002,76.353591999999992],[-122.39890300000002,76.396941999999967],[-122.30943300000001,76.408875000000023],[-122.01471699999996,76.432479999999998],[-121.826683,76.422760000000096],[-121.78195199999999,76.420258000000047],[-121.73805199999998,76.421097000000145],[-121.54998799999993,76.434708000000114],[-121.53307299999994,76.437195000000031],[-121.51445000000001,76.444138000000009],[-121.421944,76.493590999999924],[-121.31220999999994,76.572495000000004],[-121.30695300000002,76.578323000000125],[-121.31388899999996,76.589705999999978],[-121.30915800000002,76.593872000000033],[-121.21250899999995,76.649719000000005],[-121.118607,76.673309000000017],[-121.10109699999992,76.668320000000051],[-121.079453,76.668320000000051],[-121.05666399999996,76.671371000000022],[-120.923317,76.689972000000068],[-120.900284,76.693313999999987],[-120.88417099999998,76.698868000000004],[-120.86193800000001,76.711929000000112],[-120.84777799999989,76.724700999999925],[-120.83249699999993,76.731369000000086],[-120.81220999999994,76.737198000000092],[-120.76611299999996,76.743591000000094],[-120.66915899999998,76.751099000000067],[-120.64083899999997,76.748596000000134],[-120.62581599999999,76.746367999999961],[-120.60417200000001,76.746367999999961],[-120.58112299999999,76.7494200000001],[-120.40167200000002,76.797211000000004],[-120.38194299999992,76.804153000000042],[-120.36776700000001,76.810257000000092],[-120.36609599999997,76.813309000000004],[-120.36527999999993,76.836105000000032],[-120.09137699999997,77.003051999999968],[-120.06916799999999,77.008040999999935],[-120.03888699999999,77.013321000000019],[-120.02278100000001,77.015273999999977],[-119.99722300000002,77.01638800000012],[-119.97693600000002,77.013321000000019],[-119.96112099999993,77.009995000000004],[-119.94999699999994,77.012497000000053],[-119.92027299999995,77.023605000000032],[-119.83944700000001,77.05693100000002],[-119.83167999999995,77.06303400000013],[-119.83249699999999,77.069153000000142],[-119.83583099999987,77.075271999999984],[-119.83721899999995,77.079712000000029],[-119.83556399999998,77.085266000000047],[-119.825287,77.091095000000053],[-119.8125,77.096649000000014],[-119.77639799999992,77.106094000000098],[-119.60056299999991,77.145827999999995],[-119.43331899999998,77.173599000000081],[-119.41082799999998,77.178588999999931],[-119.389183,77.184417999999994],[-119.360817,77.203323000000069],[-119.354446,77.209152000000131],[-119.346947,77.221374999999966],[-119.34583999999995,77.227767999999969],[-119.33389299999993,77.239975000000072],[-119.31582599999996,77.258041000000105],[-119.29583700000001,77.276657000000114],[-119.26834099999996,77.28915400000011],[-119.25306699999999,77.295258000000103],[-119.22222899999991,77.306366000000082],[-119.20111099999991,77.313034000000073],[-119.15334299999995,77.325821000000076],[-119.11444099999994,77.327484000000027],[-119.08666999999997,77.326660000000061],[-119.00110599999988,77.321106000000043],[-118.94138299999992,77.319717000000082],[-118.91694599999994,77.32249500000006],[-118.89389,77.327484000000027],[-118.87000299999994,77.333878000000084],[-118.75723299999999,77.352478000000019],[-118.73249800000002,77.35554500000012],[-118.65110799999997,77.360535000000141],[-118.44972199999995,77.358871000000136],[-118.224716,77.356094000000041],[-118.19721999999996,77.354980000000069],[-118.16583300000002,77.355255000000056],[-118.14111299999996,77.35803199999998],[-118.12805200000003,77.364426000000037],[-118.12721299999998,77.369431000000077],[-118.125,77.372482000000105],[-118.10694899999993,77.378036000000122],[-118.08750899999995,77.379150000000095],[-117.91111799999993,77.386932000000058],[-117.86721799999992,77.388596000000064],[-117.85056299999991,77.384430000000123],[-117.781113,77.36303700000002],[-117.76806599999998,77.357758000000047],[-117.756958,77.351654000000053],[-117.75083899999998,77.346648999999957],[-117.73860200000001,77.341933999999924],[-117.72444200000001,77.338043000000084],[-117.61193800000001,77.327774000000034],[-117.45084400000002,77.312194999999917],[-117.27639799999997,77.28915400000011],[-117.02306399999998,77.290817000000004],[-117.01478600000002,77.296700000000044],[-117.01711999999992,77.300208999999938],[-117.02749599999993,77.310256999999979],[-117.06082199999997,77.326660000000061],[-117.10555999999997,77.339981000000023],[-117.11582900000002,77.34165999999999],[-117.11805699999996,77.338593000000117],[-117.1324919999999,77.333328000000051],[-117.15416699999997,77.332489000000066],[-117.16999800000002,77.335815000000082],[-117.18195300000002,77.34027100000003],[-117.18167099999999,77.346375000000023],[-117.17666600000001,77.352203000000145],[-117.15888999999987,77.358871000000136],[-117.14277600000003,77.361374000000126],[-117.11945300000002,77.359985000000108],[-117.06082199999997,77.353317000000118],[-117.00749999999994,77.343039999999974],[-116.94666299999994,77.329436999999984],[-116.87638900000002,77.318054000000132],[-116.848343,77.315810999999997],[-116.79583700000001,77.317490000000021],[-116.77887699999997,77.319153000000085],[-116.65167199999996,77.377761999999962],[-116.64835399999998,77.383330999999998],[-116.65167199999996,77.388046000000031],[-116.66278099999994,77.391662999999994],[-116.74137899999999,77.395263999999997],[-116.87082699999996,77.400818000000015],[-116.89917000000003,77.399428999999998],[-116.97582999999997,77.393326000000059],[-116.99471999999992,77.394440000000031],[-117.01112399999994,77.398880000000077],[-117.15306099999992,77.451660000000118],[-117.14998599999996,77.457214000000135],[-117.13890100000003,77.460541000000035],[-117.08306899999997,77.474425999999937],[-117.06667299999998,77.476929000000098],[-117.06139399999989,77.476089000000059],[-117.03833799999995,77.471001000000058],[-116.991669,77.466660000000104],[-116.91972399999997,77.470535000000041],[-116.89444700000001,77.473312000000135],[-116.78527799999995,77.499145999999996],[-116.75723299999993,77.511658000000011],[-116.76944699999996,77.516388000000006],[-116.85109699999998,77.516663000000051],[-116.87917299999987,77.517761000000121],[-116.9058379999999,77.520264000000111],[-116.926941,77.524704000000099],[-116.92054699999994,77.528594999999996],[-116.900284,77.532211000000018],[-116.875,77.534988000000112],[-116.83306900000002,77.533600000000035],[-116.75418100000002,77.534424000000001],[-116.64750699999996,77.537766000000147],[-116.58583099999998,77.540543000000014],[-116.53611799999993,77.544434000000081],[-116.48777799999999,77.550262000000032],[-116.35109699999998,77.539154000000053]],[[-85.285278000000005,77.587494000000049],[-85.259734999999978,77.586655000000121],[-85.235274999999945,77.586655000000121],[-85.107223999999974,77.581099999999992],[-85.011123999999938,77.57388300000008],[-84.995270000000005,77.569443000000092],[-84.822509999999966,77.505264000000125],[-84.813889000000017,77.497208000000057],[-84.824447999999961,77.491927999999973],[-84.843062999999916,77.487198000000149],[-84.934433000000013,77.470260999999937],[-84.960830999999985,77.466385000000059],[-85.027221999999995,77.459717000000069],[-85.095551,77.454437000000041],[-85.126937999999939,77.453048999999908],[-85.153609999999958,77.454437000000041],[-85.168335000000013,77.456939999999975],[-85.178604000000007,77.464157000000114],[-85.172500999999897,77.473601999999971],[-85.159164000000033,77.48414600000001],[-85.144729999999925,77.489426000000094],[-85.138610999999969,77.494980000000112],[-85.140839000000028,77.501663000000065],[-85.152785999999992,77.507767000000115],[-85.170273000000009,77.511658000000011],[-85.248885999999914,77.527481000000023],[-85.270843999999954,77.529984000000013],[-85.319732999999928,77.532211000000018],[-85.344161999999983,77.532211000000018],[-85.39916999999997,77.53387500000008],[-85.538329999999974,77.539978000000019],[-85.535552999999936,77.543869000000086],[-85.352218999999934,77.582764000000054],[-85.31138599999997,77.586655000000121],[-85.285278000000005,77.587494000000049]],[[-90.603058000000033,77.628311000000053],[-90.521118000000001,77.626083000000108],[-90.492492999999968,77.626083000000108],[-90.438598999999954,77.630538999999999],[-90.414443999999946,77.631087999999977],[-90.388061999999877,77.629425000000026],[-90.339172000000019,77.623871000000065],[-90.242492999999854,77.612488000000042],[-90.219161999999983,77.608871000000079],[-90.208892999999932,77.603042999999957],[-90.210007000000019,77.597488000000055],[-90.206664999999987,77.59165999999999],[-90.196654999999964,77.587204000000042],[-90.177779999999927,77.58248900000001],[-90.059722999999963,77.566375999999991],[-89.937209999999993,77.53276100000005],[-89.91722099999987,77.527205999999978],[-89.841109999999958,77.504166000000055],[-89.806655999999919,77.492477000000122],[-89.753615999999965,77.473038000000031],[-89.719161999999983,77.458328000000108],[-89.636123999999995,77.339157000000057],[-89.640288999999996,77.333328000000051],[-89.67471299999994,77.310256999999979],[-89.70777899999996,77.294144000000131],[-89.849730999999963,77.25],[-89.882767000000001,77.239975000000072],[-89.919998000000021,77.230270000000019],[-90,77.213814000000013],[-90.009170999999981,77.211928999999998],[-90.088897999999915,77.199707000000046],[-90.118057000000022,77.198593000000074],[-90.129165999999998,77.200546000000031],[-90.259170999999924,77.201096000000064],[-90.366942999999992,77.197754000000089],[-90.416655999999989,77.213042999999971],[-90.683318999999926,77.271927000000062],[-90.704726999999934,77.276382000000069],[-90.727218999999934,77.279984000000013],[-90.843063000000029,77.292754999999943],[-90.90972899999997,77.303040000000067],[-90.946655000000021,77.309418000000051],[-91.146666999999923,77.362198000000092],[-91.18249499999996,77.386932000000058],[-91.187209999999993,77.390273999999977],[-91.208892999999932,77.414993000000095],[-91.206954999999994,77.568604000000107],[-91.184433000000013,77.608597000000145],[-91.173614999999927,77.613036999999963],[-91.15834000000001,77.617203000000075],[-91.10943599999996,77.624985000000038],[-90.906386999999938,77.653046000000131],[-90.880828999999949,77.654434000000037],[-90.826400999999976,77.654434000000037],[-90.801666000000012,77.651657000000114],[-90.727492999999981,77.642212000000029],[-90.683608999999933,77.633331000000112],[-90.603058000000033,77.628311000000053]],[[-105.01027699999986,77.408034999999927],[-104.98665599999998,77.404434000000094],[-104.96193700000003,77.404434000000094],[-104.90805099999994,77.406937000000028],[-104.82584400000002,77.413605000000018],[-104.77166699999998,77.416656000000046],[-104.74109599999997,77.414428999999984],[-104.73277300000001,77.411377000000073],[-104.53832999999997,77.338318000000072],[-104.48889199999996,77.318603999999993],[-104.39555399999995,77.276382000000069],[-104.38834400000002,77.271378000000141],[-104.38137799999998,77.264435000000105],[-104.37998999999996,77.261931999999945],[-104.36554699999999,77.230270000000019],[-104.36749299999997,77.224425999999994],[-104.40499899999992,77.172485000000108],[-104.416946,77.161926000000051],[-104.43804899999998,77.150543000000027],[-104.47250400000001,77.13749700000011],[-104.5,77.133040999999992],[-104.52250699999996,77.130539000000113],[-104.74027999999993,77.108597000000088],[-104.79028299999999,77.108871000000022],[-104.83249699999993,77.113312000000121],[-104.85333300000002,77.117477000000122],[-104.86916400000001,77.123596000000134],[-104.883331,77.135543999999982],[-104.89250199999992,77.141936999999928],[-104.906387,77.147491000000116],[-104.92250099999995,77.152481000000023],[-104.945267,77.157211000000018],[-104.993607,77.164992999999981],[-105.04444899999993,77.171371000000136],[-105.09583999999995,77.176085999999998],[-105.11971999999997,77.176650999999993],[-105.13751200000002,77.176085999999998],[-105.15167200000002,77.171371000000136],[-105.24694799999997,77.193863000000022],[-105.40888999999999,77.281661999999983],[-105.41722099999998,77.284714000000065],[-105.45527599999997,77.291930999999977],[-105.48111,77.294983000000116],[-105.50666799999993,77.299149],[-105.531677,77.30525200000011],[-105.55027799999999,77.311645999999996],[-105.57195300000001,77.323317999999915],[-105.67916899999994,77.447479000000044],[-105.691101,77.497208000000057],[-105.83444199999997,77.610260000000096],[-105.85833700000001,77.626923000000147],[-105.878601,77.639709000000096],[-105.88890100000003,77.645263999999997],[-105.93083200000001,77.663040000000137],[-105.94776899999994,77.668868999999972],[-105.98000299999995,77.679427999999973],[-106.01471700000002,77.688583000000051],[-106.08361799999989,77.71026599999999],[-106.09166699999997,77.71527100000003],[-106.09472700000003,77.724151999999947],[-106.08917199999996,77.72886699999998],[-106.07945299999989,77.732758000000047],[-106.04055800000003,77.744980000000055],[-106.01222200000001,77.750549000000035],[-105.94167299999987,77.759720000000016],[-105.91388699999999,77.762497000000053],[-105.70056199999999,77.753600999999946],[-105.64890299999996,77.748596000000077],[-105.55248999999998,77.729430999999977],[-105.50666799999993,77.719711000000075],[-105.47028399999999,77.709152000000017],[-105.38971699999996,77.683868000000018],[-105.17360699999995,77.612198000000035],[-105.15695199999999,77.606093999999985],[-105.03971899999999,77.552199999999971],[-105.02778599999994,77.546371000000136],[-104.968613,77.514435000000049],[-104.95916699999998,77.508041000000048],[-104.94888300000002,77.496094000000085],[-104.94499199999996,77.484984999999995],[-104.946663,77.479155999999989],[-104.95249899999999,77.474425999999937],[-104.96749899999998,77.468872000000147],[-105.01027699999986,77.458603000000096],[-105.01194800000002,77.45277400000009],[-105.01806599999986,77.411925999999994],[-105.01027699999986,77.408034999999927]],[[-95.405838000000017,77.763885000000016],[-95.408889999999928,77.75221300000004],[-95.406113000000005,77.746094000000028],[-95.389724999999942,77.739426000000037],[-95.363892000000021,77.737198000000092],[-95.343886999999995,77.738037000000077],[-95.118606999999997,77.74971000000005],[-95.087783999999942,77.75221300000004],[-95.059433000000013,77.756653000000085],[-95.029174999999952,77.767211999999915],[-95.010833999999988,77.777771000000143],[-94.981673999999998,77.780823000000055],[-94.951674999999966,77.782486000000006],[-94.752228000000002,77.788589000000115],[-94.728881999999942,77.788315000000011],[-94.623321999999973,77.783599999999979],[-94.572783999999899,77.780548000000067],[-94.542220999999927,77.773880000000077],[-94.521118000000001,77.767761000000064],[-94.477492999999924,77.764708999999982],[-94.448607999999979,77.765273999999977],[-94.356658999999866,77.767487000000131],[-94.252501999999936,77.772216999999955],[-94.089995999999928,77.765823000000125],[-94.030288999999982,77.760543999999982],[-93.951110999999969,77.735535000000141],[-93.935821999999973,77.732483000000059],[-93.931380999999988,77.732483000000059],[-93.826675000000023,77.739426000000037],[-93.820007000000032,77.744980000000055],[-93.817779999999971,77.75082400000008],[-93.806655999999919,77.756378000000041],[-93.786666999999966,77.761108000000092],[-93.68638599999997,77.773880000000077],[-93.65695199999999,77.776657],[-93.629439999999931,77.77609300000006],[-93.546111999999994,77.770827999999995],[-93.241669000000002,77.733871000000136],[-93.233886999999868,77.732483000000059],[-93.17471299999994,77.704163000000051],[-93.101944000000003,77.662490999999989],[-93.106658999999922,77.660263000000043],[-93.14834599999989,77.645538000000101],[-93.164169000000015,77.64027400000009],[-93.196380999999974,77.637206999999989],[-93.222504000000015,77.638596000000007],[-93.249161000000015,77.641663000000108],[-93.277221999999938,77.643599999999935],[-93.303054999999972,77.643599999999935],[-93.35943599999996,77.635818000000029],[-93.379439999999988,77.630814000000044],[-93.390288999999939,77.625533999999959],[-93.397232000000031,77.619979999999998],[-93.486388999999974,77.54553199999998],[-93.502501999999993,77.503052000000082],[-93.477782999999988,77.492477000000122],[-93.474715999999944,77.487487999999985],[-93.474166999999909,77.476379000000065],[-93.475280999999995,77.47137499999991],[-93.480834999999956,77.466660000000104],[-93.537780999999995,77.445816000000093],[-93.553054999999915,77.440811000000053],[-93.570556999999951,77.437759000000142],[-93.906661999999983,77.433319000000097],[-93.933884000000035,77.433593999999971],[-94.25167799999997,77.455261000000007],[-94.319457999999997,77.468597000000102],[-94.345001000000025,77.472487999999998],[-94.468886999999995,77.476929000000098],[-94.801101999999901,77.480270000000132],[-95.032226999999978,77.469986000000119],[-95.123610999999983,77.463882000000069],[-95.204453000000001,77.460814999999968],[-95.252791999999943,77.460814999999968],[-95.294998000000021,77.466385000000059],[-95.346389999999985,77.469986000000119],[-95.477492999999981,77.473877000000016],[-95.532776000000013,77.473601999999971],[-95.726105000000018,77.470260999999937],[-95.823623999999938,77.466385000000059],[-95.838897999999858,77.462493999999992],[-95.864166000000012,77.462203999999986],[-95.889450000000011,77.464432000000102],[-96,77.479980000000126],[-96.061385999999857,77.491652999999985],[-96.083327999999995,77.497756999999979],[-96.099730999999963,77.504439999999988],[-96.259170999999981,77.571929999999952],[-96.318343999999968,77.598877000000073],[-96.328888000000006,77.604980000000012],[-96.255568999999923,77.689697000000024],[-96.241104000000007,77.694977000000108],[-96.194442999999978,77.704987000000017],[-96.077224999999942,77.726929000000041],[-95.934433000000013,77.753052000000025],[-95.918059999999969,77.755554000000075],[-95.897231999999974,77.757492000000013],[-95.869445999999925,77.757217000000026],[-95.848052999999993,77.755264000000068],[-95.742767000000015,77.762207000000046],[-95.630553999999961,77.771102999999982],[-95.583892999999932,77.779709000000082],[-95.570007000000032,77.784149000000127],[-95.566101000000003,77.78776600000009],[-95.565552000000025,77.792755000000056],[-95.552779999999927,77.796097000000145],[-95.528884999999946,77.801086000000112],[-95.49610899999999,77.805542000000059],[-95.465285999999935,77.80802900000009],[-95.427779999999984,77.803314000000057],[-95.418335000000013,77.798874000000069],[-95.410827999999981,77.792480000000012],[-95.40695199999999,77.787201000000039],[-95.404449,77.776381999999955],[-95.405838000000017,77.763885000000016]],[[-77.851944000000003,77.774429000000055],[-77.875274999999874,77.774429000000055],[-77.888061999999877,77.781372000000033],[-77.930556999999965,77.808868000000075],[-77.955001999999922,77.830276000000026],[-77.952224999999999,77.833054000000004],[-77.936385999999914,77.839157000000114],[-77.906386999999995,77.844437000000028],[-77.880279999999914,77.848038000000031],[-77.821121000000005,77.854431000000034],[-77.717772999999966,77.863037000000134],[-77.676102000000014,77.864700000000028],[-77.622771999999941,77.862762000000089],[-77.596389999999985,77.860808999999961],[-77.582779000000016,77.858032000000094],[-77.575286999999946,77.854980000000126],[-77.568619000000012,77.849716000000001],[-77.575561999999991,77.823608000000036],[-77.579178000000013,77.81860400000005],[-77.592772999999909,77.813309000000004],[-77.628052000000025,77.804153000000042],[-77.658889999999985,77.79693600000013],[-77.680557000000022,77.792755000000056],[-77.851944000000003,77.774429000000055]],[[-101.71140300000002,77.901657000000057],[-101.671944,77.893326000000002],[-101.62082699999996,77.884430000000066],[-101.52443700000003,77.869980000000112],[-101.450287,77.861098999999967],[-101.36833200000001,77.853867000000093],[-101.26555599999995,77.842758000000003],[-101.23777799999993,77.838882000000126],[-101.19138299999997,77.830826000000059],[-101.16139199999992,77.822769000000051],[-100.96056399999992,77.759155000000135],[-100.92639200000002,77.743317000000104],[-100.92555199999998,77.737198000000092],[-100.92887899999999,77.731369000000086],[-100.94055200000003,77.726929000000041],[-100.96472199999994,77.72554000000008],[-101.096947,77.719436999999914],[-101.21694899999994,77.721924000000001],[-101.26777599999997,77.725815000000068],[-101.31806899999992,77.726089000000002],[-101.50695799999994,77.724991000000102],[-101.53527799999995,77.723602000000142],[-101.56471299999993,77.720535000000041],[-101.58583099999993,77.71527100000003],[-101.593613,77.709427000000005],[-101.60582699999992,77.703873000000044],[-101.62249799999995,77.69859300000013],[-101.65222199999994,77.694427000000076],[-101.79888900000003,77.676376000000062],[-101.82640099999992,77.676086000000055],[-102.01695299999994,77.679703000000018],[-102.06777999999997,77.682205000000067],[-102.1416779999999,77.690810999999997],[-102.43639399999995,77.729705999999965],[-102.44444299999998,77.731934000000081],[-102.51083399999999,77.786102000000085],[-102.52971600000001,77.834152000000074],[-102.51806599999992,77.844146999999964],[-102.49889400000001,77.855545000000006],[-102.45889299999999,77.871094000000085],[-102.44249000000002,77.876648000000102],[-102.41665599999999,77.881927000000076],[-102.38778699999995,77.884155000000021],[-102.13999899999999,77.896378000000084],[-102.08389299999999,77.897217000000069],[-102.04915599999998,77.896942000000024],[-101.91583299999996,77.893875000000094],[-101.83194699999996,77.893875000000094],[-101.779449,77.896378000000084],[-101.74973299999999,77.899719000000118],[-101.71140300000002,77.901657000000057]],[[-114.07305899999994,77.981659000000036],[-113.9813769999999,77.934982000000105],[-113.97501399999993,77.931091000000038],[-113.97222899999997,77.925262000000032],[-113.97222899999997,77.919983000000059],[-113.9583439999999,77.914993000000038],[-113.92388900000003,77.910812000000135],[-113.89499699999993,77.908325000000048],[-113.84028599999999,77.906097000000102],[-113.72666899999996,77.896103000000039],[-113.70639,77.891663000000051],[-113.58556399999998,77.825820999999962],[-113.57861300000002,77.819991999999957],[-113.57611099999997,77.814147999999989],[-113.58750899999995,77.80802900000009],[-113.61916399999996,77.795821999999987],[-113.65972899999997,77.783324999999991],[-113.78832999999992,77.745255000000043],[-113.90833999999995,77.726379000000009],[-113.93472300000002,77.72387700000013],[-114.11444099999989,77.706649999999911],[-114.19304699999998,77.69802900000002],[-114.22305299999999,77.698868000000004],[-114.27722199999999,77.702209000000039],[-114.33112299999999,77.709717000000012],[-114.415009,77.731369000000086],[-114.514183,77.765273999999977],[-114.66251399999999,77.803863999999919],[-114.70916699999998,77.813599000000011],[-114.73029300000002,77.818877999999984],[-114.84834299999994,77.854706000000022],[-115.07721699999996,77.938582999999994],[-115.11138900000003,77.953872999999987],[-115.11501299999992,77.956375000000037],[-115.11609599999991,77.958327999999995],[-115.10833700000001,77.961380000000077],[-115.09084300000001,77.963608000000079],[-115.06054699999993,77.963882000000012],[-115.03388999999993,77.962204000000042],[-114.93028299999997,77.960541000000148],[-114.81973299999993,77.973037999999917],[-114.79778299999992,77.975540000000024],[-114.77749599999993,77.981659000000036],[-114.74027999999998,78.000000000000057],[-114.60582699999998,78.03054800000001],[-114.40083299999998,78.067490000000021],[-114.35500300000001,78.070541000000048],[-114.32694999999995,78.0711060000001],[-114.30332899999996,78.070541000000048],[-114.28694200000001,78.066086000000041],[-114.07305899999994,77.981659000000036]],[[-109.58805799999999,78.064697000000024],[-109.58056599999998,78.058319000000097],[-109.58112299999988,78.041367000000093],[-109.58528100000001,78.035538000000088],[-109.66972399999997,77.971649000000127],[-109.68305999999995,77.965820000000122],[-109.70556599999986,77.959991000000116],[-109.76027699999997,77.951096000000064],[-109.81527699999992,77.942749000000106],[-109.84249899999998,77.938873000000001],[-109.89750699999996,77.932755000000043],[-110.00723299999987,77.921371000000136],[-110.14499699999999,77.911926000000108],[-110.162781,77.906936999999971],[-110.16665599999999,77.901093000000117],[-110.19611399999991,77.896652000000017],[-110.22112299999998,77.893875000000094],[-110.24889399999995,77.893875000000094],[-110.48999000000003,77.883881000000088],[-110.62666300000001,77.873032000000023],[-110.65416700000003,77.871918000000051],[-110.79250299999995,77.870819000000097],[-110.846947,77.866379000000052],[-110.87389400000001,77.862198000000149],[-110.89584400000001,77.856093999999928],[-110.90139799999992,77.849716000000001],[-110.90471600000001,77.843872000000147],[-110.90360999999996,77.838042999999971],[-110.90028399999994,77.832763999999997],[-110.89444699999996,77.826934999999992],[-110.88639799999987,77.820831000000112],[-110.74388099999993,77.773605000000089],[-110.71556099999992,77.768875000000037],[-110.65888999999999,77.759720000000016],[-110.63110399999994,77.758040999999992],[-110.60138699999999,77.758881000000031],[-110.51972999999992,77.763321000000019],[-110.41583299999996,77.770827999999995],[-110.39306599999986,77.773041000000148],[-110.368607,77.776381999999955],[-110.28916899999996,77.782486000000006],[-110.16111799999999,77.784149000000127],[-110.13305700000001,77.780548000000067],[-110.10500299999995,77.774994000000049],[-110.09028599999994,77.769150000000081],[-110.08029199999993,77.763321000000019],[-110.04055800000003,77.637496999999996],[-110.08029199999993,77.563599000000067],[-110.08416699999992,77.557755000000043],[-110.09221599999995,77.551926000000037],[-110.11749299999997,77.539978000000019],[-110.20333899999997,77.511383000000137],[-110.22501399999987,77.505264000000125],[-110.27055399999995,77.49581900000004],[-110.29695100000004,77.491652999999985],[-110.502228,77.460266000000047],[-110.81500199999999,77.424988000000042],[-110.82749899999999,77.419144000000017],[-110.85082999999992,77.414428999999984],[-110.87721299999998,77.411377000000073],[-110.95639,77.407486000000006],[-111.00974299999996,77.406096999999988],[-111.06527699999998,77.406096999999988],[-111.11721799999992,77.408874999999966],[-111.172234,77.416092000000106],[-111.29998799999993,77.419144000000017],[-111.46305799999999,77.393051000000071],[-111.61833200000001,77.373871000000122],[-111.82501199999996,77.34887700000013],[-112.031113,77.324707000000103],[-112.05722000000003,77.323317999999915],[-112.083618,77.323043999999982],[-112.13694800000002,77.323317999999915],[-112.16639700000002,77.325271999999984],[-112.41306299999997,77.356094000000041],[-112.43888900000002,77.361099000000081],[-112.48222399999992,77.371094000000028],[-112.5,77.378235000000018],[-112.50778200000002,77.381363000000022],[-112.52139299999999,77.389434999999992],[-112.52333099999993,77.395263999999997],[-112.52694700000001,77.399719000000061],[-112.545547,77.415817000000061],[-112.587784,77.449141999999938],[-112.60109699999992,77.455261000000007],[-112.626938,77.459427000000062],[-112.65387699999997,77.458878000000141],[-112.68222000000003,77.456939999999975],[-112.69721999999996,77.455261000000007],[-112.73889200000002,77.445816000000093],[-112.764183,77.441650000000038],[-112.79083300000002,77.441086000000098],[-112.80249000000003,77.442474000000004],[-112.92887899999994,77.464157000000114],[-112.95777899999996,77.469436999999971],[-112.96389799999992,77.474152000000004],[-112.96806299999992,77.485809000000131],[-112.96806299999992,77.492203000000018],[-112.97028399999999,77.498032000000023],[-112.978882,77.503326000000015],[-112.99445300000002,77.508881000000088],[-113.01167299999997,77.512771999999984],[-113.03751399999999,77.515823000000012],[-113.06500199999999,77.517211999999972],[-113.14611799999994,77.517761000000121],[-113.17388900000003,77.519440000000145],[-113.198036,77.523880000000133],[-113.20472699999999,77.529433999999981],[-113.23805199999998,77.581375000000037],[-113.24027999999993,77.587204000000042],[-113.16251399999993,77.609146000000123],[-113.1875,77.739426000000037],[-113.20556599999998,77.744431000000077],[-113.26251200000002,77.755554000000075],[-113.283073,77.761108000000092],[-113.29444899999999,77.766662999999994],[-113.30387899999994,77.773041000000148],[-113.31054699999993,77.778595000000109],[-113.31500199999994,77.783875000000023],[-113.31973299999999,77.795531999999923],[-113.31973299999999,77.807204999999954],[-113.31749699999995,77.813033999999959],[-113.30638099999993,77.837203999999986],[-113.23473399999989,77.901657000000057],[-113.23082699999992,77.903594999999996],[-113.20973200000003,77.90887500000008],[-113.12721299999998,77.912201000000096],[-113.09973100000002,77.912766000000147],[-113.07167099999998,77.912201000000096],[-113.04666099999997,77.907761000000107],[-113.03971899999999,77.901932000000102],[-112.94360399999999,77.911926000000108],[-112.80499299999985,77.933043999999995],[-112.78333299999997,77.937195000000088],[-112.76666299999999,77.942474000000061],[-112.74194299999988,77.951660000000004],[-112.57444799999996,77.979431000000091],[-112.46694899999994,77.992477000000008],[-112.29499800000002,78.010544000000095],[-112.12526699999995,78.00610400000005],[-111.97944599999994,78.018599999999992],[-111.787216,78.033599999999922],[-111.77610800000002,78.028046000000131],[-111.756393,78.024428999999998],[-111.73055999999997,78.024155000000064],[-111.70556599999998,78.026931999999988],[-111.63221699999991,78.040817000000061],[-111.34583999999995,78.076935000000105],[-111.31833599999999,78.08027600000014],[-111.28832999999997,78.081940000000145],[-111.09333800000002,78.092484000000013],[-111.048607,78.093597000000102],[-111.02749599999999,78.093322999999998],[-110.99861099999993,78.090546000000074],[-110.99749799999995,78.084717000000069],[-111.00110599999994,78.079987000000017],[-110.995003,78.074158000000011],[-110.90334300000001,78.062194999999974],[-110.861107,78.061645999999996],[-110.83306899999997,78.06303400000013],[-110.80555700000002,78.065262000000075],[-110.78778099999994,78.0711060000001],[-110.77500899999995,78.076935000000105],[-110.77139299999999,78.082764000000111],[-110.76334399999996,78.088882000000069],[-110.74553700000001,78.094711000000075],[-110.72721899999988,78.097762999999986],[-110.67051700000002,78.101089000000002],[-110.54998799999998,78.106094000000098],[-110.46584299999995,78.108597000000032],[-110.23777799999999,78.110809000000131],[-110.10082999999992,78.108597000000032],[-109.95916699999987,78.104705999999965],[-109.78916899999996,78.099716000000114],[-109.67777999999998,78.091933999999981],[-109.65387699999985,78.088318000000129],[-109.60527000000002,78.0711060000001],[-109.58805799999999,78.064697000000024]],[[-101.65139799999997,78.144714000000022],[-101.67527799999999,78.144440000000088],[-101.859444,78.15525800000006],[-101.87917299999992,78.158324999999991],[-101.88194299999998,78.162201000000039],[-101.77610800000002,78.216385000000116],[-101.75334199999992,78.227203000000088],[-101.73137700000001,78.232483000000116],[-101.70722999999987,78.23275799999999],[-101.68472299999996,78.230545000000006],[-101.68167099999994,78.227478000000076],[-101.67250100000001,78.226089000000115],[-101.63362100000001,78.210815000000025],[-101.62277199999988,78.204712000000086],[-101.61582899999996,78.199416999999983],[-101.60360700000001,78.187485000000038],[-101.59999099999993,78.181090999999981],[-101.59861799999993,78.175261999999975],[-101.59973100000002,78.164429000000041],[-101.60527000000002,78.159149000000127],[-101.61305199999998,78.153594999999939],[-101.62581599999993,78.148041000000148],[-101.65139799999997,78.144714000000022]],[[-103.05695300000002,78.119705000000067],[-103.11444099999994,78.11775200000011],[-103.19444299999992,78.11914100000007],[-103.212784,78.120529000000033],[-103.23029300000002,78.123871000000122],[-103.25862099999995,78.134995000000004],[-103.27027900000002,78.141097999999943],[-103.27722199999999,78.146941999999967],[-103.28222700000003,78.15776100000005],[-103.27971600000001,78.163605000000075],[-103.274719,78.169983000000002],[-103.26750199999998,78.17553700000002],[-103.23916600000001,78.192200000000071],[-103.22721899999993,78.197754000000089],[-103.17027300000001,78.219985999999949],[-103.12470999999999,78.236649000000057],[-103.06276700000001,78.258041000000048],[-103.04138199999994,78.263610999999969],[-102.98693800000001,78.27276599999999],[-102.93415800000002,78.27276599999999],[-102.89750700000002,78.269149999999968],[-102.82556199999993,78.258881000000088],[-102.8125,78.255829000000006],[-102.79860699999995,78.250274999999988],[-102.78916899999996,78.24443100000002],[-102.78222700000003,78.238586000000055],[-102.78028899999993,78.23275799999999],[-102.77639799999986,78.215546000000131],[-102.77639799999986,78.210266000000047],[-102.781387,78.204987000000074],[-102.79332699999998,78.199416999999983],[-102.85527000000002,78.188872999999944],[-102.89806399999992,78.17804000000001],[-102.93195300000002,78.166931000000091],[-102.97721899999999,78.150269000000094],[-103.01777599999997,78.133606000000043],[-103.04167199999995,78.122208000000001],[-103.05695300000002,78.119705000000067]],[[-94.366652999999985,78.159149000000127],[-94.378051999999968,78.15776100000005],[-94.404448999999943,78.159988000000112],[-94.506118999999956,78.172760000000096],[-94.520003999999858,78.177475000000129],[-94.67111199999988,78.240814000000057],[-94.683060000000012,78.247208000000057],[-94.694152999999915,78.2586060000001],[-94.692215000000033,78.264709000000039],[-94.681106999999884,78.274155000000007],[-94.660827999999924,78.279160000000047],[-94.635558999999944,78.28387500000008],[-94.602218999999991,78.287200999999925],[-94.572234999999921,78.287766000000147],[-94.546386999999982,78.284424000000058],[-94.515014999999892,78.278046000000074],[-94.481948999999929,78.268326000000002],[-94.36111499999987,78.22164900000007],[-94.344726999999978,78.214706000000092],[-94.316665999999998,78.197479000000044],[-94.309433000000013,78.191086000000098],[-94.306945999999925,78.184982000000048],[-94.309157999999968,78.179153000000042],[-94.366652999999985,78.159149000000127]],[[-88.287215999999944,78.24331699999999],[-88.360001000000011,78.237761999999918],[-88.381942999999978,78.242476999999951],[-88.393616000000009,78.248871000000008],[-88.404723999999987,78.25999500000006],[-88.407500999999911,78.264435000000105],[-88.411117999999931,78.273879999999963],[-88.40972899999997,78.292205999999965],[-88.404449,78.298035000000027],[-88.235274999999888,78.42692599999998],[-88.113051999999982,78.45526099999995],[-88.09445199999999,78.456940000000145],[-88.070281999999963,78.454712000000029],[-88.061385999999914,78.452484000000084],[-88.052779999999927,78.445526000000086],[-88.049728000000016,78.444427000000076],[-88.043334999999956,78.436646000000053],[-88.044448999999929,78.42442299999999],[-88.044997999999964,78.421371000000079],[-88.046660999999972,78.418868999999972],[-88.057220000000029,78.407485999999949],[-88.166396999999961,78.308029000000033],[-88.187774999999988,78.291655999999932],[-88.245543999999995,78.252777000000094],[-88.255004999999983,78.247208000000057],[-88.287215999999944,78.24331699999999]],[[-109.64806399999992,78.588042999999971],[-109.569458,78.586380000000077],[-109.54998799999998,78.586655000000064],[-109.50055700000001,78.582763999999997],[-109.40527299999997,78.556931000000077],[-109.33416699999998,78.524155000000121],[-109.26055899999994,78.487198000000092],[-109.25556899999998,78.482483000000059],[-109.254997,78.478591999999992],[-109.26055899999994,78.455826000000002],[-109.31806899999992,78.35803199999998],[-109.32721700000002,78.352203000000145],[-109.40499899999992,78.306366000000082],[-109.42859599999997,78.303314],[-109.59583999999995,78.302765000000022],[-109.766953,78.294144000000131],[-109.82444799999996,78.293869000000086],[-109.85333300000002,78.29664600000001],[-109.882767,78.301376000000062],[-109.89306599999998,78.307205000000067],[-109.89835399999998,78.3119200000001],[-109.90862299999998,78.317764000000068],[-109.92610200000001,78.323043999999982],[-109.95527599999997,78.325821000000076],[-109.98388699999998,78.325546000000031],[-110.01251200000002,78.323608000000092],[-110.19638099999997,78.303864000000033],[-110.22444199999995,78.299987999999928],[-110.25250199999999,78.295822000000044],[-110.279449,78.284987999999998],[-110.29778299999992,78.281097000000102],[-110.354446,78.276657000000057],[-110.4119419999999,78.277206000000035],[-110.484734,78.284424000000058],[-110.57167099999992,78.289703000000031],[-110.65833999999995,78.29304500000012],[-110.71556099999992,78.292480000000126],[-110.78778099999994,78.306931000000134],[-110.85665899999987,78.327208999999982],[-110.85888699999998,78.337769000000094],[-110.97501399999999,78.363876000000005],[-111.00250199999999,78.368042000000059],[-111.14138799999995,78.386108000000036],[-111.16999799999996,78.384155000000078],[-111.27778599999994,78.372207999999944],[-111.27139299999999,78.346100000000035],[-111.30610699999994,78.321106000000043],[-111.41000400000001,78.277206000000035],[-111.42304999999993,78.272217000000069],[-111.43888899999996,78.268600000000106],[-111.46250899999995,78.267487000000017],[-111.50527999999997,78.266936999999984],[-111.57556199999999,78.270538000000045],[-111.65249599999993,78.27276599999999],[-111.73832700000003,78.27276599999999],[-111.76666299999994,78.271378000000084],[-111.79527299999995,78.271103000000096],[-111.82000700000003,78.273604999999975],[-111.86472300000003,78.296370999999965],[-111.88221699999997,78.306931000000134],[-111.88861099999997,78.312485000000095],[-111.89277599999997,78.318054000000132],[-111.89167800000001,78.322220000000016],[-111.91861,78.332764000000054],[-111.939438,78.338318000000072],[-112.13305700000001,78.36554000000001],[-112.21501199999994,78.365265000000136],[-112.43776700000001,78.354431000000091],[-112.58306899999997,78.343597000000045],[-112.68443299999996,78.331375000000037],[-112.73916599999995,78.323043999999982],[-112.78721599999989,78.310531999999967],[-112.89083900000003,78.292480000000126],[-112.94499199999996,78.28387500000008],[-113.02694700000001,78.27276599999999],[-113.05499299999997,78.271378000000084],[-113.14222699999999,78.268326000000002],[-113.16860999999994,78.268600000000106],[-113.18831599999999,78.269989000000123],[-113.21777299999985,78.27777100000003],[-113.27333099999998,78.296370999999965],[-113.28195199999999,78.299713000000111],[-113.287781,78.302475000000015],[-113.33249699999993,78.328872999999987],[-113.33416699999998,78.332764000000054],[-113.21611000000001,78.385269000000108],[-113.1241609999999,78.420822000000101],[-113.11527999999987,78.423035000000084],[-113.03832999999997,78.436919999999986],[-112.71167000000003,78.484711000000061],[-112.60749800000002,78.4994200000001],[-112.36305199999998,78.533324999999991],[-112.31166100000002,78.539977999999962],[-112.23805199999998,78.547211000000004],[-112.12970699999994,78.551926000000037],[-111.98805199999987,78.552764999999965],[-111.90360999999996,78.548874000000069],[-111.87304699999999,78.544434000000081],[-111.85305800000003,78.542755000000056],[-111.80972299999991,78.545258000000047],[-111.75250199999994,78.55053700000002],[-111.67777999999993,78.563034000000016],[-111.641953,78.574158000000068],[-111.60082999999997,78.585266000000104],[-111.57224299999996,78.588593000000003],[-111.45556599999998,78.592758000000003],[-111.39195299999994,78.61192299999999],[-111.378601,78.617751999999996],[-111.37998999999991,78.622757000000036],[-111.36305199999998,78.64276099999995],[-111.16055299999999,78.691649999999925],[-110.95612299999993,78.718323000000112],[-110.79110700000001,78.735259999999926],[-110.6375119999999,78.748596000000077],[-110.46028100000001,78.757492000000013],[-110.43055700000002,78.758605999999986],[-110.41055299999999,78.757767000000001],[-110.39527900000002,78.756104000000107],[-110.38445299999989,78.751389000000074],[-110.271118,78.727768000000026],[-110.16416900000002,78.70915199999996],[-110.07778899999988,78.694977000000051],[-109.99722300000002,78.683868000000018],[-109.86165599999998,78.666930999999977],[-109.85582699999998,78.660262999999986],[-109.86000100000001,78.654433999999981],[-109.86165599999998,78.649155000000007],[-109.86110699999995,78.643326000000002],[-109.85526999999996,78.637496999999996],[-109.67054699999989,78.591370000000097],[-109.64806399999992,78.588042999999971]],[[-74.306945999999982,78.676651000000049],[-74.334166999999923,78.675262000000089],[-74.36721799999998,78.676086000000055],[-74.419448999999986,78.681655999999919],[-74.614166000000012,78.702774000000034],[-74.704726999999934,78.722762999999929],[-74.710007000000019,78.727477999999962],[-74.710281000000009,78.731094000000041],[-74.706664999999987,78.737488000000099],[-74.645003999999972,78.772491000000059],[-74.632216999999969,78.777206000000092],[-74.615829000000019,78.778595000000109],[-74.591109999999958,78.778870000000097],[-74.555557000000022,78.776093000000003],[-74.356948999999929,78.755829000000062],[-74.312042000000019,78.750000000000057],[-74.28195199999999,78.746094000000028],[-74.192489999999964,78.729705999999965],[-74.167770000000019,78.719986000000063],[-74.163619999999923,78.716094999999996],[-74.172774999999888,78.711380000000133],[-74.236388999999974,78.687194999999917],[-74.256667999999934,78.6827550000001],[-74.28443900000002,78.678864000000033],[-74.306945999999982,78.676651000000049]],[[-96.768065999999976,78.684143000000006],[-96.708892999999989,78.6827550000001],[-96.645003999999972,78.686096000000134],[-96.613051999999982,78.685532000000023],[-96.585007000000019,78.68331900000004],[-96.533614999999941,78.676926000000094],[-96.510559000000001,78.672484999999995],[-96.466399999999965,78.661926000000108],[-96.395279000000016,78.640549000000078],[-96.379165999999998,78.634430000000066],[-96.356109999999944,78.627762000000075],[-96.315826000000015,78.618042000000003],[-96.293883999999935,78.615265000000079],[-96.265015000000005,78.618866000000139],[-96.235549999999989,78.627762000000075],[-96.202498999999875,78.630264000000011],[-96.184432999999956,78.628586000000041],[-96.167495999999971,78.623306000000014],[-96.158889999999872,78.617203000000075],[-96.152495999999985,78.611374000000012],[-96.216400000000021,78.560531999999967],[-96.178054999999915,78.518875000000094],[-96.009445000000028,78.492477000000122],[-95.857773000000009,78.494980000000055],[-95.820006999999919,78.502213000000097],[-95.746658000000025,78.514998999999989],[-95.71665999999999,78.519714000000022],[-95.68472300000002,78.521103000000039],[-95.652221999999995,78.521378000000027],[-95.601944000000003,78.519714000000022],[-95.537215999999944,78.514708999999982],[-95.481673999999998,78.508881000000031],[-95.407775999999956,78.497208000000057],[-95.206389999999942,78.461655000000007],[-95.086944999999957,78.437759000000085],[-94.895003999999972,78.395828000000108],[-94.877776999999924,78.391373000000101],[-94.86082499999992,78.384720000000129],[-94.831679999999949,78.364699999999971],[-94.829177999999956,78.358871000000136],[-94.830840999999907,78.352767999999969],[-94.837508999999955,78.347214000000008],[-94.853332999999907,78.341934000000094],[-94.941939999999988,78.316375999999991],[-94.966948999999943,78.311371000000122],[-95.096389999999928,78.290268000000026],[-95.36361699999992,78.24136400000009],[-95.388061999999934,78.236374000000012],[-95.399170000000026,78.231093999999985],[-95.398620999999991,78.226928999999984],[-95.388900999999976,78.222488000000055],[-95.368880999999988,78.218596999999988],[-95.345839999999953,78.217758000000003],[-95.255279999999914,78.21804800000001],[-95.227492999999981,78.216660000000104],[-95.130829000000006,78.194138000000009],[-95.113051999999925,78.188583000000108],[-95.106948999999986,78.185257000000092],[-95.108611999999994,78.179428000000087],[-95.111937999999952,78.174149000000114],[-95.111937999999952,78.167480000000012],[-95.106109999999944,78.161926000000051],[-95.089721999999995,78.154984000000127],[-95.068068999999923,78.148041000000148],[-94.98332199999993,78.133040999999992],[-94.90695199999999,78.117203000000131],[-94.889998999999989,78.108870999999965],[-94.886947999999961,78.102768000000026],[-94.911666999999852,78.055251999999996],[-95.011397999999986,77.991363999999919],[-95.043883999999935,77.974991000000045],[-95.057494999999903,77.969147000000078],[-95.085280999999952,77.958878000000027],[-95.100554999999929,77.953597999999943],[-95.112503000000004,77.951385000000016],[-95.137511999999958,77.950546000000031],[-95.162506000000008,77.953597999999943],[-95.186385999999857,77.957764000000054],[-95.211670000000026,77.961105000000089],[-95.236938000000009,77.964157],[-95.265838999999971,77.966095000000109],[-95.321395999999993,77.96775800000006],[-95.379989999999964,77.966384999999946],[-95.400283999999999,77.962769000000094],[-95.41332999999986,77.959426999999948],[-95.425551999999925,77.948029000000133],[-95.449722000000008,77.9433140000001],[-95.549728000000016,77.934143000000006],[-95.758057000000008,77.911926000000108],[-95.830840999999964,77.898880000000133],[-95.938599000000011,77.885817999999972],[-96.189437999999939,77.866089000000045],[-96.285552999999936,77.859421000000054],[-96.317504999999926,77.858322000000101],[-96.345551,77.858597000000088],[-96.365279999999984,77.859984999999995],[-96.386123999999995,77.862762000000089],[-96.404174999999952,77.868591000000094],[-96.41194200000001,77.874984999999981],[-96.410827999999924,77.880813999999987],[-96.405272999999966,77.886382999999967],[-96.410552999999993,77.890549000000078],[-96.416945999999996,77.893875000000094],[-96.43582200000003,77.898604999999975],[-96.456664999999987,77.901657000000057],[-96.541107000000011,77.897217000000069],[-96.734436000000017,77.872757000000036],[-96.735000999999954,77.86692800000003],[-96.710555999999997,77.855545000000006],[-96.696380999999917,77.850815000000125],[-96.667220999999927,77.849152000000061],[-96.585007000000019,77.856368999999972],[-96.558884000000035,77.859421000000054],[-96.539718999999991,77.864426000000094],[-96.516113000000018,77.869430999999963],[-96.491668999999888,77.870254999999929],[-96.515563999999983,77.845535000000098],[-96.542770000000019,77.841934000000037],[-96.628325999999959,77.840546000000131],[-96.68720999999988,77.840546000000131],[-96.71166999999997,77.839706000000092],[-96.734160999999972,77.835541000000092],[-96.748610999999926,77.830276000000026],[-96.829452999999944,77.789153999999996],[-96.849990999999989,77.787201000000039],[-96.880553999999961,77.786926000000051],[-96.900283999999999,77.788315000000011],[-96.907776000000013,77.790542999999957],[-96.912216000000001,77.793045000000063],[-96.933884000000035,77.797485000000052],[-97.014174999999966,77.804153000000042],[-97.057495000000017,77.805542000000059],[-97.072509999999909,77.804153000000042],[-97.096953999999926,77.803314000000057],[-97.102218999999991,77.807479999999998],[-97.119720000000029,77.865265000000079],[-97.11999499999996,77.870254999999929],[-97.107497999999964,77.876373000000058],[-97.081389999999942,77.886658000000011],[-97.015563999999983,77.904160000000047],[-97.002228000000002,77.908600000000035],[-96.99221799999998,77.914154000000053],[-96.992492999999911,77.918869000000086],[-96.994995000000017,77.921097000000032],[-97.142775999999969,77.934982000000105],[-97.281676999999945,77.948318000000086],[-97.30999799999995,77.951096000000064],[-97.354445999999996,77.962204000000042],[-97.380279999999971,77.969986000000006],[-97.431670999999994,77.986923000000047],[-97.454726999999934,77.992752000000053],[-97.503066999999874,78.002486999999917],[-97.572234999999978,78.012497000000053],[-97.602782999999931,78.015548999999965],[-97.673614999999984,78.021378000000141],[-97.75556899999998,78.025542999999971],[-97.766953000000001,78.028870000000097],[-97.77555799999999,78.034988000000055],[-97.666945999999996,78.088043000000084],[-97.647781000000009,78.090820000000008],[-97.618331999999953,78.091660000000047],[-97.567504999999926,78.089706000000035],[-97.513061999999991,78.086655000000007],[-97.43249499999996,78.080551000000128],[-97.323623999999995,78.076935000000105],[-97.297775000000001,78.076385000000073],[-97.024444999999901,78.074706999999933],[-96.997771999999998,78.075271999999984],[-96.910278000000005,78.079163000000051],[-96.887511999999958,78.083054000000118],[-96.855559999999912,78.104155999999932],[-96.856383999999991,78.108032000000037],[-96.870543999999995,78.133330999999998],[-96.885558999999944,78.138046000000031],[-96.983886999999925,78.150818000000072],[-97.059157999999968,78.15776100000005],[-97.138061999999934,78.165817000000118],[-97.164444000000003,78.168869000000029],[-97.184722999999963,78.172485000000108],[-97.194992000000013,78.17692599999998],[-97.200835999999924,78.183593999999971],[-97.212509000000011,78.189422999999977],[-97.299438000000009,78.204712000000086],[-97.321120999999948,78.207488999999953],[-97.349166999999966,78.208602999999982],[-97.407776000000013,78.207763999999997],[-97.635558999999944,78.206650000000025],[-97.829453000000001,78.219147000000021],[-97.849441999999954,78.234711000000118],[-97.817504999999983,78.23275799999999],[-97.773055999999997,78.238876000000118],[-97.763335999999924,78.24443100000002],[-97.777785999999878,78.25],[-97.867766999999958,78.279709000000025],[-97.881103999999993,78.283600000000092],[-97.904175000000009,78.28804000000008],[-97.930557000000022,78.290817000000004],[-98.012786999999946,78.296936000000017],[-98.054717999999923,78.301651000000049],[-98.068343999999968,78.308029000000033],[-98.070846999999958,78.313599000000067],[-98.043610000000001,78.389434999999992],[-98.148345999999947,78.403870000000097],[-98.172226000000023,78.40498400000007],[-98.198333999999988,78.408599999999979],[-98.347778000000005,78.443038999999999],[-98.366652999999985,78.449416999999983],[-98.388061999999991,78.467484000000013],[-98.410552999999993,78.490265000000022],[-98.411391999999921,78.4952550000001],[-98.410277999999948,78.508040999999992],[-98.308884000000035,78.533875000000023],[-98.171386999999982,78.529709000000139],[-98.054442999999992,78.533600000000035],[-98.022231999999917,78.53637700000013],[-98.019164999999987,78.542755000000056],[-98.028060999999923,78.563309000000004],[-98.042220999999927,78.569716999999969],[-98.080001999999922,78.582763999999997],[-98.115004999999996,78.593871999999976],[-98.139998999999989,78.599425999999994],[-98.169158999999922,78.603043000000127],[-98.235001000000011,78.619141000000013],[-98.315276999999924,78.64387499999998],[-98.326950000000011,78.650542999999914],[-98.328063999999927,78.652206000000035],[-98.371658000000025,78.719986000000063],[-98.366104000000007,78.763611000000026],[-98.36471599999993,78.768051000000071],[-98.17332499999992,78.812759000000142],[-98.144454999999994,78.816666000000112],[-98.06138599999997,78.818877999999984],[-97.777785999999878,78.815262000000075],[-97.65695199999999,78.811371000000008],[-97.59973100000002,78.807479999999941],[-97.488602000000014,78.796646000000067],[-97.461945000000014,78.792755],[-97.436934999999892,78.786925999999994],[-97.385559000000001,78.776931999999988],[-97.359160999999972,78.773041000000092],[-97.273620999999991,78.764434999999992],[-97.160278000000005,78.758881000000031],[-97.078063999999983,78.74971000000005],[-97.025283999999942,78.741928000000087],[-96.999725000000012,78.736923000000047],[-96.954726999999934,78.726379000000009],[-96.922500999999954,78.713318000000072],[-96.913895000000025,78.706940000000088],[-96.903884999999946,78.701660000000061],[-96.886397999999986,78.696640000000002],[-96.768065999999976,78.684143000000006]],[[-86.319457999999997,78.883606000000043],[-86.388061999999877,78.883041000000048],[-86.414718999999934,78.884430000000009],[-86.444442999999978,78.887207000000103],[-86.469161999999926,78.889708999999982],[-86.484436000000017,78.892761000000121],[-86.476943999999889,78.896378000000084],[-86.43638599999997,78.911102000000085],[-86.386672999999973,78.924988000000099],[-86.366104000000007,78.929703000000131],[-86.346114999999998,78.939697000000137],[-86.328613000000018,78.950821000000019],[-86.292770000000019,78.983047000000113],[-86.285277999999948,78.993317000000047],[-86.283614999999941,78.99803200000008],[-86.046951000000035,79.038589000000059],[-85.990828999999962,79.046936000000073],[-85.924437999999952,79.053864000000033],[-85.896117999999944,79.056931000000134],[-85.820007000000032,79.061371000000008],[-85.712509000000011,79.064148000000046],[-85.646118000000001,79.06442300000009],[-85.321395999999936,79.053864000000033],[-85.263335999999924,79.048874000000012],[-85.216109999999901,79.041367000000037],[-85.199722000000008,79.037490999999989],[-85.182495000000017,79.031372000000147],[-85.167220999999927,79.020828000000108],[-85.169448999999986,79.014709000000039],[-85.176391999999964,79.008880999999974],[-85.186661000000015,79.002777000000094],[-85.20944199999991,78.993590999999981],[-85.225829999999974,78.988586000000112],[-85.246947999999975,78.984146000000067],[-85.301392000000021,78.975266000000033],[-85.466110000000015,78.958327999999995],[-85.546660999999972,78.95248400000014],[-85.765563999999983,78.93414300000012],[-86.026947000000007,78.910262999999986],[-86.213897999999972,78.891663000000051],[-86.244995000000017,78.888321000000076],[-86.284163999999976,78.885268999999994],[-86.319457999999997,78.883606000000043]],[[-103.59388699999988,79.325821000000019],[-103.39835399999993,79.299988000000099],[-103.33556399999998,79.299988000000099],[-103.26251200000002,79.299988000000099],[-103.13999899999993,79.287766000000147],[-103.09777799999995,79.282486000000063],[-103.08361799999994,79.279433999999981],[-103.06806899999992,79.273880000000133],[-102.92111199999999,79.21748400000007],[-102.92666600000001,79.211105000000032],[-102.92639199999996,79.206649999999968],[-102.921944,79.200272000000041],[-102.90194699999995,79.172211000000118],[-102.89167800000001,79.166656000000046],[-102.87444299999987,79.164992999999924],[-102.76862299999993,79.138884999999959],[-102.620003,79.097214000000008],[-102.61165599999998,79.093048000000124],[-102.60582699999998,79.074432000000115],[-102.60637700000001,79.068054000000132],[-102.612213,79.056641000000127],[-102.654449,78.994141000000013],[-102.66555799999998,78.98275799999999],[-102.67582700000003,78.977478000000133],[-102.69860799999992,78.971924000000115],[-102.72084000000001,78.938309000000061],[-102.59500099999997,78.876648000000046],[-102.57945299999994,78.873032000000023],[-102.56082200000003,78.869705000000067],[-102.55082700000003,78.869431000000134],[-102.52887699999985,78.873032000000023],[-102.39195299999994,78.931656000000089],[-102.37638900000002,78.946365000000128],[-102.38054699999998,78.962769000000094],[-102.39806399999992,78.987198000000035],[-102.36305199999998,79.014999000000103],[-102.27944899999989,79.018051000000014],[-102.09361299999989,79.044144000000131],[-102.04943799999995,79.054427999999973],[-102.01500699999997,79.064987000000031],[-101.99333199999995,79.076096000000121],[-101.975281,79.080825999999945],[-101.942207,79.084717000000012],[-101.90249599999993,79.086380000000133],[-101.88194299999998,79.086104999999918],[-101.64890299999996,79.075821000000076],[-101.62805200000003,79.071930000000009],[-101.54194599999994,79.044708000000071],[-101.5202789999999,79.038315000000125],[-101.30803699999996,78.975815000000011],[-101.23166699999996,78.959427000000119],[-101.20472699999999,78.954162999999994],[-101.17666600000001,78.95387299999993],[-101.15222199999988,78.956650000000025],[-101.14334100000002,78.962494000000049],[-101.14472999999992,78.968323000000055],[-101.14083900000003,78.974152000000061],[-101.09388699999994,78.963608000000022],[-101.00556899999998,78.943039000000056],[-100.98665599999998,78.937195000000088],[-100.98528299999998,78.931366000000025],[-101.11694299999988,78.856934000000138],[-101.15278599999999,78.83998100000008],[-101.19304699999992,78.824431999999945],[-101.20056199999999,78.820831000000112],[-101.20333899999997,78.815811000000053],[-101.20084399999996,78.811919999999986],[-101.18639400000001,78.802765000000136],[-101.17278299999998,78.800537000000134],[-100.99194299999999,78.788879000000122],[-100.86389199999991,78.781372000000033],[-100.83056599999992,78.789703000000088],[-100.80055199999998,78.793320000000051],[-100.70556599999998,78.799712999999997],[-100.61389200000002,78.798035000000084],[-100.587784,78.799149000000057],[-100.55915799999997,78.80442800000003],[-100.55027799999993,78.809982000000048],[-100.53639199999998,78.815536000000009],[-100.52443700000003,78.818054000000018],[-100.35109699999998,78.828323000000012],[-100.34445199999993,78.826660000000118],[-100.32389799999999,78.802200000000084],[-100.32250999999997,78.797211000000118],[-100.33249699999993,78.782760999999994],[-100.32333399999993,78.778046000000131],[-100.283073,78.767761000000064],[-100.22778299999993,78.760544000000095],[-100.14334099999996,78.75221300000004],[-100.12416100000002,78.750000000000057],[-100.03250099999997,78.739426000000037],[-100.004997,78.735809000000074],[-99.952498999999989,78.725540000000024],[-99.93638599999997,78.719986000000063],[-99.896392999999932,78.695816000000036],[-99.893889999999942,78.693039000000113],[-99.893065999999976,78.6869200000001],[-99.913329999999917,78.679703000000018],[-99.972777999999948,78.659987999999998],[-100.0625,78.638885000000073],[-100.0625,78.635544000000039],[-100.01666299999988,78.616653000000042],[-99.988891999999908,78.613876000000118],[-99.96305799999999,78.614990000000091],[-99.90972899999997,78.623871000000008],[-99.853332999999964,78.633041000000048],[-99.817504999999926,78.630538999999999],[-99.573623999999995,78.595535000000098],[-99.550277999999878,78.590271000000143],[-99.533324999999991,78.583602999999982],[-99.529723999999987,78.578048999999965],[-99.534164000000033,78.572220000000129],[-99.661117999999931,78.485535000000027],[-99.670272999999895,78.479706000000022],[-99.684157999999968,78.474426000000108],[-99.712508999999955,78.469436999999971],[-99.777221999999995,78.46138000000002],[-99.831389999999999,78.450821000000133],[-99.859436000000017,78.442200000000014],[-99.867767000000015,78.437484999999981],[-99.865004999999996,78.434418000000051],[-99.821395999999993,78.427475000000072],[-99.801391999999964,78.420822000000101],[-99.786666999999966,78.414703000000088],[-99.776672000000019,78.408599999999979],[-99.761123999999995,78.396378000000141],[-99.753615999999909,78.389709000000096],[-99.748336999999992,78.383605999999986],[-99.749160999999958,78.372482000000105],[-99.778609999999958,78.332214000000022],[-99.797774999999945,78.308594000000028],[-99.799437999999952,78.303314],[-99.793883999999878,78.297211000000061],[-99.775832999999977,78.292480000000126],[-99.741378999999938,78.289978000000019],[-99.673049999999989,78.290817000000004],[-99.620543999999938,78.290268000000026],[-99.551102000000014,78.286102000000142],[-99.529449,78.282486000000063],[-99.514450000000011,78.277206000000035],[-99.479720999999984,78.249146000000053],[-99.447768999999994,78.224152000000061],[-99.428329000000019,78.211655000000064],[-99.413894999999968,78.205261000000007],[-99.398620999999991,78.199997000000053],[-99.188599000000011,78.133040999999992],[-98.989166000000012,78.073044000000039],[-98.969161999999926,78.068329000000006],[-98.945830999999885,78.061645999999996],[-98.945830999999885,78.05581699999999],[-98.962783999999942,78.009155000000078],[-98.971663999999976,77.997757000000092],[-98.980834999999956,77.992203000000075],[-98.998885999999914,77.986923000000047],[-99.021666999999866,77.981659000000036],[-99.081115999999952,77.971923999999944],[-99.094727000000034,77.966384999999946],[-99.099166999999966,77.960815000000082],[-99.098891999999921,77.954987000000131],[-99.078612999999905,77.925537000000077],[-99.069167999999991,77.913605000000075],[-99.041381999999942,77.900818000000072],[-99.022781000000009,77.894440000000145],[-99.013335999999981,77.888321000000133],[-99.022231999999974,77.882477000000108],[-99.238051999999982,77.837769000000037],[-99.396666999999979,77.824158000000068],[-99.525283999999999,77.813599000000011],[-99.549438000000009,77.812485000000038],[-99.713057999999933,77.810806000000014],[-99.853881999999999,77.792206000000078],[-99.859436000000017,77.786926000000051],[-99.876937999999939,77.781372000000033],[-99.90695199999999,77.778595000000109],[-100.21000699999996,77.809982000000048],[-100.32972699999999,77.825272000000041],[-100.49889399999995,77.85165400000011],[-100.60637699999995,77.879974000000118],[-100.75527999999997,77.955551000000071],[-100.78611799999999,77.974152000000117],[-100.81749699999995,77.999146000000053],[-100.82389799999999,78.004440000000045],[-100.83833299999998,78.022766000000047],[-100.83778399999994,78.034988000000055],[-100.83693700000003,78.040268000000083],[-100.83444199999991,78.04414399999996],[-100.82694999999995,78.048874000000012],[-100.853882,78.096649000000014],[-100.87581599999999,78.099990999999932],[-100.99861099999998,78.131653000000085],[-101.00974300000001,78.136658000000125],[-101.02194199999991,78.147766000000104],[-101.01889,78.156937000000084],[-101.01528899999994,78.16276600000009],[-101.01363399999997,78.173599000000081],[-101.01390100000003,78.184707999999944],[-101.02027900000002,78.189697000000081],[-101.03555299999999,78.196091000000138],[-101.06276699999995,78.198593000000017],[-101.08944700000001,78.198029000000076],[-101.23137700000001,78.183868000000075],[-101.28943599999997,78.182479999999998],[-101.31667299999998,78.184982000000048],[-101.34249899999998,78.189422999999977],[-101.41722099999998,78.208878000000141],[-101.432503,78.215271000000087],[-101.43138099999999,78.221374999999966],[-101.43276999999989,78.227478000000076],[-101.45638999999994,78.232208000000128],[-101.47416699999991,78.234711000000118],[-101.49665800000002,78.237198000000149],[-101.83332799999999,78.264999000000046],[-102.13305699999989,78.282761000000107],[-102.15750100000002,78.282486000000063],[-102.18221999999997,78.281097000000102],[-102.29888900000003,78.273315000000139],[-102.34722899999997,78.267761000000121],[-102.38890100000003,78.260817999999972],[-102.47138999999999,78.248871000000008],[-102.50167799999997,78.245819000000097],[-102.56139400000001,78.241089000000045],[-102.59056099999987,78.239700000000084],[-102.61860699999994,78.24136400000009],[-102.64527900000002,78.24552900000009],[-102.73222399999992,78.263885000000073],[-102.781387,78.276093000000117],[-102.79778299999998,78.282211000000075],[-102.80943300000001,78.288315000000125],[-102.8163909999999,78.294434000000138],[-102.81833599999999,78.300262000000032],[-102.81360599999994,78.310806000000127],[-102.80803700000001,78.316939999999931],[-102.74999999999989,78.338318000000072],[-102.736107,78.342484000000127],[-102.68639400000001,78.350540000000024],[-102.66583299999991,78.358596999999975],[-102.67083699999995,78.36303700000002],[-102.69499199999996,78.367752000000053],[-102.72250400000001,78.371368000000075],[-102.77778599999994,78.376372999999944],[-102.80610699999994,78.377762000000132],[-102.83583099999998,78.376372999999944],[-102.88999899999999,78.36914100000007],[-102.92027299999995,78.365814000000114],[-102.93804899999992,78.364699999999971],[-102.96694899999989,78.364150999999993],[-103.02443699999998,78.365265000000136],[-103.13390400000003,78.36914100000007],[-103.16388699999999,78.366928000000087],[-103.21417200000002,78.356644000000074],[-103.23832700000003,78.350540000000024],[-103.26471699999996,78.34526100000005],[-103.38110399999988,78.3316650000001],[-103.41111799999999,78.329437000000098],[-103.49804699999999,78.327774000000034],[-103.52749599999987,78.326385000000016],[-103.58473200000003,78.321930000000009],[-103.67999299999997,78.3119200000001],[-103.75110599999999,78.301376000000062],[-103.78195199999999,78.296097000000032],[-103.80803700000001,78.290543000000071],[-103.829453,78.284987999999998],[-103.87721299999998,78.272217000000069],[-103.89417300000002,78.252212999999927],[-103.89890299999996,78.245819000000097],[-103.91027800000001,78.241089000000045],[-103.93331899999998,78.237198000000149],[-103.96305799999999,78.233597000000088],[-103.99194299999999,78.233047000000056],[-104.02250699999996,78.234146000000067],[-104.04277000000002,78.23692299999999],[-104.06984699999987,78.242171999999982],[-104.08306899999997,78.244140999999956],[-104.110817,78.246643000000063],[-104.19027699999998,78.251663000000121],[-104.30471799999992,78.252212999999927],[-104.36361699999998,78.254439999999988],[-104.41251399999999,78.257767000000115],[-104.46749899999998,78.26527400000009],[-104.49445300000002,78.270538000000045],[-104.82055700000001,78.355820000000108],[-104.99194299999999,78.437759000000085],[-104.99999999999994,78.443862999999965],[-105.05055199999998,78.488037000000077],[-105.05139200000002,78.494431000000134],[-105.04305999999991,78.505829000000119],[-105.01194800000002,78.52165199999996],[-104.95361299999996,78.537491000000102],[-104.86860699999994,78.560531999999967],[-104.83139,78.569992000000013],[-104.806107,78.572495000000004],[-104.69638099999992,78.578873000000101],[-104.66665599999999,78.579712000000086],[-104.39778100000001,78.569992000000013],[-104.35500300000001,78.566375999999934],[-104.287781,78.555252000000053],[-104.26278699999995,78.549423000000047],[-104.21221899999995,78.539977999999962],[-104.1661069999999,78.53276100000005],[-104.14277600000003,78.529434000000094],[-104.08833300000003,78.524155000000121],[-104.03388999999999,78.519989000000066],[-103.93055699999996,78.516098],[-103.87110899999993,78.518051000000128],[-103.78250100000002,78.519714000000022],[-103.7225039999999,78.517211999999972],[-103.66583299999996,78.51249700000011],[-103.58860799999997,78.503875999999991],[-103.53333299999991,78.496367999999961],[-103.52362099999999,78.496094000000028],[-103.51834100000002,78.496933000000013],[-103.46584300000001,78.51748699999996],[-103.37805200000003,78.586105000000032],[-103.39998599999996,78.615540000000124],[-103.44666299999994,78.621368000000075],[-103.50611900000001,78.621368000000075],[-103.74082900000002,78.619705000000124],[-103.98554999999999,78.61692800000003],[-104.01000999999991,78.617203000000075],[-104.04215999999991,78.620681999999931],[-104.04222099999998,78.629973999999947],[-104.03278399999988,78.635269000000051],[-103.98916600000001,78.646103000000096],[-103.85193600000002,78.669434000000138],[-103.82611099999997,78.671921000000054],[-103.77223200000003,78.671097000000088],[-103.65834000000001,78.664993000000038],[-103.62888299999992,78.664429000000098],[-103.53943600000002,78.664993000000038],[-103.50917099999987,78.666382000000056],[-103.48361199999994,78.669144000000131],[-103.49082899999996,78.674987999999985],[-103.50306699999999,78.681091000000094],[-103.51306199999993,78.687484999999924],[-103.52778599999999,78.699417000000096],[-103.525284,78.705261000000121],[-103.51806599999998,78.710815000000082],[-103.48860200000001,78.715820000000122],[-103.439438,78.72026100000005],[-103.41221599999989,78.72026100000005],[-103.38861099999997,78.716933999999924],[-103.35804699999994,78.718597000000045],[-103.33389299999999,78.722488000000112],[-103.31916799999999,78.728591999999992],[-103.31639099999995,78.734420999999998],[-103.31889299999995,78.740264999999965],[-103.41665599999999,78.778870000000097],[-103.43916300000001,78.784988000000055],[-103.46806300000003,78.787491000000045],[-103.63971699999996,78.765273999999977],[-103.66915899999992,78.760544000000095],[-103.71056399999998,78.750000000000057],[-103.79611199999999,78.735809000000074],[-103.70249899999999,78.788315000000011],[-103.69526699999994,78.793868999999972],[-103.698036,78.799712999999997],[-103.72693599999997,78.802200000000084],[-103.86054999999999,78.806090999999981],[-103.87053699999996,78.806365999999969],[-103.886124,78.80442800000003],[-103.9083399999999,78.799149000000057],[-103.90556299999997,78.794144000000017],[-103.89639299999993,78.784714000000122],[-103.89083900000003,78.780273000000022],[-103.89527899999996,78.774994000000049],[-103.90527299999997,78.768875000000037],[-103.92916899999994,78.764998999999932],[-103.96056399999992,78.76138300000008],[-103.99109599999991,78.758881000000031],[-104.02166699999992,78.757492000000013],[-104.04943800000001,78.756378000000041],[-104.07389799999993,78.757767000000001],[-104.170547,78.765823000000069],[-104.19888300000002,78.770263999999997],[-104.21167000000003,78.776093000000003],[-104.21972699999998,78.782211000000132],[-104.21528599999999,78.793593999999985],[-104.16722099999998,78.816376000000105],[-104.13305700000001,78.827484000000084],[-104.04834,78.838882000000069],[-103.98665599999998,78.850265999999976],[-103.86054999999999,78.876648000000046],[-103.83139,78.886932000000115],[-103.82389799999999,78.892487000000017],[-103.82167099999992,78.898330999999985],[-103.82472199999995,78.903319999999951],[-103.86749299999997,78.916091999999992],[-103.96305799999999,78.929977000000065],[-103.98998999999998,78.932755000000043],[-104.00639299999995,78.935531999999967],[-104.029449,78.941650000000095],[-104.04750099999995,78.947754000000089],[-104.05332899999996,78.952208999999925],[-104.05387899999999,78.95748900000001],[-104.05222300000003,78.961380000000077],[-104.04778299999992,78.966659999999933],[-104.048607,78.971099999999979],[-104.05777,78.974152000000061],[-104.08112299999999,78.979431000000034],[-104.12943999999999,78.985809000000017],[-104.17859599999991,78.990265000000136],[-104.20361300000002,78.991653000000042],[-104.23388699999998,78.99192800000003],[-104.265556,78.988586000000112],[-104.45500199999998,78.956099999999992],[-104.47193899999996,78.950546000000031],[-104.51112399999994,78.910262999999986],[-104.53832999999997,78.881927000000019],[-104.56416300000001,78.864700000000028],[-104.57888799999989,78.858597000000088],[-104.78582799999998,78.806641000000013],[-104.81749699999995,78.802200000000084],[-104.87860099999995,78.798035000000084],[-104.90915699999999,78.796646000000067],[-104.96888699999994,78.797211000000118],[-104.98832700000003,78.798325000000091],[-105.01194800000002,78.803589000000102],[-105.02250699999996,78.809982000000048],[-105.02861000000001,78.815262000000075],[-105.02916699999997,78.821655000000078],[-105.02834300000001,78.832763999999941],[-105.01222200000001,78.844711000000075],[-104.83389299999999,78.926650999999993],[-104.68859899999995,78.993590999999981],[-104.67887899999999,78.999709999999993],[-104.674713,79.004990000000078],[-104.68110699999994,79.016663000000108],[-104.69415300000003,79.022766000000047],[-104.70805399999995,79.027771000000087],[-104.737213,79.031936999999971],[-104.90249599999993,79.04971299999994],[-104.98638899999997,79.043045000000006],[-105.01334399999996,79.038315000000125],[-105.09916699999991,79.02388000000002],[-105.12526700000001,79.021103000000096],[-105.15638699999988,79.019439999999975],[-105.39527900000002,79.011658000000068],[-105.42610200000001,79.011108000000036],[-105.48388699999998,79.013046000000145],[-105.51363399999997,79.016098000000056],[-105.54332699999998,79.020263999999941],[-105.5625,79.024428999999941],[-105.58138999999994,79.03054800000001],[-105.59084299999995,79.034424000000058],[-105.59944200000001,79.040268000000083],[-105.60665899999992,79.051926000000094],[-105.628601,79.161377000000073],[-105.62053699999996,79.172760000000096],[-105.48277300000001,79.306366000000082],[-105.45973199999997,79.324158000000125],[-105.43998699999997,79.329162999999994],[-105.40862299999992,79.328872999999987],[-105.38305699999995,79.326935000000049],[-105.33277899999996,79.319443000000092],[-105.19721999999996,79.299713000000111],[-105.16111799999999,79.297485000000108],[-105.12721299999998,79.297485000000108],[-105.10861199999999,79.298874000000126],[-105.01611300000002,79.310531999999967],[-104.95472699999993,79.315262000000018],[-104.85916099999997,79.319153000000085],[-104.74276700000001,79.322495000000004],[-104.58332799999999,79.329437000000098],[-104.54860699999989,79.331375000000037],[-104.49082900000002,79.339157],[-104.46083099999998,79.342209000000082],[-104.18167099999999,79.358871000000079],[-104.00723299999999,79.367752000000053],[-103.97778299999999,79.368866000000025],[-103.9491579999999,79.368042000000059],[-103.83500699999996,79.36442599999998],[-103.7225039999999,79.356934000000024],[-103.69526699999994,79.352203000000088],[-103.62053700000001,79.330551000000071],[-103.59388699999988,79.325821000000019]],[[-99.471663999999976,80.109711000000004],[-99.436661000000015,80.107208000000014],[-99.404723999999931,80.10803199999998],[-99.298049999999989,80.118866000000025],[-99.136672999999917,80.133040999999935],[-99.110549999999876,80.130539000000056],[-99.081680000000006,80.124695000000031],[-98.868880999999988,80.077774000000034],[-98.856658999999922,80.07249500000006],[-98.774719000000005,80.01527400000009],[-98.705841000000021,79.965820000000065],[-98.644164999999873,79.800261999999918],[-98.644164999999873,79.794144000000017],[-98.648620999999878,79.783599999999922],[-98.673049999999989,79.771927000000119],[-98.779175000000009,79.702208999999982],[-98.830001999999922,79.664429000000098],[-98.868057000000022,79.700821000000076],[-98.936110999999983,79.719711000000018],[-98.967772999999909,79.724152000000117],[-99.139998999999932,79.740814000000114],[-99.243056999999965,79.748596000000077],[-99.273620999999935,79.751389000000017],[-99.301391999999908,79.75471500000009],[-99.317229999999995,79.758605999999986],[-99.324448000000018,79.762497000000053],[-99.325561999999991,79.767487000000074],[-99.322509999999909,79.771378000000141],[-99.313048999999921,79.776093000000003],[-99.304717999999923,79.782211000000132],[-99.302779999999984,79.787490999999989],[-99.297501000000011,79.812759000000085],[-99.295837000000006,79.833328000000051],[-99.296386999999925,79.839157000000057],[-99.302215999999873,79.845261000000107],[-99.315826000000015,79.848602000000142],[-99.368880999999988,79.857758000000103],[-99.556655999999919,79.888885000000016],[-99.584441999999967,79.891937000000098],[-99.614166000000012,79.893326000000116],[-99.647781000000009,79.893051000000071],[-99.67971799999998,79.888046000000031],[-99.700835999999867,79.882750999999985],[-99.732223999999974,79.878860000000088],[-99.800827000000027,79.876648000000046],[-100.00556899999998,79.8744200000001],[-100.03582799999992,79.874695000000088],[-100.07028199999996,79.876923000000033],[-100.09777800000001,79.881088000000034],[-100.12110899999999,79.886658000000125],[-100.14389,79.893051000000071],[-100.15862299999998,79.898605000000089],[-100.17748999999998,79.909988000000112],[-100.17832900000002,79.915817000000118],[-100.19332900000001,80.03387500000008],[-100.08167999999989,80.084427000000005],[-100.06555200000003,80.089980999999966],[-100.02362099999993,80.099716000000058],[-99.827224999999999,80.143599999999992],[-99.795272999999952,80.147766000000104],[-99.759170999999981,80.149719000000005],[-99.726944000000003,80.150542999999971],[-99.625548999999921,80.148880000000077],[-99.599990999999989,80.145263999999997],[-99.593886999999881,80.139160000000004],[-99.571120999999948,80.132751000000098],[-99.471663999999976,80.109711000000004]],[[-99.155563000000029,80.174697999999978],[-99.127212999999927,80.168045000000006],[-99.113891999999964,80.163879000000122],[-99.138061999999991,80.162491000000045],[-99.160552999999993,80.163040000000137],[-99.184998000000007,80.167755],[-99.251952999999901,80.173035000000084],[-99.277495999999985,80.173035000000084],[-99.313613999999973,80.171097000000145],[-99.341384999999946,80.166092000000106],[-99.333069000000023,80.159424000000115],[-99.30360399999995,80.153870000000097],[-99.305556999999908,80.148331000000098],[-99.342498999999918,80.145538000000101],[-99.375274999999931,80.147217000000126],[-99.400557999999933,80.150818000000015],[-99.418059999999969,80.157211000000132],[-99.418335000000013,80.163040000000137],[-99.413329999999974,80.168868999999972],[-99.386947999999961,80.17886400000009],[-99.366942999999935,80.182205000000124],[-99.239165999999898,80.183868000000075],[-99.211944999999957,80.182205000000124],[-99.155563000000029,80.174697999999978]],[[-95.030837999999903,80.670258000000047],[-94.969451999999933,80.640274000000034],[-94.970551,80.635268999999994],[-94.981383999999991,80.631927000000076],[-95.006957999999997,80.626648000000046],[-95.190276999999924,80.608871000000022],[-95.226104999999961,80.60914600000001],[-95.453613000000018,80.629424999999969],[-95.611114999999984,80.648040999999978],[-95.676940999999943,80.653319999999951],[-95.711945000000014,80.654433999999981],[-95.749160999999958,80.653869999999984],[-95.788054999999929,80.652205999999978],[-95.823623999999938,80.648604999999918],[-95.86332699999997,80.645828000000051],[-96.061935000000005,80.656647000000078],[-96.118056999999965,80.660537999999974],[-96.14916999999997,80.664703000000145],[-96.139449999999954,80.669708000000014],[-96.076675000000023,80.683043999999995],[-96.028335999999967,80.687195000000088],[-96.006119000000012,80.688034000000016],[-95.491378999999995,80.699997000000053],[-95.424438000000009,80.699707000000046],[-95.200561999999934,80.697479000000101],[-95.166945999999939,80.695250999999985],[-95.128875999999934,80.691925000000083],[-95.096663999999976,80.688582999999994],[-95.062499999999943,80.682480000000055],[-95.065276999999924,80.680542000000116],[-95.045836999999949,80.676926000000037],[-95.030837999999903,80.670258000000047]],[[-92.727782999999931,81.305542000000059],[-92.530288999999982,81.284988000000112],[-92.21305799999999,81.245529000000033],[-92.148055999999997,81.236374000000126],[-92.124709999999936,81.232758000000103],[-92.052489999999921,81.218597000000102],[-91.955841000000021,81.196365000000014],[-91.858046999999999,81.167755],[-91.781677000000002,81.090271000000143],[-91.783889999999928,81.083602999999982],[-91.797501000000011,81.081665000000044],[-91.832503999999972,81.080276000000083],[-91.888061999999934,81.081940000000088],[-91.914444000000003,81.078049000000021],[-91.913894999999968,81.07499700000011],[-91.908614999999998,81.070540999999992],[-91.893341000000021,81.064986999999974],[-91.865828999999962,81.058594000000028],[-91.767226999999934,81.049148999999943],[-91.72222899999997,81.042205999999965],[-91.538895000000025,80.981658999999979],[-91.52555799999999,80.974990999999989],[-91.522781000000009,80.962769000000037],[-91.531676999999945,80.951096000000007],[-91.527221999999995,80.939697000000081],[-91.517776000000026,80.932754999999986],[-91.481673999999998,80.919434000000024],[-91.321121000000005,80.882750999999985],[-91.306106999999997,80.875534000000016],[-91.152221999999995,80.785538000000031],[-91.154998999999975,80.78054800000001],[-91.14916999999997,80.770263999999997],[-91.140563999999983,80.764709000000096],[-91.121658000000025,80.754715000000033],[-91.099441999999954,80.74803200000008],[-91.03472899999997,80.737488000000042],[-90.972777999999948,80.730270000000019],[-90.905272999999966,80.724425999999994],[-90.777221999999995,80.71775800000006],[-90.754181000000017,80.714995999999928],[-90.712783999999999,80.705551000000071],[-90.664718999999991,80.684708000000001],[-90.652495999999928,80.67804000000001],[-90.603881999999999,80.651382000000012],[-90.593612999999948,80.645264000000111],[-90.593063000000029,80.640823000000012],[-90.601943999999946,80.636107999999979],[-90.615829000000019,80.630264000000125],[-90.678054999999972,80.615540000000067],[-90.715835999999911,80.605545000000006],[-90.742492999999911,80.594711000000075],[-90.763061999999991,80.583603000000096],[-90.771666999999979,80.577484000000084],[-90.772780999999952,80.571930000000066],[-90.766402999999912,80.565536000000066],[-90.741378999999938,80.562195000000031],[-90.706116000000009,80.561371000000065],[-90.607223999999917,80.561371000000065],[-90.583069000000023,80.561371000000065],[-90.418059999999912,80.552200000000084],[-90.238891999999964,80.550536999999963],[-90.203339000000028,80.549712999999997],[-90.177215999999987,80.548874000000069],[-90.046386999999925,80.541656000000046],[-90.016402999999968,80.538039999999967],[-90,80.534591999999975],[-89.989990000000034,80.532486000000006],[-89.961394999999982,80.520263999999997],[-89.955565999999976,80.515548999999965],[-89.938598999999954,80.508330999999998],[-89.84056099999998,80.481369000000086],[-89.81639100000001,80.474991000000102],[-89.790282999999931,80.469437000000084],[-89.762511999999958,80.464995999999985],[-89.75111400000003,80.464432000000045],[-89.784163999999919,80.500824000000023],[-89.748336999999879,80.532760999999994],[-89.586945000000014,80.545532000000094],[-89.546111999999994,80.547485000000052],[-89.482773000000009,80.544983000000002],[-89.447219999999902,80.542480000000012],[-89.354172000000005,80.534988000000055],[-89.326400999999919,80.531937000000028],[-89.272781000000009,80.523315000000025],[-89.244995000000017,80.517212000000086],[-89.059158000000025,80.461380000000133],[-89.087508999999955,80.438583000000051],[-89.115279999999927,80.433868000000018],[-89.176101999999958,80.426651000000049],[-89.198333999999932,80.42164600000001],[-89.20944199999991,80.417754999999943],[-89.235001000000011,80.408035000000041],[-89.25,80.402206000000035],[-89.257232999999985,80.396942000000081],[-89.253615999999965,80.392761000000007],[-89.237212999999997,80.388596000000007],[-89.216948999999943,80.389709000000039],[-89.189712999999927,80.394149999999968],[-89.167496000000028,80.399155000000007],[-89.136123999999995,80.40248100000008],[-89.09973100000002,80.40248100000008],[-89.083327999999881,80.398331000000042],[-89.075835999999924,80.393051000000014],[-89.104995999999915,80.339431999999988],[-89.114165999999955,80.333327999999938],[-89.125274999999931,80.327773999999977],[-89.143616000000009,80.323318000000029],[-89.169158999999979,80.318054000000075],[-89.220275999999899,80.30914300000012],[-89.241942999999935,80.304153000000099],[-89.256667999999991,80.298599000000081],[-89.263900999999976,80.293320000000108],[-89.262221999999952,80.286652000000117],[-89.25140399999998,80.278320000000122],[-89.180496000000005,80.238174000000072],[-89.113892000000021,80.208038000000045],[-89.092223999999987,80.200821000000133],[-89.072784000000013,80.195526000000086],[-88.776672000000019,80.131363000000022],[-88.75,80.126647999999989],[-88.534728999999913,80.09887700000013],[-88.49888599999997,80.09887700000013],[-88.441939999999931,80.100540000000024],[-88.414718999999991,80.104980000000069],[-88.414444000000003,80.10803199999998],[-88.363051999999925,80.124420000000043],[-88.235274999999888,80.102477999999962],[-88.161941999999954,80.09165999999999],[-88.145554000000004,80.093872000000033],[-88.148346000000004,80.098037999999974],[-88.261397999999929,80.18803400000013],[-88.27305599999994,80.195526000000086],[-88.294158999999979,80.201385000000073],[-88.350829999999974,80.208878000000084],[-88.422775000000001,80.210541000000035],[-88.479996000000028,80.213608000000136],[-88.506957999999941,80.218322999999998],[-88.595276000000013,80.236923000000104],[-88.618057000000022,80.24331699999999],[-88.630279999999914,80.249145999999996],[-88.661391999999921,80.272491000000116],[-88.684432999999956,80.358597000000145],[-88.68582200000003,80.365540000000124],[-88.685271999999998,80.371643000000063],[-88.683059999999955,80.376923000000147],[-88.67721599999993,80.382751000000042],[-88.648894999999925,80.393600000000106],[-88.615279999999927,80.40387000000004],[-88.510284000000013,80.428864000000033],[-88.487777999999992,80.433868000000018],[-88.463333000000034,80.438034000000073],[-88.420546999999999,80.442200000000014],[-88.383895999999993,80.443588000000091],[-88.308333999999945,80.442749000000106],[-88.110549999999932,80.4327550000001],[-87.918883999999991,80.421097000000088],[-87.718613000000005,80.411102000000142],[-87.683884000000035,80.410263000000043],[-87.666396999999904,80.40387000000004],[-87.636123999999938,80.36692800000003],[-87.607498000000021,80.324158000000068],[-87.563889000000017,80.233322000000044],[-87.561935000000005,80.183593999999914],[-87.562774999999931,80.179153000000042],[-87.572234999999921,80.176086000000112],[-87.678054999999915,80.156371999999976],[-87.721389999999985,80.153046000000131],[-87.939162999999951,80.143875000000037],[-87.96665999999999,80.139434999999992],[-88.048889000000031,80.125809000000004],[-88.065552000000025,80.120818999999983],[-88.060546999999985,80.117477000000065],[-87.956664999999987,80.069717000000026],[-87.938048999999978,80.06442300000009],[-87.891387999999949,80.055542000000116],[-87.860001000000011,80.053588999999988],[-87.836120999999935,80.0577550000001],[-87.823059000000001,80.062484999999924],[-87.763061999999934,80.071106000000043],[-87.720000999999911,80.074707000000103],[-87.680557000000022,80.076385000000016],[-87.641678000000013,80.076385000000016],[-87.365004999999996,80.072768999999994],[-87.299987999999985,80.069443000000092],[-87.275557999999876,80.066939999999931],[-87.258620999999948,80.063873000000058],[-87.233321999999987,80.057480000000055],[-87.215285999999992,80.050537000000077],[-87.043334999999956,79.964996000000099],[-87.093612999999948,79.929428000000087],[-87.314437999999996,79.866088999999988],[-87.336120999999935,79.861374000000126],[-87.368332000000009,79.857208000000071],[-87.446655000000021,79.856094000000098],[-87.471938999999907,79.852478000000019],[-87.483062999999959,79.847214000000065],[-87.489440999999943,79.84137000000004],[-87.485549999999876,79.834991000000002],[-87.463622999999984,79.831374999999923],[-87.439162999999951,79.831940000000145],[-87.412780999999995,79.833328000000051],[-87.338608000000022,79.840820000000008],[-87.190826000000015,79.866088999999988],[-87.165558000000033,79.871094000000028],[-87.146956999999929,79.875534000000073],[-87.079726999999934,79.896103000000039],[-87.051392000000021,79.906647000000078],[-87.024718999999948,79.916091999999935],[-87.003066999999987,79.917755000000056],[-86.985824999999977,79.917755000000056],[-86.973891999999864,79.916381999999942],[-86.961394999999982,79.909988000000112],[-86.957779000000016,79.903594999999939],[-86.960555999999997,79.891372999999987],[-87.055557000000022,79.731934000000081],[-87.134170999999924,79.645264000000111],[-87.14416499999993,79.637771999999984],[-87.154998999999975,79.6336060000001],[-87.173049999999989,79.629149999999981],[-87.258620999999948,79.610260000000039],[-87.344451999999933,79.596374999999966],[-87.425551999999982,79.579163000000108],[-87.441665999999941,79.573883000000023],[-87.448043999999982,79.568329000000062],[-87.462509000000011,79.534713999999951],[-87.441939999999988,79.526382000000012],[-87.406661999999983,79.515823000000125],[-87.390563999999927,79.511108000000092],[-87.366394000000014,79.506378000000041],[-87.345276000000013,79.503052000000025],[-87.309998000000007,79.50221300000004],[-87.280563000000029,79.506943000000092],[-87.262786999999946,79.51138300000008],[-87.248336999999992,79.516937000000098],[-87.190552000000025,79.543593999999985],[-87.182769999999948,79.548874000000069],[-87.179992999999968,79.554153000000042],[-87.168883999999991,79.566376000000105],[-87.161117999999931,79.571655000000078],[-87.076675000000023,79.587493999999992],[-87.02555799999999,79.595535000000098],[-87.001113999999973,79.598877000000016],[-86.966659999999933,79.60165400000011],[-86.932495000000017,79.60165400000011],[-86.841384999999946,79.59304800000001],[-86.823623999999995,79.587769000000037],[-86.819732999999985,79.576096000000007],[-86.823897999999986,79.566086000000098],[-86.839721999999995,79.555817000000047],[-86.846389999999985,79.549988000000042],[-86.837783999999999,79.543320000000051],[-86.816665999999998,79.539703000000145],[-86.789992999999981,79.538878999999952],[-86.777221999999995,79.542206000000078],[-86.694991999999957,79.567490000000078],[-86.693329000000006,79.573608000000036],[-86.71055599999994,79.587203999999986],[-86.723891999999978,79.594437000000028],[-86.746383999999978,79.599990999999989],[-86.802489999999977,79.606093999999928],[-86.813048999999921,79.61192299999999],[-86.806380999999874,79.617751999999996],[-86.795272999999952,79.621643000000063],[-86.77694699999995,79.627472000000068],[-86.762222000000008,79.631653000000142],[-86.687209999999993,79.645264000000111],[-86.640838999999914,79.653320000000008],[-86.613051999999925,79.655822999999998],[-86.575012000000015,79.657211000000075],[-86.547775000000001,79.65637200000009],[-86.334166999999923,79.645538000000045],[-86.302779999999984,79.642761000000121],[-86.279448999999943,79.640274000000034],[-86.258895999999993,79.63499500000006],[-86.109160999999972,79.595260999999994],[-86.046111999999994,79.568877999999984],[-86.042220999999927,79.565536000000066],[-86.028060999999923,79.474701000000096],[-86.05471799999998,79.470535000000041],[-86.160552999999993,79.463608000000136],[-86.167496000000028,79.457764000000111],[-86.136123999999995,79.444702000000063],[-86.120834000000002,79.439972000000068],[-86.098891999999921,79.435806000000127],[-86.070847000000015,79.434143000000063],[-86.035004000000015,79.436371000000008],[-86.011947999999961,79.440262000000075],[-85.990554999999972,79.444977000000108],[-85.975829999999917,79.449142000000109],[-85.964171999999962,79.454436999999984],[-85.901108000000022,79.493591000000038],[-85.887222000000008,79.505264000000068],[-85.885283999999956,79.51138300000008],[-85.893341000000021,79.523315000000082],[-85.89916999999997,79.536377000000073],[-85.896666999999979,79.549149000000114],[-85.893341000000021,79.554703000000075],[-85.887786999999946,79.56109600000002],[-85.847504000000015,79.596374999999966],[-85.840285999999992,79.601928999999927],[-85.828339000000028,79.607483000000116],[-85.781386999999995,79.615540000000124],[-85.743606999999997,79.61692800000003],[-85.681945999999925,79.613312000000121],[-85.639175000000023,79.604155999999989],[-85.623885999999914,79.599152000000061],[-85.591385000000002,79.585266000000047],[-85.531112999999948,79.559418000000107],[-85.485000999999954,79.518600000000049],[-85.402221999999995,79.473602000000142],[-85.306655999999919,79.428314],[-85.27806099999998,79.415543000000127],[-85.150557999999933,79.38220200000012],[-85.130279999999971,79.378586000000098],[-85.039718999999877,79.350815000000011],[-84.93249499999996,79.300262000000032],[-84.920273000000009,79.293320000000108],[-84.904175000000009,79.276657000000057],[-84.904175000000009,79.267761000000121],[-84.909728999999857,79.263046000000088],[-84.93110699999994,79.258331000000055],[-85.099990999999932,79.239426000000094],[-85.158889999999928,79.231933999999967],[-85.211394999999868,79.223311999999964],[-85.232772999999952,79.218872000000147],[-85.248046999999872,79.213042999999971],[-85.260009999999909,79.207763999999997],[-85.271941999999967,79.19720500000011],[-85.280563000000029,79.192200000000071],[-85.297226000000023,79.187195000000031],[-85.591385000000002,79.15415999999999],[-85.779998999999918,79.131088000000034],[-85.877212999999983,79.121642999999949],[-86.00389100000001,79.111374000000126],[-86.158889999999985,79.103316999999947],[-86.271392999999989,79.095534999999984],[-86.341674999999952,79.088318000000072],[-86.422501000000011,79.075546000000088],[-86.485549999999989,79.063309000000118],[-86.550827000000027,79.048874000000012],[-86.55999799999995,79.044434000000138],[-86.555557000000022,79.042480000000126],[-86.550827000000027,79.035538000000031],[-86.552490000000034,79.029434000000037],[-86.55999799999995,79.012206999999989],[-86.587783999999942,78.983597000000145],[-86.598891999999921,78.978317000000061],[-86.614440999999943,78.973312000000021],[-86.676940999999886,78.959717000000126],[-86.702224999999942,78.955261000000064],[-86.741378999999938,78.951934999999992],[-86.765015000000005,78.953598000000113],[-86.785004000000015,78.957213999999965],[-86.808334000000002,78.967209000000082],[-86.903335999999854,79.009430000000066],[-86.916396999999961,79.016663000000108],[-86.926391999999964,79.035812000000135],[-86.930556999999965,79.047760000000039],[-86.940551999999968,79.053589000000045],[-86.949158000000011,79.057205000000067],[-86.965285999999935,79.057480000000112],[-86.98332199999993,79.056641000000127],[-86.989989999999977,79.047760000000039],[-87.004456000000005,78.987198000000035],[-87.002501999999993,78.981369000000029],[-86.986937999999952,78.949707000000046],[-86.979995999999971,78.9433140000001],[-86.966948999999943,78.936371000000122],[-86.950835999999981,78.929428000000087],[-86.942764000000011,78.922485000000108],[-86.937774999999988,78.91693099999992],[-86.952498999999932,78.906647000000078],[-86.97084000000001,78.896103000000039],[-86.997498000000007,78.882477000000051],[-87.021666999999923,78.873032000000023],[-87.052490000000034,78.862762000000089],[-87.179442999999935,78.830551000000014],[-87.282775999999956,78.810257000000036],[-87.328063999999983,78.794708000000128],[-87.353881999999999,78.78414900000007],[-87.529998999999918,78.6869200000001],[-87.532776000000013,78.669983000000116],[-87.543059999999969,78.664703000000031],[-87.572783999999956,78.654433999999981],[-87.591949,78.649718999999948],[-87.615829000000019,78.645264000000111],[-87.663054999999986,78.642487000000017],[-87.684432999999956,78.644989000000123],[-87.872771999999941,78.694977000000051],[-87.937774999999874,78.738312000000064],[-87.953612999999962,78.74971000000005],[-87.959166999999979,78.755264000000068],[-87.993880999999931,78.79525799999999],[-88.003341999999918,78.807205000000124],[-88.00140399999998,78.824158000000011],[-87.985275000000001,78.957213999999965],[-87.981673999999884,78.960541000000092],[-87.968338000000017,78.966385000000116],[-87.894164999999987,78.979706000000078],[-87.833617999999944,78.992203000000075],[-87.81361400000003,78.99693300000007],[-87.794448999999986,79.006943000000035],[-87.728881999999942,79.069442999999978],[-87.724715999999944,79.075821000000076],[-87.733886999999982,79.081100000000049],[-87.746108999999933,79.086104999999918],[-87.752791999999999,79.085540999999978],[-87.772780999999952,79.080825999999945],[-87.806380999999931,79.06999200000007],[-87.849166999999966,79.054977000000122],[-87.872771999999941,79.045258000000103],[-87.883330999999998,79.039978000000076],[-87.894454999999994,79.028320000000008],[-87.890288999999996,79.021652000000074],[-87.899993999999992,79.011108000000036],[-87.929442999999992,79.006943000000035],[-88.000564999999995,79.00360100000006],[-88.032776000000013,79.003876000000105],[-88.061385999999914,79.005829000000006],[-88.093886999999938,79.004440000000045],[-88.162506000000008,78.990540000000124],[-88.202498999999932,78.976379000000122],[-88.21305799999999,78.966095000000109],[-88.215285999999935,78.960815000000025],[-88.216659999999933,78.948318000000029],[-88.229720999999984,78.802200000000084],[-88.224716000000001,78.78915399999994],[-88.22222899999997,78.783324999999934],[-88.218063000000029,78.776931999999988],[-88.201110999999969,78.757216999999969],[-88.132216999999969,78.68081699999999],[-88.044158999999922,78.658600000000092],[-88.02416999999997,78.656647000000135],[-88.010833999999932,78.652771000000087],[-87.993056999999965,78.645264000000111],[-87.982772999999952,78.639435000000105],[-87.908614999999998,78.596939000000077],[-87.894729999999981,78.584717000000126],[-87.890839000000028,78.578323000000069],[-87.896956999999873,78.566375999999934],[-87.908339999999953,78.548599000000081],[-87.984725999999966,78.492202999999961],[-88.011948000000018,78.481369000000086],[-88.055832000000009,78.472762999999986],[-88.205276000000026,78.452484000000084],[-88.234160999999972,78.453598000000056],[-88.249160999999958,78.456649999999968],[-88.389450000000011,78.521378000000027],[-88.559432999999899,78.604156000000046],[-88.574721999999952,78.607208000000128],[-88.723052999999993,78.615814000000057],[-88.788605000000018,78.612761999999975],[-88.804168999999945,78.609711000000118],[-88.746108999999933,78.535812000000078],[-88.725006000000008,78.524155000000121],[-88.659164000000033,78.491088999999988],[-88.595276000000013,78.459991000000002],[-88.5625,78.44470200000012],[-88.552215999999987,78.437484999999981],[-88.543883999999991,78.426086000000112],[-88.535552999999993,78.413040000000137],[-88.536117999999931,78.406937000000028],[-88.538054999999986,78.401382000000126],[-88.541381999999999,78.396652000000074],[-88.553054999999915,78.385544000000095],[-88.561110999999983,78.379425000000083],[-88.570556999999951,78.373871000000065],[-88.614715999999987,78.348327999999981],[-88.663329999999974,78.321381000000031],[-88.672501000000011,78.316085999999984],[-88.704177999999956,78.271103000000096],[-88.710555999999997,78.261107999999979],[-88.713897999999858,78.254715000000033],[-88.71556099999998,78.249146000000053],[-88.716110000000015,78.243042000000003],[-88.721114999999941,78.231093999999985],[-88.726105000000018,78.225266000000033],[-88.75140399999998,78.196930000000123],[-88.776672000000019,78.176085999999941],[-88.78443900000002,78.169983000000002],[-88.793334999999956,78.164429000000041],[-88.817779999999914,78.154434000000094],[-88.847777999999948,78.151382000000012],[-88.978881999999942,78.165817000000118],[-89.002791999999943,78.169434000000081],[-89.065001999999879,78.184418000000107],[-89.079726999999991,78.189147999999989],[-89.115828999999962,78.200821000000019],[-89.227492999999981,78.245254999999986],[-89.259170999999924,78.262771999999984],[-89.265014999999948,78.268326000000002],[-89.275283999999999,78.281936999999971],[-89.353881999999885,78.339705999999978],[-89.364440999999999,78.344147000000078],[-89.381103999999993,78.3477630000001],[-89.518341000000021,78.392212000000086],[-89.676665999999955,78.447478999999987],[-89.803878999999995,78.494431000000134],[-89.819457999999997,78.500549000000092],[-89.891113000000018,78.552764999999965],[-89.921660999999972,78.578048999999965],[-89.945830999999998,78.599425999999994],[-89.95695499999988,78.605255],[-89.980559999999969,78.609711000000118],[-90.014724999999885,78.609421000000111],[-90.051391999999964,78.605820000000051],[-90.088332999999977,78.595825000000104],[-90.092498999999975,78.589980999999909],[-90.09973100000002,78.555252000000053],[-90.100829999999974,78.549713000000054],[-90.064712999999927,78.513321000000076],[-89.985000999999954,78.43609600000002],[-89.960555999999997,78.432480000000112],[-89.936110999999983,78.430267000000015],[-89.910004000000015,78.426086000000112],[-89.869995000000017,78.417755],[-89.80972300000002,78.404709000000082],[-89.785278000000005,78.398041000000092],[-89.774445000000014,78.39387499999998],[-89.748046999999929,78.380264000000011],[-89.615554999999858,78.300262000000032],[-89.606109999999944,78.293319999999994],[-89.461670000000026,78.17553700000002],[-89.455841000000021,78.169983000000002],[-89.452498999999989,78.162491000000045],[-89.461670000000026,78.158599999999979],[-89.476668999999958,78.153869999999984],[-89.507781999999963,78.149994000000106],[-89.530288999999982,78.148330999999985],[-89.549437999999952,78.148605000000089],[-89.563048999999921,78.149719000000061],[-89.59584000000001,78.156937000000084],[-89.61860699999994,78.163040000000024],[-89.631942999999978,78.168594000000041],[-89.639724999999942,78.173309000000074],[-89.644164999999987,78.179703000000075],[-89.646118000000001,78.184707999999944],[-89.646118000000001,78.19720500000011],[-89.64805599999994,78.202209000000096],[-89.654174999999952,78.209427000000119],[-89.657226999999978,78.212203999999986],[-89.673888999999974,78.217209000000082],[-89.700835999999981,78.219147000000021],[-89.748885999999914,78.217209000000082],[-89.783324999999934,78.214431999999988],[-89.847778000000005,78.213042999999971],[-89.886948000000018,78.215271000000087],[-89.911117999999988,78.218872000000147],[-89.929169000000002,78.223038000000088],[-89.955276000000026,78.233322000000101],[-89.960281000000009,78.238311999999951],[-89.961945000000014,78.243590999999924],[-89.959441999999967,78.254439999999988],[-89.955001999999922,78.260544000000039],[-89.980285999999921,78.27777100000003],[-90.023330999999985,78.298035000000027],[-90.060271999999998,78.308029000000033],[-90.172500999999954,78.331100000000049],[-90.186110999999926,78.333327999999995],[-90.213622999999984,78.335265999999933],[-90.242492999999854,78.336105000000089],[-90.27416999999997,78.334991000000116],[-90.34056099999998,78.331100000000049],[-90.411391999999921,78.324432000000058],[-90.478881999999999,78.321106000000043],[-90.507781999999963,78.320540999999992],[-90.59445199999999,78.322768999999937],[-90.620269999999948,78.325546000000031],[-90.667770000000019,78.32748399999997],[-90.729445999999996,78.326096000000064],[-90.744445999999982,78.323043999999982],[-90.748610999999983,78.320267000000058],[-90.73721299999994,78.314423000000033],[-90.715560999999923,78.309143000000006],[-90.622771999999941,78.291091999999992],[-90.598343,78.287490999999932],[-90.544998000000021,78.283051000000114],[-90.46166999999997,78.27887000000004],[-90.410277999999948,78.276657000000057],[-90.363327000000027,78.256942999999978],[-90.273894999999982,78.192200000000071],[-90.267501999999922,78.18664600000011],[-90.268889999999999,78.182755000000043],[-90.272781000000009,78.17692599999998],[-90.293883999999991,78.159988000000112],[-90.301102000000014,78.15525800000006],[-90.330291999999986,78.146103000000039],[-90.353881999999942,78.143326000000116],[-90.433884000000035,78.136383000000137],[-90.465012000000002,78.135268999999937],[-90.497771999999941,78.134995000000004],[-90.624434999999949,78.134430000000009],[-90.711120999999991,78.135818000000086],[-90.967223999999987,78.142761000000064],[-91.021392999999989,78.146103000000039],[-91.039718999999991,78.150269000000094],[-91.238387999999986,78.166594999999973],[-91.326674999999966,78.168594000000041],[-91.489715999999873,78.17692599999998],[-91.539992999999924,78.181366000000025],[-91.613891999999964,78.191925000000083],[-91.661941999999897,78.199707000000046],[-91.707229999999981,78.209427000000119],[-91.724715999999944,78.214706000000092],[-91.807770000000005,78.23275799999999],[-91.831389999999999,78.23692299999999],[-91.857497999999964,78.239700000000084],[-91.887511999999901,78.239425999999924],[-91.920273000000009,78.237198000000149],[-91.946380999999974,78.23275799999999],[-91.963332999999977,78.227768000000083],[-91.974441999999954,78.223312000000021],[-91.986114999999984,78.214706000000092],[-92.003066999999987,78.209717000000126],[-92.031113000000005,78.207488999999953],[-92.058334000000002,78.208878000000141],[-92.083327999999995,78.212494000000049],[-92.105559999999969,78.217758000000003],[-92.308333999999945,78.278594999999996],[-92.537216000000001,78.310531999999967],[-92.556655999999975,78.314696999999967],[-92.589447000000007,78.323608000000092],[-92.949431999999888,78.43193100000002],[-92.96665999999999,78.44358799999992],[-92.982498000000021,78.454436999999984],[-92.98721299999994,78.46026599999999],[-92.987502999999947,78.465546000000074],[-92.978881999999942,78.483322000000044],[-92.96665999999999,78.488586000000055],[-92.863891999999964,78.505264000000125],[-92.848617999999988,78.505554000000132],[-92.690551999999968,78.49581900000004],[-92.646392999999932,78.487487999999928],[-92.621933000000013,78.487198000000092],[-92.600554999999986,78.488037000000077],[-92.576675000000023,78.490540000000067],[-92.520279000000016,78.498596000000134],[-92.493606999999997,78.503325999999959],[-92.48721299999994,78.507767000000058],[-92.487777999999992,78.509430000000009],[-92.497771999999998,78.513046000000031],[-92.563323999999966,78.520537999999988],[-92.529448999999943,78.521378000000027],[-92.24722300000002,78.52777100000003],[-92.216659999999933,78.528046000000018],[-92.070847000000015,78.525543000000027],[-92.011123999999938,78.526657],[-91.949996999999939,78.530273000000079],[-91.918610000000001,78.534424000000001],[-91.726395000000025,78.530548000000067],[-91.682495000000017,78.52609300000006],[-91.660827999999981,78.526932000000045],[-91.646117999999944,78.529984000000127],[-91.636123999999938,78.533600000000035],[-91.632492000000013,78.539429000000041],[-91.635284000000013,78.546097000000032],[-91.647506999999962,78.560257000000092],[-91.657500999999968,78.563873000000001],[-91.670272999999952,78.56581100000011],[-91.945267000000001,78.572220000000129],[-92.151397999999915,78.579437000000041],[-92.351943999999946,78.586928999999998],[-92.557220000000029,78.594711000000132],[-92.58555599999994,78.596099999999979],[-92.604720999999984,78.598602000000028],[-92.697768999999994,78.614151000000106],[-92.733063000000016,78.62359600000002],[-92.757781999999963,78.628036000000009],[-92.806106999999997,78.6336060000001],[-92.828888000000006,78.631927000000076],[-92.907227000000034,78.62303200000008],[-92.935546999999985,78.618866000000139],[-92.935821999999973,78.614990000000091],[-92.941665999999998,78.608597000000145],[-92.955841000000021,78.603867000000093],[-92.991668999999945,78.599716000000001],[-93.176940999999999,78.586380000000077],[-93.210555999999997,78.584152000000074],[-93.242492999999968,78.582763999999997],[-93.271118000000001,78.584152000000074],[-93.28443900000002,78.587494000000049],[-93.434157999999968,78.6336060000001],[-93.771392999999989,78.750549000000035],[-93.813613999999973,78.765823000000069],[-93.802779999999927,78.770263999999997],[-93.684158000000025,78.782486000000006],[-93.650283999999999,78.784714000000122],[-93.589721999999995,78.783599999999979],[-93.534438999999963,78.778870000000097],[-93.429169000000002,78.767212000000086],[-93.376388999999961,78.760544000000095],[-93.351394999999968,78.756104000000107],[-93.299728000000016,78.748596000000077],[-93.24722300000002,78.741928000000087],[-93.190551999999968,78.736374000000126],[-93.163329999999974,78.735535000000141],[-93.09973100000002,78.737198000000092],[-93.054992999999968,78.739974999999959],[-93.04222099999987,78.745255000000043],[-93.039963,78.750000000000057],[-93.039443999999946,78.751099000000067],[-93.035277999999948,78.761932000000002],[-93.037780999999939,78.765823000000069],[-93.118880999999988,78.772491000000059],[-93.170273000000009,78.77998400000007],[-93.271941999999967,78.796097000000145],[-93.346389999999928,78.809982000000048],[-93.369155999999975,78.816086000000041],[-93.391388000000006,78.820831000000112],[-93.416397000000018,78.824996999999996],[-93.560546999999929,78.833328000000108],[-93.589721999999995,78.834717000000069],[-93.650283999999999,78.835541000000035],[-93.746947999999975,78.834991000000002],[-93.779723999999987,78.833603000000096],[-93.842772999999966,78.832489000000123],[-93.874709999999936,78.833603000000096],[-93.892501999999979,78.838042999999914],[-93.902221999999995,78.842484000000013],[-93.906386999999995,78.849152000000004],[-93.917495999999971,78.860535000000027],[-93.939437999999939,78.871643000000006],[-93.959441999999967,78.878310999999997],[-94.052490000000034,78.902481000000023],[-94.09584000000001,78.911102000000085],[-94.253066999999987,78.956940000000031],[-94.269729999999981,78.962204000000042],[-94.282227000000034,78.968872000000033],[-94.287506000000008,78.981093999999985],[-94.288605000000018,78.986374000000069],[-94.241378999999881,78.996643000000063],[-94.005279999999914,79.029709000000025],[-93.910277999999948,79.041930999999977],[-93.878051999999968,79.042480000000126],[-93.854720999999927,79.040543000000071],[-93.813889000000017,79.035538000000031],[-93.784164000000033,79.038040000000137],[-93.601943999999889,79.068328999999949],[-93.472778000000005,79.108871000000136],[-93.455565999999976,79.11970500000001],[-93.452498999999989,79.125534000000016],[-93.456664999999987,79.132202000000007],[-93.463333000000034,79.136932000000058],[-93.46055599999994,79.142761000000064],[-93.443054000000018,79.148041000000092],[-93.36610399999995,79.161377000000073],[-93.329726999999934,79.164428999999984],[-93.294997999999907,79.166931000000091],[-93.259170999999924,79.167480000000012],[-93.227782999999931,79.166931000000091],[-93.003066999999987,79.154434000000094],[-92.895553999999947,79.143875000000037],[-92.869720000000029,79.139708999999925],[-92.841109999999958,79.141098000000113],[-92.816101000000003,79.145537999999988],[-92.801392000000021,79.150269000000094],[-92.7933349999999,79.155823000000055],[-92.780288999999868,79.161102000000028],[-92.746947999999975,79.164153999999996],[-92.506957999999941,79.158324999999991],[-92.478606999999954,79.155823000000055],[-92.407500999999911,79.146102999999982],[-92.309433000000013,79.145264000000054],[-92.243057000000022,79.146941999999967],[-91.89805599999994,79.161377000000073],[-91.691939999999988,79.173309000000017],[-91.439162999999951,79.183593999999971],[-91.205275999999969,79.191925000000026],[-91.009170999999867,79.203048999999965],[-90.811934999999949,79.208038000000101],[-90.601669000000015,79.214157000000114],[-90.564162999999951,79.215546000000131],[-90.528335999999911,79.21748400000007],[-90.492767000000015,79.220825000000104],[-90.390839000000028,79.236374000000012],[-90.368331999999953,79.243042000000003],[-90.36326600000001,79.246811000000093],[-90.382216999999969,79.2494200000001],[-90.405563000000029,79.251938000000109],[-90.472778000000005,79.250823999999909],[-90.502227999999945,79.2494200000001],[-90.732223999999974,79.238312000000121],[-90.885833999999988,79.244141000000127],[-91.139998999999932,79.244431000000134],[-91.198883000000023,79.241364000000033],[-91.47084000000001,79.228867000000037],[-91.861114999999927,79.215271000000087],[-92.026397999999972,79.207489000000123],[-92.053604000000007,79.205261000000007],[-92.087783999999999,79.204163000000108],[-92.180832000000009,79.203048999999965],[-92.213897999999972,79.204163000000108],[-92.238892000000021,79.205551000000014],[-92.510284000000013,79.232757999999933],[-92.621933000000013,79.244431000000134],[-92.676666000000012,79.251389000000131],[-92.694716999999969,79.257217000000082],[-92.693053999999961,79.262207000000103],[-92.625548999999978,79.295258000000047],[-92.603881999999942,79.300812000000064],[-92.571944999999971,79.304153000000099],[-92.523330999999928,79.307755000000043],[-92.454453000000001,79.308594000000028],[-92.394729999999981,79.308594000000028],[-92.303329000000019,79.306366000000082],[-92.255004999999983,79.304428000000144],[-92.131377999999984,79.299988000000099],[-91.994995000000017,79.295258000000047],[-91.961944999999957,79.29553199999998],[-91.932494999999903,79.297211000000004],[-91.894164999999987,79.301085999999998],[-91.865279999999927,79.305542000000116],[-91.829452999999944,79.314697000000137],[-91.795546999999885,79.319153000000085],[-91.727492999999924,79.326096000000064],[-91.658889999999985,79.329987000000131],[-91.589721999999938,79.332214000000022],[-91.528884999999946,79.333054000000061],[-91.493880999999874,79.33248900000001],[-91.467498999999975,79.333602999999982],[-91.267776000000026,79.345824999999991],[-91.231673999999941,79.348037999999917],[-91.15834000000001,79.356093999999985],[-91.119995000000017,79.386383000000023],[-91.129165999999884,79.390823000000069],[-91.156386999999995,79.394440000000031],[-91.191100999999946,79.393326000000059],[-91.230559999999969,79.389434999999992],[-91.422225999999966,79.374146000000053],[-91.508621000000005,79.373306000000014],[-91.580841000000021,79.369141000000013],[-91.702224999999942,79.361374000000069],[-91.729720999999984,79.359421000000111],[-91.766662999999994,79.353317000000118],[-91.788329999999974,79.346375000000023],[-91.835281000000009,79.340820000000122],[-91.864715999999987,79.339431999999988],[-91.897781000000009,79.339157],[-92.150832999999977,79.344437000000084],[-92.18110699999994,79.345824999999991],[-92.210006999999962,79.348327999999924],[-92.290833000000021,79.358031999999923],[-92.351943999999946,79.362761999999975],[-92.41194200000001,79.36442599999998],[-92.510009999999966,79.364150999999993],[-92.561934999999949,79.365814000000057],[-92.571670999999867,79.37052900000009],[-92.577498999999989,79.379150000000038],[-92.567504999999869,79.384155000000078],[-92.479996000000028,79.404434000000037],[-92.462509000000011,79.406937000000028],[-92.41194200000001,79.411652000000061],[-92.31361400000003,79.418593999999928],[-92.243880999999988,79.426651000000106],[-92.228607000000011,79.431366000000139],[-92.227782999999931,79.435257000000036],[-92.228881999999999,79.438309000000118],[-92.234726000000023,79.441649999999981],[-92.241942999999935,79.444138000000123],[-92.259170999999981,79.446930000000066],[-92.283324999999991,79.449142000000109],[-92.33805799999999,79.453049000000078],[-92.419723999999974,79.457214000000079],[-92.580841000000021,79.452209000000039],[-92.605270000000019,79.450546000000088],[-92.634170999999981,79.445816000000036],[-92.679992999999968,79.437194999999974],[-92.774170000000026,79.417755],[-92.803054999999972,79.413040000000137],[-92.854445999999996,79.407760999999994],[-92.876098999999954,79.407760999999994],[-92.901671999999962,79.408874999999966],[-92.929442999999935,79.412490999999989],[-92.950835999999981,79.416382000000056],[-92.973327999999981,79.423598999999967],[-93.029175000000009,79.46026599999999],[-93.032775999999956,79.465546000000074],[-93.034728999999913,79.471649000000014],[-93.044723999999917,79.476089000000002],[-93.063048999999921,79.48054500000012],[-93.09056099999998,79.482208000000071],[-93.107223999999974,79.482208000000071],[-93.126662999999951,79.479980000000069],[-93.143889999999885,79.475815000000068],[-93.146666999999979,79.469986000000063],[-93.144454999999994,79.463882000000069],[-93.125,79.450821000000133],[-93.105834999999956,79.43942300000009],[-93.081389999999942,79.426376000000062],[-93.061110999999983,79.415817000000061],[-93.033614999999941,79.404434000000037],[-93.018889999999999,79.399719000000005],[-93.009170999999981,79.395263999999997],[-93.006957999999941,79.389160000000118],[-93.008347000000015,79.388046000000145],[-93.009445000000028,79.387206999999989],[-93.021392999999989,79.382751000000098],[-93.125,79.359711000000118],[-93.264175000000023,79.353592000000106],[-93.312499999999943,79.372757000000092],[-93.251113999999973,79.40498400000007],[-93.236114999999984,79.415268000000083],[-93.229720999999984,79.425537000000134],[-93.231383999999991,79.429977000000122],[-93.235001000000011,79.435257000000036],[-93.252501999999993,79.441924999999969],[-93.275833000000034,79.446640000000002],[-93.293334999999956,79.44802900000002],[-93.320007000000032,79.448317999999972],[-93.338057999999933,79.447205000000054],[-93.354445999999996,79.441360000000145],[-93.424437999999896,79.405258000000003],[-93.433059999999898,79.387496999999996],[-93.485275000000001,79.354156000000046],[-93.641387999999893,79.31164600000011],[-93.757507000000032,79.283600000000035],[-93.801940999999886,79.274704000000099],[-93.869995000000017,79.263885000000073],[-93.906661999999983,79.260544000000039],[-93.969726999999978,79.25749200000007],[-93.99722300000002,79.256942999999978],[-94.047225999999966,79.25749200000007],[-94.206954999999994,79.272490999999945],[-94.212219000000005,79.276657000000057],[-94.162780999999995,79.322220000000016],[-94.14805599999994,79.333602999999982],[-94.119720000000029,79.344711000000018],[-94.088608000000022,79.353592000000106],[-94.056380999999931,79.379700000000071],[-94.245834000000002,79.404160000000104],[-94.366652999999985,79.419708000000128],[-94.386123999999938,79.421371000000022],[-94.494720000000029,79.421371000000022],[-94.509170999999981,79.416382000000056],[-94.5,79.379700000000071],[-94.483063000000016,79.375809000000004],[-94.46305799999999,79.379150000000038],[-94.454453000000001,79.385544000000095],[-94.432769999999948,79.385544000000095],[-94.398055999999997,79.375259000000142],[-94.389998999999989,79.368866000000025],[-94.506667999999991,79.337204000000042],[-94.538054999999929,79.333602999999982],[-94.573623999999938,79.331100000000049],[-94.638900999999976,79.33248900000001],[-94.669997999999964,79.331375000000037],[-94.697495000000004,79.326660000000004],[-94.720001000000025,79.321655000000135],[-94.765015000000005,79.31164600000011],[-94.952498999999932,79.289978000000019],[-94.970000999999968,79.284714000000008],[-94.972777999999892,79.273880000000133],[-94.977218999999991,79.270264000000111],[-94.985824999999977,79.267487000000017],[-95.018616000000009,79.266936999999984],[-95.087555000000009,79.27075200000013],[-95.161666999999966,79.281097000000045],[-95.304992999999968,79.325821000000019],[-95.318619000000012,79.332214000000022],[-95.32028200000002,79.335266000000104],[-95.294448999999986,79.336655000000121],[-95.285004000000015,79.353042999999957],[-95.295837000000006,79.379425000000026],[-95.394164999999987,79.387496999999996],[-95.477218999999991,79.380814000000044],[-95.655563000000029,79.391663000000108],[-95.753341999999975,79.404434000000037],[-95.771666999999979,79.409714000000065],[-95.778609999999958,79.413040000000137],[-95.779449,79.425812000000121],[-95.736388999999974,79.537491000000045],[-95.657500999999968,79.553314000000114],[-95.636123999999938,79.557479999999998],[-95.565552000000025,79.55914300000012],[-95.309722999999963,79.569153000000028],[-95.170273000000009,79.575272000000041],[-95.051665999999955,79.582214000000135],[-94.839995999999871,79.597214000000122],[-94.802489999999977,79.600540000000137],[-94.699432000000002,79.612198000000149],[-94.40695199999999,79.667755000000113],[-94.360275000000001,79.677765000000022],[-94.329453000000001,79.688309000000061],[-94.282776000000013,79.757492000000013],[-94.28694200000001,79.762772000000041],[-94.298339999999996,79.76887499999998],[-94.318344000000025,79.778595000000053],[-94.335281000000009,79.780823000000055],[-94.361664000000019,79.781937000000028],[-94.384170999999981,79.778046000000131],[-94.577498999999932,79.735809000000074],[-94.592498999999975,79.731094000000041],[-94.596663999999976,79.725815000000011],[-94.601395000000025,79.713882000000012],[-94.608886999999925,79.708327999999995],[-94.748336999999935,79.678314],[-94.776671999999962,79.673598999999967],[-94.814437999999939,79.670258000000103],[-94.878325999999959,79.66804500000012],[-94.946380999999974,79.666930999999977],[-94.985001000000011,79.664993000000038],[-95.091675000000009,79.656936999999971],[-95.153610000000015,79.647491000000002],[-95.190825999999959,79.644149999999968],[-95.355559999999969,79.638321000000133],[-95.419998000000021,79.637496999999996],[-95.485274999999945,79.638046000000088],[-95.740828999999906,79.641373000000044],[-95.799437999999952,79.642487000000017],[-95.853332999999964,79.646103000000096],[-95.901107999999965,79.654433999999981],[-95.933060000000012,79.664429000000098],[-95.954726999999991,79.671920999999998],[-95.980835000000013,79.6827550000001],[-96.032227000000034,79.706940000000088],[-96.282501000000025,79.798874000000012],[-96.335555999999997,79.815536000000009],[-96.360824999999977,79.82249500000006],[-96.384170999999924,79.826385000000073],[-96.490554999999972,79.836104999999975],[-96.575561999999934,79.849990999999932],[-96.589447000000007,79.852478000000019],[-96.610549999999989,79.877762000000018],[-96.61500499999994,79.883881000000031],[-96.609436000000017,79.888596000000064],[-96.573623999999995,79.900269000000094],[-96.458618000000001,79.914429000000041],[-96.422775000000001,79.916091999999935],[-96.391387999999949,79.913879000000009],[-96.385009999999909,79.909714000000008],[-96.37777699999998,79.899155000000121],[-96.194716999999912,79.901382000000012],[-96.158889999999872,79.903046000000018],[-96.138061999999991,79.906372000000033],[-96.147780999999952,79.912491000000102],[-96.164718999999991,79.917205999999908],[-96.23332199999993,79.933043999999938],[-96.262512000000015,79.936920000000043],[-96.325561999999991,79.941360000000032],[-96.399170000000026,79.941086000000098],[-96.492766999999958,79.943314000000044],[-96.52416999999997,79.945251000000098],[-96.556655999999975,79.948868000000061],[-96.580565999999976,79.952773999999977],[-96.595839999999953,79.956940000000031],[-96.606658999999922,79.962204000000042],[-96.675003000000004,80.008331000000055],[-96.679442999999992,80.014435000000105],[-96.661941999999954,80.019989000000123],[-96.628052000000025,80.024429000000112],[-96.482772999999952,80.041091999999992],[-96.419158999999922,80.041930999999977],[-96.394164999999873,80.043869000000086],[-96.391677999999956,80.045822000000044],[-96.40583799999996,80.048325000000034],[-96.428878999999995,80.050537000000077],[-96.479172000000005,80.053864000000033],[-96.512222000000008,80.054977000000122],[-96.548614999999927,80.053314],[-96.582503999999915,80.048598999999967],[-96.599166999999909,80.044434000000138],[-96.627776999999924,80.039429000000098],[-96.676101999999958,80.041930999999977],[-96.698882999999967,80.046936000000017],[-96.737503000000004,80.058029000000033],[-96.781676999999945,80.076660000000061],[-96.801391999999964,80.086929000000055],[-96.802779999999984,80.090820000000122],[-96.748885999999857,80.134720000000129],[-96.734436000000017,80.139709000000096],[-96.711120999999935,80.14498900000001],[-96.675827000000027,80.145538000000101],[-96.410003999999958,80.13888500000013],[-96.381103999999937,80.13638300000008],[-96.351395000000025,80.132476999999994],[-96.322784000000013,80.127472000000125],[-96.163054999999872,80.093048000000067],[-96.077788999999996,80.078049000000021],[-96.017776000000026,80.070830999999998],[-95.847777999999892,80.053314],[-95.545836999999949,80.040543000000071],[-95.418883999999935,80.036652000000004],[-95.325011999999958,80.03387500000008],[-95.193877999999984,80.03137200000009],[-95.06361400000003,80.029984000000013],[-95.038054999999986,80.031936999999971],[-95.011672999999917,80.038879000000065],[-94.988892000000021,80.04304500000012],[-94.951110999999855,80.045532000000037],[-94.921386999999925,80.046371000000022],[-94.887512000000015,80.045822000000044],[-94.852782999999874,80.044144000000131],[-94.825835999999924,80.040543000000071],[-94.717772999999966,80.020828000000051],[-94.607498000000021,80.002777000000094],[-94.569457999999941,79.997208000000114],[-94.416945999999996,79.978867000000093],[-94.383620999999948,79.982482999999945],[-94.387786999999946,79.987761999999918],[-94.413894999999911,79.997757000000036],[-94.451674999999966,80.009720000000073],[-94.525557999999933,80.02276599999999],[-94.62110899999999,80.04304500000012],[-94.67111199999988,80.056931000000134],[-94.74888599999997,80.07998699999996],[-94.728881999999942,80.105545000000063],[-94.632766999999944,80.131088000000034],[-94.611937999999952,80.135544000000095],[-94.510558999999944,80.154434000000037],[-94.480559999999855,80.15914900000007],[-94.416396999999961,80.163605000000018],[-94.387222000000008,80.163315000000011],[-94.285827999999924,80.164993000000095],[-94.121108999999933,80.17025799999999],[-94.091675000000009,80.172485000000052],[-94.083892999999989,80.175537000000134],[-94.096389999999985,80.179153000000042],[-94.119995000000017,80.183044000000109],[-94.184433000000013,80.186646000000053],[-94.217772999999966,80.18803400000013],[-94.354171999999949,80.190811000000053],[-94.485000999999954,80.209991000000002],[-94.642226999999991,80.199996999999996],[-94.649993999999879,80.194427000000076],[-94.704453000000001,80.178040000000124],[-94.748336999999935,80.169434000000024],[-94.816956000000005,80.159714000000122],[-95.033324999999991,80.134995000000004],[-95.104996000000028,80.128860000000032],[-95.263625999999988,80.118317000000104],[-95.333618000000001,80.118042000000059],[-95.367767000000015,80.118317000000104],[-95.420273000000009,80.122482000000105],[-95.658889999999985,80.168593999999985],[-95.683884000000035,80.173874000000012],[-95.695830999999998,80.178314000000057],[-95.692215000000033,80.181090999999981],[-95.673889000000031,80.186371000000008],[-95.621658000000025,80.195251000000042],[-95.580841000000021,80.199706999999989],[-95.542770000000019,80.202209000000039],[-95.471114999999941,80.203598000000056],[-95.404175000000009,80.203598000000056],[-95.370543999999995,80.204712000000029],[-95.327788999999882,80.208603000000096],[-95.295837000000006,80.21276899999998],[-95.268341000000021,80.218047999999953],[-95.254455999999948,80.222214000000065],[-95.235000999999897,80.232208000000071],[-95.229996000000028,80.236098999999967],[-95.235000999999897,80.241088999999988],[-95.243331999999953,80.243591000000094],[-95.258895999999993,80.244980000000055],[-95.278060999999923,80.243866000000082],[-95.287216000000001,80.241088999999988],[-95.325561999999991,80.232208000000071],[-95.39834599999989,80.223602000000142],[-95.461394999999868,80.219986000000119],[-95.496947999999975,80.219436999999971],[-95.548339999999996,80.220261000000107],[-95.566955999999948,80.224152000000004],[-95.577498999999989,80.229430999999977],[-95.581389999999885,80.235535000000027],[-95.586394999999925,80.240540000000067],[-95.601944000000003,80.242203000000018],[-95.645844000000011,80.239700000000028],[-95.69027699999998,80.232483000000116],[-95.71055599999994,80.227768000000083],[-95.884170999999981,80.199142000000109],[-95.922500999999954,80.194138000000009],[-95.93360899999999,80.194427000000076],[-95.98443599999996,80.200271999999984],[-96.216659999999877,80.235809000000131],[-96.43499799999995,80.269714000000022],[-96.46444699999995,80.313034000000016],[-96.613892000000021,80.329987000000131],[-96.645844000000011,80.333054000000004],[-96.670272999999952,80.336928999999998],[-96.681670999999881,80.342209000000082],[-96.676101999999958,80.346939000000134],[-96.658051,80.352203000000088],[-96.634170999999981,80.357208000000128],[-96.604720999999984,80.362198000000035],[-96.592223999999987,80.362761999999975],[-96.440552000000025,80.356644000000017],[-96.408889999999985,80.353592000000106],[-96.363892000000021,80.342209000000082],[-96.254729999999938,80.335541000000092],[-96.232223999999974,80.334717000000126],[-96.216400000000021,80.338042999999971],[-96.221664000000033,80.343323000000055],[-96.255004999999983,80.354156000000046],[-96.277221999999938,80.359985000000052],[-96.280838000000017,80.36192299999999],[-96.268065999999919,80.367477000000008],[-96.240554999999972,80.37303200000008],[-96.080841000000021,80.387206999999989],[-96.047774999999888,80.389984000000084],[-95.978606999999954,80.388596000000007],[-95.732497999999907,80.372757000000036],[-95.697495000000004,80.369979999999941],[-95.636948000000018,80.364150999999936],[-95.61221299999994,80.360260000000039],[-95.566955999999948,80.352203000000088],[-95.542770000000019,80.345824999999934],[-95.513900999999976,80.340820000000065],[-95.48832699999997,80.338042999999971],[-95.460280999999952,80.336928999999998],[-95.440826000000015,80.338318000000015],[-95.436935000000005,80.341095000000109],[-95.453338999999971,80.373306000000014],[-95.458617999999944,80.378586000000041],[-95.468063000000029,80.38220200000012],[-95.498610999999983,80.383880999999974],[-95.564162999999951,80.385817999999972],[-95.624999999999943,80.391663000000108],[-95.653885000000002,80.396652000000074],[-95.694992000000013,80.406097000000102],[-95.721664000000033,80.412765999999976],[-95.852218999999991,80.454163000000051],[-95.957229999999925,80.504990000000134],[-96.020553999999947,80.567490000000078],[-96.027221999999995,80.574158000000068],[-96.024445000000014,80.578323000000069],[-96.006957999999884,80.582763999999941],[-95.979996000000028,80.584717000000069],[-95.941665999999941,80.58638000000002],[-95.671660999999972,80.584717000000069],[-95.536391999999978,80.590820000000008],[-95.498046999999872,80.59248400000007],[-95.423614999999984,80.593597000000102],[-95.318343999999911,80.590820000000008],[-95.246658000000025,80.58998100000008],[-95.172226000000023,80.59137000000004],[-95.132216999999969,80.593872000000147],[-95.067229999999995,80.601379000000065],[-95.030837999999903,80.603317000000004],[-94.99499499999996,80.603043000000071],[-94.962783999999942,80.599715999999944],[-94.902495999999985,80.586655000000007],[-94.846953999999926,80.574706999999989],[-94.823623999999995,80.569716999999969],[-94.77194199999991,80.561371000000065],[-94.752791999999943,80.559982000000048],[-94.696654999999964,80.55693100000002],[-94.658614999999998,80.555817000000047],[-94.554992999999911,80.55442800000003],[-94.374999999999943,80.557205000000124],[-94.230835000000013,80.556365999999969],[-94.010559000000001,80.54942299999999],[-93.968886999999995,80.540817000000061],[-93.968886999999995,80.536925999999994],[-93.966110000000015,80.530823000000055],[-93.958343999999954,80.52609300000006],[-93.89916999999997,80.519150000000025],[-93.866942999999992,80.518326000000059],[-93.839447000000007,80.518599999999992],[-93.786391999999978,80.525543000000027],[-93.783066000000019,80.529709000000082],[-93.790832999999964,80.534424000000115],[-93.810546999999985,80.541367000000093],[-93.894729999999868,80.565811000000053],[-93.949158000000011,80.578048999999908],[-93.973617999999931,80.581939999999975],[-94.005004999999983,80.585266000000047],[-94.093612999999948,80.593322999999998],[-94.308334000000002,80.606368999999972],[-94.437774999999988,80.605545000000006],[-94.457503999999915,80.600265999999976],[-94.484726000000023,80.598328000000038],[-94.524170000000026,80.598328000000038],[-94.543335000000013,80.599715999999944],[-94.561935000000005,80.605819999999994],[-94.660278000000005,80.651382000000012],[-94.669448999999929,80.65776100000005],[-94.672775000000001,80.663879000000009],[-94.670273000000009,80.669708000000014],[-94.662215999999944,80.675262000000032],[-94.650283999999999,80.681366000000082],[-94.628326000000015,80.685806000000071],[-94.596953999999982,80.690536000000122],[-94.553604000000007,80.694977000000051],[-94.514724999999942,80.696365000000128],[-94.439163000000008,80.697479000000101],[-94.331116000000009,80.693863000000022],[-94.231673999999884,80.692200000000128],[-94.199722000000008,80.693039000000056],[-94.117492999999968,80.698593000000074],[-94.088332999999977,80.701660000000004],[-94.075561999999991,80.706099999999992],[-94.076950000000011,80.709152000000131],[-94.086394999999982,80.713043000000027],[-94.108337000000006,80.718872000000033],[-94.140288999999996,80.721924000000115],[-94.304442999999935,80.733871000000079],[-94.423049999999876,80.734985000000052],[-94.449158000000011,80.730270000000019],[-94.491104000000007,80.726928999999984],[-94.549438000000009,80.724991000000045],[-94.65972899999997,80.72526600000009],[-94.694716999999969,80.726653999999996],[-94.722778000000005,80.728592000000106],[-94.895554000000004,80.747757000000092],[-95.035827999999867,80.768326000000002],[-95.037505999999951,80.771378000000141],[-95.03694200000001,80.776093000000003],[-95.033889999999985,80.778046000000131],[-95.025283999999999,80.801651000000106],[-95.243056999999965,80.787766000000033],[-95.282501000000025,80.786101999999971],[-95.334166999999923,80.788879000000065],[-95.442764000000011,80.79971299999994],[-95.475554999999986,80.803040000000067],[-95.501113999999973,80.806931000000134],[-95.524170000000026,80.812484999999981],[-95.534164000000033,80.818878000000097],[-95.526397999999972,80.833328000000051],[-95.500838999999871,80.838318000000072],[-95.44027699999998,80.846100000000035],[-95.371384000000035,80.853316999999947],[-95.212783999999999,80.868317000000104],[-95.170837000000006,80.875809000000061],[-95.150832999999921,80.881088000000034],[-95.146666999999923,80.883881000000031],[-95.170546999999999,80.884720000000016],[-95.300827000000027,80.885269000000108],[-95.41332999999986,80.885269000000108],[-95.468886999999995,80.890273999999977],[-95.481383999999991,80.894714000000022],[-95.484726000000023,80.899155000000121],[-95.474166999999966,80.904434000000094],[-95.460280999999952,80.909713999999951],[-95.422775000000001,80.920821999999987],[-95.334166999999923,80.934708000000114],[-95.311934999999949,80.939147999999989],[-95.283614999999941,80.949996999999996],[-95.267501999999979,80.96138000000002],[-95.259734999999921,80.973602000000028],[-95.257506999999976,80.979431000000034],[-95.259170999999981,80.984984999999995],[-95.255004999999983,80.996643000000063],[-95.241104000000007,81.006103999999993],[-95.220839999999896,81.011382999999967],[-95.183060000000012,81.019714000000079],[-94.943329000000006,81.048874000000126],[-94.814163000000008,81.054153000000099],[-94.663054999999986,81.048598999999911],[-94.572783999999899,81.038879000000009],[-94.546111999999994,81.033325000000048],[-94.493880999999988,81.017487000000017],[-94.495543999999995,80.995819000000097],[-94.504181000000017,80.990265000000079],[-94.509170999999981,80.984711000000061],[-94.508057000000008,80.979431000000034],[-94.492767000000015,80.972763000000043],[-94.472778000000005,80.969146999999964],[-94.434158000000025,80.965546000000131],[-94.408614999999941,80.965546000000131],[-94.365554999999972,80.968872000000147],[-94.344726999999978,80.974152000000061],[-94.330001999999865,80.979706000000022],[-94.143616000000009,81.015823000000012],[-94.071670999999924,81.024993999999936],[-93.908051,81.039429000000041],[-93.906386999999995,81.040543000000071],[-94.013335999999981,81.053588999999988],[-94.042220999999927,81.055542000000116],[-94.18249499999996,81.068054000000075],[-94.328612999999962,81.089432000000045],[-94.357498000000021,81.09526100000005],[-94.36221299999994,81.100540000000024],[-94.353607000000011,81.106093999999985],[-94.345550999999944,81.109421000000111],[-94.313048999999978,81.115539999999953],[-94.278335999999967,81.117203000000075],[-94.255279999999971,81.115539999999953],[-94.230835000000013,81.110535000000084],[-94.214721999999881,81.106369000000029],[-94.195830999999941,81.10026600000009],[-94.154723999999987,81.093872000000033],[-94.130279999999971,81.09275800000006],[-93.989715999999987,81.092484000000127],[-93.960830999999928,81.094147000000078],[-93.935271999999941,81.098327999999981],[-93.907227000000034,81.101653999999996],[-93.866394000000014,81.103043000000014],[-93.795273000000009,81.099426000000051],[-93.689437999999996,81.093048000000067],[-93.517226999999878,81.084426999999948],[-93.299987999999928,81.079711999999915],[-93.255844000000025,81.082764000000054],[-93.163054999999929,81.091934000000094],[-93.152221999999938,81.094711000000018],[-93.123321999999916,81.115265000000136],[-93.095550999999944,81.154160000000104],[-93.091674999999952,81.159988000000055],[-93.095839999999953,81.165268000000083],[-93.121108999999933,81.182754999999929],[-93.259734999999978,81.212203999999929],[-93.419448999999929,81.219986000000063],[-93.514724999999999,81.217758000000117],[-93.687499999999943,81.21026599999999],[-93.728333000000021,81.207214000000079],[-93.852218999999934,81.203049000000078],[-93.928878999999995,81.203873000000044],[-94.031386999999938,81.208878000000084],[-94.166397000000018,81.218048000000124],[-94.200561999999877,81.221100000000035],[-94.282227000000034,81.231094000000098],[-94.302489999999977,81.234984999999938],[-94.381667999999991,81.25082400000008],[-94.388061999999991,81.254990000000134],[-94.391388000000006,81.261108000000092],[-94.386123999999938,81.272766000000104],[-94.370270000000005,81.284714000000008],[-94.278610000000015,81.341934000000037],[-94.268616000000009,81.346099999999922],[-94.240829000000019,81.350814999999955],[-94.200561999999877,81.355545000000006],[-94.153884999999946,81.359711000000118],[-94.06806899999998,81.363311999999951],[-94.035278000000005,81.363311999999951],[-93.789444000000003,81.348038000000088],[-93.755004999999926,81.344711000000132],[-93.694442999999922,81.337494000000049],[-93.665833000000021,81.332763999999997],[-93.638900999999976,81.327209000000096],[-93.621933000000013,81.321655000000078],[-93.611389000000031,81.316376000000105],[-93.594451999999933,81.31053199999991],[-93.553329000000019,81.305542000000059],[-93.515288999999996,81.31053199999991],[-93.494994999999903,81.314697000000081],[-93.483063000000016,81.319716999999969],[-93.483611999999994,81.325272000000041],[-93.488051999999982,81.330551000000014],[-93.533324999999991,81.348602000000028],[-93.560546999999929,81.367751999999996],[-93.564712999999927,81.376648000000102],[-93.550551999999925,81.38108799999992],[-93.517501999999979,81.38499500000006],[-93.340285999999992,81.372208000000057],[-93.177490000000034,81.358597000000088],[-93.01556399999987,81.341370000000097],[-92.928054999999972,81.330826000000059],[-92.831680000000006,81.317764000000011],[-92.727782999999931,81.305542000000059]],[[-91.71833799999996,81.549149000000057],[-91.761672999999973,81.548035000000084],[-91.801391999999964,81.548599000000024],[-91.837509000000011,81.551086000000112],[-91.863616999999977,81.555251999999996],[-91.951110999999912,81.584152000000017],[-91.958617999999944,81.588882000000069],[-91.960555999999997,81.594986000000119],[-91.956115999999952,81.600815000000125],[-91.932494999999903,81.605819999999994],[-91.903884999999946,81.608322000000044],[-91.868332000000009,81.608597000000088],[-91.823897999999986,81.606934000000138],[-91.789444000000003,81.603317000000004],[-91.724715999999944,81.596100000000092],[-91.597778000000005,81.580550999999957],[-91.582229999999925,81.578049000000078],[-91.619995000000017,81.562484999999981],[-91.643615999999895,81.557480000000112],[-91.673614999999984,81.552765000000079],[-91.71833799999996,81.549149000000057]],[[-78.365828999999962,82.883605999999986],[-78.383330999999998,82.883605999999986],[-78.419448999999986,82.899155000000064],[-78.417220999999927,82.935532000000023],[-78.414718999999934,82.941925000000026],[-78.405838000000017,82.947754000000032],[-78.389724999999885,82.953323000000012],[-78.361663999999962,82.958603000000096],[-78.323333999999875,82.961929000000112],[-78.273894999999868,82.963043000000084],[-78.223617999999988,82.961104999999975],[-78.145279000000016,82.954712000000029],[-78.119720000000029,82.94859299999996],[-78.116942999999992,82.942200000000014],[-78.122498000000007,82.937194999999974],[-78.150833000000034,82.926925999999924],[-78.212783999999999,82.911377000000016],[-78.336394999999982,82.888046000000145],[-78.365828999999962,82.883605999999986]],[[-70.111937999999952,83.109421000000111],[-70.00140399999998,83.10775799999999],[-69.812209999999993,83.112197999999978],[-69.74888599999997,83.11192299999999],[-69.701675000000023,83.110535000000084],[-69.665008999999998,83.108322000000101],[-69.659164000000033,83.103043000000127],[-69.662215999999944,83.074158000000068],[-69.664168999999958,83.070830999999941],[-69.680557000000022,83.064986999999974],[-69.716109999999958,83.061096000000077],[-69.757506999999976,83.057755000000043],[-69.773894999999982,83.051926000000037],[-69.775283999999942,83.047760000000096],[-69.744445999999982,83.04553199999998],[-69.671936000000017,83.041091999999935],[-69.636123999999995,83.039703000000145],[-69.471389999999985,83.038879000000009],[-69.451110999999969,83.035812000000078],[-69.513335999999981,83.019714000000022],[-69.536117999999988,83.014435000000049],[-69.565001999999936,83.009995000000004],[-69.559722999999963,82.994141000000127],[-69.233062999999959,83.010268999999937],[-69.156386999999938,83.017487000000131],[-69.120543999999995,83.021652000000131],[-69.097777999999948,83.026657],[-69.06361400000003,83.038040000000024],[-69.015563999999927,83.040817000000118],[-68.983063000000016,83.036652000000117],[-68.975280999999995,83.028320000000122],[-68.973891999999978,83.015549000000021],[-68.977218999999991,83.001663000000065],[-68.902785999999935,82.988312000000064],[-68.708344000000011,82.978043000000071],[-68.665008999999941,82.980270000000132],[-68.630829000000006,82.985259999999982],[-68.626663000000008,82.986923000000104],[-68.579726999999991,82.996933000000013],[-68.550551999999925,83.001663000000065],[-68.514724999999999,83.005554000000132],[-68.46665999999999,83.008040999999992],[-68.404723999999987,83.008330999999998],[-68.358046999999885,83.006103999999937],[-68.316101000000003,83.003326000000129],[-68.190826000000015,82.994705000000067],[-68.154175000000009,82.991088999999988],[-68.142226999999934,82.983597000000032],[-68.155272999999966,82.972487999999998],[-68.177779999999984,82.959991000000002],[-68.188599000000011,82.946091000000081],[-68.176391999999964,82.938873000000058],[-68.145554000000004,82.934981999999991],[-68.09973100000002,82.933594000000085],[-68.06806899999998,82.935257000000036],[-68.054169000000002,82.938873000000058],[-67.881667999999934,82.958878000000084],[-67.666945999999996,82.969711000000075],[-67.61082499999992,82.96887200000009],[-67.544158999999979,82.962203999999929],[-67.50140399999998,82.957214000000079],[-67.499999999999943,82.957016000000067],[-67.476104999999961,82.953598000000056],[-67.410003999999958,82.946640000000059],[-67.327788999999939,82.940811000000053],[-67.241669000000002,82.936919999999986],[-67.196655000000021,82.93609600000002],[-67.136123999999938,82.936646000000053],[-67.116942999999992,82.941086000000041],[-67.122771999999998,82.949142000000109],[-67.121658000000025,82.955261000000121],[-67.113327000000027,82.959427000000062],[-67.092223999999931,82.961104999999975],[-67.041107000000011,82.959717000000069],[-66.964721999999995,82.954163000000051],[-66.939986999999917,82.950546000000088],[-66.938323999999909,82.947754000000032],[-66.818893000000003,82.935257000000036],[-66.653060999999866,82.936371000000008],[-66.330001999999922,82.933868000000018],[-66.301391999999964,82.93193100000002],[-66.299437999999952,82.92942800000003],[-66.347503999999958,82.898041000000092],[-66.369155999999919,82.888321000000019],[-66.81138599999997,82.815262000000018],[-66.841110000000015,82.810806000000071],[-66.876663000000008,82.807205000000067],[-66.959732000000031,82.800812000000064],[-67.138335999999981,82.78387500000008],[-67.31527699999998,82.764709000000039],[-67.386123999999995,82.757767000000115],[-67.45777899999996,82.752212999999927],[-67.499999999999943,82.749611000000129],[-67.597778000000005,82.743590999999924],[-67.644729999999925,82.741652999999985],[-67.799164000000019,82.731658999999979],[-67.914168999999958,82.719986000000119],[-68.041381999999999,82.703873000000101],[-68.081679999999949,82.700821000000019],[-68.134170999999981,82.698593000000017],[-68.234726000000023,82.696640000000116],[-68.276108000000022,82.69470199999995],[-68.356658999999979,82.688034000000016],[-68.424437999999896,82.679703000000075],[-68.633621000000005,82.648605000000089],[-68.655838000000017,82.643600000000049],[-68.672225999999966,82.637772000000098],[-68.667220999999984,82.632477000000051],[-68.642501999999979,82.628585999999984],[-68.573623999999938,82.628860000000088],[-68.465011999999945,82.639435000000049],[-68.424437999999896,82.641937000000098],[-68.325835999999981,82.645537999999988],[-67.934998000000007,82.658324999999991],[-67.812774999999988,82.659149000000127],[-67.606658999999922,82.655548000000067],[-67.518065999999862,82.65109300000006],[-67.47084000000001,82.652205999999978],[-67.430557000000022,82.655548000000067],[-67.381942999999978,82.66276600000009],[-67.328063999999983,82.677199999999914],[-67.275283999999999,82.68609600000002],[-67.245834000000002,82.689697000000081],[-67.210830999999928,82.693587999999977],[-66.997771999999998,82.712203999999986],[-66.900283999999999,82.719437000000028],[-66.670837000000006,82.740265000000079],[-66.657227000000034,82.744430999999963],[-66.638335999999981,82.748871000000008],[-66.122771999999998,82.813034000000073],[-66.086670000000026,82.816665999999998],[-65.810271999999941,82.840820000000122],[-65.767776000000026,82.843048000000067],[-65.724166999999909,82.843597000000045],[-65.546660999999915,82.838043000000027],[-65.467772999999852,82.833327999999995],[-65.454726999999991,82.829162999999994],[-65.481673999999998,82.816665999999998],[-65.495834000000002,82.8119200000001],[-65.527221999999938,82.797484999999938],[-65.518065999999976,82.789978000000019],[-65.511123999999995,82.786652000000004],[-65.458617999999888,82.779433999999981],[-65.430832000000009,82.777481000000023],[-65.197494999999947,82.764160000000061],[-65.164444000000003,82.763046000000088],[-65.154723999999987,82.765274000000034],[-65.167496000000028,82.769989000000066],[-65.259170999999924,82.781662000000097],[-65.327498999999989,82.789154000000053],[-65.339721999999938,82.791930999999977],[-65.353057999999976,82.797211000000004],[-65.34445199999999,82.801926000000037],[-65.221938999999963,82.832764000000054],[-65.102782999999931,82.848037999999974],[-65.110001000000011,82.852767999999969],[-65.128052000000025,82.856094000000041],[-65.172775000000001,82.858321999999987],[-65.272781000000009,82.861099000000081],[-65.30749499999996,82.86554000000001],[-65.289168999999958,82.873306000000014],[-65.258057000000008,82.877472000000125],[-65.104720999999984,82.891663000000108],[-64.982223999999974,82.901093000000003],[-64.884734999999921,82.905823000000055],[-64.83555599999994,82.906937000000028],[-64.729720999999927,82.904160000000104],[-64.68472300000002,82.901657000000114],[-64.655562999999972,82.896942000000081],[-64.664168999999902,82.89027399999992],[-64.678604000000007,82.884720000000129],[-64.713897999999915,82.876372999999944],[-64.751953000000015,82.875259000000142],[-64.790558000000033,82.875809000000004],[-64.829726999999934,82.877762000000132],[-64.890288999999939,82.878036000000066],[-64.922501000000011,82.876372999999944],[-64.936934999999949,82.871368000000075],[-64.923614999999984,82.864699999999914],[-64.883895999999993,82.861649000000114],[-64.839995999999985,82.861923000000047],[-64.746384000000035,82.860535000000141],[-64.723052999999993,82.856369000000029],[-64.710555999999997,82.852478000000133],[-64.713897999999915,82.846375000000023],[-64.722777999999948,82.840820000000122],[-64.742217999999923,82.834427000000005],[-64.750838999999928,82.828323000000125],[-64.737777999999992,82.822220000000016],[-64.706954999999994,82.813034000000073],[-64.64805599999994,82.799713000000111],[-64.478607000000011,82.764435000000105],[-64.445266999999944,82.761932000000115],[-64.418059999999912,82.761382999999967],[-64.412780999999939,82.762206999999933],[-64.398055999999997,82.766936999999984],[-64.328888000000006,82.787201000000096],[-64.18638599999997,82.819153000000085],[-64.139998999999989,82.828049000000021],[-64.103058000000033,82.831665000000044],[-64.059722999999963,82.833327999999995],[-63.972770999999966,82.834991000000116],[-63.672775000000001,82.834717000000012],[-63.623610999999926,82.833603000000039],[-63.529723999999987,82.828323000000125],[-63.490836999999942,82.825272000000098],[-63.43472300000002,82.816665999999998],[-63.389167999999927,82.804977000000065],[-63.382499999999993,82.798325000000034],[-63.382216999999912,82.767761000000121],[-63.397223999999994,82.761382999999967],[-63.479163999999855,82.739425999999924],[-63.510284000000013,82.732483000000116],[-63.525832999999977,82.730545000000006],[-63.590836000000024,82.733047000000056],[-63.666106999999954,82.731368999999972],[-63.819449999999961,82.721374999999966],[-63.834998999999982,82.719147000000021],[-63.850280999999995,82.715820000000065],[-63.764450000000011,82.715271000000087],[-63.67888599999992,82.717758000000003],[-63.65166499999998,82.714996000000099],[-63.540001000000018,82.694427000000132],[-63.502040999999906,82.682762000000082],[-63.422226000000023,82.665543000000014],[-63.286948999999993,82.654434000000094],[-63.254447999999968,82.650269000000094],[-63.232215999999994,82.64498900000001],[-63.226105000000018,82.640273999999977],[-63.235557999999855,82.633330999999998],[-63.255835999999988,82.627197000000137],[-63.287223999999981,82.624985000000095],[-63.339721999999995,82.623596000000077],[-63.376388999999961,82.619980000000055],[-63.380829000000006,82.615265000000022],[-63.369445999999982,82.61053499999997],[-63.347495999999978,82.604980000000069],[-63.315001999999936,82.601089000000002],[-63.272223999999937,82.598602000000142],[-63.229720999999984,82.597214000000008],[-63.11361699999992,82.597487999999942],[-63.071113999999966,82.59637500000008],[-63.033614999999941,82.594436999999971],[-62.99639099999996,82.59027100000003],[-62.96416499999998,82.585541000000035],[-62.942496999999946,82.5816650000001],[-62.926108999999997,82.576096000000121],[-62.930557000000022,82.56999200000007],[-62.960555999999997,82.557754999999929],[-63.059440999999936,82.511932000000002],[-63.08943899999997,82.466385000000116],[-63.119994999999903,82.463608000000022],[-63.243889000000024,82.457764000000054],[-63.285004000000015,82.454987000000131],[-63.346106999999904,82.449142000000052],[-63.366111999999987,82.444977000000051],[-63.369995000000017,82.438873000000001],[-63.328613000000018,82.437759000000028],[-63.277221999999938,82.439148000000046],[-63.148887999999999,82.446929999999952],[-63.071670999999981,82.451935000000049],[-63.015838999999971,82.459716999999955],[-62.990836999999885,82.467209000000082],[-62.920836999999949,82.491089000000102],[-62.823616000000015,82.504440000000045],[-62.678336999999999,82.516098000000056],[-62.553328999999962,82.524428999999998],[-62.506667999999877,82.526657000000114],[-62.286948999999993,82.528046000000131],[-62.24500299999994,82.528046000000131],[-62.171669000000009,82.525542999999971],[-62.171386999999982,82.521378000000141],[-62.322776999999974,82.511108000000036],[-62.333060999999987,82.504166000000112],[-62.353057999999976,82.486374000000069],[-62.352782999999931,82.481093999999985],[-62.300835000000006,82.482483000000002],[-62.264449999999954,82.485809000000017],[-62.21566799999988,82.491928000000087],[-62.212497999999869,82.495766000000003],[-62.098052999999936,82.502212999999983],[-61.884170999999981,82.492752000000053],[-61.691665999999998,82.48803700000002],[-61.582503999999972,82.482483000000002],[-61.530829999999867,82.478317000000118],[-61.5,82.474152000000117],[-61.448607999999979,82.464431999999988],[-61.326110999999969,82.439697000000137],[-61.28556100000003,82.430267000000072],[-61.170279999999877,82.395264000000111],[-61.141113000000018,82.383041000000048],[-61.131385999999907,82.377472000000068],[-61.11222099999992,82.363876000000062],[-61.098609999999951,82.350266000000033],[-61.076392999999996,82.320831000000112],[-61.078613000000018,82.301086000000112],[-61.084723999999994,82.293593999999985],[-61.107779999999934,82.267761000000064],[-61.130359999999996,82.252937000000088],[-61.135558999999944,82.247482000000105],[-61.15694400000001,82.235259999999982],[-61.193328999999949,82.223602000000085],[-61.281112999999948,82.202774000000034],[-61.306389000000024,82.197205000000054],[-61.388054000000011,82.18331900000004],[-61.43332700000002,82.176376000000062],[-61.463614999999891,82.172484999999995],[-61.534171999999899,82.165543000000071],[-61.599441999999954,82.160812000000135],[-61.804442999999992,82.146652000000074],[-61.86999499999996,82.106644000000017],[-61.885001999999986,82.100539999999967],[-62.077781999999956,82.053588999999988],[-62.126944999999978,82.043869000000086],[-62.25417299999998,82.019989000000066],[-62.278885000000002,82.015822999999955],[-62.313056999999958,82.01249700000011],[-62.356948999999929,82.010268999999994],[-62.513618000000008,82.004715000000147],[-62.570281999999963,81.976089000000059],[-62.944999999999993,81.922211000000118],[-63.040557999999976,81.909714000000122],[-63.292502999999897,81.877761999999962],[-63.387221999999952,81.867752000000053],[-63.656104999999968,81.837494000000106],[-63.715003999999965,81.820831000000055],[-63.761116000000015,81.811645999999996],[-63.817223000000013,81.804703000000018],[-63.849723999999924,81.801086000000055],[-63.925003000000004,81.795258000000103],[-63.962775999999963,81.792480000000126],[-64.010009999999966,81.790268000000083],[-64.053054999999915,81.789978000000019],[-64.086945000000014,81.791930999999977],[-64.111663999999962,81.794983000000116],[-64.131667999999991,81.799149],[-64.142226999999934,81.803040000000067],[-64.177779999999984,81.810532000000023],[-64.207503999999972,81.81442300000009],[-64.271666999999923,81.821655000000021],[-64.301392000000021,81.824157999999954],[-64.325287000000003,81.824707000000103],[-64.323623999999995,81.819153000000085],[-64.308043999999995,81.814697000000024],[-64.253066999999987,81.806091000000094],[-64.232772999999952,81.800537000000077],[-64.12388599999997,81.768326000000002],[-64.118057000000022,81.764435000000105],[-64.134734999999921,81.754715000000033],[-64.207779000000016,81.74192800000003],[-64.355269999999962,81.726379000000122],[-64.472503999999958,81.721374999999966],[-64.629439999999931,81.722488000000055],[-64.720001000000025,81.723877000000073],[-64.767776000000026,81.725815000000011],[-64.801665999999955,81.728317000000061],[-64.812209999999993,81.730820000000051],[-64.833892999999932,81.738876000000118],[-64.839721999999938,81.742203000000075],[-64.885559000000001,81.750823999999966],[-64.910004000000015,81.752777000000094],[-64.962218999999948,81.752212999999983],[-65.21665999999999,81.74552900000009],[-65.337508999999955,81.737761999999975],[-65.409728999999913,81.728317000000061],[-65.631377999999927,81.70248400000014],[-65.668334999999956,81.700821000000019],[-65.725554999999929,81.701660000000004],[-65.773330999999985,81.702773999999977],[-65.924437999999952,81.70138500000013],[-66.012221999999952,81.696930000000123],[-66.038605000000018,81.692474000000004],[-66.042220999999984,81.690536000000066],[-66.030288999999925,81.684982000000105],[-65.991378999999995,81.682755000000043],[-65.821944999999971,81.684417999999937],[-65.612503000000004,81.680817000000104],[-65.487777999999935,81.687485000000038],[-65.404175000000009,81.69081100000011],[-65.352492999999868,81.691925000000083],[-65.336670000000026,81.688034000000016],[-65.370833999999945,81.678863999999976],[-65.402221999999995,81.674423000000047],[-65.523620999999991,81.659714000000008],[-65.618056999999908,81.648605000000089],[-65.789443999999946,81.632202000000063],[-65.871657999999911,81.627197000000024],[-65.910278000000005,81.629699999999957],[-65.926391999999964,81.634154999999964],[-65.92721599999993,81.635543999999982],[-65.924437999999952,81.639708999999982],[-65.92721599999993,81.645827999999995],[-65.943328999999892,81.650543000000027],[-65.982223999999917,81.65277100000003],[-66.024718999999948,81.653046000000018],[-66.042770000000019,81.651657],[-66.064712999999983,81.647765999999933],[-66.085555999999997,81.642761000000064],[-66.101943999999946,81.637207000000103],[-66.140838999999971,81.620529000000033],[-66.172501000000011,81.618042000000116],[-66.218886999999938,81.616928000000144],[-66.355270000000019,81.617477000000122],[-66.393889999999942,81.619705000000067],[-66.439712999999983,81.62692300000009],[-66.478333000000021,81.628585999999984],[-66.575561999999934,81.626082999999994],[-66.727492999999924,81.6202550000001],[-66.804992999999854,81.615814],[-66.896392999999932,81.611923000000104],[-67.15695199999999,81.608032000000037],[-67.509170999999924,81.60054000000008],[-67.55972300000002,81.599152000000004],[-67.766662999999994,81.593047999999953],[-67.792770000000019,81.589706000000035],[-68.111389000000031,81.56303400000013],[-68.156661999999983,81.56109600000002],[-68.231383999999991,81.561371000000008],[-68.274718999999948,81.562759000000085],[-68.309433000000013,81.565536000000009],[-68.330565999999919,81.56860400000005],[-68.352492999999981,81.573044000000039],[-68.410277999999892,81.588043000000084],[-68.459731999999974,81.597487999999998],[-68.661391999999978,81.633330999999998],[-68.715285999999992,81.642211999999972],[-68.976944000000003,81.684417999999937],[-69.058883999999921,81.697479000000101],[-69.139998999999989,81.70887799999997],[-69.176392000000021,81.712494000000049],[-69.247222999999963,81.71748400000007],[-69.291381999999999,81.718871999999976],[-69.299438000000009,81.717209000000082],[-69.306655999999975,81.714431999999988],[-69.291381999999999,81.707763999999997],[-69.268065999999976,81.70248400000014],[-69.214172000000019,81.695251000000098],[-69.123610999999983,81.683868000000132],[-69.005279999999914,81.667480000000069],[-68.902221999999995,81.651382000000012],[-68.624709999999993,81.604430999999977],[-68.449158000000011,81.570831000000055],[-68.370833999999888,81.553589000000045],[-68.357772999999952,81.548325000000091],[-68.352492999999981,81.541656000000046],[-68.37332200000003,81.537766000000033],[-68.407500999999968,81.533874999999966],[-68.504455999999948,81.532211000000132],[-68.551391999999964,81.532760999999994],[-68.637512000000015,81.535538000000088],[-68.715285999999992,81.539703000000088],[-68.810821999999916,81.548599000000024],[-68.848891999999978,81.549149000000057],[-68.856948999999986,81.547760000000039],[-68.851944000000003,81.541656000000046],[-68.839172000000019,81.536925999999994],[-68.813048999999978,81.533325000000104],[-68.777495999999928,81.529709000000082],[-68.579452999999887,81.514434999999992],[-68.536666999999966,81.513321000000019],[-68.446654999999964,81.517487000000074],[-68.376098999999954,81.522766000000047],[-68.285827999999924,81.526931999999988],[-68.091949,81.529160000000104],[-68.051101999999958,81.53054800000001],[-68.011123999999938,81.533051],[-67.910003999999958,81.542206000000078],[-67.819732999999871,81.546936000000073],[-67.724716000000001,81.551086000000112],[-67.383651999999984,81.56088299999999],[-67.182495000000017,81.564697000000081],[-67.150283999999942,81.564987000000087],[-67.107773000000009,81.564987000000087],[-67.064712999999983,81.562759000000085],[-66.859726000000023,81.546646000000067],[-66.791381999999885,81.540817000000061],[-66.766112999999962,81.537491000000045],[-66.629990000000021,81.518051000000014],[-66.608611999999994,81.512772000000041],[-66.62388599999997,81.506378000000041],[-66.741104000000007,81.491928000000087],[-66.887787000000003,81.480545000000063],[-66.962783999999942,81.474991000000102],[-67.043334999999956,81.469711000000018],[-67.248336999999992,81.44999700000011],[-67.457503999999972,81.423035000000027],[-67.753890999999896,81.391663000000051],[-67.818344000000025,81.385268999999994],[-67.994719999999973,81.368042000000003],[-68.244720000000029,81.33998100000008],[-68.355835000000013,81.32388300000008],[-68.429169000000002,81.31164600000011],[-68.486938000000009,81.303863999999976],[-68.618057000000022,81.290543000000014],[-68.796951000000035,81.275269000000094],[-69.028609999999958,81.258606000000043],[-69.319457999999997,81.260268999999937],[-69.34056099999998,81.263885000000016],[-69.357773000000009,81.268326000000116],[-69.362777999999992,81.268875000000037],[-69.391388000000006,81.270537999999988],[-69.426940999999943,81.26998900000001],[-69.455565999999976,81.265823000000125],[-69.468886999999995,81.259995000000004],[-69.46305799999999,81.253326000000129],[-69.436934999999949,81.249145999999939],[-69.366652999999985,81.246368000000132],[-69.319457999999997,81.243591000000038],[-69.312209999999993,81.240540000000067],[-69.323897999999929,81.238037000000077],[-69.541671999999949,81.212493999999936],[-69.911941999999954,81.182480000000112],[-69.999434999999949,81.179977000000122],[-70.158339999999953,81.181366000000139],[-70.206389999999942,81.179703000000018],[-70.210007000000019,81.173874000000012],[-70.126098999999954,81.165543000000127],[-70.050551999999982,81.161652000000061],[-69.960281000000009,81.160538000000088],[-69.907227000000034,81.161652000000061],[-69.864440999999999,81.16415400000011],[-69.760009999999966,81.173035000000027],[-69.638061999999991,81.177475000000072],[-69.647506999999962,81.172484999999995],[-69.831954999999994,81.137206999999989],[-69.887786999999946,81.129150000000038],[-69.953063999999983,81.122208000000114],[-69.976943999999946,81.118866000000025],[-70.013061999999934,81.109146000000123],[-70.025283999999999,81.102767999999969],[-70.023330999999985,81.100815000000011],[-69.995269999999948,81.099426000000051],[-69.955565999999976,81.099426000000051],[-69.922225999999966,81.102203000000145],[-69.832229999999981,81.111649000000114],[-69.632492000000013,81.139160000000118],[-69.609726000000023,81.14387499999998],[-69.591675000000009,81.14888000000002],[-69.541671999999949,81.164428999999927],[-69.528335999999911,81.169434000000024],[-69.463333000000034,81.183044000000052],[-69.430556999999965,81.187194999999974],[-69.359436000000017,81.193313999999987],[-68.876099000000011,81.231094000000098],[-68.760833999999932,81.239426000000037],[-68.37388599999997,81.266662999999994],[-68.246947999999975,81.272766000000104],[-68.116652999999928,81.280273000000079],[-68.052779999999984,81.286102000000085],[-67.887221999999952,81.30304000000001],[-67.823623999999938,81.310257000000092],[-67.791107000000011,81.315536000000066],[-67.690826000000015,81.329437000000041],[-67.593062999999972,81.340271000000087],[-67.356658999999979,81.363601999999958],[-67.24749799999995,81.371918000000051],[-67.124160999999901,81.379700000000014],[-66.990554999999915,81.385544000000039],[-66.621383999999978,81.413879000000065],[-66.365828999999962,81.434708000000001],[-66.290282999999988,81.440262000000018],[-66.16972399999986,81.447754000000145],[-66.134170999999924,81.450821000000076],[-66.050827000000027,81.459152000000131],[-65.985549999999989,81.468048000000067],[-65.831679999999949,81.484711000000004],[-65.724715999999944,81.493866000000025],[-65.643616000000009,81.498871000000065],[-65.557495000000017,81.503052000000139],[-65.466400000000021,81.506378000000041],[-65.252791999999943,81.517212000000086],[-65.002791999999999,81.530823000000055],[-64.612503000000004,81.544982999999945],[-64.566390999999953,81.545532000000094],[-64.537780999999995,81.543593999999985],[-64.528060999999923,81.541656000000046],[-64.517501999999979,81.537491000000045],[-64.444152999999972,81.490814000000114],[-64.436385999999914,81.479431000000091],[-64.451110999999969,81.466934000000094],[-64.491942999999992,81.448868000000118],[-64.508620999999948,81.441924999999969],[-64.520844000000011,81.4369200000001],[-64.554169000000002,81.425812000000064],[-64.616652999999928,81.404984000000013],[-64.658889999999985,81.393050999999957],[-64.735274999999945,81.374146000000053],[-64.808608999999933,81.360535000000084],[-64.855835000000013,81.352768000000083],[-64.99499499999996,81.333328000000108],[-65.060271999999998,81.326096000000007],[-65.168059999999969,81.309982000000048],[-65.286391999999978,81.287201000000039],[-65.323623999999995,81.278046000000018],[-65.441375999999934,81.256378000000041],[-65.493057000000022,81.250549000000035],[-65.527785999999992,81.247481999999934],[-65.571670999999981,81.244980000000055],[-65.747771999999998,81.235809000000131],[-65.941101000000003,81.226379000000065],[-65.980559999999912,81.22387700000013],[-66.010284000000013,81.220261000000107],[-66.199721999999895,81.183868000000018],[-66.244445999999868,81.17442299999999],[-66.264449999999954,81.169434000000024],[-66.418335000000013,81.128860000000032],[-66.438048999999978,81.12359600000002],[-66.482772999999952,81.106934000000081],[-66.50418099999996,81.095534999999984],[-66.509445000000028,81.08859300000006],[-66.529723999999987,81.076096000000064],[-66.544723999999974,81.070540999999992],[-66.603333000000021,81.05525200000011],[-66.685821999999973,81.035812000000135],[-66.753341999999975,81.021927000000005],[-66.921111999999994,80.991089000000045],[-67.164443999999946,80.948593000000017],[-67.208618000000001,80.941925000000026],[-67.279175000000009,80.93553200000008],[-67.309158000000025,80.934418000000107],[-67.349441999999954,80.936371000000065],[-67.440825999999959,80.936646000000053],[-67.562209999999993,80.93553200000008],[-67.591384999999946,80.933044000000109],[-67.606658999999922,80.929977000000008],[-67.603607000000011,80.92442299999999],[-67.588333000000034,80.913878999999952],[-67.567779999999971,80.908599999999979],[-67.543335000000013,80.90415999999999],[-67.53083799999996,80.897491000000116],[-67.539992999999981,80.891098000000113],[-67.583618000000001,80.876648000000046],[-67.634445000000028,80.860809000000074],[-67.653609999999958,80.856369000000086],[-67.863891999999964,80.834152000000017],[-67.910278000000005,80.8119200000001],[-67.965835999999911,80.797484999999995],[-68.011397999999986,80.788315000000125],[-68.065552000000025,80.779160000000104],[-68.089447000000007,80.776093000000003],[-68.138335999999981,80.772491000000002],[-68.202788999999939,80.765823000000069],[-68.225280999999939,80.761383000000023],[-68.672500999999897,80.66693099999992],[-68.738891999999908,80.647217000000012],[-68.814712999999983,80.628586000000041],[-68.952498999999875,80.603043000000071],[-69.146666999999923,80.529709000000082],[-69.171111999999994,80.517487000000131],[-69.273055999999997,80.463882000000012],[-69.289168999999958,80.451660000000061],[-69.291381999999999,80.444138000000123],[-69.290558000000033,80.437194999999917],[-69.297774999999945,80.424698000000149],[-69.305557000000022,80.418319999999994],[-69.317504999999983,80.412490999999989],[-69.333892999999932,80.406647000000135],[-69.384734999999921,80.391937000000041],[-69.427489999999977,80.382751000000042],[-69.479720999999984,80.37553400000013],[-69.551102000000014,80.366379000000109],[-69.596389999999872,80.361099000000024],[-69.729720999999927,80.352767999999969],[-69.982772999999895,80.344986000000006],[-70.072783999999956,80.344437000000028],[-70.218886999999938,80.346374999999966],[-70.284438999999907,80.351089000000115],[-70.305266999999958,80.356093999999985],[-70.310821999999973,80.363037000000134],[-70.285827999999981,80.372482000000048],[-70.256393000000003,80.381362999999965],[-70.244155999999919,80.386658000000011],[-70.227782999999988,80.401382000000069],[-70.220001000000025,80.416930999999977],[-70.235000999999897,80.429703000000018],[-70.275283999999942,80.44802900000002],[-70.314163000000008,80.464432000000045],[-70.499434999999949,80.513884999999959],[-70.539992999999924,80.521927000000119],[-70.68110699999994,80.548035000000084],[-70.706116000000009,80.552475000000129],[-70.754729999999995,80.559418000000107],[-70.783065999999963,80.56303400000013],[-70.812499999999886,80.562759000000142],[-70.825286999999889,80.558593999999971],[-70.827498999999932,80.551376000000118],[-70.813048999999921,80.544983000000002],[-70.796111999999994,80.540543000000127],[-70.765288999999996,80.534424000000115],[-70.741668999999945,80.531372000000033],[-70.670837000000006,80.518051000000071],[-70.637786999999946,80.509155000000135],[-70.531386999999995,80.474426000000051],[-70.490554999999915,80.460815000000082],[-70.476669000000015,80.454436999999984],[-70.423324999999977,80.42164600000001],[-70.434722999999963,80.391663000000108],[-70.450561999999991,80.385817999999972],[-70.458892999999989,80.381362999999965],[-70.472228999999913,80.368042000000003],[-70.471389999999985,80.362488000000042],[-70.469161999999983,80.354980000000012],[-70.462219000000005,80.346939000000134],[-70.444153000000028,80.340271000000143],[-70.424164000000019,80.336105000000032],[-70.352492999999924,80.324707000000046],[-70.309998000000007,80.318054000000075],[-70.252791999999943,80.313309000000061],[-70.15055799999999,80.299149000000114],[-70.035278000000005,80.278320000000122],[-69.991103999999893,80.268875000000094],[-69.974166999999966,80.263046000000088],[-69.960555999999997,80.256378000000097],[-69.965285999999935,80.252213000000097],[-69.990828999999962,80.24331699999999],[-70.128326000000015,80.19720500000011],[-70.145554000000004,80.193587999999977],[-70.178604000000007,80.189148000000102],[-70.21665999999999,80.186371000000008],[-70.24888599999997,80.18609600000002],[-70.315001999999879,80.187484999999981],[-70.611388999999974,80.19720500000011],[-70.645554000000004,80.199142000000109],[-70.821121000000005,80.195526000000086],[-71.120833999999945,80.172485000000052],[-71.180556999999908,80.166656000000046],[-71.238326999999913,80.158874999999966],[-71.381942999999978,80.139160000000004],[-71.418610000000001,80.131088000000034],[-71.446105999999929,80.121368000000132],[-71.463057999999933,80.118042000000059],[-71.50111400000003,80.11554000000001],[-71.654448999999943,80.111374000000069],[-71.694442999999978,80.110809000000074],[-71.731948999999929,80.111923000000047],[-71.762787000000003,80.114426000000037],[-71.789992999999981,80.117752000000053],[-71.811660999999901,80.123596000000077],[-71.836120999999991,80.131927000000132],[-71.848052999999993,80.143875000000037],[-71.878600999999946,80.162491000000045],[-71.907776000000013,80.171371000000079],[-71.953339000000028,80.180542000000003],[-72.006393000000003,80.188583000000108],[-72.057220000000029,80.19470200000012],[-72.081116000000009,80.194138000000009],[-72.099990999999875,80.192748999999992],[-72.127776999999924,80.187759000000142],[-72.165282999999988,80.188873000000115],[-72.189163000000008,80.192200000000014],[-72.223327999999981,80.201660000000118],[-72.241378999999995,80.207489000000123],[-72.256392999999946,80.213882000000069],[-72.274445000000014,80.219711000000075],[-72.294448999999872,80.223312000000135],[-72.329726999999878,80.22554000000008],[-72.358886999999925,80.226089000000059],[-72.378051999999968,80.224700999999982],[-72.391113000000018,80.221649000000014],[-72.400283999999942,80.218597000000102],[-72.420837000000006,80.211104999999975],[-72.412506000000008,80.207214000000079],[-72.188598999999954,80.163879000000122],[-72.140839000000028,80.156937000000028],[-72.082779000000016,80.151656999999943],[-72.052489999999977,80.149719000000005],[-71.996947999999861,80.143051000000071],[-71.977218999999934,80.139434999999992],[-71.896956999999929,80.11554000000001],[-71.895553999999947,80.114150999999993],[-71.898055999999997,80.108597000000032],[-71.905272999999966,80.103591999999935],[-71.926102000000014,80.099991000000102],[-71.954726999999934,80.096375000000023],[-72.115554999999972,80.087494000000106],[-72.250564999999938,80.085541000000148],[-72.391677999999956,80.085541000000148],[-72.392226999999991,80.081940000000088],[-72.358337000000006,80.064987000000031],[-72.340560999999923,80.059143000000006],[-72.306380999999988,80.057480000000055],[-72.170272999999952,80.053864000000033],[-72.137787000000003,80.053588999999988],[-72.053054999999915,80.057480000000055],[-71.920836999999949,80.066375999999991],[-71.885833999999932,80.067215000000147],[-71.849730999999906,80.067764000000125],[-71.701950000000011,80.064148000000046],[-71.618057000000022,80.06442300000009],[-71.489166000000012,80.068878000000097],[-71.376098999999954,80.076935000000049],[-71.316665999999941,80.081940000000088],[-71.186385999999914,80.093872000000033],[-70.968063000000029,80.114990000000148],[-70.854720999999984,80.12831100000011],[-70.821121000000005,80.131088000000034],[-70.762512000000015,80.133330999999941],[-70.651671999999962,80.131363000000022],[-70.626663000000008,80.130539000000056],[-70.50778200000002,80.099716000000058],[-70.502227999999945,80.093048000000067],[-70.497498000000007,80.082764000000054],[-70.48832699999997,80.057205000000067],[-70.494995000000017,80.050812000000121],[-70.508346999999958,80.047759999999982],[-70.568068999999923,80.042755000000113],[-70.59722899999997,80.039429000000098],[-70.646666999999979,80.031936999999971],[-70.662216000000001,80.026657000000057],[-70.673049999999989,80.020828000000051],[-70.679717999999866,80.014435000000105],[-70.672774999999945,80.006377999999984],[-70.672501000000011,80.001389000000017],[-70.689712999999983,79.993317000000047],[-70.71945199999999,79.986374000000012],[-70.767226999999878,79.981658999999979],[-70.916107000000011,79.974425999999994],[-70.954178000000013,79.972763000000043],[-71.08555599999994,79.968596999999988],[-71.241669000000002,79.960815000000025],[-71.27027899999996,79.957214000000135],[-71.401108000000022,79.93553199999991],[-71.416397000000018,79.930267000000072],[-71.453612999999962,79.906372000000033],[-71.460555999999883,79.901382000000012],[-71.458892999999932,79.894989000000066],[-71.438599000000011,79.88998399999997],[-71.415832999999907,79.886658000000125],[-71.394454999999994,79.884995000000004],[-71.352782999999931,79.886932000000058],[-71.338608000000022,79.888596000000064],[-71.168335000000013,79.914153999999996],[-71.109725999999966,79.915267999999969],[-71.063048999999978,79.911652000000117],[-70.944716999999969,79.894150000000081],[-70.925827000000027,79.890274000000034],[-70.910278000000005,79.885818000000086],[-70.916397000000018,79.879424999999969],[-71.005843999999968,79.819717000000082],[-71.116652999999985,79.789703000000088],[-71.136123999999938,79.784988000000055],[-71.183884000000035,79.77748100000008],[-71.212783999999999,79.774428999999998],[-71.343612999999948,79.76388500000013],[-71.376098999999954,79.760818000000029],[-71.400283999999999,79.757492000000013],[-71.444442999999922,79.741653000000042],[-71.463333000000034,79.736923000000047],[-71.49110399999995,79.733321999999987],[-71.699158000000011,79.709991000000116],[-71.739440999999943,79.707214000000022],[-71.781113000000005,79.706100000000049],[-71.817504999999983,79.703597999999943],[-71.922500999999954,79.695525999999973],[-71.990279999999984,79.689148000000046],[-72.096664000000033,79.674988000000099],[-72.217772999999909,79.659987999999998],[-72.267226999999934,79.659149000000014],[-72.287215999999944,79.659987999999998],[-72.317779999999914,79.667205999999965],[-72.330841000000021,79.672484999999938],[-72.348052999999879,79.678040000000067],[-72.367217999999923,79.681656000000089],[-72.392226999999991,79.683594000000028],[-72.425003000000004,79.685531999999967],[-72.467223999999931,79.684708000000001],[-72.574172999999917,79.679153000000099],[-72.619445999999925,79.677765000000022],[-72.661391999999978,79.677199999999971],[-72.697220000000016,79.678040000000067],[-72.729995999999971,79.679703000000131],[-72.756119000000012,79.682205000000067],[-72.912780999999939,79.702208999999982],[-72.932769999999948,79.706375000000037],[-72.944442999999978,79.710266000000104],[-73.062774999999988,79.79942299999999],[-73.061110999999983,79.805251999999996],[-73.048614999999984,79.808319000000097],[-73.027495999999985,79.80693100000002],[-73.017226999999934,79.804703000000018],[-73.003341999999975,79.803040000000124],[-72.979171999999949,79.802200000000084],[-72.945830999999998,79.804152999999985],[-72.924437999999952,79.806366000000139],[-72.912216000000001,79.809418000000051],[-72.902495999999928,79.815262000000075],[-72.926392000000021,79.819442999999978],[-73.059158000000025,79.825546000000088],[-73.091675000000009,79.826385000000073],[-73.178328999999906,79.822768999999994],[-73.218063000000029,79.822768999999994],[-73.285003999999958,79.826096000000121],[-73.348617999999988,79.83027600000014],[-73.371383999999978,79.833054000000118],[-73.396956999999986,79.834991000000002],[-73.43360899999999,79.835815000000139],[-73.576401000000033,79.832764000000111],[-73.667770000000019,79.829712000000029],[-73.745270000000005,79.828323000000012],[-73.780288999999982,79.82777400000009],[-73.853332999999907,79.829163000000051],[-73.866942999999992,79.830826000000002],[-73.864715999999987,79.835815000000139],[-73.853607000000011,79.839706000000035],[-73.801666000000012,79.84637500000008],[-73.745543999999938,79.849152000000004],[-73.742492999999854,79.849990999999932],[-73.746947999999975,79.854155999999932],[-73.768615999999895,79.858870999999965],[-73.890839000000028,79.875259000000028],[-73.945830999999885,79.881653000000085],[-74.010284000000013,79.885818000000086],[-74.117492999999968,79.888885000000016],[-74.156951999999933,79.888885000000016],[-74.238891999999964,79.887207000000103],[-74.283614999999941,79.881363000000079],[-74.30610699999994,79.876923000000033],[-74.383621000000005,79.868591000000094],[-74.415282999999988,79.865265000000022],[-74.576401000000033,79.856934000000138],[-74.667495999999971,79.853591999999992],[-74.795272999999952,79.850815000000125],[-74.833069000000023,79.849152000000004],[-74.846389999999985,79.847214000000065],[-74.846114999999941,79.84387200000009],[-74.71665999999999,79.796936000000073],[-74.699431999999945,79.792755],[-74.683884000000035,79.789978000000076],[-74.654998999999975,79.788879000000122],[-74.488892000000021,79.791655999999989],[-74.444992000000013,79.794708000000128],[-74.392226999999934,79.800261999999918],[-74.351668999999958,79.802475000000072],[-74.309432999999956,79.803314000000057],[-74.236388999999974,79.801925999999924],[-74.106383999999878,79.795532000000094],[-73.951401000000033,79.784424000000115],[-73.714721999999938,79.76638800000012],[-73.510833999999988,79.756377999999984],[-73.384734999999921,79.748871000000065],[-73.366652999999985,79.718048000000067],[-73.360824999999863,79.712769000000094],[-73.295546999999999,79.688582999999994],[-73.256957999999884,79.678040000000067],[-73.206664999999987,79.663605000000132],[-73.188889000000017,79.658035000000041],[-73.174438000000009,79.651657000000057],[-73.168334999999956,79.646103000000096],[-73.126098999999897,79.569443000000035],[-73.125823999999966,79.558318999999983],[-73.128875999999991,79.554153000000042],[-73.135833999999988,79.549713000000054],[-73.148620999999991,79.543593999999985],[-73.163054999999986,79.538878999999952],[-73.180831999999953,79.534149000000127],[-73.247222999999963,79.520827999999995],[-73.296111999999937,79.512772000000098],[-73.353881999999942,79.505829000000119],[-73.446380999999917,79.499145999999939],[-73.657776000000013,79.496368000000132],[-73.693054000000018,79.496933000000013],[-73.729172000000005,79.498596000000077],[-73.758057000000008,79.500275000000101],[-73.779998999999975,79.503052000000025],[-73.791945999999939,79.506653000000085],[-73.817229999999938,79.515549000000021],[-73.837783999999999,79.527480999999966],[-73.863892000000021,79.540267999999969],[-73.876662999999951,79.544708000000014],[-73.916106999999954,79.552475000000129],[-73.950286999999889,79.555252000000053],[-73.965012000000002,79.554703000000075],[-73.988892000000021,79.55192599999998],[-74.001113999999973,79.545821999999987],[-74.000290000000007,79.541656000000046],[-73.996947999999975,79.535537999999917],[-73.989440999999943,79.528595000000109],[-73.968612999999891,79.516937000000098],[-73.959166999999923,79.508881000000031],[-73.949996999999939,79.493866000000082],[-73.949721999999952,79.479980000000069],[-73.953063999999983,79.472762999999986],[-73.961945000000014,79.466933999999981],[-73.98332199999993,79.455551000000128],[-73.998046999999985,79.451385000000073],[-74.023620999999991,79.446930000000066],[-74.081389999999999,79.440536000000009],[-74.11610399999995,79.43803400000013],[-74.160278000000005,79.436371000000008],[-74.198333999999988,79.436095999999964],[-74.544158999999922,79.43803400000013],[-74.617492999999854,79.438583000000051],[-74.673614999999927,79.444138000000123],[-74.688598999999897,79.446930000000066],[-74.931670999999938,79.498871000000122],[-74.932410999999888,79.504798999999991],[-74.941939999999988,79.510543999999982],[-74.96444699999995,79.513046000000031],[-74.987503000000004,79.509995000000004],[-75.043334999999956,79.49581900000004],[-75.060271999999884,79.490813999999943],[-75.059433000000013,79.483871000000136],[-74.995269999999948,79.453598],[-74.983062999999959,79.449706999999933],[-74.948882999999967,79.440810999999997],[-74.912215999999944,79.429703000000018],[-74.897231999999974,79.423308999999961],[-74.884444999999971,79.416092000000049],[-74.883056999999894,79.408325000000104],[-74.911117999999988,79.39387499999998],[-74.93499799999995,79.385269000000051],[-74.951949999999954,79.380264000000011],[-75,79.375488000000075],[-75.016953000000001,79.374146000000053],[-75.058334000000002,79.373871000000065],[-75.213897999999972,79.376373000000115],[-75.31361400000003,79.379974000000004],[-75.410278000000005,79.384155000000078],[-75.531386999999995,79.392487000000074],[-75.695266999999944,79.409987999999998],[-75.799728000000016,79.431366000000139],[-75.907776000000013,79.426086000000055],[-75.931380999999988,79.423598999999967],[-75.957503999999972,79.426086000000055],[-75.985275000000001,79.429703000000018],[-76.031386999999995,79.438309000000118],[-76.049164000000019,79.443038999999999],[-76.097503999999958,79.461929000000112],[-76.109160999999915,79.467758000000117],[-76.115279999999927,79.472487999999942],[-76.124160999999958,79.476379000000009],[-76.138610999999912,79.481369000000086],[-76.175827000000027,79.488876000000005],[-76.203888000000006,79.492477000000065],[-76.261123999999995,79.497756999999979],[-76.320281999999906,79.501389000000074],[-76.636123999999995,79.519440000000088],[-76.665282999999988,79.520827999999995],[-76.718338000000017,79.51998900000001],[-76.795273000000009,79.51138300000008],[-76.834441999999967,79.508881000000031],[-76.872771999999998,79.508606000000043],[-76.90583799999996,79.509720000000016],[-77.050277999999992,79.518600000000049],[-77.069732999999985,79.523880000000077],[-77.092772999999909,79.539703000000145],[-77.112212999999997,79.545258000000047],[-77.142501999999865,79.547485000000052],[-77.160552999999936,79.543593999999985],[-77.191375999999934,79.511108000000092],[-77.184433000000013,79.503600999999946],[-77.178604000000007,79.499710000000107],[-77.134444999999971,79.490265000000022],[-77.071670999999924,79.486923000000104],[-76.895554000000004,79.48054500000012],[-76.867217999999923,79.479705999999965],[-76.612503000000004,79.474701000000096],[-76.406386999999995,79.473602000000142],[-76.204726999999991,79.461380000000133],[-76.179168999999888,79.459717000000069],[-76.159438999999963,79.456375000000094],[-76.143341000000021,79.449996999999939],[-76.138061999999934,79.443313999999987],[-76.138901000000033,79.441086000000041],[-76.149993999999992,79.437759000000085],[-76.159164000000033,79.436095999999964],[-76.189986999999974,79.433319000000097],[-76.208054000000004,79.429703000000018],[-76.205565999999976,79.424698000000149],[-76.167496000000028,79.396102999999925],[-76.157501000000025,79.391663000000108],[-76.11721799999998,79.384430000000123],[-76.083327999999995,79.378860000000032],[-76.059157999999968,79.374985000000038],[-75.902221999999995,79.357207999999957],[-75.881942999999978,79.353317000000118],[-75.879165999999998,79.351378999999952],[-75.889998999999875,79.348037999999917],[-75.902785999999878,79.346099999999979],[-76.086670000000026,79.332214000000022],[-76.12332200000003,79.331100000000049],[-76.351104999999961,79.341934000000094],[-76.682770000000005,79.352767999999969],[-76.717772999999909,79.353317000000118],[-76.790557999999976,79.353317000000118],[-76.829178000000013,79.350815000000011],[-76.869719999999973,79.349426000000051],[-76.89416499999993,79.353317000000118],[-76.959441999999967,79.367203000000075],[-77.018889999999999,79.381927000000132],[-77.076401000000033,79.398331000000098],[-77.090285999999935,79.40554800000001],[-77.105559999999912,79.416092000000049],[-77.108337000000006,79.420822000000101],[-77.212509000000011,79.447754000000032],[-77.326400999999976,79.454163000000051],[-77.359160999999915,79.455551000000128],[-77.386123999999938,79.452774000000034],[-77.397507000000019,79.447205000000054],[-77.395003999999972,79.440262000000075],[-77.384445000000028,79.433044000000052],[-77.262221999999952,79.372482000000048],[-77.172500999999954,79.336380000000077],[-77.158614999999998,79.329162999999994],[-77.163894999999968,79.324707000000046],[-77.187774999999988,79.322769000000108],[-77.228058000000033,79.321655000000135],[-77.260559000000001,79.322769000000108],[-77.317229999999938,79.327773999999977],[-77.36721799999998,79.336105000000089],[-77.386397999999986,79.33859300000006],[-77.41361999999998,79.34165999999999],[-77.466110000000015,79.346099999999979],[-77.477782999999931,79.346099999999979],[-77.596114999999941,79.345824999999991],[-77.634170999999924,79.345534999999984],[-77.707503999999972,79.343323000000055],[-77.739990000000034,79.344437000000084],[-77.769729999999981,79.346375000000023],[-77.819732999999985,79.351653999999996],[-77.905272999999909,79.365265000000136],[-77.922501000000011,79.366379000000109],[-77.957229999999981,79.363876000000118],[-78.051391999999964,79.354706000000078],[-78.058883999999978,79.349426000000051],[-78.043610000000001,79.344437000000084],[-78.021392999999932,79.339980999999966],[-77.903335999999967,79.322495000000004],[-77.876099000000011,79.319717000000026],[-77.846114999999998,79.317764000000068],[-77.809998000000007,79.316665999999998],[-77.760009999999966,79.316375999999991],[-77.726944000000003,79.317490000000134],[-77.650833000000034,79.317764000000068],[-77.624434999999949,79.315536000000122],[-77.529175000000009,79.30525200000011],[-77.478607000000011,79.29664600000001],[-77.322234999999978,79.267487000000017],[-77.329178000000013,79.261383000000137],[-77.341384999999946,79.259430000000009],[-77.358046999999942,79.257767000000115],[-77.422226000000023,79.254714999999976],[-77.453063999999983,79.252487000000031],[-77.482223999999974,79.248871000000008],[-77.496947999999918,79.24581900000004],[-77.488051999999982,79.244980000000112],[-77.424712999999997,79.246094000000085],[-77.358336999999949,79.249999999999943],[-77.191939999999988,79.263885000000073],[-76.999725000000012,79.273315000000139],[-76.671386999999925,79.277481000000023],[-76.237777999999935,79.271103000000039],[-76.168059999999969,79.269989000000066],[-76.136123999999995,79.268600000000106],[-76.105834999999956,79.265823000000012],[-76.068619000000012,79.25749200000007],[-76.052779999999984,79.251099000000124],[-76.03443900000002,79.24581900000004],[-75.991942999999992,79.236374000000012],[-75.938889000000017,79.230270000000132],[-75.807495000000017,79.227768000000083],[-75.777221999999938,79.227478000000076],[-75.734436000000017,79.229431000000034],[-75.675277999999992,79.236374000000012],[-75.637786999999946,79.239426000000094],[-75.608336999999949,79.239975000000072],[-75.465012000000002,79.239975000000072],[-75.405837999999903,79.237487999999985],[-75.083068999999966,79.235260000000039],[-74.876099000000011,79.238037000000134],[-74.800277999999992,79.240540000000067],[-74.777221999999995,79.240265000000079],[-74.52555799999999,79.227203000000031],[-74.496947999999975,79.224990999999989],[-74.47084000000001,79.22164900000007],[-74.464721999999995,79.219986000000119],[-74.467223999999987,79.215546000000131],[-74.474166999999966,79.211928999999998],[-74.520279000000016,79.203048999999965],[-74.571944999999914,79.196091000000138],[-74.601944000000003,79.192748999999992],[-74.758057000000008,79.18553200000008],[-74.791945999999996,79.182754999999986],[-74.817504999999926,79.17886400000009],[-74.826950000000011,79.174149000000057],[-74.819167999999934,79.167755000000056],[-74.795546999999999,79.163605000000018],[-74.766952999999944,79.161377000000073],[-74.672501000000011,79.156937000000028],[-74.617492999999854,79.151381999999955],[-74.445830999999941,79.065810999999997],[-74.436661000000015,79.0577550000001],[-74.443053999999961,79.046936000000073],[-74.455276000000026,79.041655999999989],[-74.47193900000002,79.036652000000004],[-74.514450000000011,79.028595000000053],[-74.543883999999991,79.025269000000037],[-74.578339000000028,79.023314999999968],[-74.654175000000009,79.022217000000069],[-74.725005999999951,79.022766000000047],[-74.960007000000019,79.028320000000008],[-75.116104000000007,79.035812000000135],[-75.243057000000022,79.043045000000006],[-75.626662999999951,79.066086000000041],[-75.655563000000029,79.068328999999949],[-75.763335999999981,79.080551000000128],[-75.885284000000013,79.097488000000112],[-75.891387999999949,79.102203000000145],[-75.887221999999952,79.12831100000011],[-75.880829000000006,79.134995000000004],[-75.856658999999979,79.139708999999925],[-75.848617999999988,79.14498900000001],[-75.857772999999952,79.152205999999921],[-75.944442999999922,79.173035000000084],[-76.047774999999945,79.192200000000071],[-76.071670999999924,79.196091000000138],[-76.098052999999993,79.199141999999995],[-76.132767000000001,79.199706999999989],[-76.309433000000013,79.190811000000053],[-76.519164999999987,79.190262000000132],[-76.859160999999972,79.185257000000092],[-76.973327999999924,79.183318999999926],[-77.044998000000021,79.183318999999926],[-77.083069000000023,79.183593999999971],[-77.111663999999962,79.184982000000048],[-77.167496000000028,79.189972000000125],[-77.205001999999979,79.195251000000098],[-77.250564999999995,79.198029000000076],[-77.388901000000033,79.199706999999989],[-77.510833999999988,79.194976999999994],[-77.548049999999932,79.194427000000132],[-77.642501999999922,79.199706999999989],[-77.695267000000001,79.204712000000029],[-77.749999999999886,79.208328000000108],[-77.777495999999928,79.208878000000141],[-77.817504999999983,79.207763999999997],[-78.158889999999985,79.189972000000125],[-78.213622999999984,79.183593999999971],[-78.233321999999987,79.17886400000009],[-78.245833999999945,79.174698000000035],[-78.25389100000001,79.169983000000002],[-78.253066999999987,79.164428999999984],[-78.228607000000011,79.160538000000088],[-78.181670999999994,79.159424000000115],[-78.084732000000031,79.168045000000063],[-78.056106999999997,79.171921000000111],[-78.026397999999972,79.174698000000035],[-77.988892000000021,79.177475000000129],[-77.912216000000001,79.17942800000003],[-77.842772999999966,79.178589000000102],[-77.47193900000002,79.167755000000056],[-77.237777999999992,79.156937000000028],[-77.208617999999944,79.154709000000082],[-77.181106999999997,79.153869999999927],[-77.018615999999952,79.153595000000109],[-76.841949,79.153595000000109],[-76.706115999999952,79.153045999999961],[-76.639998999999989,79.15109300000006],[-76.61082499999992,79.149155000000121],[-76.484725999999966,79.136108000000092],[-76.430557000000022,79.132202000000007],[-76.319732999999928,79.124695000000088],[-76.260009999999909,79.121917999999994],[-76.233611999999937,79.121642999999949],[-76.191375999999934,79.123596000000077],[-76.15972899999997,79.122208000000001],[-76.136672999999973,79.11914100000007],[-76.081954999999994,79.099716000000114],[-76.085006999999905,79.093323000000112],[-76.099990999999875,79.08776899999998],[-76.116652999999928,79.083328000000051],[-76.146666999999979,79.077774000000034],[-76.170546999999885,79.075821000000076],[-76.210006999999962,79.074707000000103],[-76.265014999999948,79.074432000000115],[-76.360001000000011,79.078323000000012],[-76.515015000000005,79.085815000000082],[-76.575561999999991,79.089432000000045],[-76.637222000000008,79.090546000000018],[-76.676391999999964,79.089432000000045],[-76.828339000000028,79.082764000000111],[-76.996383999999978,79.074707000000103],[-77.073333999999932,79.070831000000055],[-77.152785999999992,79.066086000000041],[-77.223052999999993,79.060532000000023],[-77.326950000000011,79.051651000000106],[-77.355559999999969,79.048325000000034],[-77.429717999999923,79.037200999999982],[-77.449431999999945,79.032760999999937],[-77.464721999999995,79.027771000000087],[-77.49499499999996,79.017761000000007],[-77.529175000000009,79.018051000000014],[-77.693054000000018,79.033600000000092],[-77.719727000000034,79.036652000000004],[-77.742217999999923,79.041930999999977],[-77.783066000000019,79.062484999999981],[-77.799987999999928,79.066666000000055],[-77.84973100000002,79.069717000000082],[-77.919723999999917,79.068878000000097],[-78.035004000000015,79.065536000000009],[-78.103333000000021,79.066086000000041],[-78.135009999999966,79.067490000000021],[-78.165282999999931,79.06999200000007],[-78.214447000000007,79.075271999999984],[-78.234160999999858,79.078323000000012],[-78.289992999999981,79.083328000000051],[-78.351105000000018,79.086380000000133],[-78.425277999999992,79.083054000000118],[-78.671386999999982,79.071930000000009],[-78.818343999999968,79.069442999999978],[-78.860000999999954,79.067214999999976],[-78.891387999999893,79.063309000000118],[-78.879439999999931,79.060256999999979],[-78.692489999999964,79.058594000000085],[-78.588332999999977,79.059143000000006],[-78.405272999999966,79.064987000000031],[-78.283889999999985,79.066666000000055],[-78.236388999999974,79.064987000000031],[-78.15972899999997,79.051086000000055],[-78.108337000000006,79.04664600000001],[-78.070557000000008,79.04664600000001],[-77.966110000000015,79.049149],[-77.86111499999987,79.049149],[-77.829453000000001,79.048035000000027],[-77.799437999999896,79.045258000000103],[-77.785552999999993,79.041092000000049],[-77.708344000000011,79.013046000000145],[-77.703339000000028,79.006943000000035],[-77.71665999999999,79.003326000000072],[-77.796111999999937,78.988586000000112],[-77.835007000000019,78.979431000000034],[-77.946945000000028,78.951660000000004],[-77.946380999999917,78.945815999999979],[-77.952498999999932,78.939697000000137],[-78.040282999999988,78.906097000000045],[-78.147506999999962,78.865265000000079],[-78.282227000000034,78.80386400000009],[-78.289992999999981,78.799149000000057],[-78.297226000000023,78.788879000000122],[-78.296111999999937,78.783051],[-78.285552999999993,78.775818000000015],[-78.269454999999937,78.772491000000059],[-78.248046999999929,78.770263999999997],[-78.215560999999923,78.770537999999931],[-78.196105999999929,78.772217000000126],[-78.168334999999956,78.780823000000055],[-78.15972899999997,78.784988000000055],[-78.15943900000002,78.789978000000133],[-78.145843999999954,78.800812000000008],[-78.129439999999988,78.812194999999974],[-78.105269999999905,78.828598000000056],[-78.042769999999962,78.861649],[-78.029174999999896,78.867477000000122],[-77.902221999999995,78.91276600000009],[-77.887222000000008,78.917755000000056],[-77.75167799999997,78.95748900000001],[-77.711944999999957,78.966095000000109],[-77.689437999999996,78.968596999999988],[-77.526397999999972,78.979156000000046],[-77.370270000000005,78.984421000000111],[-77.258346999999958,78.986374000000069],[-77.177490000000034,78.989700000000084],[-77.107497999999964,78.99552900000009],[-77.078888000000006,78.998871000000065],[-77.026107999999965,79.006652999999972],[-76.960281000000009,79.012772000000041],[-76.75418099999996,79.027771000000087],[-76.710555999999997,79.028320000000008],[-76.683318999999983,79.027771000000087],[-76.424163999999962,79.022491000000002],[-76.361389000000031,79.019714000000135],[-75.98971599999993,78.99552900000009],[-75.732223999999974,78.969147000000021],[-75.720276000000013,78.965545999999961],[-75.769454999999994,78.939971999999955],[-75.781113000000005,78.934708000000001],[-75.796951000000035,78.929703000000131],[-75.825561999999991,78.926085999999998],[-75.858611999999937,78.923309000000074],[-75.896118000000001,78.920821999999987],[-76.095276000000013,78.910262999999986],[-76.25,78.902205999999978],[-76.287215999999944,78.899719000000118],[-76.315552000000025,78.896103000000039],[-76.335555999999997,78.891663000000051],[-76.375548999999921,78.882750999999985],[-76.415008999999998,78.873870999999951],[-76.446105999999929,78.863876000000062],[-76.456389999999942,78.857758000000103],[-76.460007000000019,78.851929000000098],[-76.458343999999897,78.844986000000119],[-76.440276999999924,78.839432000000102],[-76.41194200000001,78.837203999999986],[-76.394454999999937,78.840820000000008],[-76.391113000000018,78.843872000000147],[-76.37470999999988,78.851089000000059],[-76.344727000000034,78.858871000000022],[-76.330001999999979,78.861649],[-76.231673999999998,78.879149999999981],[-76.204726999999991,78.881088000000091],[-76.178329000000019,78.880264000000125],[-76.15834000000001,78.879149999999981],[-76.133330999999998,78.876648000000046],[-76.077498999999989,78.873032000000023],[-75.975006000000008,78.872756999999979],[-75.791671999999949,78.884155000000021],[-75.461120999999991,78.891372999999987],[-75.316101000000003,78.892211999999972],[-75.292220999999927,78.890274000000034],[-75.180557000000022,78.879149999999981],[-74.964721999999995,78.856094000000098],[-74.775009000000011,78.829987000000074],[-74.760559000000001,78.823607999999979],[-74.752791999999943,78.816940000000045],[-74.719726999999978,78.707489000000066],[-74.727218999999934,78.701385000000016],[-74.755844000000025,78.69802900000002],[-74.823059000000001,78.697478999999987],[-74.84333799999996,78.693039000000113],[-74.86999499999996,78.675812000000121],[-74.869445999999925,78.668594000000098],[-74.857773000000009,78.636107999999979],[-74.819457999999884,78.627472000000068],[-74.789992999999981,78.591370000000097],[-74.862212999999997,78.56721500000009],[-74.878052000000025,78.562485000000038],[-75.024169999999913,78.531937000000084],[-75.048049999999989,78.528046000000018],[-75.072509999999909,78.52777100000003],[-75.079453000000001,78.533875000000023],[-75.101394999999968,78.53776600000009],[-75.131377999999927,78.539153999999996],[-75.16722099999987,78.539703000000145],[-75.200287000000003,78.537491000000102],[-75.219726999999978,78.533051000000057],[-75.235275000000001,78.528046000000018],[-75.261672999999973,78.523315000000082],[-75.290557999999919,78.520537999999988],[-75.479445999999996,78.50999500000006],[-75.830001999999979,78.504715000000147],[-75.888335999999924,78.506103999999993],[-75.965011999999888,78.510818000000086],[-75.989990000000034,78.513885000000016],[-76.030563000000029,78.521103000000039],[-76.073058999999944,78.529709000000139],[-76.095550999999944,78.533600000000035],[-76.120270000000005,78.536652000000117],[-76.151107999999965,78.538589000000002],[-76.404448999999886,78.548035000000141],[-76.437209999999993,78.548599000000081],[-76.468886999999938,78.54553199999998],[-76.642775999999969,78.528320000000122],[-76.684433000000013,78.522217000000012],[-76.691101000000003,78.518875000000094],[-76.692764000000011,78.514708999999982],[-76.693603999999993,78.509720000000016],[-76.684997999999894,78.505829000000119],[-76.668335000000013,78.503875999999991],[-76.645844000000011,78.502777000000037],[-76.539992999999981,78.503325999999959],[-76.468338000000017,78.505264000000125],[-76.36471599999993,78.513321000000076],[-76.324722000000008,78.515274000000034],[-76.289444000000003,78.515549000000021],[-76.261948000000018,78.513611000000083],[-76.243057000000022,78.512207000000103],[-76.124999999999943,78.494141000000127],[-76.114165999999955,78.488312000000121],[-76.112777999999878,78.481094000000098],[-76.108886999999982,78.474990999999989],[-76.100554999999986,78.468322999999998],[-76.081679999999949,78.464432000000102],[-76.057495000000017,78.461929000000112],[-75.761123999999995,78.443862999999965],[-75.61721799999998,78.43803400000013],[-75.49888599999997,78.433044000000052],[-75.443603999999993,78.430542000000003],[-75.410827999999924,78.426651000000106],[-75.269729999999925,78.404160000000104],[-75.089995999999985,78.368866000000025],[-75.031386999999995,78.331375000000037],[-75.038329999999917,78.325546000000031],[-75.051940999999886,78.315810999999997],[-75.0625,78.309708000000001],[-75.086670000000026,78.306366000000082],[-75.189986999999974,78.299713000000111],[-75.22193900000002,78.300262000000032],[-75.246108999999933,78.303314],[-75.273055999999883,78.305542000000116],[-75.307495000000017,78.305542000000116],[-75.358611999999937,78.301651000000049],[-75.377212999999983,78.29664600000001],[-75.385009999999909,78.291367000000037],[-75.392226999999934,78.285262999999986],[-75.39805599999994,78.272491000000002],[-75.479172000000005,78.222214000000122],[-75.494155999999975,78.217209000000082],[-75.513335999999924,78.212769000000037],[-75.582503999999915,78.201096000000007],[-75.61361699999992,78.198029000000076],[-75.650283999999942,78.196930000000123],[-75.679442999999992,78.198318000000029],[-75.776397999999972,78.210541000000092],[-75.902495999999928,78.224152000000061],[-75.985549999999932,78.229979999999955],[-76.157227000000034,78.240540000000124],[-76.188888999999961,78.241089000000045],[-76.225829999999974,78.239975000000072],[-76.291945999999996,78.234421000000054],[-76.324447999999961,78.23275799999999],[-76.361389000000031,78.231658999999979],[-76.393065999999976,78.232208000000128],[-76.474715999999944,78.239425999999924],[-76.520278999999903,78.24552900000009],[-76.548049999999876,78.248322000000087],[-76.574172999999917,78.249709999999993],[-76.608336999999949,78.249419999999986],[-76.630554000000018,78.247757000000036],[-76.831680000000006,78.230820000000051],[-76.855269999999962,78.227478000000076],[-76.888061999999991,78.21804800000001],[-76.898620999999935,78.212494000000049],[-76.912216000000001,78.201096000000007],[-76.90834000000001,78.195525999999916],[-76.883330999999941,78.191925000000083],[-76.688599000000011,78.168869000000029],[-76.664444000000003,78.166092000000106],[-76.641678000000013,78.164429000000041],[-76.537780999999939,78.158324999999991],[-76.021392999999989,78.138046000000031],[-75.763900999999976,78.131653000000085],[-75.735549999999989,78.1308140000001],[-75.621933000000013,78.1244200000001],[-75.59722899999997,78.12081900000004],[-75.581389999999942,78.115814],[-75.575561999999934,78.107758000000103],[-75.575287000000003,78.101379000000065],[-75.588897999999972,78.089432000000102],[-75.599166999999909,78.083328000000051],[-75.692763999999954,78.039978000000076],[-75.707503999999915,78.034988000000055],[-75.723052999999993,78.030823000000055],[-75.761123999999995,78.022491000000059],[-75.809433000000013,78.008331000000112],[-75.838608000000022,77.998322000000087],[-75.922775000000001,77.956650000000081],[-75.965011999999888,77.973037999999917],[-75.984160999999858,77.977478000000133],[-76.157227000000034,78.012497000000053],[-76.214721999999995,78.01527399999992],[-76.246108999999933,78.015823000000069],[-76.276672000000019,78.012772000000041],[-76.303054999999972,78.009430000000123],[-76.444716999999912,77.988586000000112],[-76.466949,77.984710999999947],[-76.481383999999935,77.979706000000078],[-76.491942999999992,77.968597000000045],[-76.499725000000012,77.958327999999995],[-76.526108000000022,77.949142000000052],[-76.548339999999996,77.944977000000051],[-76.595839999999953,77.939697000000137],[-76.669998000000021,77.936371000000122],[-76.694442999999865,77.937195000000088],[-76.730559999999912,77.936096000000077],[-76.757232999999985,77.93331900000004],[-76.780288999999925,77.929977000000065],[-76.802490000000034,77.920258000000103],[-76.805557000000022,77.917205999999965],[-76.806945999999925,77.91304000000008],[-76.825287000000003,77.908325000000048],[-76.86221299999994,77.90277100000003],[-76.93110699999994,77.901382000000069],[-76.959731999999974,77.902481000000023],[-76.986114999999927,77.904708999999968],[-77.036391999999921,77.909714000000008],[-77.077788999999939,77.915817000000004],[-77.089171999999962,77.919708000000071],[-77.095276000000013,77.927199999999971],[-77.104172000000005,77.934417999999994],[-77.120269999999891,77.939148000000046],[-77.160003999999901,77.946091000000024],[-77.210830999999985,77.949142000000052],[-77.244445999999982,77.948593000000074],[-77.272232000000031,77.946365000000128],[-77.298339999999996,77.942749000000106],[-77.336120999999991,77.94081099999994],[-77.838897999999972,77.942749000000106],[-77.997498000000007,77.957214000000022],[-78.03694200000001,77.966384999999946],[-78.140838999999914,77.985260000000096],[-78.162216000000001,77.988312000000008],[-78.237502999999947,77.995818999999983],[-78.260833999999932,77.995254999999986],[-78.411391999999921,77.917755000000113],[-78.420837000000006,77.912491000000102],[-78.426391999999964,77.90637200000009],[-78.419723999999974,77.898880000000133],[-78.410552999999936,77.892211999999972],[-78.330840999999907,77.868591000000094],[-78.317107999999962,77.865814],[-78.282500999999968,77.862762000000089],[-78.260283999999899,77.861374000000012],[-78.173889000000031,77.859984999999995],[-78.139450000000011,77.857208000000128],[-77.97193900000002,77.807204999999954],[-77.958617999999888,77.802200000000084],[-77.947768999999994,77.796371000000079],[-77.940826000000015,77.765549000000021],[-77.940551999999968,77.759995000000004],[-77.981109999999887,77.701385000000073],[-77.920272999999952,77.669983000000116],[-77.882767000000001,77.661652000000004],[-77.862777999999992,77.656372000000147],[-77.742766999999958,77.622208000000114],[-77.724716000000001,77.613312000000008],[-77.718612999999948,77.605820000000051],[-77.723052999999936,77.599152000000061],[-77.730835000000013,77.597214000000122],[-77.87222300000002,77.568329000000119],[-77.952224999999999,77.555817000000104],[-77.958343999999954,77.529709000000139],[-77.944442999999978,77.511383000000137],[-77.946105999999986,77.504714999999976],[-77.948607999999979,77.501938000000109],[-77.981673999999998,77.486374000000012],[-77.99499499999996,77.481094000000098],[-78.256667999999934,77.381926999999962],[-78.303878999999995,77.373306000000071],[-78.690552000000025,77.315535999999952],[-78.741104000000007,77.309418000000051],[-78.777221999999995,77.307205000000067],[-78.806655999999975,77.307205000000067],[-78.834166999999923,77.30831900000004],[-78.839721999999995,77.310256999999979],[-78.833069000000023,77.314987000000031],[-78.786117999999988,77.335815000000082],[-78.733886999999982,77.362762000000032],[-78.726944000000003,77.367477000000065],[-78.725280999999995,77.371094000000028],[-78.727782999999988,77.375259000000028],[-78.764449999999954,77.3808140000001],[-78.784438999999907,77.3808140000001],[-78.816665999999998,77.378036000000122],[-78.841110000000015,77.374420000000043],[-78.861663999999962,77.370255000000043],[-78.89805599999994,77.360809000000074],[-78.920273000000009,77.350815000000068],[-78.939986999999917,77.338882000000012],[-78.948043999999982,77.332489000000066],[-78.955565999999919,77.328322999999955],[-78.968338000000017,77.323317999999915],[-79.00418099999996,77.313873000000058],[-79.083327999999995,77.299987999999985],[-79.139724999999999,77.293594000000098],[-79.171386999999868,77.290817000000004],[-79.207229999999981,77.288315000000125],[-79.270554000000004,77.286926000000108],[-79.321670999999924,77.288589000000059],[-79.373321999999973,77.29304499999995],[-79.493332000000009,77.304428000000144],[-79.631377999999984,77.316666000000055],[-79.653885000000002,77.318603999999993],[-79.712218999999948,77.318328999999949],[-79.83666999999997,77.306931000000134],[-79.860824999999977,77.303314],[-79.881942999999978,77.299713000000111],[-79.896118000000001,77.295822000000044],[-79.92332499999992,77.285263000000043],[-79.960555999999883,77.276932000000102],[-79.988327000000027,77.273604999999975],[-80.01916499999993,77.272217000000069],[-80.042495999999971,77.272766000000047],[-80.456116000000009,77.296097000000088],[-80.753341999999918,77.330551000000128],[-80.775833000000034,77.334427000000005],[-80.879714999999919,77.353043000000014],[-81.005568999999923,77.377197000000137],[-81.015288999999996,77.381363000000022],[-81.019454999999994,77.392761000000064],[-81.027221999999995,77.398041000000092],[-81.035277999999948,77.40109300000006],[-81.095276000000013,77.411925999999994],[-81.121108999999933,77.413605000000018],[-81.150833000000034,77.413605000000018],[-81.207778999999903,77.415817000000061],[-81.254729999999995,77.420532000000094],[-81.277495999999928,77.42442299999999],[-81.294448999999929,77.429153000000042],[-81.310546999999985,77.434982000000048],[-81.316665999999998,77.438873000000115],[-81.321121000000005,77.450272000000041],[-81.325287000000003,77.454987000000074],[-81.337509000000011,77.462769000000037],[-81.351669000000015,77.469711000000075],[-81.370543999999938,77.475540000000137],[-81.388901000000033,77.480819999999994],[-81.442215000000033,77.491364000000033],[-81.533889999999928,77.506942999999978],[-81.573623999999938,77.512771999999984],[-81.587783999999942,77.517487000000017],[-81.589721999999995,77.520828000000051],[-81.608337000000006,77.553588999999988],[-81.610549999999989,77.576096000000064],[-81.820281999999963,77.621918000000107],[-81.839721999999938,77.625809000000004],[-81.845001000000025,77.628860000000032],[-81.848617999999988,77.639434999999935],[-81.847778000000005,77.643326000000002],[-81.836670000000026,77.65498400000007],[-81.847503999999901,77.665817000000004],[-81.860000999999954,77.671371000000022],[-81.876662999999951,77.677475000000072],[-81.89527899999996,77.682480000000112],[-81.913894999999911,77.685532000000023],[-81.928329000000019,77.685806000000127],[-81.930283000000031,77.684981999999991],[-81.935546999999929,77.678040000000067],[-81.949158000000011,77.655258000000003],[-81.949431999999945,77.644989000000123],[-81.911391999999921,77.609421000000111],[-81.895844000000011,77.604156000000046],[-81.857223999999974,77.598877000000073],[-81.810271999999941,77.595260999999994],[-81.798049999999989,77.59165999999999],[-81.787506000000008,77.587494000000049],[-81.678054999999972,77.538315000000068],[-81.670546999999942,77.531662000000097],[-81.667220999999984,77.52526899999998],[-81.666945999999996,77.502213000000097],[-81.670836999999949,77.496094000000085],[-81.690276999999924,77.485260000000039],[-81.710555999999997,77.474990999999989],[-81.71945199999999,77.469986000000119],[-81.748046999999929,77.448029000000076],[-81.743606999999997,77.441086000000098],[-81.739440999999999,77.436371000000065],[-81.728881999999999,77.429977000000008],[-81.700561999999877,77.422760000000096],[-81.523620999999991,77.378036000000122],[-81.484726000000023,77.372208000000001],[-81.432220000000029,77.368042000000059],[-81.336670000000026,77.368591000000038],[-81.25140399999998,77.36914100000007],[-81.203888000000006,77.370529000000147],[-81.189986999999917,77.368042000000059],[-81.178054999999972,77.360259999999926],[-81.172775000000001,77.354705999999965],[-81.167769999999962,77.342758000000117],[-81.165833000000021,77.337204000000099],[-81.165833000000021,77.332764000000054],[-81.169448999999986,77.32249500000006],[-81.283889999999985,77.315262000000018],[-81.425003000000004,77.306366000000082],[-81.538329999999974,77.302765000000079],[-81.874999999999943,77.292480000000126],[-81.953887999999949,77.302200000000028],[-82.091948999999943,77.316376000000048],[-82.151397999999972,77.303864000000033],[-82.166107000000011,77.292480000000126],[-82.081680000000006,77.272766000000047],[-82.043335000000013,77.265548999999908],[-81.978881999999999,77.258331000000112],[-81.90695199999999,77.198318000000029],[-81.906577999999968,77.1933140000001],[-81.902221999999995,77.187195000000031],[-81.876099000000011,77.174698000000092],[-81.868057000000022,77.171646000000123],[-81.834166999999866,77.162491000000102],[-81.796660999999972,77.157486000000063],[-81.78694200000001,77.157486000000063],[-81.715835999999967,77.176926000000037],[-81.696654999999907,77.181366000000025],[-81.634444999999971,77.193863000000022],[-81.607497999999964,77.197479000000101],[-81.395003999999972,77.231659000000036],[-81.149170000000026,77.274703999999986],[-80.960281000000009,77.271378000000141],[-80.592772999999966,77.242477000000008],[-80.526397999999915,77.234985000000052],[-80.280288999999868,77.213608000000022],[-80.258621000000005,77.212204000000042],[-80.205840999999964,77.209427000000119],[-80.154998999999975,77.208037999999931],[-80.135833999999988,77.205826000000059],[-80.116104000000007,77.20138500000013],[-80.114715999999987,77.195525999999973],[-80.136947999999961,77.186096000000077],[-80.152785999999992,77.181656000000032],[-80.255004999999983,77.153320000000122],[-80.401671999999962,77.086655000000007],[-80.40972899999997,77.081100000000106],[-80.40972899999997,77.076660000000118],[-80.394454999999937,77.072769000000051],[-80.373046999999929,77.071380999999917],[-80.34584000000001,77.074996999999996],[-80.328063999999927,77.078323000000012],[-80.206954999999937,77.108597000000088],[-80.159438999999963,77.122756999999979],[-80.135009999999966,77.139435000000049],[-80.118606999999997,77.150818000000072],[-80.094726999999978,77.161102000000085],[-80.072509999999909,77.17053199999998],[-80.013335999999924,77.190536000000066],[-79.93582200000003,77.206650000000025],[-79.785278000000005,77.231368999999972],[-79.725829999999917,77.239975000000072],[-79.660277999999948,77.24443100000002],[-79.633057000000008,77.243317000000047],[-79.445540999999992,77.234421000000111],[-79.424163999999905,77.233047000000113],[-79.255004999999983,77.218596999999988],[-79.216949,77.209717000000126],[-79.041945999999882,77.161102000000085],[-79.033066000000019,77.156647000000078],[-79.02806099999998,77.150543000000027],[-79.003890999999953,77.103592000000049],[-79.005004999999926,77.09693900000002],[-79.013335999999924,77.09137000000004],[-79.029723999999987,77.086929000000112],[-79.132492000000013,77.053589000000045],[-79.328888000000006,76.978591999999935],[-79.365554999999915,76.963318000000072],[-79.376663000000008,76.957489000000066],[-79.391387999999949,76.947204999999997],[-79.395003999999915,76.940536000000122],[-79.393065999999976,76.934143000000006],[-79.386948000000018,76.927475000000015],[-79.37222300000002,76.923309000000131],[-79.34584000000001,76.91804500000012],[-79.317504999999926,76.917755000000113],[-79.244445999999925,76.924987999999928],[-79.193053999999904,76.929152999999928],[-79.005843999999911,76.936096000000134],[-78.980835000000013,76.936371000000122],[-78.954178000000013,76.935256999999979],[-78.886123999999995,76.926926000000094],[-78.870834000000002,76.922211000000061],[-78.866394000000014,76.918869000000086],[-78.910004000000015,76.886658000000011],[-78.915282999999988,76.839706000000092],[-78.748336999999935,76.822494999999947],[-78.721938999999963,76.821380999999974],[-78.712218999999948,76.823318000000029],[-78.708053999999947,76.824997000000053],[-78.56361400000003,76.906647000000135],[-78.566101000000003,76.913605000000132],[-78.567504999999983,76.927200000000028],[-78.562774999999874,76.933043999999995],[-78.553878999999938,76.938582999999994],[-78.547775000000001,76.941360000000088],[-78.384444999999914,76.99971000000005],[-78.344161999999926,77.007767000000001],[-78.32028200000002,77.011658000000068],[-78.292770000000019,77.014709000000096],[-78.196944999999971,77.019440000000031],[-78.140838999999914,77.01998900000001],[-78.087219000000005,77.017761000000007],[-78.07028200000002,77.014434999999992],[-77.896666999999979,76.955551000000128],[-77.886947999999961,76.947754000000145],[-77.881103999999993,76.940262000000018],[-77.779448999999943,76.79136699999998],[-77.789443999999946,76.78166200000004],[-77.813323999999966,76.692748999999992],[-77.813613999999973,76.687759000000085],[-77.813048999999864,76.68193100000002],[-77.804992999999968,76.675261999999918],[-77.769454999999937,76.658325000000104],[-77.78443900000002,76.650269000000037],[-77.810271999999941,76.640823000000069],[-77.841110000000015,76.633331000000112],[-77.861663999999905,76.629700000000071],[-77.918335000000013,76.62831100000011],[-77.947219999999959,76.629425000000083],[-77.985000999999954,76.632476999999994],[-78.013625999999988,76.630814000000044],[-78.027495999999985,76.626922999999977],[-78.089721999999995,76.609420999999941],[-78.097777999999948,76.606094000000041],[-78.178328999999962,76.566085999999984],[-78.186110999999926,76.559708000000001],[-78.206107999999972,76.53914600000013],[-78.256667999999934,76.506653000000142],[-78.364440999999999,76.462493999999992],[-78.377486999999917,76.458038000000101],[-78.435103999999967,76.453171000000111],[-78.443328999999892,76.452209000000096],[-78.473052999999993,76.451660000000118],[-78.519164999999987,76.456940000000031],[-78.552490000000034,76.464157000000114],[-78.607772999999952,76.486649000000057],[-78.61471599999993,76.489975000000072],[-78.619445999999982,76.496094000000085],[-78.616942999999992,76.498871000000008],[-78.615004999999883,76.5],[-78.611388999999917,76.49941999999993],[-78.597228999999913,76.505264000000125],[-78.591949,76.5086060000001],[-78.588332999999977,76.513046000000088],[-78.613327000000027,76.547759999999982],[-78.627212999999927,76.563873000000001],[-78.75111400000003,76.572220000000016],[-78.773330999999985,76.572768999999937],[-78.790558000000033,76.571655000000135],[-78.868331999999953,76.521103000000096],[-78.886947999999961,76.497208000000057],[-78.900833000000034,76.478867000000093],[-78.937774999999988,76.449997000000053],[-78.946655000000021,76.444976999999994],[-78.96945199999999,76.43414300000012],[-78.994155999999975,76.424423000000047],[-79.013061999999991,76.420258000000047],[-79.06138599999997,76.41276600000009],[-79.090285999999992,76.411377000000073],[-79.139174999999966,76.411652000000117],[-79.170837000000006,76.409988000000112],[-79.18971299999987,76.405823000000112],[-79.198043999999868,76.400269000000094],[-79.261123999999995,76.352202999999975],[-79.265563999999927,76.346100000000035],[-79.266402999999968,76.339432000000102],[-79.262786999999946,76.331940000000145],[-79.254181000000017,76.320267000000115],[-79.25306699999993,76.314697000000024],[-79.261123999999995,76.309143000000063],[-79.272780999999952,76.304152999999985],[-79.312774999999988,76.297484999999995],[-79.338608000000022,76.296371000000022],[-79.365828999999962,76.296646000000067],[-79.414168999999902,76.301086000000055],[-79.445540999999992,76.306641000000127],[-79.500838999999928,76.314148000000102],[-79.525283999999886,76.31442300000009],[-79.573623999999995,76.311645999999996],[-79.596664000000033,76.308594000000085],[-79.805556999999965,76.278320000000065],[-79.924438000000009,76.25360100000006],[-80.061385999999914,76.226928999999984],[-80.087218999999948,76.223602000000085],[-80.107223999999974,76.2227630000001],[-80.121658000000025,76.224426000000051],[-80.136123999999995,76.228317000000118],[-80.156386999999881,76.23692299999999],[-80.178329000000019,76.239700000000084],[-80.203613000000018,76.240539999999953],[-80.230285999999978,76.239975000000129],[-80.261123999999995,76.238312000000008],[-80.2933349999999,76.235260000000096],[-80.338332999999977,76.228317000000118],[-80.366942999999992,76.218048000000067],[-80.375548999999921,76.213043000000027],[-80.383056999999951,76.20748900000001],[-80.396666999999923,76.202208999999982],[-80.412216000000001,76.198029000000133],[-80.426940999999886,76.195525999999973],[-80.506957999999941,76.196365000000128],[-80.606383999999991,76.191650000000095],[-80.627486999999917,76.187195000000088],[-80.637787000000003,76.17053199999998],[-80.639724999999885,76.167480000000069],[-80.654175000000009,76.162491000000102],[-80.672501000000011,76.158325000000048],[-80.703338999999971,76.156647000000078],[-80.949996999999996,76.144989000000066],[-81.053329000000019,76.128036000000009],[-81.075835999999924,76.129149999999981],[-81.085830999999928,76.134155000000021],[-81.090285999999935,76.137496999999939],[-81.095551,76.212204000000042],[-81.047501000000011,76.249419999999986],[-81.041106999999954,76.25360100000006],[-81.026397999999915,76.258331000000112],[-80.903885000000002,76.312194999999974],[-80.783614999999998,76.374985000000095],[-80.769454999999994,76.384720000000016],[-80.761123999999995,76.394150000000081],[-80.760009999999909,76.40415999999999],[-80.763625999999874,76.411102000000085],[-80.771666999999923,76.419144000000017],[-80.78472899999997,76.423874000000069],[-80.991668999999945,76.483047000000056],[-81.188889000000017,76.518875000000094],[-81.275008999999955,76.533325000000048],[-81.304169000000002,76.510544000000039],[-81.337218999999891,76.494980000000112],[-81.351944000000003,76.490265000000079],[-81.388901000000033,76.481368999999972],[-81.411117999999988,76.477478000000076],[-81.460830999999928,76.471374999999966],[-81.492492999999911,76.469437000000028],[-81.521941999999967,76.468596999999988],[-81.636948000000018,76.468872000000147],[-81.71665999999999,76.470260999999994],[-81.788605000000018,76.474700999999982],[-81.879990000000021,76.483871000000022],[-82.039718999999934,76.509430000000066],[-82.05860899999999,76.513610999999969],[-82.075835999999981,76.518600000000106],[-82.083617999999944,76.523879999999963],[-82.03195199999999,76.553588999999988],[-81.985000999999954,76.578597999999943],[-81.981948999999929,76.584717000000012],[-81.993331999999953,76.590270999999973],[-82.045273000000009,76.603592000000106],[-82.056655999999862,76.609146000000123],[-82.049438000000009,76.612488000000042],[-81.953338999999914,76.631927000000132],[-81.873610999999869,76.645828000000108],[-81.851394999999968,76.649719000000005],[-81.814163000000008,76.658599999999922],[-81.790282999999931,76.667755],[-81.782227000000034,76.672760000000039],[-81.776947000000007,76.677475000000072],[-81.778885000000002,76.681090999999924],[-81.785827999999924,76.685532000000023],[-81.799163999999962,76.685805999999957],[-81.819457999999997,76.682754999999986],[-81.838057999999933,76.678314000000057],[-81.852782999999988,76.673599000000024],[-81.861938000000009,76.669144000000017],[-81.893341000000021,76.660812000000021],[-82.081115999999952,76.631087999999977],[-82.115554999999915,76.628860000000032],[-82.145553999999947,76.628036000000066],[-82.199996999999996,76.628586000000098],[-82.273330999999928,76.633331000000112],[-82.292495999999971,76.635544000000095],[-82.326950000000011,76.641373000000101],[-82.346114999999998,76.645538000000101],[-82.377486999999917,76.657485999999949],[-82.442490000000021,76.684981999999991],[-82.470276000000013,76.698868000000004],[-82.476668999999958,76.704712000000029],[-82.487212999999997,76.717758000000117],[-82.580291999999986,76.776382000000012],[-82.596114999999998,76.782486000000006],[-82.698607999999979,76.812485000000038],[-82.725005999999951,76.819153000000028],[-82.749725000000012,76.818604000000107],[-82.767226999999991,76.813309000000004],[-82.769729999999925,76.811096000000077],[-82.76556399999987,76.808318999999983],[-82.74610899999999,76.804153000000042],[-82.728333000000021,76.799149000000114],[-82.698607999999979,76.788589000000002],[-82.640563999999983,76.766388000000006],[-82.556106999999997,76.723038000000031],[-82.558333999999945,76.718322999999998],[-82.566665999999941,76.707489000000123],[-82.569457999999941,76.701385000000073],[-82.562499999999943,76.688873000000058],[-82.545546999999942,76.674149000000057],[-82.533324999999991,76.666382000000056],[-82.460555999999997,76.636108000000036],[-82.435271999999998,76.628036000000066],[-82.415008999999884,76.62303199999991],[-82.308884000000035,76.609420999999941],[-82.208054000000004,76.593048000000067],[-82.113891999999908,76.572220000000016],[-82.102218999999991,76.568878000000041],[-82.081115999999952,76.561096000000134],[-82.093886999999995,76.557205000000067],[-82.175002999999947,76.546936000000017],[-82.196944999999971,76.542755000000113],[-82.211394999999925,76.53804000000008],[-82.22222899999997,76.532761000000107],[-82.225280999999995,76.526657000000057],[-82.224715999999887,76.520264000000111],[-82.222504000000015,76.514435000000105],[-82.216399999999965,76.5086060000001],[-82.189437999999882,76.486649000000057],[-82.158050999999944,76.466095000000053],[-82.147232000000031,76.461105000000032],[-82.135558999999944,76.453323000000069],[-82.131377999999927,76.448593000000017],[-82.127212999999927,76.441650000000038],[-82.132216999999912,76.436919999999986],[-82.162505999999951,76.421921000000111],[-82.17971799999998,76.416931000000091],[-82.209441999999967,76.409988000000112],[-82.260284000000013,76.398605000000089],[-82.293335000000013,76.395827999999995],[-82.348342999999943,76.395537999999988],[-82.483063000000016,76.396378000000027],[-82.704453000000001,76.386932000000058],[-82.833327999999881,76.397766000000104],[-82.990554999999915,76.426650999999993],[-83.003615999999965,76.429153000000042],[-83.0625,76.450272000000041],[-83.099730999999963,76.463882000000126],[-83.102492999999981,76.469437000000028],[-83.096953999999982,76.475814999999955],[-83.08944699999995,76.480819999999994],[-83.065001999999993,76.491089000000045],[-83.061935000000005,76.497208000000057],[-83.075012000000015,76.532761000000107],[-83.084441999999967,76.546370999999965],[-83.110001000000011,76.579987000000131],[-83.116652999999985,76.586105000000089],[-83.198607999999979,76.619431000000077],[-83.338897999999858,76.66415400000011],[-83.384170999999981,76.730819999999994],[-83.365279999999927,76.740540000000067],[-83.358611999999937,76.746094000000028],[-83.355834999999956,76.752213000000097],[-83.362212999999997,76.756103999999937],[-83.379989999999964,76.758881000000031],[-83.400833000000034,76.759995000000004],[-83.410003999999901,76.757767000000058],[-83.497498000000007,76.723876999999959],[-83.518340999999964,76.713318000000129],[-83.523620999999935,76.706649999999968],[-83.523330999999928,76.700821000000133],[-83.520553999999947,76.695251000000042],[-83.515014999999948,76.689972000000068],[-83.499161000000015,76.676651000000106],[-83.352218999999991,76.612488000000042],[-83.331116000000009,76.603317000000118],[-83.316101000000003,76.598037999999974],[-83.298614999999984,76.593048000000067],[-83.278060999999923,76.588318000000072],[-83.254181000000017,76.579437000000098],[-83.246383999999978,76.572768999999937],[-83.207503999999915,76.505553999999961],[-83.184432999999899,76.424988000000042],[-83.188323999999966,76.419434000000081],[-83.202224999999942,76.414428999999984],[-83.223617999999874,76.410537999999917],[-83.256667999999991,76.407486000000006],[-83.285827999999981,76.406372000000033],[-83.439986999999917,76.411102000000085],[-83.619995000000017,76.423599000000081],[-83.691100999999946,76.428863999999919],[-83.710555999999997,76.433044000000109],[-83.735000999999954,76.444138000000009],[-83.734160999999915,76.449141999999995],[-83.735275000000001,76.455826000000059],[-83.740554999999972,76.462769000000037],[-83.756667999999991,76.468596999999988],[-83.893616000000009,76.501663000000065],[-83.985001000000011,76.520538000000045],[-84.018616000000009,76.529433999999981],[-84.033614999999941,76.534714000000065],[-84.046660999999972,76.542205999999965],[-84.058334000000002,76.553040000000067],[-84.058884000000035,76.558868000000132],[-84.061661000000015,76.585266000000104],[-84.070846999999901,76.616653000000042],[-84.086670000000026,76.62414600000011],[-84.101944000000003,76.629425000000083],[-84.118880999999988,76.633880999999974],[-84.138610999999912,76.637772000000041],[-84.261123999999995,76.65554800000001],[-84.284438999999963,76.657760999999994],[-84.31082200000003,76.658325000000104],[-84.319732999999871,76.656096999999988],[-84.324722000000008,76.653320000000065],[-84.330841000000021,76.647491000000059],[-84.313323999999909,76.641098000000113],[-84.256667999999991,76.628586000000098],[-84.220551,76.622207999999944],[-84.202498999999932,76.617203000000075],[-84.193053999999961,76.609985000000108],[-84.194442999999978,76.606934000000081],[-84.216948999999886,76.571655000000135],[-84.249725000000012,76.536926000000108],[-84.248336999999992,76.530548000000124],[-84.24499499999996,76.524993999999936],[-84.221114999999941,76.510817999999972],[-84.208617999999888,76.505264000000125],[-84.192490000000021,76.49941999999993],[-84.179717999999923,76.49192800000003],[-84.180832000000009,76.484984999999995],[-84.195540999999935,76.45637499999998],[-84.205565999999976,76.451096000000007],[-84.215835999999967,76.448029000000076],[-84.236938000000009,76.443587999999977],[-84.489166000000012,76.429153000000042],[-84.518615999999952,76.427765000000136],[-84.570846999999958,76.428863999999919],[-84.619720000000029,76.431656000000032],[-84.636947999999961,76.434418000000107],[-84.652785999999992,76.438034000000016],[-84.783889999999985,76.469986000000119],[-84.792770000000019,76.474990999999989],[-84.785278000000005,76.485260000000039],[-84.783889999999985,76.489975000000072],[-84.795273000000009,76.503876000000048],[-84.848891999999921,76.53637700000013],[-84.860001000000011,76.542755000000113],[-84.950561999999934,76.577773999999977],[-84.970550999999944,76.581940000000088],[-84.991378999999938,76.582764000000054],[-85.016402999999912,76.578872999999987],[-85.028335999999967,76.57499700000011],[-85.034163999999976,76.569153000000085],[-85.051391999999964,76.514160000000061],[-85.022507000000019,76.456099999999992],[-84.970276000000013,76.426086000000112],[-84.960281000000009,76.42053199999998],[-84.944442999999978,76.416931000000091],[-84.904175000000009,76.411926000000051],[-84.728058000000033,76.390273999999977],[-84.43638599999997,76.338593000000117],[-84.397506999999962,76.330551000000128],[-84.381377999999927,76.324706999999933],[-84.376098999999954,76.317764000000125],[-84.381942999999978,76.31191999999993],[-84.393889999999999,76.308029000000033],[-84.413054999999986,76.304703000000018],[-84.429169000000002,76.303040000000067],[-84.533614999999941,76.30581699999999],[-84.716659999999933,76.306930999999963],[-84.776397999999972,76.303314],[-84.898055999999997,76.288589000000059],[-84.928328999999962,76.286377000000016],[-85.174438000000009,76.280272999999966],[-85.232223999999917,76.295257999999933],[-85.36221299999994,76.303314],[-85.505004999999983,76.321930000000066],[-85.523055999999883,76.326660000000061],[-85.544448999999986,76.329987000000017],[-85.698333999999988,76.34887700000013],[-85.952498999999932,76.368591000000038],[-85.978058000000033,76.370528999999976],[-86.004181000000017,76.37081900000004],[-86.110274999999945,76.368317000000104],[-86.134734999999978,76.369431000000077],[-86.281677000000002,76.376923000000033],[-86.330565999999976,76.3808140000001],[-86.37222300000002,76.38638300000008],[-86.412216000000001,76.40776100000005],[-86.415008999999884,76.41276600000009],[-86.421386999999925,76.456940000000031],[-86.418610000000001,76.469147000000021],[-86.409728999999913,76.474700999999982],[-86.398055999999997,76.478867000000093],[-86.378875999999991,76.483871000000022],[-86.36082499999992,76.487762000000089],[-86.307769999999948,76.49552900000009],[-86.277785999999935,76.5],[-86.256119000000012,76.503876000000048],[-86.22222899999997,76.513321000000133],[-86.213057999999933,76.518600000000106],[-86.20777899999996,76.524429000000112],[-86.211944999999957,76.535262999999986],[-86.226104999999961,76.542755000000113],[-86.532776000000013,76.623306000000014],[-86.594161999999983,76.634994999999947],[-86.63034099999993,76.635132000000112],[-86.625823999999966,76.629425000000083],[-86.601104999999961,76.619979999999998],[-86.512512000000015,76.586929000000055],[-86.36221299999994,76.541655999999932],[-86.342223999999987,76.512206999999933],[-86.508056999999894,76.487762000000089],[-86.64916999999997,76.458878000000141],[-86.664718999999991,76.419708000000014],[-86.711120999999991,76.348037999999974],[-86.71665999999999,76.346100000000035],[-86.770554000000004,76.350815000000068],[-87.083327999999995,76.379424999999912],[-87.130829000000006,76.384155000000135],[-87.148346000000004,76.388321000000076],[-87.154998999999975,76.39498900000001],[-87.154175000000009,76.40109300000006],[-87.225280999999995,76.448029000000076],[-87.426665999999898,76.468596999999988],[-87.462783999999942,76.586929000000055],[-87.468886999999995,76.59165999999999],[-87.520279000000016,76.612488000000042],[-87.53694200000001,76.617477000000008],[-87.563613999999973,76.616379000000109],[-87.580001999999979,76.611374000000069],[-87.583618000000001,76.604980000000012],[-87.598617999999988,76.540817000000004],[-87.595550999999944,76.534149000000014],[-87.553604000000007,76.451096000000007],[-87.545273000000009,76.443587999999977],[-87.53694200000001,76.439147999999989],[-87.516953000000001,76.432479999999998],[-87.500290000000007,76.428863999999919],[-87.455276000000026,76.423874000000069],[-87.429992999999911,76.417755000000056],[-87.402495999999985,76.352768000000026],[-87.416397000000018,76.348037999999974],[-87.591384999999889,76.341094999999996],[-87.648894999999868,76.338043000000084],[-87.719726999999978,76.343048000000124],[-87.742767000000015,76.34637500000008],[-87.760559000000001,76.352202999999975],[-87.788604999999961,76.366378999999995],[-87.817229999999995,76.390549000000021],[-87.864166000000012,76.38998400000014],[-87.900833000000034,76.363037000000077],[-87.916945999999996,76.359711000000004],[-87.948333999999988,76.357758000000103],[-87.997771999999998,76.358322000000044],[-88.351104999999905,76.384995000000004],[-88.389998999999875,76.389708999999982],[-88.42971799999998,76.398041000000148],[-88.434433000000013,76.402205999999978],[-88.391953000000001,76.454163000000108],[-88.371932999999956,76.476089000000059],[-88.355835000000013,76.481093999999928],[-88.348617999999988,76.487198000000149],[-88.349441999999954,76.514435000000105],[-88.356658999999979,76.521103000000096],[-88.442764000000011,76.59165999999999],[-88.515288999999939,76.636108000000036],[-88.509170999999981,76.697478999999987],[-88.488601999999958,76.765274000000034],[-88.479720999999927,76.776932000000045],[-88.476669000000015,76.783324999999991],[-88.474715999999887,76.788879000000009],[-88.474715999999887,76.794983000000002],[-88.477782999999988,76.807755000000043],[-88.485275000000001,76.814422999999977],[-88.494719999999973,76.81721500000009],[-88.518889999999999,76.816086000000098],[-88.541945999999939,76.812758999999971],[-88.554442999999935,76.807479999999998],[-88.557220000000029,76.805817000000104],[-88.701950000000011,76.707489000000123],[-88.683318999999983,76.701935000000105],[-88.649733999999967,76.684143000000063],[-88.591949,76.642761000000007],[-88.584441999999967,76.635818000000029],[-88.495543999999938,76.552199999999971],[-88.489440999999999,76.503326000000015],[-88.496383999999978,76.497208000000057],[-88.571670999999924,76.473602000000028],[-88.593558999999971,76.455933000000016],[-88.60321799999997,76.449265000000025],[-88.608214999999973,76.442261000000144],[-88.607727000000011,76.439095000000009],[-88.608611999999994,76.416092000000106],[-88.59973100000002,76.409988000000112],[-88.597503999999958,76.405823000000112],[-88.608046999999942,76.399994000000049],[-88.631942999999922,76.397217000000012],[-88.656386999999881,76.398330999999985],[-88.67721599999993,76.401932000000045],[-88.689986999999974,76.408324999999991],[-88.693603999999993,76.414703000000145],[-88.693329000000006,76.420821999999987],[-88.684998000000007,76.432479999999998],[-88.678054999999972,76.441650000000038],[-88.659508000000017,76.478706000000102],[-88.646506999999986,76.489212000000009],[-88.640288999999996,76.558594000000028],[-88.644164999999987,76.565262000000018],[-88.651672000000019,76.571930000000009],[-88.660277999999948,76.577773999999977],[-88.688888999999961,76.591369999999984],[-88.710006999999962,76.594986000000006],[-88.733611999999937,76.593872000000033],[-88.740828999999962,76.587769000000094],[-88.791381999999942,76.513321000000133],[-88.795273000000009,76.479431000000034],[-88.786666999999909,76.473602000000028],[-88.781386999999938,76.466385000000059],[-88.783324999999991,76.460815000000025],[-88.799438000000009,76.449997000000053],[-88.901671999999962,76.408324999999991],[-88.921111999999937,76.40525800000006],[-88.947220000000016,76.40525800000006],[-88.994155999999919,76.409149000000127],[-89.166396999999961,76.424423000000047],[-89.213332999999977,76.429703000000075],[-89.231673999999998,76.433593999999971],[-89.353333000000021,76.479979999999955],[-89.407227000000034,76.515823000000012],[-89.490279999999927,76.557480000000055],[-89.499435000000005,76.54664600000001],[-89.515015000000005,76.541655999999932],[-89.541381999999999,76.541655999999932],[-89.667220999999984,76.564423000000033],[-89.676665999999955,76.567215000000147],[-89.679442999999992,76.571655000000135],[-89.614166000000012,76.616089000000102],[-89.603607000000011,76.621918000000107],[-89.571945000000028,76.631653000000028],[-89.528335999999967,76.640823000000069],[-89.480559999999969,76.649428999999998],[-89.443329000000006,76.658325000000104],[-89.431380999999988,76.663605000000018],[-89.415558000000033,76.67442299999999],[-89.411666999999966,76.680266999999958],[-89.434432999999899,76.724426000000108],[-89.47222899999997,76.784714000000008],[-89.496947999999918,76.820267000000001],[-89.514449999999954,76.835815000000025],[-89.529175000000009,76.847214000000122],[-89.533324999999991,76.853592000000049],[-89.521392999999932,76.858871000000079],[-89.417770000000019,76.886658000000011],[-89.279449,76.906936999999971],[-89.238892000000021,76.916091999999992],[-89.14805599999994,76.925537000000077],[-88.986938000000009,76.954436999999928],[-88.976104999999961,76.959991000000116],[-88.898894999999982,76.985535000000141],[-88.769164999999987,76.998871000000065],[-88.740279999999927,77.00277699999998],[-88.719451999999933,77.007492000000013],[-88.702788999999939,77.012207000000046],[-88.50111400000003,77.071655000000078],[-88.473327999999981,77.096649000000014],[-88.544723999999917,77.098038000000031],[-88.545837000000006,77.100266000000147],[-88.426392000000021,77.12081900000004],[-88.307219999999973,77.128860000000088],[-88.278335999999911,77.129699999999957],[-88.172501000000011,77.128035999999952],[-88.154175000000009,77.116088999999988],[-87.967223999999931,77.127472000000012],[-87.690552000000025,77.135268999999994],[-87.670272999999952,77.133606000000043],[-87.656951999999933,77.130264000000125],[-87.642501999999979,77.124984999999924],[-87.626937999999996,77.117477000000122],[-87.619719999999973,77.110809000000131],[-87.568892999999889,77.099426000000108],[-87.455841000000021,77.101929000000098],[-87.349166999999966,77.106094000000098],[-87.337783999999886,77.110259999999982],[-87.353607000000011,77.114700000000028],[-87.37222300000002,77.117203000000018],[-87.451401000000033,77.122756999999979],[-87.460555999999997,77.125534000000073],[-87.456664999999987,77.131927000000019],[-87.452224999999999,77.136383000000137],[-87.432219999999973,77.149719000000061],[-87.416107000000011,77.156647000000078],[-87.404174999999896,77.160812000000078],[-87.356383999999991,77.17553700000002],[-87.33666999999997,77.179153000000099],[-87.312774999999988,77.180817000000104],[-87.069167999999991,77.182755000000043],[-87.044448999999929,77.180542000000059],[-86.959166999999979,77.161926000000051],[-86.951674999999966,77.158324999999991],[-86.946945000000028,77.154433999999924],[-86.951949999999897,77.149994000000106],[-86.951401000000033,77.144714000000022],[-86.942490000000021,77.141936999999928],[-86.875274999999931,77.132202000000063],[-86.829177999999956,77.127762000000018],[-86.804442999999992,77.127197000000024],[-86.791381999999999,77.130813999999987],[-86.739990000000034,77.174149000000114],[-86.773620999999935,77.185806000000071],[-86.960006999999962,77.195815999999979],[-87.15055799999999,77.199417000000039],[-87.148055999999997,77.198029000000133],[-87.146956999999929,77.195815999999979],[-87.161117999999931,77.194426999999962],[-87.182769999999948,77.196930000000123],[-87.196105999999929,77.199997000000053],[-87.21055599999994,77.205261000000064],[-87.174437999999896,77.229431000000034],[-87.166945999999939,77.233871000000079],[-87.141388000000006,77.238037000000134],[-87.007232999999985,77.255829000000006],[-86.976669000000015,77.257492000000127],[-86.948882999999967,77.255554000000018],[-86.928329000000019,77.255264000000011],[-86.910552999999936,77.260269000000051],[-86.919158999999979,77.266098000000056],[-86.947494999999947,77.271652000000074],[-86.984436000000017,77.274703999999986],[-87.012221999999952,77.274993999999992],[-87.078063999999927,77.273604999999975],[-87.106110000000001,77.272217000000069],[-87.136672999999973,77.272217000000069],[-87.183884000000035,77.273604999999975],[-87.197495000000004,77.27526899999998],[-87.229171999999949,77.285538000000031],[-87.245270000000005,77.298325000000034],[-87.24888599999997,77.303314],[-87.108611999999994,77.338318000000072],[-87.09584000000001,77.34027100000003],[-87.068618999999956,77.342209000000139],[-87.037780999999995,77.342209000000139],[-86.962783999999942,77.339157000000057],[-86.934722999999963,77.338882000000012],[-86.900283999999999,77.342209000000139],[-86.845839999999953,77.349152000000117],[-86.829726999999991,77.353043000000014],[-86.838608000000022,77.357483000000059],[-86.851944000000003,77.360535000000141],[-86.963332999999977,77.366378999999995],[-87.064162999999951,77.366928000000087],[-87.091109999999958,77.366378999999995],[-87.241378999999938,77.356094000000041],[-87.263061999999877,77.351654000000053],[-87.280838000000017,77.34693900000002],[-87.294158999999979,77.34165999999999],[-87.326110999999969,77.333878000000084],[-87.358886999999982,77.331375000000094],[-87.391112999999962,77.330551000000128],[-87.416397000000018,77.330826000000116],[-87.695830999999998,77.35554500000012],[-87.711945000000014,77.359985000000108],[-87.715835999999911,77.363312000000064],[-87.775283999999999,77.415543000000127],[-87.780288999999982,77.421097000000145],[-87.78472899999997,77.429703000000075],[-87.775009000000011,77.441360000000032],[-87.748336999999992,77.451660000000118],[-87.730834999999956,77.45637499999998],[-87.669539999999984,77.469238000000018],[-87.65194699999995,77.474990999999989],[-87.642501999999979,77.480270000000132],[-87.646117999999944,77.486923000000104],[-87.694442999999978,77.537201000000096],[-87.711120999999878,77.541656000000103],[-87.868880999999988,77.578598000000113],[-88.063048999999978,77.618866000000025],[-88.162216000000001,77.626923000000147],[-88.180556999999965,77.631927000000132],[-88.200835999999924,77.642761000000007],[-88.214721999999995,77.650542999999971],[-88.223617999999931,77.662490999999989],[-88.223052999999993,77.667206000000022],[-88.221114999999884,77.672760000000039],[-88.162780999999995,77.758330999999998],[-88.06806899999998,77.820267000000001],[-87.835830999999928,77.840271000000087],[-87.640563999999983,77.862487999999985],[-87.294723999999917,77.898041000000035],[-87.231383999999935,77.898880000000133],[-87.174712999999997,77.897491000000002],[-86.876099000000011,77.8836060000001],[-86.824172999999917,77.879424999999969],[-86.651671999999962,77.860260000000039],[-86.46166999999997,77.836105000000032],[-86.422225999999966,77.830826000000059],[-86.377486999999917,77.822769000000051],[-86.222778000000005,77.794434000000024],[-86.198883000000023,77.786102000000085],[-85.986938000000009,77.711380000000133],[-85.975280999999882,77.705825999999945],[-85.884445000000028,77.632751000000098],[-85.718886999999995,77.472214000000065],[-85.715835999999967,77.467209000000025],[-85.717223999999931,77.462493999999992],[-85.727218999999877,77.451934999999935],[-85.748610999999983,77.446930000000066],[-85.76916499999993,77.443587999999977],[-85.775832999999921,77.439972000000068],[-85.795837000000006,77.423874000000069],[-85.794448999999929,77.419708000000128],[-85.776947000000007,77.421371000000079],[-85.551391999999964,77.458328000000108],[-85.530562999999916,77.461928999999941],[-85.493331999999953,77.430267000000015],[-85.436385999999914,77.404159999999933],[-85.39973399999991,77.395827999999995],[-85.376662999999894,77.392487000000131],[-85.299438000000009,77.387772000000098],[-85.270003999999915,77.386658000000125],[-85.155838000000017,77.387497000000053],[-84.973327999999867,77.377197000000137],[-84.954726999999934,77.374420000000043],[-84.9375,77.370818999999983],[-84.875274999999988,77.351654000000053],[-84.825286999999946,77.334152000000017],[-84.759170999999867,77.318328999999949],[-84.719727000000034,77.311645999999996],[-84.649444999999957,77.304428000000144],[-84.601944000000003,77.300537000000077],[-84.529175000000009,77.295822000000044],[-84.479445999999996,77.294434000000138],[-84.466399999999965,77.296371000000022],[-84.463333000000034,77.300262000000089],[-84.47444200000001,77.3119200000001],[-84.481948999999986,77.317764000000125],[-84.494719999999973,77.321106000000043],[-84.520279000000016,77.324157999999954],[-84.553878999999995,77.331375000000094],[-84.569167999999991,77.339705999999978],[-84.615004999999996,77.383040999999992],[-84.612777999999878,77.389160000000004],[-84.603881999999942,77.393599999999992],[-84.58555599999994,77.398041000000092],[-84.550277999999935,77.401382000000126],[-84.520844000000011,77.401657],[-84.49610899999999,77.399428999999998],[-84.470550999999944,77.396378000000027],[-84.429442999999935,77.388884999999959],[-84.386397999999986,77.383881000000031],[-84.33444199999991,77.383040999999992],[-84.27027899999996,77.384995000000004],[-84.153609999999958,77.39498900000001],[-84.061661000000015,77.398605000000032],[-84.005843999999968,77.397491000000059],[-83.985275000000001,77.395537999999931],[-83.949996999999996,77.388884999999959],[-83.868057000000022,77.376923000000033],[-83.793610000000001,77.36914100000007],[-83.531951999999933,77.346375000000023],[-83.505843999999968,77.344711000000018],[-83.478058000000033,77.344147000000078],[-83.464721999999995,77.348327999999981],[-83.463057999999876,77.349152000000117],[-83.46444699999995,77.35554500000012],[-83.472504000000015,77.387207000000046],[-83.553054999999972,77.393051000000071],[-83.654998999999975,77.395537999999931],[-83.711669999999913,77.404709000000082],[-83.728607000000011,77.408324999999934],[-83.778609999999958,77.423309000000017],[-83.822509999999966,77.442474000000004],[-83.833892999999989,77.448868000000004],[-83.835555999999997,77.455261000000007],[-83.824722000000008,77.460541000000035],[-83.801391999999964,77.464706000000035],[-83.768065999999919,77.466934000000037],[-83.682220000000029,77.46804800000001],[-83.620833999999945,77.471924000000058],[-83.593886999999938,77.475540000000137],[-83.426102000000014,77.499710000000107],[-83.389450000000011,77.507767000000115],[-83.36332699999997,77.518051000000128],[-83.216110000000015,77.577773999999977],[-83.011123999999995,77.665817000000004],[-82.895003999999858,77.717484000000013],[-82.674438000000009,77.836928999999998],[-82.655272999999852,77.847763000000043],[-82.541671999999949,77.920532000000037],[-82.526107999999965,77.961929000000055],[-82.577224999999999,78.003326000000072],[-82.590835999999967,78.011108000000036],[-82.591675000000009,78.017487000000074],[-82.579726999999878,78.022766000000047],[-82.56361400000003,78.027771000000087],[-82.538054999999986,78.031096999999988],[-82.497498000000007,78.03414900000007],[-82.470551,78.034714000000122],[-82.40972899999997,78.03414900000007],[-82.377486999999917,78.035812000000021],[-82.369445999999925,78.039428999999927],[-82.326110999999969,78.065262000000075],[-82.318619000000012,78.070831000000055],[-82.320007000000032,78.075821000000133],[-82.336120999999991,78.078873000000044],[-82.518341000000021,78.074158000000011],[-82.549438000000009,78.071930000000066],[-82.652221999999995,78.056090999999924],[-82.672500999999954,78.051651000000106],[-82.692489999999964,78.044983000000116],[-82.780288999999982,78.014999000000103],[-82.790282999999988,78.010544000000095],[-82.792769999999905,78.005829000000062],[-82.794158999999979,77.994979999999998],[-82.785277999999948,77.969986000000006],[-82.775283999999942,77.964157],[-82.735275000000001,77.947479000000101],[-82.728881999999942,77.939972000000012],[-82.728607000000011,77.929703000000131],[-82.736114999999984,77.924148999999943],[-82.769164999999987,77.914993000000038],[-82.852218999999991,77.896942000000024],[-82.949157999999898,77.874694999999974],[-83.123046999999929,77.780548000000067],[-83.156661999999926,77.744980000000055],[-83.185546999999985,77.716385000000002],[-83.192489999999964,77.710540999999978],[-83.200835999999867,77.705551000000128],[-83.386672999999917,77.616653000000042],[-83.427215999999987,77.600815000000011],[-83.527785999999935,77.572769000000108],[-83.648055999999997,77.540816999999947],[-83.735000999999954,77.518875000000094],[-83.873046999999985,77.49331699999999],[-83.898345999999947,77.490540000000067],[-83.920546999999942,77.491652999999985],[-84.143889999999999,77.509430000000009],[-84.192490000000021,77.515549000000078],[-84.229995999999971,77.521378000000084],[-84.386672999999917,77.528594999999996],[-84.419997999999964,77.52777100000003],[-84.452224999999942,77.524994000000106],[-84.483321999999987,77.521652000000017],[-84.500564999999995,77.518051000000128],[-84.555557000000022,77.51249700000011],[-84.579726999999991,77.51249700000011],[-84.760558999999944,77.519714000000079],[-84.779174999999952,77.522490999999945],[-84.858886999999925,77.542755000000113],[-84.869155999999975,77.562759000000028],[-84.87110899999999,77.569153000000085],[-84.866393999999957,77.574158000000125],[-84.837219000000005,77.583878000000027],[-84.815552000000025,77.588881999999955],[-84.773620999999991,77.5977630000001],[-84.707229999999981,77.609985000000052],[-84.665282999999988,77.618866000000025],[-84.627486999999917,77.628036000000066],[-84.520003999999972,77.664703000000031],[-84.441939999999931,77.706100000000106],[-84.429992999999968,77.718322999999941],[-84.428328999999962,77.722762999999986],[-84.431106999999884,77.726379000000009],[-84.443054000000018,77.736374000000126],[-84.486938000000009,77.750275000000101],[-84.495270000000005,77.751099000000067],[-84.503066999999987,77.74971000000005],[-84.48971599999993,77.746368000000132],[-84.483062999999959,77.74470500000001],[-84.475280999999995,77.738876000000005],[-84.476669000000015,77.728316999999947],[-84.486388999999974,77.711380000000133],[-84.499161000000015,77.699707000000103],[-84.520844000000011,77.689148000000102],[-84.533889999999985,77.684981999999991],[-84.547226000000023,77.68081699999999],[-84.715012000000002,77.639709000000096],[-84.922501000000011,77.601653999999996],[-84.952498999999989,77.601379000000122],[-84.972503999999901,77.606369000000029],[-85.158339999999896,77.641663000000108],[-85.298889000000031,77.660538000000031],[-85.310546999999985,77.664703000000031],[-85.348891999999921,77.72886699999998],[-85.348891999999921,77.733871000000136],[-85.335830999999985,77.738037000000077],[-85.190276999999867,77.779984000000127],[-85.054992999999968,77.79693600000013],[-85.05360399999995,77.830551000000014],[-85.144164999999987,77.817490000000078],[-85.297775000000001,77.797211000000118],[-85.328063999999927,77.79832499999992],[-85.381942999999978,77.807754999999986],[-85.400283999999942,77.813309000000004],[-85.402495999999928,77.819991999999957],[-85.400283999999942,77.83638000000002],[-85.389724999999999,77.841934000000037],[-85.353333000000021,77.855545000000006],[-85.325012000000015,77.866089000000045],[-85.281386999999995,77.87441999999993],[-85.231948999999986,77.881653000000142],[-85.207778999999903,77.883881000000088],[-84.925551999999982,77.891098],[-84.837219000000005,77.887496999999939],[-84.692490000000021,77.898604999999975],[-84.664444000000003,77.902206000000035],[-84.611114999999927,77.90387000000004],[-84.498154,77.900116000000082],[-84.428878999999995,77.896942000000024],[-84.385833999999932,77.891098],[-84.368056999999908,77.887206999999933],[-84.342772999999909,77.88499500000006],[-84.318618999999956,77.886932000000115],[-84.31361400000003,77.891936999999984],[-84.325012000000015,77.896103000000039],[-84.379715000000033,77.90637200000009],[-84.401671999999962,77.910262999999986],[-84.559432999999956,77.92303499999997],[-84.575561999999991,77.923874000000126],[-84.634444999999914,77.926926000000037],[-84.663054999999929,77.925262000000032],[-84.816665999999941,77.911652000000004],[-84.847228999999913,77.90887500000008],[-85.056945999999982,77.900543000000084],[-85.166396999999961,77.902206000000035],[-85.200561999999991,77.901657000000057],[-85.267501999999922,77.898041000000035],[-85.303604000000007,77.894714000000079],[-85.331680000000006,77.890823000000012],[-85.378051999999968,77.882202000000063],[-85.423049999999989,77.874694999999974],[-85.474715999999944,77.868591000000094],[-85.515288999999996,77.8836060000001],[-85.678878999999938,77.929428000000144],[-85.67971799999998,77.936645999999939],[-85.675277999999992,77.941650000000095],[-85.660278000000005,77.946639999999945],[-85.450561999999991,77.991089000000102],[-85.28694200000001,78.021652000000074],[-85.065551999999911,78.056366000000139],[-85.038894999999911,78.057205000000124],[-85.009734999999921,78.055251999999996],[-84.963057999999933,78.04414399999996],[-84.884170999999924,78.033051],[-84.816955999999948,78.026382000000126],[-84.788054999999986,78.024155000000064],[-84.761672999999917,78.023605000000032],[-84.726943999999946,78.025817999999958],[-84.708892999999989,78.029434000000037],[-84.695540999999935,78.033599999999922],[-84.688888999999961,78.03915400000011],[-84.673888999999974,78.04414399999996],[-84.654175000000009,78.048874000000012],[-84.575561999999991,78.067215000000033],[-84.547501000000011,78.0711060000001],[-84.524444999999901,78.072220000000073],[-84.360001000000011,78.070267000000115],[-84.328612999999905,78.070541000000048],[-84.307219999999973,78.07249500000006],[-84.288054999999929,78.075546000000088],[-84.292769999999962,78.078049000000078],[-84.299438000000009,78.079712000000029],[-84.323623999999938,78.082764000000111],[-84.410003999999958,78.086929000000112],[-84.532775999999899,78.085541000000035],[-84.557220000000029,78.083603000000096],[-84.623046999999985,78.071381000000088],[-84.673614999999984,78.064148000000102],[-84.736937999999896,78.058319000000097],[-84.765563999999983,78.056366000000139],[-84.798888999999974,78.055251999999996],[-84.855835000000013,78.056930999999963],[-84.881942999999978,78.059143000000063],[-84.993880999999988,78.074158000000011],[-85.077498999999932,78.090820000000008],[-85.094451999999933,78.097487999999998],[-85.087783999999886,78.103317000000004],[-84.994994999999903,78.163040000000024],[-84.901947000000007,78.170821999999987],[-84.829452999999944,78.168869000000029],[-84.793883999999991,78.171096999999975],[-84.761123999999995,78.174423000000047],[-84.708617999999944,78.182479999999998],[-84.688598999999954,78.187195000000031],[-84.657775999999956,78.19720500000011],[-84.63110399999988,78.199997000000053],[-84.549437999999952,78.19720500000011],[-84.430557000000022,78.186371000000065],[-84.315551999999968,78.173599000000081],[-84.284164000000033,78.166381999999942],[-84.222778000000005,78.158875000000023],[-84.201110999999969,78.156937000000084],[-84.173889000000031,78.15776100000005],[-84.127776999999924,78.171096999999975],[-84.126662999999951,78.179977000000008],[-84.453612999999962,78.214706000000092],[-84.479720999999927,78.216934000000037],[-84.506667999999934,78.217758000000003],[-84.693603999999993,78.217209000000082],[-84.722504000000015,78.216934000000037],[-84.777495999999871,78.210266000000047],[-84.877212999999927,78.193039000000056],[-84.909728999999857,78.191086000000098],[-84.937774999999931,78.192474000000004],[-84.951400999999976,78.195525999999916],[-84.968613000000005,78.202484000000084],[-84.973891999999978,78.208602999999982],[-84.970276000000013,78.214157000000114],[-84.967223999999931,78.21804800000001],[-84.956116000000009,78.232208000000128],[-84.942764000000011,78.243866000000139],[-84.83444199999991,78.314987000000031],[-84.815276999999924,78.321654999999964],[-84.792496000000028,78.32499700000011],[-84.731383999999991,78.325546000000031],[-84.658614999999998,78.329437000000098],[-84.629715000000033,78.333327999999995],[-84.605270000000019,78.337494000000106],[-84.585281000000009,78.341934000000094],[-84.575561999999991,78.346375000000023],[-84.572784000000013,78.350540000000024],[-84.571944999999971,78.355545000000063],[-84.575835999999924,78.361374000000069],[-84.581679999999949,78.366089000000102],[-84.601944000000003,78.368866000000025],[-84.630828999999949,78.364990000000148],[-84.667769999999962,78.348602000000085],[-84.684722999999963,78.344147000000078],[-84.707229999999981,78.341094999999939],[-84.735001000000011,78.340270999999973],[-84.772231999999974,78.342209000000139],[-84.815552000000025,78.349152000000117],[-84.866942999999992,78.36914100000007],[-84.865829000000019,78.372207999999944],[-84.785278000000005,78.501663000000065],[-84.782501000000025,78.505829000000119],[-84.774718999999948,78.509154999999964],[-84.759170999999867,78.514160000000061],[-84.738602000000014,78.518875000000094],[-84.724166999999966,78.524429000000055],[-84.704452999999944,78.534988000000112],[-84.625823999999966,78.584152000000074],[-84.619445999999925,78.588318000000015],[-84.61999499999996,78.590546000000131],[-84.638610999999969,78.594147000000021],[-84.661117999999988,78.59248400000007],[-84.675277999999992,78.588318000000015],[-84.838332999999977,78.516662999999994],[-84.846389999999928,78.511658000000125],[-84.978333000000021,78.414993000000095],[-84.974715999999944,78.358871000000136],[-84.970550999999944,78.353317000000118],[-84.964721999999938,78.348602000000085],[-84.961945000000014,78.343597000000045],[-84.96665999999999,78.338882000000012],[-85.043335000000013,78.299149],[-85.188048999999978,78.228317000000061],[-85.418335000000013,78.118866000000082],[-85.433318999999983,78.113876000000005],[-85.450835999999924,78.109984999999938],[-85.486114999999927,78.102478000000019],[-85.508057000000008,78.099152000000004],[-85.523055999999883,78.099426000000108],[-85.528060999999923,78.101929000000098],[-85.608886999999982,78.100815000000068],[-85.740829000000019,78.093048000000124],[-85.80471799999998,78.088882000000069],[-85.876662999999951,78.08166499999993],[-85.894164999999987,78.078049000000078],[-86.010283999999956,78.066086000000041],[-86.119995000000017,78.056366000000139],[-86.148345999999947,78.054703000000018],[-86.178054999999972,78.054977000000122],[-86.223327999999981,78.057480000000112],[-86.267226999999991,78.066376000000048],[-86.282227000000034,78.071655000000021],[-86.288329999999974,78.076385000000073],[-86.291381999999999,78.081375000000094],[-86.290558000000033,78.085815000000139],[-86.25140399999998,78.156647000000078],[-86.234160999999972,78.160537999999974],[-86.135558999999944,78.165543000000014],[-86.113051999999868,78.17053199999998],[-86.098052999999993,78.17553700000002],[-85.949996999999996,78.228317000000061],[-85.93110699999994,78.236649000000057],[-85.839995999999985,78.325821000000076],[-85.835281000000009,78.332214000000022],[-85.827224999999942,78.344147000000078],[-85.825561999999934,78.348602000000085],[-85.833068999999966,78.379974000000004],[-85.853333000000021,78.379150000000038],[-85.878051999999968,78.376922999999977],[-86.052779999999984,78.297484999999995],[-86.060271999999998,78.292480000000126],[-86.060546999999929,78.280548000000124],[-86.06527699999998,78.263610999999969],[-86.073623999999938,78.24859600000002],[-86.259170999999924,78.196365000000071],[-86.285277999999948,78.193314000000044],[-86.311110999999983,78.193314000000044],[-86.453613000000018,78.211928999999998],[-86.476668999999958,78.215820000000065],[-86.497771999999941,78.215546000000131],[-86.515014999999948,78.211655000000064],[-86.537215999999944,78.19470199999995],[-86.548888999999974,78.183044000000109],[-86.569457999999941,78.172210999999947],[-86.719726999999978,78.121917999999994],[-86.736938000000009,78.118042000000116],[-86.763061999999991,78.114990000000034],[-87.079726999999934,78.102768000000026],[-87.10943599999996,78.103043000000071],[-87.196654999999964,78.106094000000098],[-87.439712999999983,78.121643000000006],[-87.505843999999911,78.12831099999994],[-87.529174999999952,78.132202000000007],[-87.538605000000018,78.138046000000031],[-87.535003999999958,78.143051000000071],[-87.526671999999962,78.149155000000121],[-87.483886999999925,78.164429000000041],[-87.430556999999965,78.178314000000114],[-87.407501000000025,78.183044000000109],[-87.352218999999991,78.191086000000098],[-87.314163000000008,78.193863000000022],[-87.289992999999981,78.19470199999995],[-87.166945999999939,78.195525999999916],[-87.104996000000028,78.199141999999995],[-87.08944699999995,78.201934999999992],[-87.087219000000005,78.206099999999992],[-87.105835000000013,78.209427000000119],[-87.262222000000008,78.22665400000011],[-87.293609999999944,78.226089000000115],[-87.363892000000021,78.221099999999922],[-87.371657999999968,78.219437000000028],[-87.396118000000001,78.217209000000082],[-87.423049999999932,78.216095000000053],[-87.475554999999872,78.216385000000116],[-87.497771999999941,78.219711000000132],[-87.513335999999924,78.224990999999989],[-87.518616000000009,78.230545000000006],[-87.516953000000001,78.24136400000009],[-87.516113000000018,78.245819000000097],[-87.494445999999982,78.298598999999967],[-87.502501999999879,78.30525200000011],[-87.513061999999991,78.316375999999991],[-87.516402999999968,78.322768999999937],[-87.52555799999999,78.410263000000043],[-87.524718999999948,78.416382000000112],[-87.517226999999991,78.426376000000118],[-87.503066999999987,78.436646000000053],[-87.476943999999946,78.44802900000002],[-87.311385999999914,78.509154999999964],[-87.292220999999927,78.513885000000016],[-87.15834000000001,78.546371000000136],[-87.140563999999983,78.550262000000032],[-87.013061999999991,78.554153000000099],[-86.891112999999962,78.54553199999998],[-86.866394000000014,78.546371000000136],[-86.858336999999949,78.547760000000096],[-86.855834999999956,78.551650999999993],[-86.858886999999982,78.566375999999934],[-86.864440999999999,78.568878000000041],[-86.877776999999924,78.573044000000095],[-86.898620999999991,78.575821000000019],[-86.957779000000016,78.574997000000053],[-87.031676999999945,78.569153000000028],[-87.066101000000003,78.567490000000134],[-87.095275999999956,78.568604000000107],[-87.113051999999925,78.573044000000095],[-87.121658000000025,78.576934999999992],[-87.12388599999997,78.581099999999992],[-87.122498000000007,78.587204000000042],[-86.944716999999969,78.704711999999972],[-86.934432999999956,78.709991000000116],[-86.922501000000011,78.714705999999978],[-86.856948999999929,78.734985000000108],[-86.638901000000033,78.79942299999999],[-86.615829000000019,78.803040000000124],[-86.377212999999983,78.809982000000048],[-86.138061999999991,78.816666000000112],[-86.067504999999983,78.819716999999912],[-86.037215999999944,78.821380999999974],[-85.646666999999866,78.848602000000142],[-85.607497999999964,78.85165400000011],[-85.577498999999932,78.855819999999994],[-85.350280999999995,78.88749700000011],[-85.329726999999934,78.892211999999972],[-85.297500999999954,78.902205999999978],[-85.257507000000032,78.910537999999974],[-85.09973100000002,78.917755000000056],[-85.064163000000008,78.919144000000074],[-85.036117999999988,78.91693099999992],[-85.008895999999993,78.913315000000068],[-84.84584000000001,78.888885000000016],[-84.788329999999917,78.878035999999952],[-84.766402999999968,78.873032000000023],[-84.740554999999915,78.869980000000112],[-84.712783999999942,78.86775200000011],[-84.563323999999966,78.859984999999995],[-84.412216000000001,78.85554499999995],[-84.212783999999886,78.856934000000138],[-84.145003999999972,78.85554499999995],[-83.850829999999974,78.845261000000107],[-83.746947999999918,78.836928999999941],[-83.694442999999978,78.829712000000029],[-83.674437999999952,78.825546000000145],[-83.660004000000015,78.819992000000127],[-83.64056399999987,78.813873000000115],[-83.601944000000003,78.802200000000084],[-83.579726999999934,78.796371000000079],[-83.538329999999917,78.787201000000039],[-83.513061999999991,78.783874999999966],[-83.485824999999977,78.781372000000033],[-83.428604000000007,78.779159999999933],[-83.394164999999987,78.778870000000097],[-83.34584000000001,78.773605000000032],[-83.327498999999932,78.769713999999965],[-83.308334000000002,78.76388500000013],[-83.293610000000001,78.756104000000107],[-83.284926999999925,78.750000000000057],[-83.236938000000009,78.74054000000001],[-83.101394999999968,78.714432000000045],[-82.994720000000029,78.699707000000103],[-82.941939999999988,78.695526000000029],[-82.910827999999981,78.694702000000063],[-82.845000999999968,78.697478999999987],[-82.822509999999966,78.695250999999985],[-82.689712999999983,78.664154000000053],[-82.69638099999986,78.657761000000107],[-82.704453000000001,78.651932000000102],[-82.695540999999992,78.645264000000111],[-82.610549999999932,78.611374000000012],[-82.506957999999997,78.591095000000109],[-82.417220999999927,78.574158000000068],[-82.37388599999997,78.568604000000107],[-82.357497999999907,78.567490000000134],[-82.337783999999999,78.566665999999941],[-82.308334000000002,78.568878000000041],[-82.262222000000008,78.578048999999965],[-82.236938000000009,78.588318000000015],[-82.235549999999932,78.595825000000104],[-82.244719999999973,78.598877000000073],[-82.310271999999941,78.616653000000042],[-82.416655999999989,78.64276099999995],[-82.496384000000035,78.661926000000108],[-82.516953000000001,78.666930999999977],[-82.535278000000005,78.672759999999982],[-82.559433000000013,78.682205000000067],[-82.565552000000025,78.685256999999979],[-82.584732000000031,78.695526000000029],[-82.59445199999999,78.703049000000021],[-82.581954999999994,78.708327999999995],[-82.569167999999991,78.711380000000133],[-82.45666499999993,78.730820000000108],[-82.435546999999929,78.731659000000093],[-82.407775999999956,78.730820000000108],[-82.350554999999986,78.726089000000002],[-82.279723999999987,78.71775800000006],[-82.255279999999914,78.71665999999999],[-82.230835000000013,78.71775800000006],[-82.223327999999981,78.719711000000018],[-82.215011999999888,78.723037999999974],[-82.220550999999887,78.732208000000014],[-82.231948999999986,78.736374000000126],[-82.254729999999995,78.740814000000114],[-82.279175000000009,78.74414100000007],[-82.310821999999973,78.746933000000126],[-82.396392999999932,78.74914600000011],[-82.45666499999993,78.74914600000011],[-82.480835000000013,78.748322000000144],[-82.506119000000012,78.745818999999983],[-82.525557999999933,78.742203000000131],[-82.542770000000019,78.737198000000092],[-82.564437999999996,78.732758000000047],[-82.619155999999975,78.728043000000014],[-82.663619999999923,78.728043000000014],[-82.752501999999936,78.729705999999965],[-82.781386999999995,78.731094000000041],[-82.809722999999963,78.734146000000123],[-82.826950000000011,78.737488000000099],[-82.84333799999996,78.742203000000131],[-82.911666999999909,78.76638800000012],[-83.069732999999928,78.792206000000078],[-83.108611999999994,78.796646000000067],[-83.21055599999994,78.798874000000069],[-83.228607000000011,78.804153000000042],[-83.255844000000025,78.829987000000074],[-83.254729999999995,78.834991000000002],[-83.244445999999925,78.839432000000102],[-83.218337999999903,78.843597000000102],[-83.1875,78.847214000000065],[-83.085830999999985,78.85554499999995],[-83.056945999999925,78.856094000000098],[-82.991669000000002,78.85554499999995],[-82.811110999999983,78.848038000000031],[-82.67582699999997,78.842209000000025],[-82.65055799999999,78.838882000000069],[-82.621384000000035,78.837493999999992],[-82.462783999999942,78.833328000000108],[-82.429442999999992,78.833328000000108],[-82.289718999999991,78.837203999999986],[-82.254455999999948,78.840546000000074],[-82.112777999999992,78.857483000000116],[-82.079452999999944,78.859711000000061],[-81.947495000000004,78.865814],[-81.913894999999911,78.865814],[-81.764174999999966,78.859984999999995],[-81.749434999999949,78.858032000000037],[-81.740554999999915,78.855254999999943],[-81.767226999999991,78.853317000000004],[-81.824447999999961,78.853867000000037],[-81.838607999999965,78.851379000000065],[-81.833618000000001,78.846649000000014],[-81.820281999999963,78.845261000000107],[-81.741378999999881,78.839157000000114],[-81.712509000000011,78.839706000000035],[-81.699157999999954,78.842757999999947],[-81.660827999999924,78.877762000000018],[-81.656661999999869,78.883881000000088],[-81.65695199999999,78.888321000000076],[-81.666397000000018,78.895537999999988],[-81.68249499999996,78.900268999999923],[-81.734725999999966,78.90637200000009],[-81.753066999999987,78.912201000000096],[-81.755843999999968,78.91804500000012],[-81.698607999999922,78.973877000000073],[-81.690825999999959,78.980270000000019],[-81.683060000000012,78.984421000000111],[-81.553604000000007,79.024155000000007],[-81.486114999999927,79.041655999999989],[-81.477218999999991,79.047211000000061],[-81.486663999999962,79.052475000000072],[-81.50306699999993,79.059143000000006],[-81.521118000000001,79.061096000000134],[-81.548614999999984,79.061355999999989],[-81.617767000000015,79.051086000000055],[-81.865829000000019,79.013610999999969],[-81.910277999999948,79.004990000000078],[-81.928329000000019,79],[-81.961120999999935,78.98692299999999],[-81.97222899999997,78.982483000000002],[-81.974166999999966,78.979431000000034],[-81.999725000000012,78.960266000000104],[-82.092772999999909,78.918320000000108],[-82.110274999999945,78.913605000000075],[-82.34722899999997,78.894440000000088],[-82.50306699999993,78.882750999999985],[-82.559433000000013,78.884720000000016],[-82.681380999999988,78.903319999999951],[-82.813888999999961,78.923035000000141],[-82.839447000000007,78.926376000000005],[-82.924438000000009,78.934982000000105],[-83.063048999999978,78.939697000000137],[-83.126663000000008,78.941085999999927],[-83.264175000000023,78.939147999999989],[-83.514174999999966,78.930542000000059],[-83.570557000000008,78.929977000000065],[-83.637512000000015,78.930817000000104],[-83.694716999999912,78.934708000000001],[-83.787215999999887,78.942474000000061],[-83.812774999999988,78.945815999999979],[-84.034163999999976,78.956650000000025],[-84.165558000000033,78.956940000000031],[-84.200561999999991,78.957213999999965],[-84.259170999999981,78.959427000000119],[-84.328888000000006,78.965271000000143],[-84.367492999999968,78.972488000000055],[-84.386123999999882,78.977767999999969],[-84.429992999999968,78.987761999999975],[-84.473052999999936,78.99552900000009],[-84.573333999999875,79.009995000000117],[-84.651397999999972,79.019439999999975],[-84.679442999999992,79.021652000000074],[-84.726943999999946,79.027771000000087],[-84.748046999999985,79.031936999999971],[-84.766953000000001,79.037200999999982],[-84.779174999999952,79.04664600000001],[-84.789718999999991,79.064148000000046],[-84.789168999999958,79.069442999999978],[-84.783889999999985,79.074432000000115],[-84.651672000000019,79.114699999999971],[-84.544158999999979,79.141372999999987],[-84.528609999999901,79.143326000000059],[-84.503615999999909,79.144440000000088],[-84.473052999999936,79.143051000000071],[-84.163894999999911,79.12414600000011],[-84.135559000000001,79.121917999999994],[-84.075561999999934,79.10443099999992],[-84.0625,79.090546000000018],[-84.040558000000033,79.075447000000054],[-83.990279999999984,79.051651000000106],[-83.950561999999934,79.043594000000098],[-83.896392999999989,79.038040000000137],[-83.744720000000029,79.028046000000074],[-83.600554999999929,79.025269000000037],[-83.504456000000005,79.023604999999975],[-83.474716000000001,79.024155000000007],[-83.454726999999991,79.025542999999971],[-83.386123999999995,79.039429000000098],[-83.36860699999994,79.044434000000138],[-83.358611999999937,79.050812000000121],[-83.373610999999926,79.056366000000139],[-83.399445000000014,79.059708000000057],[-83.415557999999976,79.059981999999991],[-83.430831999999953,79.05831900000004],[-83.461670000000026,79.052200000000028],[-83.493880999999931,79.043319999999994],[-83.521118000000001,79.041367000000037],[-83.546111999999937,79.042480000000126],[-83.70666499999993,79.077774000000034],[-83.976394999999968,79.141098000000113],[-84.003615999999909,79.148605000000089],[-84.029998999999975,79.151657],[-84.029175000000009,79.156937000000028],[-84.018889999999999,79.161377000000073],[-84.005004999999926,79.166092000000106],[-83.952498999999989,79.180267000000015],[-83.939986999999917,79.18553200000008],[-83.933318999999926,79.191925000000026],[-83.941101000000003,79.216385000000059],[-83.956664999999987,79.221924000000058],[-83.979720999999927,79.22164900000007],[-84.016952999999944,79.213042999999971],[-84.043059999999912,79.203048999999965],[-84.051940999999943,79.198029000000076],[-84.067504999999983,79.192474000000004],[-84.086120999999991,79.188033999999959],[-84.121933000000013,79.184708000000114],[-84.158507999999983,79.183304000000135],[-84.193329000000006,79.183044000000109],[-84.303329000000019,79.186646000000053],[-84.326949999999954,79.188583000000108],[-84.323897999999872,79.19470200000012],[-84.316665999999941,79.200546000000145],[-84.31361400000003,79.206649999999968],[-84.335555999999997,79.252213000000097],[-84.34445199999999,79.258041000000048],[-84.362777999999992,79.264999000000046],[-84.401108000000022,79.27526899999998],[-84.428878999999995,79.290268000000026],[-84.452788999999996,79.328872999999987],[-84.452224999999942,79.34165999999999],[-84.446654999999964,79.353866999999923],[-84.446105999999929,79.358871000000079],[-84.484725999999966,79.406372000000147],[-84.503341999999975,79.413040000000137],[-84.581116000000009,79.433868000000018],[-84.606110000000001,79.43803400000013],[-84.660278000000005,79.444138000000123],[-84.709166999999979,79.451660000000061],[-84.821120999999948,79.473037999999974],[-84.882492000000013,79.486098999999911],[-84.896956999999929,79.492477000000065],[-84.96945199999999,79.537491000000045],[-84.972503999999901,79.542206000000078],[-85.022232000000031,79.611099000000024],[-85.028885000000002,79.615814000000057],[-85.050277999999992,79.621643000000063],[-85.068892999999946,79.626083000000051],[-85.25418099999996,79.667205999999965],[-85.372497999999894,79.684417999999994],[-85.493331999999953,79.700546000000031],[-85.551391999999964,79.705826000000116],[-85.615828999999962,79.708327999999995],[-85.684433000000013,79.709152000000131],[-85.763061999999991,79.705551000000071],[-85.94888299999991,79.708327999999995],[-86.203339000000028,79.735809000000074],[-86.387512000000015,79.747482000000048],[-86.415833000000021,79.750548999999978],[-86.445830999999885,79.754166000000112],[-86.47193900000002,79.759720000000129],[-86.486389000000031,79.763611000000026],[-86.49360699999994,79.768326000000059],[-86.502227999999945,79.775269000000037],[-86.47193900000002,79.890549000000021],[-86.460281000000009,79.919708000000014],[-86.450286999999889,79.931091000000038],[-86.43638599999997,79.942474000000004],[-86.424437999999952,79.948029000000076],[-86.389724999999999,79.958038000000101],[-86.36721799999998,79.962769000000037],[-86.300277999999935,79.968596999999988],[-86.263335999999924,79.969147000000021],[-86.230285999999978,79.96804800000001],[-86.083892999999989,79.95748900000001],[-85.885833999999988,79.941086000000098],[-85.819732999999928,79.938582999999937],[-85.785003999999958,79.938034000000016],[-85.711394999999925,79.937485000000038],[-85.65695199999999,79.938034000000016],[-85.519454999999994,79.924988000000042],[-85.460006999999905,79.910812000000078],[-85.416397000000018,79.901382000000012],[-85.389998999999932,79.897491000000116],[-85.365829000000019,79.896378000000027],[-85.308334000000002,79.900543000000027],[-85.289168999999958,79.904984000000127],[-85.275008999999955,79.909424000000001],[-85.262511999999958,79.914992999999981],[-85.255004999999926,79.920821999999987],[-85.271118000000001,79.923874000000069],[-85.440826000000015,79.938309000000004],[-85.640839000000028,79.962769000000037],[-86.190552000000025,80],[-86.301940999999943,79.998322000000087],[-86.341384999999946,79.99693300000007],[-86.413329999999974,79.99803200000008],[-86.442763999999954,79.999709999999993],[-86.466400000000021,80.003876000000048],[-86.482773000000009,80.0086060000001],[-86.565551999999968,80.035812000000135],[-86.579452999999944,80.04304500000012],[-86.642501999999922,80.098037999999974],[-86.658614999999884,80.117752000000053],[-86.65943900000002,80.128036000000066],[-86.65583799999996,80.135269000000108],[-86.514724999999942,80.299149000000114],[-86.493057000000022,80.304428000000087],[-86.46833799999996,80.308594000000028],[-86.434432999999956,80.312485000000095],[-86.345001000000025,80.319153000000028],[-86.11610399999995,80.333602999999982],[-86.076110999999912,80.333602999999982],[-85.897507000000019,80.333054000000004],[-85.745269999999948,80.320267000000001],[-85.717498999999975,80.316375999999934],[-85.671936000000017,80.306931000000077],[-85.616652999999928,80.298874000000126],[-85.509170999999981,80.285812000000078],[-85.479171999999949,80.28276100000005],[-85.354171999999892,80.273041000000148],[-85.290832999999964,80.268600000000049],[-85.256957999999997,80.267211999999972],[-85.095839999999953,80.262207000000103],[-84.9375,80.267211999999972],[-84.898346000000004,80.269440000000088],[-84.779174999999952,80.272491000000116],[-84.702498999999932,80.273315000000082],[-84.589721999999995,80.273605000000089],[-84.196655000000021,80.271378000000027],[-84.049437999999896,80.267761000000121],[-83.989440999999999,80.264435000000049],[-83.926392000000021,80.259720000000016],[-83.811110999999983,80.249145999999996],[-83.78195199999999,80.24581900000004],[-83.716110000000015,80.233871000000022],[-83.626389000000017,80.213608000000136],[-83.560821999999973,80.195816000000093],[-83.546386999999982,80.189423000000147],[-83.478058000000033,80.164428999999984],[-83.461394999999925,80.15914900000007],[-83.42471299999994,80.148331000000098],[-83.40306099999998,80.142212000000086],[-83.24499499999996,80.103591999999935],[-83.138901000000033,80.078323000000125],[-83.029723999999987,80.053314],[-82.89805599999994,80.02526899999998],[-82.803329000000019,80.006377999999984],[-82.736114999999984,79.992476999999951],[-82.605835000000013,79.964431999999988],[-82.283889999999985,79.893051000000071],[-82.15306099999998,79.858870999999965],[-82.101943999999946,79.839706000000035],[-82.091675000000009,79.834717000000069],[-82.062499999999943,79.816086000000041],[-82.046386999999982,79.801651000000106],[-81.976944000000003,79.735809000000074],[-81.981673999999998,79.723877000000073],[-81.978881999999999,79.718323000000112],[-81.916655999999989,79.703323000000125],[-81.853057999999976,79.693588000000034],[-81.799438000000009,79.686645999999939],[-81.767501999999922,79.684981999999934],[-81.733886999999925,79.686371000000122],[-81.68472300000002,79.675812000000064],[-81.6163939999999,79.623305999999957],[-81.61860699999994,79.61831699999999],[-81.628052000000025,79.614700000000028],[-81.651671999999905,79.610260000000039],[-81.678054999999972,79.607208000000128],[-81.687774999999874,79.608032000000094],[-81.694716999999969,79.609711000000061],[-81.709732000000031,79.615540000000124],[-81.734160999999972,79.619705000000124],[-81.748610999999983,79.621094000000085],[-81.767501999999922,79.62052900000009],[-81.777221999999995,79.619140999999956],[-81.785277999999892,79.614990000000091],[-81.786117999999931,79.609146000000067],[-81.782227000000034,79.604979999999955],[-81.768616000000009,79.600266000000033],[-81.750290000000007,79.594711000000132],[-81.728333000000021,79.589706000000092],[-81.706664999999987,79.586655000000064],[-81.675277999999992,79.584991000000059],[-81.639450000000011,79.584991000000059],[-81.605835000000013,79.588593000000003],[-81.578613000000018,79.59304800000001],[-81.56361400000003,79.597763000000043],[-81.544998000000021,79.609146000000067],[-81.509444999999914,79.624145999999996],[-81.495270000000005,79.629425000000026],[-81.476395000000025,79.634155000000021],[-81.457229999999981,79.636932000000115],[-81.424712999999997,79.636658000000011],[-81.368056999999965,79.634430000000066],[-81.279998999999918,79.628310999999997],[-81.253615999999965,79.624694999999974],[-81.013061999999877,79.598877000000016],[-80.69027699999998,79.56860400000005],[-80.630554000000018,79.564147999999989],[-80.598052999999993,79.566086000000098],[-80.589721999999995,79.568054000000018],[-80.591949,79.573608000000036],[-80.60861199999988,79.576096000000007],[-80.625274999999931,79.580826000000059],[-80.641953000000001,79.588042999999971],[-80.634170999999981,79.592758000000003],[-80.618606999999884,79.597214000000122],[-80.598052999999993,79.601379000000122],[-80.569167999999877,79.605255],[-80.50167799999997,79.61192299999999],[-80.100280999999995,79.644440000000145],[-80.056655999999975,79.646942000000024],[-80.025283999999942,79.647217000000069],[-79.972778000000005,79.644440000000145],[-79.93638599999997,79.644440000000145],[-79.904723999999987,79.646942000000024],[-79.892501999999922,79.649155000000007],[-79.761947999999961,79.695816000000036],[-79.751403999999923,79.701385000000016],[-79.768616000000009,79.701935000000049],[-80.041381999999999,79.697479000000101],[-80.356658999999979,79.685256999999979],[-80.389724999999999,79.68331900000004],[-80.432220000000029,79.677765000000022],[-80.473617999999988,79.669708000000071],[-80.516113000000018,79.664429000000098],[-80.618057000000022,79.654160000000047],[-80.658889999999928,79.652481000000023],[-80.795273000000009,79.648041000000035],[-80.827498999999989,79.648331000000042],[-80.910552999999993,79.651932000000102],[-80.942215000000033,79.653594999999996],[-80.955275999999969,79.658600000000035],[-80.958892999999932,79.664993000000038],[-80.970839999999953,79.671370999999965],[-80.978333000000021,79.67303499999997],[-81.076110999999969,79.688873000000001],[-81.171936000000017,79.703323000000125],[-81.227782999999988,79.709427000000005],[-81.291945999999882,79.713608000000079],[-81.385559000000001,79.713608000000079],[-81.424437999999952,79.712769000000094],[-81.519729999999925,79.730820000000108],[-81.569457999999941,79.819717000000082],[-81.582779000000016,79.836929000000112],[-81.587783999999942,79.841660000000047],[-81.59973100000002,79.851929000000098],[-81.608337000000006,79.858597000000032],[-81.631377999999984,79.872208000000001],[-81.651947000000007,79.882750999999985],[-81.65972899999997,79.888596000000064],[-81.665008999999941,79.897765999999933],[-81.663054999999986,79.903046000000018],[-81.643616000000009,79.909988000000112],[-81.540557999999919,79.922760000000096],[-81.515839000000028,79.924988000000042],[-81.416945999999939,79.927199999999971],[-81.402221999999995,79.932479999999998],[-81.400283999999942,79.937758999999971],[-81.420272999999952,79.943587999999977],[-81.557495000000017,79.960815000000025],[-81.589721999999995,79.962494000000049],[-81.639450000000011,79.962204000000042],[-81.643341000000021,79.962204000000042],[-81.710555999999997,79.964706000000092],[-81.743056999999965,79.966385000000116],[-81.833068999999966,79.973877000000016],[-82.005004999999983,79.993042000000003],[-82.168334999999956,80.013610999999969],[-82.191101000000003,80.018600000000106],[-82.285827999999981,80.046097000000088],[-82.34333799999996,80.063873000000058],[-82.359160999999915,80.069153000000085],[-82.619155999999975,80.150542999999971],[-82.948043999999982,80.247481999999991],[-83.12110899999999,80.292755000000056],[-83.166655999999932,80.301376000000005],[-83.186934999999949,80.30664100000007],[-83.201400999999976,80.313309000000061],[-83.203887999999949,80.318054000000075],[-83.196654999999964,80.320830999999998],[-83.166945999999939,80.326934999999992],[-83.131942999999978,80.330551000000071],[-82.942764000000011,80.345535000000098],[-82.854720999999984,80.350815000000011],[-82.787780999999939,80.352203000000088],[-82.706664999999987,80.352767999999969],[-82.579726999999878,80.358322000000101],[-82.273330999999928,80.377472000000068],[-82.031386999999938,80.398331000000042],[-81.987212999999997,80.40026899999998],[-81.899170000000026,80.401657000000114],[-81.882216999999969,80.401932000000102],[-81.673888999999974,80.406097000000102],[-81.334441999999967,80.420532000000037],[-81.204726999999991,80.427200000000028],[-81.079726999999991,80.436096000000134],[-80.98611499999987,80.443588000000091],[-80.835007000000019,80.452774000000034],[-80.660004000000015,80.460815000000082],[-80.481110000000001,80.462494000000106],[-80.412216000000001,80.460541000000148],[-80.367766999999958,80.462204000000099],[-80.336120999999991,80.465819999999951],[-80.318893000000003,80.470534999999984],[-80.306655999999919,80.47526600000009],[-80.294158999999866,80.486649000000114],[-80.297775000000001,80.488876000000005],[-80.312209999999936,80.491653000000099],[-80.343338000000017,80.49414100000007],[-80.354996000000028,80.498031999999967],[-80.357223999999917,80.501389000000074],[-80.227492999999924,80.519713999999965],[-80.195540999999935,80.523605000000032],[-80.153335999999967,80.526382000000126],[-80.116394000000014,80.527771000000143],[-80.058608999999933,80.527206000000092],[-79.940276999999924,80.528869999999927],[-79.558043999999995,80.536377000000073],[-79.490554999999915,80.539703000000088],[-79.339995999999928,80.549988000000042],[-79.232773000000009,80.553314000000057],[-79.190552000000025,80.55386400000009],[-79.011123999999995,80.553314000000057],[-78.815551999999911,80.555817000000047],[-78.592772999999966,80.562195000000031],[-78.46556099999998,80.563873000000115],[-78.345276000000013,80.564423000000147],[-78.098891999999921,80.562485000000038],[-78.063889000000017,80.564697000000081],[-78.038054999999929,80.567215000000033],[-78.015014999999948,80.586655000000007],[-78.013625999999988,80.591095000000053],[-78.019164999999987,80.594436999999971],[-78.030838000000017,80.596100000000092],[-78.088608000000022,80.596939000000077],[-78.357773000000009,80.60165400000011],[-78.741378999999938,80.60914600000001],[-78.851944000000003,80.612487999999985],[-78.925277999999992,80.616652999999985],[-78.981109999999944,80.616089000000045],[-79.114440999999999,80.612487999999985],[-79.255004999999983,80.605819999999994],[-79.347228999999913,80.601089000000059],[-79.392226999999934,80.599715999999944],[-79.565276999999924,80.596100000000092],[-79.634170999999981,80.595535000000041],[-79.86332699999997,80.603043000000071],[-79.934433000000013,80.606094000000098],[-79.960555999999883,80.608032000000037],[-79.960280999999952,80.614700000000028],[-79.907226999999978,80.623871000000008],[-79.847777999999948,80.631927000000076],[-79.559433000000013,80.669983000000059],[-79.353607000000011,80.696640000000116],[-79.291945999999996,80.703872999999987],[-79.172501000000011,80.713043000000027],[-78.990829000000019,80.729706000000078],[-78.809432999999956,80.746933000000126],[-78.62388599999997,80.769149999999968],[-78.585280999999952,80.772217000000069],[-78.50556899999998,80.77748100000008],[-78.236664000000019,80.793319999999994],[-77.894454999999994,80.813309000000118],[-77.805832000000009,80.818603999999993],[-77.733062999999959,80.825546000000088],[-77.639175000000023,80.83027600000014],[-77.287780999999939,80.83526599999999],[-76.926392000000021,80.841933999999981],[-76.845001000000025,80.841094999999996],[-76.729172000000005,80.838043000000084],[-76.681380999999931,80.838593000000117],[-76.590835999999967,80.842758000000117],[-76.556655999999975,80.84637500000008],[-76.511672999999973,80.854430999999977],[-76.484725999999966,80.86554000000001],[-76.485000999999897,80.871094000000028],[-76.490829000000019,80.874985000000095],[-76.526672000000019,80.88638300000008],[-76.621108999999933,80.900818000000015],[-76.656661999999983,80.898041000000148],[-76.699432000000002,80.891372999999987],[-76.738892000000021,80.888321000000019],[-76.797500999999954,80.886108000000092],[-76.841675000000009,80.885543999999982],[-77.168883999999935,80.886932000000058],[-77.201675000000023,80.887772000000098],[-77.308884000000035,80.893051000000071],[-77.428329000000019,80.903046000000018],[-77.454726999999991,80.90525800000006],[-77.581115999999895,80.911377000000073],[-77.766113000000018,80.906937000000084],[-77.980285999999921,80.90109300000006],[-78.421111999999994,80.879424999999912],[-78.836394999999982,80.85386699999998],[-78.869445999999925,80.852202999999975],[-78.885283999999956,80.853591999999992],[-78.896118000000001,80.854705999999965],[-78.908614999999998,80.858871000000136],[-78.922225999999966,80.866088999999988],[-78.93499799999995,80.875534000000016],[-78.93638599999997,80.881363000000079],[-78.930556999999965,80.981933999999967],[-78.928604000000007,80.990540000000067],[-78.839721999999995,81.016098],[-78.799987999999985,81.026382000000069],[-78.757781999999906,81.035537999999974],[-78.636672999999973,81.058594000000028],[-78.528884999999946,81.081940000000088],[-78.501113999999973,81.09165999999999],[-78.457503999999972,81.107758000000047],[-78.426101999999958,81.120818999999983],[-78.416396999999961,81.125259000000142],[-78.397231999999917,81.137497000000053],[-78.393065999999919,81.142761000000007],[-78.406386999999938,81.144988999999953],[-78.461945000000014,81.147491000000059],[-78.475280999999939,81.149719000000005],[-78.475829999999974,81.15248100000008],[-78.472777999999948,81.158325000000104],[-78.463622999999927,81.160812000000021],[-78.438598999999954,81.164703000000088],[-78.411391999999921,81.167479999999955],[-78.290833000000021,81.174698000000149],[-78.254729999999995,81.177765000000079],[-78.225005999999894,81.181930999999963],[-78.15943900000002,81.193862999999965],[-78.051102000000014,81.218597000000102],[-78.03694200000001,81.223312000000135],[-78.016662999999994,81.232758000000103],[-78.009170999999981,81.238585999999998],[-77.976943999999889,81.249145999999939],[-77.875274999999874,81.272766000000104],[-77.850829999999917,81.277205999999978],[-77.612503000000004,81.318877999999984],[-77.576949999999897,81.322494999999947],[-77.50306699999993,81.328323000000069],[-77.366394000000014,81.336105000000032],[-77.233611999999994,81.351089000000115],[-77.116942999999935,81.367751999999996],[-76.955275999999969,81.393874999999923],[-76.765014999999948,81.428588999999988],[-76.748610999999983,81.4327550000001],[-76.745269999999948,81.439148000000046],[-76.761123999999995,81.442749000000106],[-76.777785999999878,81.444427000000019],[-76.803328999999962,81.445526000000029],[-76.855835000000013,81.445526000000029],[-76.951110999999969,81.440536000000122],[-77.028609999999958,81.43331900000004],[-77.208617999999944,81.409424000000058],[-77.264450000000011,81.400818000000129],[-77.41722099999987,81.380538999999999],[-77.571395999999993,81.366652999999985],[-77.609726000000023,81.364425999999924],[-77.829177999999899,81.34248400000007],[-77.896117999999944,81.335541000000092],[-78.174163999999962,81.30053700000002],[-78.228333000000021,81.291656000000046],[-78.273620999999935,81.283599999999979],[-78.29222099999987,81.278320000000122],[-78.305557000000022,81.272766000000104],[-78.325835999999924,81.261383000000137],[-78.351944000000003,81.250275000000101],[-78.370270000000005,81.2452550000001],[-78.410004000000015,81.236374000000126],[-78.433883999999921,81.231934000000138],[-78.487212999999997,81.223038000000031],[-78.604996000000028,81.206375000000094],[-78.652495999999928,81.197205000000054],[-78.675277999999935,81.191925000000026],[-78.701950000000011,81.181655999999975],[-78.721114999999998,81.172211000000061],[-78.728333000000021,81.166382000000056],[-78.75111400000003,81.141663000000108],[-78.754181000000017,81.135818000000029],[-78.745833999999945,81.129150000000038],[-78.71665999999999,81.123306000000014],[-78.690552000000025,81.12164300000012],[-78.690825999999959,81.11943100000002],[-78.817504999999926,81.106093999999985],[-78.895019999999931,81.098999000000049],[-78.916945999999996,81.098037999999917],[-78.941375999999934,81.101088999999945],[-78.963622999999984,81.107758000000047],[-79.015014999999948,81.115539999999953],[-79.075287000000003,81.122757000000092],[-79.162780999999939,81.13220199999995],[-79.218062999999972,81.136932000000002],[-79.242767000000015,81.139984000000084],[-79.399170000000026,81.174698000000149],[-79.463622999999984,81.193313999999987],[-79.486114999999984,81.194977000000108],[-79.50167799999997,81.193588000000091],[-79.499434999999949,81.189972000000068],[-79.491669000000002,81.186095999999964],[-79.475829999999974,81.180542000000003],[-79.275283999999999,81.12359600000002],[-79.218886999999938,81.111099000000081],[-79.172501000000011,81.10386699999998],[-79.088837000000012,81.094757000000072],[-79.073623999999995,81.090820000000122],[-79.063613999999916,81.085541000000148],[-79.072783999999956,81.080826000000116],[-79.087783999999999,81.076660000000004],[-79.142226999999991,81.069153000000085],[-79.226944000000003,81.063034000000073],[-79.255279999999914,81.058868000000132],[-79.305266999999958,81.029984000000013],[-79.315826000000015,81.023880000000133],[-79.323623999999938,81.018326000000002],[-79.33666999999997,81.0086060000001],[-79.343886999999995,80.99832200000003],[-79.336945000000014,80.992203000000018],[-79.321120999999891,80.988586000000055],[-79.291381999999885,80.984984999999995],[-79.258347000000015,80.984421000000054],[-79.205275999999969,80.987762000000089],[-79.18472300000002,80.986374000000012],[-79.164718999999991,80.983047000000056],[-79.158889999999985,80.977768000000083],[-79.15834000000001,80.972763000000043],[-79.165282999999931,80.966660000000104],[-79.265288999999996,80.924149000000057],[-79.600829999999917,80.824432000000115],[-79.618056999999965,80.819442999999978],[-79.883621000000005,80.783325000000104],[-80.065552000000025,80.759720000000129],[-80.247498000000007,80.73692299999999],[-80.511123999999938,80.705826000000059],[-80.651947000000007,80.691925000000083],[-80.720551,80.684142999999949],[-80.855559999999969,80.663315000000068],[-80.919448999999929,80.655548000000124],[-80.956664999999987,80.651932000000045],[-81.336394999999925,80.623306000000127],[-81.533324999999991,80.607208000000071],[-81.575561999999991,80.604155999999989],[-81.808884000000035,80.59304800000001],[-81.966110000000015,80.579712000000029],[-82.353881999999942,80.556365999999969],[-82.434998000000007,80.553040000000124],[-82.798889000000031,80.539428999999984],[-82.881103999999937,80.536652000000061],[-82.956389999999999,80.536377000000073],[-83.027495999999928,80.538589000000115],[-83.096664000000033,80.541656000000046],[-83.151946999999893,80.546371000000079],[-83.165008999999998,80.55192599999998],[-83.170272999999895,80.564147999999932],[-83.168059999999912,80.576660000000118],[-83.165282999999931,80.589432000000102],[-83.161391999999864,80.601089000000059],[-83.156112999999948,80.606644000000131],[-83.146666999999979,80.612198000000149],[-83.096953999999982,80.639435000000049],[-83.078063999999927,80.644989000000066],[-83.056380999999988,80.649154999999951],[-82.773055999999997,80.68664600000011],[-82.527495999999985,80.703323000000125],[-82.431945999999982,80.708878000000027],[-82.250838999999928,80.716385000000116],[-82.216399999999965,80.719147000000021],[-82.135833999999875,80.729431000000091],[-82.025009000000011,80.746643000000063],[-81.948333999999932,80.759155000000078],[-81.908614999999941,80.767761000000007],[-81.762786999999889,80.810806000000127],[-81.758895999999993,80.813034000000073],[-81.767501999999922,80.821381000000088],[-81.943603999999993,80.833054000000118],[-81.961120999999935,80.833054000000118],[-81.996108999999933,80.83027600000014],[-82.05221599999993,80.822768999999994],[-82.099730999999906,80.813599000000124],[-82.146118000000001,80.803589000000045],[-82.193877999999984,80.796646000000067],[-82.332229999999981,80.781372000000147],[-82.513061999999934,80.763046000000145],[-82.526107999999965,80.752777000000094],[-82.535827999999867,80.747208000000114],[-82.543334999999956,80.74443100000002],[-82.567229999999995,80.740814000000057],[-82.601669000000015,80.738036999999963],[-82.940551999999968,80.714431999999988],[-83.311934999999949,80.687759000000028],[-83.356948999999929,80.685531999999967],[-83.516113000000018,80.701384999999959],[-83.541107000000011,80.704162999999994],[-83.547226000000023,80.706940000000088],[-83.569457999999997,80.739150999999993],[-83.5625,80.743866000000025],[-83.529723999999987,80.747482000000048],[-83.456664999999987,80.751099000000011],[-83.422500999999954,80.753876000000105],[-83.391387999999949,80.758041000000105],[-83.261947999999961,80.786377000000016],[-83.133057000000008,80.818878000000097],[-83.120270000000005,80.823317999999972],[-83.132492000000013,80.828598],[-83.158051,80.833603000000039],[-83.191100999999946,80.835815000000139],[-83.256957999999997,80.838593000000117],[-83.297225999999966,80.836104999999975],[-83.323333999999932,80.8316650000001],[-83.329177999999956,80.828323000000012],[-83.331954999999937,80.823883000000137],[-83.353881999999999,80.813599000000124],[-83.381377999999984,80.803864000000033],[-83.407226999999978,80.799422999999933],[-83.493332000000009,80.787766000000033],[-83.587218999999891,80.775269000000037],[-83.610549999999932,80.771652000000074],[-83.630828999999949,80.766937000000041],[-83.645554000000004,80.761658000000068],[-83.64916999999997,80.755554000000018],[-83.658889999999872,80.751937999999996],[-83.667769999999905,80.75],[-83.696655000000021,80.746643000000063],[-83.712783999999999,80.747757000000092],[-83.827498999999932,80.761383000000023],[-83.859160999999972,80.759155000000078],[-83.863892000000021,80.757492000000127],[-83.836394999999982,80.719710999999961],[-83.821670999999981,80.705826000000059],[-83.812499999999943,80.698318000000086],[-83.801391999999964,80.691925000000083],[-83.783065999999963,80.684142999999949],[-83.757232999999928,80.669708000000014],[-83.734436000000017,80.654160000000047],[-83.723327999999924,80.643875000000094],[-83.720000999999911,80.636658000000011],[-83.719726999999978,80.630813999999987],[-83.73582499999992,80.613037000000077],[-83.779175000000009,80.570831000000112],[-83.794723999999974,80.560257000000036],[-83.821120999999948,80.550536999999963],[-83.840560999999866,80.545532000000094],[-83.871108999999933,80.541367000000093],[-83.93472300000002,80.534424000000115],[-83.973327999999981,80.531937000000028],[-84.313323999999909,80.513611000000026],[-84.381103999999993,80.512207000000046],[-84.48971599999993,80.514434999999992],[-84.551392000000021,80.517761000000064],[-84.689437999999996,80.524994000000049],[-84.763625999999988,80.525818000000015],[-84.846664000000033,80.523315000000025],[-84.890563999999983,80.521102999999982],[-84.964447000000007,80.514434999999992],[-85.027221999999995,80.507217000000026],[-85.066956000000005,80.505264000000068],[-85.232772999999952,80.508881000000031],[-85.334731999999974,80.513611000000026],[-85.366652999999985,80.517487000000131],[-85.42582699999997,80.523041000000092],[-85.462218999999948,80.524994000000049],[-85.594727000000034,80.529159999999933],[-85.809433000000013,80.531937000000028],[-85.864165999999898,80.535538000000088],[-85.865829000000019,80.541367000000093],[-85.812774999999931,80.559143000000063],[-85.705841000000021,80.589706000000035],[-85.689162999999951,80.593872000000147],[-85.665008999999941,80.598601999999971],[-85.613051999999982,80.606368999999972],[-85.571945000000028,80.615265000000079],[-85.564712999999927,80.619431000000134],[-85.594451999999933,80.6202550000001],[-85.636397999999986,80.619141000000127],[-85.694716999999969,80.613602000000128],[-85.744719999999916,80.606368999999972],[-85.793059999999855,80.596939000000077],[-85.854720999999984,80.582214000000135],[-85.889724999999999,80.573044000000039],[-85.925277999999992,80.562485000000038],[-85.950606999999991,80.552947999999958],[-85.95666499999993,80.548325000000091],[-85.982773000000009,80.537491000000045],[-86.011947999999961,80.533324999999934],[-86.037215999999944,80.530823000000055],[-86.080840999999964,80.528320000000065],[-86.148345999999947,80.53166200000004],[-86.177490000000034,80.534149000000127],[-86.428329000000019,80.560257000000036],[-86.639998999999932,80.583054000000004],[-86.718062999999972,80.59304800000001],[-86.739165999999898,80.597487999999998],[-86.744995000000017,80.603043000000071],[-86.732498000000021,80.615265000000079],[-86.680282999999974,80.654984000000013],[-86.660003999999958,80.666091999999992],[-86.638061999999991,80.676651000000049],[-86.514724999999942,80.729431000000091],[-86.497771999999941,80.735260000000096],[-86.466110000000015,80.74552900000009],[-86.410004000000015,80.760818000000029],[-86.338333000000034,80.775542999999971],[-86.244719999999973,80.794144000000131],[-86.225554999999929,80.799149],[-86.174438000000009,80.81442300000009],[-86.050277999999992,80.856644000000074],[-85.964171999999962,80.886932000000058],[-85.846114999999998,80.928589000000102],[-85.828339000000028,80.93414300000012],[-85.77416999999997,80.948868000000061],[-85.698607999999922,80.962769000000037],[-85.605835000000013,80.975815000000125],[-85.556106999999997,80.981933999999967],[-85.003066999999874,81.028320000000008],[-84.928878999999995,81.030822999999941],[-84.726669000000015,81.031097000000102],[-84.404998999999918,81.043869000000086],[-84.368332000000009,81.046097000000032],[-84.20666499999993,81.060531999999967],[-84.119994999999903,81.067490000000134],[-84.025009000000011,81.070830999999998],[-83.908050999999944,81.071381000000031],[-83.823623999999938,81.073608000000092],[-83.529998999999918,81.090271000000143],[-83.31138599999997,81.103317000000118],[-83.15055799999999,81.120529000000147],[-83.12332200000003,81.12303200000008],[-83.053328999999962,81.123306000000014],[-82.943603999999993,81.120818999999983],[-82.869445999999925,81.121368000000075],[-82.826401000000033,81.12303200000008],[-82.785004000000015,81.125534000000016],[-82.760283999999956,81.129150000000038],[-82.738891999999964,81.133880999999974],[-82.707229999999981,81.144440000000031],[-82.688323999999966,81.148331000000098],[-82.64416499999993,81.151657000000114],[-82.599166999999966,81.152771000000087],[-82.531386999999938,81.149993999999992],[-82.50306699999993,81.147766000000047],[-82.466659999999933,81.148331000000098],[-82.37222300000002,81.174698000000149],[-82.364440999999999,81.17942800000003],[-82.389998999999989,81.180266999999958],[-82.420837000000006,81.17942800000003],[-82.484160999999972,81.169983000000116],[-82.52305599999994,81.166382000000056],[-82.565276999999924,81.166092000000049],[-82.665008999999998,81.17442299999999],[-82.828063999999983,81.173308999999961],[-82.866652999999928,81.169708000000128],[-82.894164999999987,81.165268000000083],[-82.926940999999999,81.161102000000028],[-82.962783999999942,81.158325000000104],[-83.14973399999991,81.151382000000126],[-83.453338999999971,81.13220199999995],[-83.757507000000032,81.113312000000008],[-84.116104000000007,81.0977630000001],[-84.372771999999941,81.092209000000082],[-84.58555599999994,81.086380000000077],[-84.797500999999954,81.078323000000125],[-85.065551999999911,81.066375999999991],[-85.211944999999901,81.056931000000077],[-85.25,81.05525200000011],[-85.291381999999999,81.054703000000131],[-85.404448999999943,81.057755000000043],[-85.482773000000009,81.058594000000028],[-85.572509999999966,81.05664100000007],[-85.681670999999938,81.049423000000104],[-85.75556899999998,81.041367000000037],[-85.817779999999971,81.032761000000107],[-85.988602000000014,81.006653000000142],[-86.143340999999907,80.978317000000061],[-86.30972300000002,80.940811000000053],[-86.351944000000003,80.930542000000059],[-87.061935000000005,80.727478000000133],[-87.076401000000033,80.7227630000001],[-87.083618000000001,80.716934000000094],[-87.079078999999979,80.707024000000104],[-87.080291999999986,80.699142000000052],[-87.121383999999921,80.677475000000015],[-87.180557000000022,80.649154999999951],[-87.215011999999945,80.638321000000076],[-87.240554999999972,80.634155000000021],[-87.273055999999997,80.630813999999987],[-87.315001999999936,80.629424999999969],[-87.458054000000004,80.627762000000075],[-87.489715999999873,80.627472000000012],[-87.559433000000013,80.627472000000012],[-87.594726999999978,80.628586000000041],[-87.628051999999968,80.632202000000063],[-87.777221999999938,80.648880000000133],[-87.864166000000012,80.659424000000001],[-87.954726999999878,80.671645999999953],[-88.139724999999999,80.685256999999922],[-88.17721599999993,80.686920000000043],[-88.196105999999986,80.688582999999994],[-88.22222899999997,80.691085999999984],[-88.348891999999921,80.708602999999982],[-88.406661999999926,80.716934000000094],[-88.488601999999958,80.731934000000024],[-88.566956000000005,80.74859600000002],[-88.706116000000009,80.772766000000047],[-88.967498999999862,80.808594000000085],[-89.034163999999976,80.816376000000048],[-89.125823999999966,80.825821000000076],[-89.290557999999976,80.849426000000108],[-89.334731999999917,80.857483000000059],[-89.382492000000013,80.86970500000001],[-89.398055999999997,80.876082999999994],[-89.450561999999934,80.903320000000122],[-89.462218999999948,80.909988000000055],[-89.466110000000015,80.914153999999996],[-89.462218999999948,80.919144000000017],[-89.442763999999897,80.923599000000024],[-89.380828999999892,80.933044000000109],[-89.235274999999945,80.948318000000029],[-89.18638599999997,80.953048999999965],[-88.905563000000029,80.977768000000083],[-88.858611999999994,80.981368999999972],[-88.766861000000006,80.986801000000014],[-88.590285999999992,80.996368000000018],[-88.513901000000033,80.99832200000003],[-88.283324999999991,81.002213000000097],[-88.089721999999938,81.003601000000003],[-88.011397999999986,81.003326000000015],[-87.826674999999966,80.998032000000023],[-87.755004999999983,80.994980000000112],[-87.689437999999939,80.990814],[-87.628051999999968,80.984711000000061],[-87.597504000000015,80.980819999999994],[-87.524169999999913,80.977203000000031],[-87.446380999999974,80.976928999999927],[-87.279448999999943,80.981933999999967],[-87.15943900000002,80.986922999999933],[-87.119719999999973,80.989700000000028],[-87.089172000000019,80.994141000000127],[-87.064712999999983,80.998871000000008],[-87.030562999999972,81.001938000000109],[-86.983062999999902,81.003876000000048],[-86.946105999999986,81.004166000000055],[-86.755004999999983,81.001099000000124],[-86.711670000000026,81.002487000000031],[-86.671936000000017,81.005264000000125],[-86.635559000000001,81.009430000000066],[-86.541945999999996,81.020264000000111],[-86.419448999999986,81.036102000000142],[-86.061110999999983,81.082764000000054],[-85.916396999999961,81.104980000000012],[-85.916396999999961,81.110260000000096],[-85.907227000000034,81.113875999999948],[-85.887512000000015,81.118866000000025],[-85.562774999999988,81.17942800000003],[-85.483063000000016,81.192748999999992],[-85.425277999999935,81.201660000000061],[-85.297500999999954,81.218597000000102],[-85.22193900000002,81.226379000000065],[-85.02027899999996,81.244980000000055],[-84.976394999999968,81.248596000000134],[-84.876388999999961,81.254715000000147],[-84.832503999999972,81.258330999999998],[-84.802490000000034,81.261658000000125],[-84.776108000000022,81.266097999999943],[-84.733886999999982,81.281097000000045],[-84.735549999999989,81.285537999999974],[-84.745834000000002,81.289429000000041],[-84.899993999999936,81.304977000000008],[-84.936660999999958,81.307755000000043],[-84.975554999999986,81.307479999999998],[-85.029175000000009,81.305817000000047],[-85.279174999999952,81.289978000000133],[-85.361388999999974,81.28276100000005],[-85.768340999999964,81.244705000000067],[-85.950561999999991,81.224701000000096],[-86.018341000000021,81.215820000000008],[-86.077498999999932,81.207489000000066],[-86.154174999999952,81.193313999999987],[-86.225006000000008,81.173874000000012],[-86.240829000000019,81.16914399999996],[-86.256957999999941,81.162766000000033],[-86.299437999999896,81.148605000000032],[-86.338333000000034,81.138596000000007],[-86.404998999999975,81.129700000000071],[-86.438048999999921,81.126083000000108],[-86.472777999999892,81.122757000000092],[-86.521118000000001,81.119704999999954],[-86.650833000000034,81.115814000000114],[-86.956389999999999,81.099426000000051],[-87.111388999999917,81.087769000000094],[-87.297225999999966,81.076935000000049],[-87.637512000000015,81.059417999999994],[-87.678878999999995,81.058594000000028],[-87.720000999999911,81.059417999999994],[-87.841385000000002,81.062759000000028],[-88.0625,81.069992000000013],[-88.217772999999852,81.071381000000031],[-88.339995999999985,81.069717000000026],[-88.43499799999995,81.064148000000046],[-88.571670999999924,81.054703000000131],[-88.65834000000001,81.051376000000005],[-88.740828999999962,81.049713000000111],[-88.889998999999932,81.051926000000037],[-88.964721999999938,81.049423000000104],[-89.041672000000005,81.041091999999992],[-89.210555999999997,81.026657000000057],[-89.25556899999998,81.023880000000133],[-89.341675000000009,81.020264000000111],[-89.629165999999998,81.009155000000021],[-89.746658000000025,81.008881000000088],[-89.787505999999951,81.009720000000073],[-89.820847000000015,81.010817999999972],[-89.87388599999997,81.016388000000006],[-90.011947999999961,81.033051000000114],[-90.06361400000003,81.039702999999975],[-90.095275999999899,81.044708000000071],[-90.149170000000026,81.054977000000065],[-90.19776899999988,81.069717000000026],[-90.210007000000019,81.07499700000011],[-90.338057999999933,81.151657000000114],[-90.351944000000003,81.167479999999955],[-90.325561999999934,81.181930999999963],[-90.277221999999995,81.197205000000054],[-90.102218999999991,81.230270000000132],[-90.043059999999969,81.239426000000037],[-90.011123999999995,81.241928000000144],[-89.972778000000005,81.24275200000011],[-89.870543999999938,81.242203000000131],[-89.74610899999999,81.236649],[-89.669158999999866,81.218048000000124],[-89.635009999999909,81.212203999999929],[-89.573059000000001,81.206940000000145],[-89.535004000000015,81.206100000000106],[-89.491104000000007,81.206375000000094],[-89.447219999999902,81.208328000000051],[-89.357223999999974,81.214432000000102],[-89.281386999999995,81.221649000000014],[-89.136672999999973,81.238876000000005],[-89.088333000000034,81.242477000000065],[-89.044448999999986,81.24275200000011],[-88.982223999999974,81.241928000000144],[-88.954178000000013,81.24275200000011],[-88.944152999999972,81.24414100000007],[-88.935821999999973,81.247756999999979],[-88.949721999999895,81.253601000000003],[-88.979445999999996,81.258330999999998],[-89.162215999999944,81.255829000000119],[-89.198607999999865,81.253326000000129],[-89.265014999999948,81.244431000000134],[-89.307220000000029,81.240540000000067],[-89.335280999999952,81.24275200000011],[-89.443603999999937,81.260543999999982],[-89.687774999999988,81.289978000000133],[-89.775008999999955,81.296371000000079],[-89.868056999999965,81.306090999999981],[-89.898620999999935,81.31053199999991],[-89.91722099999987,81.314422999999977],[-89.950287000000003,81.324158000000068],[-89.952498999999875,81.329437000000041],[-89.940552000000025,81.333328000000108],[-89.916396999999904,81.336928999999998],[-89.882216999999969,81.340271000000087],[-89.702224999999999,81.350266000000033],[-89.627212999999983,81.356644000000017],[-89.242492999999968,81.423035000000027],[-89.059158000000025,81.455551000000071],[-88.928328999999962,81.485535000000141],[-88.90943900000002,81.490814000000114],[-88.846953999999982,81.49971000000005],[-88.715835999999967,81.513045999999974],[-88.545272999999952,81.525269000000037],[-88.494995000000017,81.527206000000092],[-88.406113000000005,81.528320000000065],[-88.37110899999999,81.526931999999988],[-88.161391999999921,81.530273000000022],[-88.029998999999975,81.535812000000021],[-87.984160999999972,81.535812000000021],[-87.959732000000031,81.534714000000122],[-87.939437999999996,81.531661999999983],[-87.893699999999967,81.524712000000136],[-87.801391999999964,81.515548999999965],[-87.679442999999935,81.51388500000013],[-87.490279999999984,81.508880999999974],[-87.431380999999931,81.50471500000009],[-87.398894999999982,81.500824000000023],[-87.343063000000029,81.492752000000053],[-87.311110999999983,81.488876000000005],[-87.276672000000019,81.485809000000074],[-87.251403999999923,81.487488000000042],[-87.244719999999973,81.490265000000136],[-87.286391999999921,81.505554000000075],[-87.288329999999974,81.506104000000107],[-87.315551999999968,81.513321000000019],[-87.37860099999989,81.517212000000086],[-87.489166000000012,81.523315000000025],[-87.645844000000011,81.527480999999909],[-87.721664000000033,81.532211000000132],[-87.751952999999958,81.535263000000043],[-87.915008999999941,81.552765000000079],[-88.279449,81.579436999999984],[-88.306380999999931,81.581374999999923],[-88.352218999999991,81.579712000000029],[-88.392226999999991,81.57777400000009],[-88.446944999999971,81.572220000000073],[-88.552215999999987,81.558868000000018],[-88.642226999999934,81.551651000000106],[-88.669448999999986,81.550537000000134],[-88.769164999999987,81.551086000000112],[-88.849990999999989,81.550537000000134],[-88.900283999999886,81.548325000000091],[-88.998046999999985,81.540543000000127],[-89.073058999999944,81.532211000000132],[-89.145844000000011,81.523041000000092],[-89.282500999999911,81.505264000000011],[-89.548339999999882,81.477203000000145],[-89.585555999999997,81.473037999999974],[-89.710280999999952,81.455261000000064],[-90.011397999999929,81.416930999999977],[-90.370833999999945,81.375259000000085],[-90.443053999999961,81.366652999999985],[-90.467498999999918,81.367751999999996],[-90.500564999999938,81.371368000000018],[-90.535827999999981,81.37692300000009],[-90.553329000000019,81.38499500000006],[-90.525283999999999,81.388596000000121],[-90.517226999999934,81.389160000000061],[-90.478881999999999,81.394440000000145],[-90.481383999999991,81.396652000000017],[-90.487777999999935,81.398604999999975],[-90.516953000000001,81.402481000000023],[-90.643616000000009,81.416381999999999],[-90.678328999999962,81.417480000000126],[-90.746658000000025,81.422211000000061],[-90.779998999999975,81.425537000000077],[-90.811385999999914,81.429977000000065],[-90.841110000000015,81.435531999999967],[-90.854171999999949,81.440536000000122],[-90.856658999999922,81.444138000000066],[-90.853881999999942,81.450821000000076],[-90.848342999999943,81.454987000000131],[-90.80082699999997,81.464995999999985],[-90.770554000000004,81.469711000000018],[-90.583069000000023,81.497482000000105],[-90.540282999999988,81.501663000000008],[-90.312209999999993,81.531371999999976],[-90.130553999999904,81.564423000000147],[-89.874709999999936,81.599152000000004],[-89.797500999999954,81.602478000000019],[-89.674438000000009,81.601654000000053],[-89.632492000000013,81.604706000000022],[-89.597503999999958,81.614151000000049],[-89.585006999999962,81.619705000000067],[-89.585006999999962,81.625809000000061],[-89.601943999999889,81.627762000000018],[-89.798889000000031,81.629974000000061],[-89.868056999999965,81.630264000000125],[-89.914169000000015,81.628310999999997],[-89.962218999999948,81.625534000000073],[-90.069457999999941,81.633606000000043],[-90.111580000000004,81.656746000000112],[-90.204726999999934,81.686371000000065],[-90.271392999999989,81.697479000000101],[-90.296950999999979,81.698593000000074],[-90.330291999999986,81.696090999999967],[-90.353057999999976,81.690536000000066],[-90.36082499999992,81.685257000000092],[-90.355270000000019,81.673599000000081],[-90.337218999999948,81.662491000000102],[-90.354720999999984,81.651382000000012],[-90.511123999999995,81.65776100000005],[-90.604720999999927,81.664703000000145],[-90.638901000000033,81.668045000000063],[-90.678878999999995,81.668869000000029],[-90.718886999999938,81.666656000000103],[-90.734725999999966,81.660812000000078],[-90.74221799999998,81.655548000000067],[-90.763625999999931,81.645537999999988],[-90.779723999999987,81.641098],[-90.803878999999995,81.636108000000092],[-90.834731999999974,81.631363000000079],[-90.878052000000025,81.627472000000012],[-90.923888999999974,81.625259000000028],[-90.966948999999943,81.621094000000028],[-90.99110399999995,81.616088999999988],[-91.006957999999997,81.598876999999959],[-91.003341999999918,81.592209000000025],[-90.988602000000014,81.579436999999984],[-90.988602000000014,81.557754999999986],[-91.071670999999981,81.537200999999982],[-91.091949,81.533874999999966],[-91.104445999999996,81.534424000000115],[-91.113891999999964,81.539978000000076],[-91.236938000000009,81.543320000000051],[-91.313888999999961,81.53414900000007],[-91.401397999999972,81.526382000000126],[-91.446380999999974,81.524428999999998],[-91.463332999999977,81.526093000000003],[-91.467772999999909,81.527206000000092],[-91.452498999999932,81.531661999999983],[-91.428604000000007,81.536652000000061],[-91.411117999999988,81.541931000000034],[-91.406386999999938,81.547760000000039],[-91.444153000000028,81.583603000000096],[-91.474441999999954,81.588882000000069],[-91.654175000000009,81.605819999999994],[-91.74722300000002,81.60914600000001],[-91.85722399999986,81.612762000000089],[-91.878326000000015,81.614151000000049],[-91.900283999999999,81.616928000000144],[-91.938599000000011,81.625534000000073],[-91.948607999999922,81.631088000000091],[-91.956664999999987,81.658600000000035],[-91.949432000000002,81.662201000000096],[-91.926940999999999,81.664992999999981],[-91.902221999999938,81.666931000000091],[-91.867767000000015,81.663315000000068],[-91.838897999999858,81.658600000000035],[-91.801101999999958,81.658600000000035],[-91.770844000000011,81.663315000000068],[-91.73721299999994,81.686920000000043],[-91.725829999999917,81.706650000000025],[-91.723617999999874,81.72164900000007],[-91.485549999999989,81.769989000000123],[-91.386123999999995,81.77388000000002],[-91.351395000000025,81.770264000000111],[-91.287506000000008,81.761931999999945],[-91.255004999999983,81.759155000000078],[-91.212508999999898,81.759430000000066],[-91.053328999999906,81.761658000000011],[-91.03443900000002,81.763885000000073],[-91.033324999999991,81.76776099999995],[-91.05749499999996,81.772766000000047],[-91.090560999999923,81.777206000000035],[-91.117766999999958,81.784424000000058],[-91.140563999999983,81.791930999999977],[-91.152495999999928,81.798035000000027],[-91.147232000000031,81.803864000000033],[-91.137511999999958,81.808594000000085],[-91.101104999999961,81.818878000000097],[-91.051665999999955,81.828872999999987],[-91.001113999999973,81.832764000000054],[-90.852218999999991,81.842483999999956],[-90.727492999999981,81.841094999999996],[-90.704178000000013,81.843597000000045],[-90.689986999999917,81.848602000000085],[-90.686377999999991,81.853966000000014],[-90.678328999999962,81.858597000000032],[-90.635009999999966,81.868866000000025],[-90.610001000000011,81.873871000000065],[-90.565276999999867,81.878036000000066],[-90.436661000000015,81.887497000000053],[-90.338057999999933,81.893051000000071],[-90.245270000000005,81.896102999999982],[-90.154449,81.896652000000131],[-89.990828999999962,81.905548000000067],[-89.783324999999934,81.917206000000078],[-89.735824999999977,81.917480000000012],[-89.700835999999981,81.915543000000127],[-89.676940999999999,81.9102630000001],[-89.683051999999975,81.899437000000148],[-89.682494999999903,81.883330999999998],[-89.649445000000014,81.863312000000064],[-89.629989999999964,81.856369000000029],[-89.461394999999982,81.818054000000132],[-89.425003000000004,81.815262000000018],[-89.356383999999935,81.811096000000134],[-89.244720000000029,81.846375000000023],[-89.227218999999991,81.852203000000145],[-89.203223999999977,81.878036000000066],[-89.19923399999999,81.881537999999921],[-89.199059000000034,81.885208000000034],[-89.213218999999981,81.888382000000092],[-89.328063999999927,81.902206000000092],[-89.367217999999923,81.905548000000067],[-89.397506999999962,81.909424000000115],[-89.419158999999979,81.915543000000127],[-89.416945999999939,81.925812000000008],[-89.397780999999895,81.930817000000047],[-89.371658000000025,81.935806000000014],[-89.338897999999972,81.940262000000075],[-89.288895000000025,81.943038999999999],[-89.249724999999955,81.941086000000041],[-89.157393999999954,81.928368000000091],[-89.156218999999908,81.925201000000072],[-89.152556999999945,81.921371000000079],[-89.133057000000008,81.918533000000082],[-89.074721999999952,81.911652000000061],[-89.033324999999991,81.912201000000039],[-89.007232999999871,81.915543000000127],[-88.98971599999993,81.921097000000145],[-88.986388999999974,81.944976999999938],[-88.992767000000015,81.951385000000073],[-89.011947999999904,81.958603000000096],[-89.048339999999996,81.978043000000071],[-89.054442999999992,81.987487999999985],[-89.041106999999954,81.993041999999946],[-89.021117999999944,81.998032000000023],[-88.963897999999972,82.008041000000048],[-88.77305599999994,82.039429000000041],[-88.625548999999978,82.062759000000028],[-88.589721999999938,82.066665999999998],[-88.543059999999912,82.070540999999992],[-88.443054000000018,82.074997000000053],[-88.296660999999915,82.080276000000026],[-88.25,82.080826000000059],[-88.145003999999972,82.086928999999998],[-88.11361699999992,82.090545999999961],[-88.09973100000002,82.093048000000067],[-88.095001000000025,82.096374999999966],[-88.085281000000009,82.101379000000122],[-88.075561999999934,82.104980000000012],[-88.038329999999974,82.103867000000093],[-87.91194200000001,82.090820000000065],[-87.71833799999996,82.083878000000027],[-87.702224999999942,82.086928999999998],[-87.666396999999904,82.089431999999988],[-87.641952999999944,82.090271000000143],[-87.599730999999963,82.089157],[-87.50140399999998,82.084152000000131],[-87.402221999999938,82.07388300000008],[-87.352782999999931,82.06721500000009],[-87.333617999999888,82.063309000000061],[-87.271666999999979,82.047759999999926],[-87.230559999999969,82.036926000000051],[-87.195830999999998,82.026382000000012],[-87.183608999999933,82.022491000000116],[-87.174437999999896,82.014708999999982],[-87.173324999999977,82.011107999999922],[-87.178603999999893,82.007767000000115],[-87.197768999999937,82.002213000000097],[-87.232773000000009,81.99331699999999],[-87.258057000000008,81.989426000000094],[-87.299987999999985,81.979155999999989],[-87.314437999999996,81.973877000000016],[-87.309432999999956,81.967484000000013],[-87.265839000000028,81.958878000000141],[-87.169158999999979,81.945526000000086],[-87.101669000000015,81.937759000000142],[-87.063323999999909,81.934418000000107],[-86.939437999999996,81.918868999999972],[-86.877212999999983,81.909424000000115],[-86.828887999999949,81.897491000000059],[-86.804169000000002,81.893051000000071],[-86.768341000000021,81.890273999999977],[-86.726669000000015,81.891937000000098],[-86.726944000000003,81.897217000000126],[-86.734160999999915,81.902771000000143],[-86.745833999999945,81.906647000000021],[-86.834732000000031,81.927765000000136],[-86.86361699999992,81.933593999999971],[-86.919448999999986,81.942748999999992],[-87.066101000000003,81.954987000000074],[-87.098052999999936,81.958328000000108],[-87.127212999999927,81.963882000000069],[-87.130279999999857,81.968322999999998],[-87.00140399999998,82.036102000000085],[-86.987212999999997,82.039978000000019],[-86.931670999999938,82.049423000000047],[-86.892501999999979,82.054153000000099],[-86.84333799999996,82.05720500000001],[-86.791945999999939,82.058029000000147],[-86.583617999999944,82.053863999999976],[-86.356383999999991,82.053588999999988],[-86.27806099999998,82.050812000000064],[-86.239166000000012,82.048599000000081],[-86.202788999999996,82.04553199999998],[-86.169158999999922,82.041656000000103],[-86.016112999999962,82.016663000000051],[-85.960555999999997,82.00749200000007],[-85.914443999999946,81.997481999999991],[-85.815001999999993,81.973877000000016],[-85.767501999999922,81.961928999999941],[-85.731383999999878,81.949996999999996],[-85.628875999999991,81.916092000000106],[-85.467223999999987,81.867203000000131],[-85.422501000000011,81.857483000000059],[-85.379439999999988,81.856934000000081],[-85.371658000000025,81.859711000000004],[-85.37388599999997,81.863876000000005],[-85.385833999999932,81.874985000000095],[-85.398055999999997,81.881088000000034],[-85.441939999999988,81.893875000000037],[-85.469451999999876,81.899719000000005],[-85.566101000000003,81.924988000000042],[-85.654723999999987,81.950821000000133],[-85.731948999999986,81.983322000000044],[-85.729996000000028,81.987762000000089],[-85.726943999999946,81.990265000000079],[-85.693877999999984,81.994980000000112],[-85.650557999999933,81.99832200000003],[-85.559432999999956,82.001663000000065],[-85.258621000000005,81.996933000000013],[-85.217498999999975,81.995529000000033],[-85.188323999999909,81.99275200000011],[-85.165833000000021,81.985259999999982],[-85.160004000000015,81.979706000000022],[-85.140563999999927,81.966095000000053],[-85.096389999999985,81.945816000000093],[-85.018889999999999,81.919434000000024],[-84.984160999999915,81.911102000000028],[-84.879439999999988,81.887497000000053],[-84.838897999999915,81.882476999999994],[-84.816887000000008,81.885367999999914],[-84.821884000000011,81.888214000000062],[-84.844222999999886,81.894882000000052],[-84.863891999999964,81.900269000000037],[-84.915008999999998,81.918045000000006],[-84.994719999999973,81.948593000000017],[-85.025283999999942,81.960815000000139],[-85.037216000000001,81.966933999999981],[-85.048889000000031,81.974426000000108],[-85.066100999999946,81.987487999999985],[-85.055556999999965,81.990814],[-85.038329999999974,81.994141000000127],[-85.00111400000003,81.994141000000127],[-84.929169000000002,81.993041999999946],[-84.889174999999966,81.990265000000079],[-84.858886999999925,81.985259999999982],[-84.831680000000006,81.979430999999977],[-84.816665999999941,81.970825000000048],[-84.814437999999996,81.966385000000059],[-84.815276999999924,81.961104999999975],[-84.821945000000028,81.949141999999938],[-84.797606999999971,81.930870000000141],[-84.789267999999993,81.924698000000035],[-84.75144199999994,81.910538000000088],[-84.74227899999994,81.908378999999968],[-84.688598999999954,81.891937000000098],[-84.656113000000005,81.887772000000098],[-84.635283999999956,81.886108000000036],[-84.621933000000013,81.886932000000002],[-84.604996000000028,81.88998400000014],[-84.714721999999995,81.969986000000119],[-84.729720999999984,81.977203000000031],[-84.751677999999913,81.984711000000061],[-84.815276999999924,82.00082400000008],[-84.840835999999967,82.006103999999993],[-84.89973399999991,82.015274000000034],[-84.93249499999996,82.019440000000088],[-85.039992999999981,82.028594999999996],[-85.116942999999935,82.033051000000057],[-85.405838000000017,82.042205999999965],[-85.678328999999906,82.054428000000087],[-85.755843999999968,82.058868000000132],[-85.851669000000015,82.06721500000009],[-85.915833000000021,82.07748400000014],[-85.999725000000012,82.094147000000021],[-86.062209999999936,82.103867000000093],[-86.091109999999901,82.104431000000034],[-86.278885000000002,82.107208000000128],[-86.485001000000011,82.114150999999936],[-86.565551999999968,82.118865999999969],[-86.637511999999958,82.124419999999986],[-86.706116000000009,82.131927000000132],[-86.731383999999935,82.136383000000023],[-86.752228000000002,82.141098000000056],[-86.856658999999922,82.184708000000057],[-86.869155999999919,82.195251000000042],[-86.876099000000011,82.202208999999982],[-86.871933000000013,82.207764000000111],[-86.843613000000005,82.212494000000106],[-86.764174999999966,82.221649000000014],[-86.669448999999929,82.228316999999947],[-86.619445999999982,82.229705999999965],[-86.571670999999981,82.230270000000075],[-86.520003999999915,82.229705999999965],[-86.316665999999998,82.224701000000096],[-86.228881999999885,82.224701000000096],[-86.181106999999997,82.225266000000147],[-86.137787000000003,82.226929000000041],[-85.984436000000017,82.237488000000099],[-85.934158000000025,82.238876000000005],[-85.841384999999946,82.239151000000049],[-85.798889000000031,82.237762000000032],[-85.753890999999953,82.237488000000099],[-85.706115999999952,82.23803700000002],[-85.662215999999944,82.239699999999971],[-85.61999499999996,82.243591000000038],[-85.603881999999999,82.24914600000011],[-85.598891999999978,82.254440000000102],[-85.580565999999976,82.264434999999992],[-85.557770000000005,82.269440000000088],[-85.508347000000015,82.273041000000092],[-85.413895000000025,82.27609300000006],[-85.370833999999945,82.279984000000127],[-85.350554999999929,82.283875000000023],[-85.34722899999997,82.286377000000073],[-85.367492999999911,82.291092000000106],[-85.396392999999989,82.29693600000013],[-85.457229999999981,82.307479999999998],[-85.481673999999941,82.313599000000011],[-85.489990000000034,82.319716999999969],[-85.515015000000005,82.343322999999998],[-85.531677000000002,82.369705000000067],[-85.50167799999997,82.393600000000106],[-85.501403999999923,82.398880000000133],[-85.515288999999996,82.403320000000008],[-85.534164000000033,82.407486000000063],[-85.669448999999872,82.409424000000001],[-85.866942999999992,82.421920999999998],[-85.904998999999975,82.424988000000099],[-85.921111999999994,82.429977000000065],[-85.911941999999954,82.435806000000071],[-85.819732999999928,82.454437000000098],[-85.794723999999974,82.458602999999982],[-85.746947999999975,82.461380000000077],[-85.708617999999944,82.463608000000022],[-85.502501999999993,82.471099999999979],[-85.298614999999927,82.478042999999957],[-85.046950999999979,82.481934000000024],[-85.003066999999874,82.480820000000051],[-84.693877999999927,82.471375000000023],[-84.662780999999995,82.468596999999988],[-84.641678000000013,82.465546000000018],[-84.62222300000002,82.459152000000131],[-84.616394000000014,82.453598000000113],[-84.613326999999913,82.447204999999997],[-84.613326999999913,82.4433140000001],[-84.631377999999984,82.440262000000018],[-84.787780999999995,82.434982000000105],[-84.895279000000016,82.433594000000028],[-84.940552000000025,82.431931000000077],[-84.943877999999984,82.425812000000064],[-84.916655999999932,82.42053199999998],[-84.888610999999855,82.416930999999977],[-84.714721999999995,82.405822999999941],[-84.559722999999906,82.394989000000066],[-84.482498000000021,82.389435000000105],[-84.449996999999996,82.386107999999979],[-84.418334999999956,82.381088000000091],[-84.388061999999991,82.371094000000085],[-84.384170999999924,82.366089000000045],[-84.387221999999952,82.361649],[-84.378600999999946,82.356933999999967],[-84.34445199999999,82.352768000000083],[-84.303329000000019,82.355819999999994],[-84.228881999999999,82.363876000000062],[-84.180556999999965,82.368042000000003],[-84.146956999999986,82.369705000000067],[-84.095550999999944,82.371094000000085],[-84.047226000000023,82.371368000000018],[-83.961394999999925,82.368591000000094],[-83.876937999999939,82.364151000000106],[-83.841948999999943,82.361374000000012],[-83.767501999999979,82.353043000000071],[-83.606383999999935,82.33137499999998],[-83.516402999999968,82.316940000000045],[-83.384734999999978,82.282210999999961],[-83.36860699999994,82.276381999999955],[-83.360001000000011,82.269440000000088],[-83.360001000000011,82.263611000000026],[-83.369155999999975,82.251663000000008],[-83.371933000000013,82.24470500000001],[-83.371933000000013,82.239151000000049],[-83.344451999999933,82.227203000000145],[-83.308334000000002,82.218323000000112],[-83.24221799999998,82.204163000000051],[-83.184157999999968,82.194702000000063],[-83.130553999999961,82.184981999999991],[-83.083892999999932,82.175812000000121],[-83.022781000000009,82.159424000000058],[-83,82.151093000000003],[-82.976669000000015,82.138321000000133],[-82.953063999999983,82.119979999999998],[-82.95666499999993,82.109711000000118],[-82.958617999999944,82.104431000000034],[-82.968338000000017,82.098038000000088],[-82.978058000000033,82.093872000000033],[-83.001953000000015,82.089157],[-83.0625,82.080276000000026],[-83.126098999999954,82.072495000000004],[-83.128051999999968,82.06721500000009],[-83.111937999999952,82.065261999999962],[-83.076400999999919,82.061920000000043],[-82.974166999999966,82.064986999999974],[-82.888335999999981,82.072495000000004],[-82.797501000000011,82.077773999999977],[-82.758057000000008,82.076934999999992],[-82.674438000000009,82.073043999999925],[-82.636397999999986,82.070540999999992],[-82.421660999999972,82.066940000000102],[-82.284163999999976,82.066375999999991],[-82.199432000000002,82.064147999999989],[-82.122222999999906,82.058594000000028],[-82.055556999999965,82.050812000000064],[-81.963622999999927,82.037201000000096],[-81.926101999999958,82.034714000000008],[-81.889998999999989,82.034988000000112],[-81.878051999999968,82.03637700000013],[-81.884734999999921,82.041091999999992],[-81.924164000000019,82.058868000000132],[-81.966110000000015,82.071105999999986],[-82.020844000000011,82.082213999999965],[-82.05860899999999,82.084717000000126],[-82.102492999999981,82.085541000000092],[-82.243056999999965,82.084991000000059],[-82.417496000000028,82.087204000000042],[-82.546386999999982,82.090271000000143],[-82.58444199999991,82.09275800000006],[-82.619719999999916,82.096099999999979],[-82.651947000000007,82.100266000000033],[-82.676940999999943,82.10775799999999],[-82.683884000000035,82.118317000000047],[-82.688599000000011,82.126083000000108],[-82.697495000000004,82.131362999999965],[-82.717223999999931,82.142761000000007],[-82.731383999999935,82.149993999999992],[-82.772232000000031,82.163315000000125],[-82.860275000000001,82.187759000000085],[-82.886947999999961,82.193862999999908],[-82.94027699999998,82.203598],[-82.987503000000004,82.214995999999985],[-83.011397999999986,82.221649000000014],[-83.027785999999878,82.235259999999982],[-83.028884999999946,82.264998999999989],[-83.028884999999946,82.276657],[-83.02555799999999,82.283324999999991],[-83.019164999999873,82.288879000000122],[-82.990829000000019,82.292480000000012],[-82.735549999999932,82.286102000000028],[-82.693603999999937,82.284714000000122],[-82.654448999999886,82.282210999999961],[-82.621658000000025,82.278045999999961],[-82.508895999999936,82.258040999999992],[-82.452788999999939,82.249420000000043],[-82.286666999999966,82.229156000000103],[-82.263061999999991,82.222214000000008],[-82.211120999999991,82.204711999999972],[-82.160278000000005,82.193313999999987],[-82.101943999999946,82.183044000000052],[-82.011123999999995,82.168594000000098],[-81.918059999999912,82.15498400000007],[-81.608886999999982,82.118590999999981],[-81.425277999999935,82.0977630000001],[-81.353057999999976,82.091659999999933],[-81.249161000000015,82.081375000000037],[-81.150283999999999,82.068878000000041],[-81.091110000000015,82.059417999999994],[-80.868332000000009,82.03137200000009],[-80.640288999999996,82.018326000000116],[-80.43249499999996,81.997481999999991],[-80.225829999999974,81.986098999999967],[-80.153609999999958,81.981368999999916],[-80.085006999999905,81.973602000000142],[-80.035277999999948,81.963042999999914],[-79.883056999999951,81.924698000000035],[-79.610000999999897,81.851089000000002],[-79.589721999999938,81.844147000000078],[-79.587783999999999,81.838318000000072],[-79.577224999999942,81.828872999999987],[-79.564163000000008,81.825271999999927],[-79.53443900000002,81.820831000000055],[-79.492217999999923,81.819717000000026],[-79.244445999999925,81.816085999999984],[-79.229171999999949,81.816085999999984],[-79.452224999999999,81.88998400000014],[-79.489989999999977,81.900269000000037],[-79.521117999999888,81.905548000000067],[-79.579726999999934,81.913605000000018],[-79.670837000000006,81.927475000000072],[-79.844451999999933,81.97137499999991],[-79.837783999999942,82.007217000000082],[-79.832229999999868,82.013885000000016],[-79.853333000000021,82.018875000000094],[-79.880829000000006,82.021927000000005],[-79.916397000000018,82.023880000000133],[-80.213897999999858,82.032211000000018],[-80.331680000000006,82.038589000000002],[-80.368606999999997,82.041091999999992],[-80.624435000000005,82.061920000000043],[-80.657226999999921,82.064697000000137],[-80.725554999999986,82.071655000000135],[-80.791107000000011,82.079437000000098],[-80.822234999999921,82.083878000000027],[-80.878326000000015,82.094147000000021],[-80.922226000000023,82.103592000000106],[-80.948607999999979,82.110260000000096],[-80.962783999999999,82.116379000000109],[-80.975554999999986,82.12359600000002],[-80.975554999999986,82.127762000000132],[-80.956664999999987,82.137206999999989],[-80.931380999999988,82.142212000000029],[-80.89973399999991,82.146378000000141],[-80.874435000000005,82.151093000000003],[-80.868056999999965,82.15498400000007],[-80.909163999999976,82.156647000000135],[-81.051391999999964,82.154709000000025],[-81.171111999999994,82.156372000000147],[-81.253341999999918,82.159714000000065],[-81.324722000000008,82.164993000000038],[-81.423324999999977,82.176926000000094],[-81.799728000000016,82.222762999999986],[-81.825561999999934,82.226654000000053],[-81.887786999999946,82.23803700000002],[-82.170546999999999,82.286652000000061],[-82.454726999999991,82.328048999999965],[-82.513061999999934,82.337769000000037],[-82.625548999999921,82.359146000000067],[-82.679992999999968,82.37081900000004],[-82.711670000000026,82.382477000000108],[-82.722778000000005,82.388321000000076],[-82.7308349999999,82.395264000000111],[-82.732223999999974,82.401657000000057],[-82.728881999999942,82.408325000000048],[-82.710281000000009,82.419434000000081],[-82.698333999999988,82.424988000000099],[-82.539444000000003,82.497208000000114],[-82.520553999999947,82.502487000000087],[-82.498336999999992,82.506377999999984],[-82.458892999999989,82.508331000000112],[-82.406386999999881,82.509155000000078],[-82.316956000000005,82.506943000000035],[-82.091675000000009,82.501389000000017],[-81.669997999999907,82.492477000000008],[-81.541672000000005,82.496093999999971],[-81.542220999999927,82.504990000000078],[-81.713332999999977,82.51527400000009],[-81.75140399999998,82.516937000000041],[-81.84722899999997,82.515548999999965],[-81.880554000000018,82.517761000000007],[-81.927489999999977,82.522766000000047],[-81.966400000000021,82.528870000000097],[-82.263901000000033,82.576660000000061],[-82.321121000000005,82.589157000000057],[-82.343886999999938,82.595261000000107],[-82.390288999999996,82.611923000000104],[-82.394729999999925,82.617477000000065],[-82.392226999999934,82.622756999999979],[-82.38110399999988,82.634720000000016],[-82.371933000000013,82.639708999999982],[-82.354445999999996,82.645537999999988],[-82.335281000000009,82.650543000000027],[-82.288054999999986,82.659988000000112],[-82.255004999999926,82.664428999999984],[-82.215285999999992,82.668593999999985],[-82.154998999999918,82.671097000000145],[-82.060271999999998,82.669708000000014],[-81.97222899999997,82.666382000000112],[-81.931380999999931,82.663878999999952],[-81.543335000000013,82.637207000000046],[-81.432495000000017,82.629150000000095],[-81.359725999999966,82.62081900000004],[-81.30082699999997,82.611098999999911],[-81.136123999999995,82.578049000000078],[-80.989440999999999,82.547211000000061],[-80.949721999999952,82.538040000000137],[-80.891952999999944,82.532760999999994],[-80.581679999999949,82.543045000000006],[-80.578063999999983,82.546097000000088],[-80.599166999999966,82.55442800000003],[-80.87388599999997,82.629700000000128],[-80.994445999999925,82.650269000000094],[-81.049987999999985,82.660812000000078],[-81.077224999999999,82.666931000000091],[-81.097503999999958,82.672485000000052],[-81.124709999999993,82.686919999999986],[-81.223617999999988,82.715820000000065],[-81.305831999999953,82.733871000000022],[-81.449996999999996,82.755553999999961],[-81.508620999999948,82.764709000000039],[-81.573623999999938,82.788315000000068],[-81.58444199999991,82.794434000000138],[-81.585006999999962,82.800812000000064],[-81.571670999999924,82.806366000000082],[-81.556655999999975,82.811371000000122],[-81.536391999999921,82.816665999999998],[-81.514175000000023,82.821106000000043],[-81.473052999999993,82.82499700000011],[-81.411391999999921,82.827773999999977],[-81.359725999999966,82.827773999999977],[-81.022232000000031,82.821930000000009],[-80.977218999999934,82.820267000000058],[-80.801940999999999,82.812485000000095],[-80.500564999999995,82.797484999999938],[-80.418334999999956,82.792205999999965],[-80.381103999999993,82.788879000000065],[-80.318618999999956,82.779984000000013],[-80.2933349999999,82.774429000000112],[-80.15834000000001,82.727768000000083],[-80.138901000000033,82.719986000000119],[-80.139449999999954,82.715820000000065],[-80.178329000000019,82.699997000000053],[-80.182495000000017,82.69470199999995],[-80.181380999999931,82.687759000000142],[-80.160277999999948,82.681366000000025],[-80.070846999999901,82.665543000000014],[-80.003066999999987,82.656372000000033],[-79.941665999999998,82.649429000000055],[-79.861664000000019,82.644150000000081],[-79.817779999999914,82.644440000000088],[-79.800827000000027,82.646652000000131],[-79.803604000000007,82.649994000000049],[-79.822509999999966,82.65776100000005],[-79.848617999999988,82.663878999999952],[-79.966949,82.684708000000114],[-79.983321999999987,82.689147999999989],[-79.977492999999981,82.695815999999922],[-79.961394999999925,82.700821000000019],[-79.928604000000007,82.705551000000014],[-79.885833999999875,82.708602999999925],[-79.829726999999991,82.708878000000141],[-79.787505999999894,82.707763999999997],[-79.74749799999995,82.704987000000074],[-79.684158000000025,82.699706999999989],[-79.617492999999911,82.693039000000056],[-79.468338000000017,82.677475000000129],[-79.384734999999978,82.672760000000096],[-79.149993999999936,82.667755000000056],[-78.843613000000005,82.664992999999981],[-78.565552000000025,82.674698000000035],[-78.521118000000001,82.67692599999998],[-78.502791999999999,82.681090999999981],[-78.53195199999999,82.684418000000107],[-78.576675000000023,82.686919999999986],[-78.840835999999967,82.680817000000047],[-78.895003999999858,82.680267000000015],[-78.931945999999982,82.681656000000032],[-79.243057000000022,82.695251000000098],[-79.331680000000006,82.699706999999989],[-79.40306099999998,82.70637499999998],[-79.623046999999985,82.727768000000083],[-79.836944999999901,82.750549000000092],[-79.886948000000018,82.759430000000066],[-79.913329999999917,82.765274000000034],[-79.93638599999997,82.772217000000069],[-79.996947999999975,82.803314],[-79.975829999999974,82.808594000000028],[-79.942489999999964,82.811371000000122],[-79.692215000000033,82.818054000000075],[-79.674437999999952,82.820267000000058],[-79.67222599999991,82.823883000000137],[-79.673889000000031,82.824707000000103],[-79.847777999999948,82.834991000000116],[-79.896118000000001,82.835815000000082],[-80.006667999999934,82.834427000000005],[-80.110000999999954,82.834717000000012],[-80.15834000000001,82.835541000000148],[-80.194153000000028,82.838318000000072],[-80.219727000000034,82.84165999999999],[-80.277221999999938,82.850815000000011],[-80.393065999999976,82.875534000000016],[-80.430282999999974,82.887497000000053],[-80.42971799999998,82.894150000000025],[-80.398055999999997,82.899719000000005],[-80.095839999999953,82.937194999999974],[-79.904723999999987,82.951096000000121],[-79.793335000000013,82.957489000000123],[-79.458344000000011,82.974152000000004],[-79.414444000000003,82.975266000000147],[-79.370543999999995,82.974152000000004],[-79.177489999999977,82.951935000000105],[-79.073333999999988,82.901931999999988],[-79.064437999999882,82.895828000000108],[-79.066101000000003,82.889434999999992],[-78.928054999999972,82.898605000000032],[-78.825287000000003,82.928040000000124],[-78.780288999999982,82.93803400000013],[-78.756118999999956,82.942474000000118],[-78.719726999999978,82.946640000000059],[-78.671111999999937,82.945526000000086],[-78.631942999999978,82.941360000000145],[-78.546111999999994,82.926651000000106],[-78.521666999999923,82.921097000000088],[-78.503341999999918,82.913314999999955],[-78.501953000000015,82.907760999999994],[-78.504180999999903,82.901093000000003],[-78.521941999999967,82.889159999999947],[-78.538605000000018,82.876647999999989],[-78.557770000000005,82.860535000000141],[-78.553328999999906,82.853592000000106],[-78.53443900000002,82.8477630000001],[-78.500564999999938,82.845534999999984],[-78.341674999999952,82.850540000000024],[-78.175551999999982,82.827208999999982],[-78.14416499999993,82.823318000000086],[-78.109160999999972,82.825272000000098],[-78.106658999999979,82.831940000000088],[-78.128875999999877,82.836655000000121],[-78.194442999999922,82.845824999999991],[-78.223617999999988,82.851088999999945],[-78.241378999999938,82.858871000000079],[-78.238891999999964,82.865265000000136],[-78.108337000000006,82.893326000000059],[-78.080291999999986,82.898331000000098],[-77.986663999999962,82.909988000000055],[-77.949996999999883,82.91415400000011],[-77.863327000000027,82.921371000000022],[-77.813048999999864,82.92442299999999],[-77.768340999999964,82.922485000000052],[-77.708344000000011,82.916092000000049],[-77.688889000000017,82.912490999999989],[-77.616652999999985,82.902771000000087],[-77.528060999999923,82.891098000000113],[-77.467223999999987,82.883880999999974],[-77.405272999999909,82.878860000000032],[-77.319457999999997,82.873306000000014],[-77.128325999999959,82.863312000000008],[-77.108046999999999,82.859146000000123],[-77.089171999999962,82.852767999999969],[-76.96665999999999,82.804703000000131],[-76.959166999999923,82.774155000000007],[-76.941665999999998,82.768326000000002],[-76.898346000000004,82.766098],[-76.851104999999961,82.764999000000046],[-76.815552000000025,82.761107999999979],[-76.789168999999958,82.756377999999927],[-76.766662999999994,82.750823999999966],[-76.708617999999944,82.733047000000056],[-76.674438000000009,82.721374999999966],[-76.644164999999987,82.709152000000074],[-76.612503000000004,82.696091000000138],[-76.598052999999993,82.688873000000115],[-76.570556999999951,82.666656000000046],[-76.538329999999974,82.664153999999996],[-76.387221999999952,82.651382000000012],[-76.09333799999996,82.62081900000004],[-76.058884000000035,82.616928000000144],[-75.913895000000025,82.597487999999942],[-75.892226999999991,82.591933999999981],[-75.896392999999989,82.588318000000072],[-75.918610000000001,82.579987000000017],[-75.938323999999966,82.575821000000133],[-75.972778000000005,82.571381000000088],[-76.038895000000025,82.557205000000067],[-76.194716999999969,82.511108000000036],[-76.207503999999972,82.506377999999984],[-76.217772999999909,82.500548999999978],[-76.255279999999971,82.471924000000115],[-76.261002000000019,82.466552999999976],[-76.236937999999896,82.445250999999985],[-76.230835000000013,82.444702000000007],[-76.184158000000025,82.453872999999987],[-76.102782999999874,82.470534999999984],[-76.037780999999939,82.484421000000111],[-75.975006000000008,82.499709999999993],[-75.887221999999952,82.522217000000126],[-75.802779999999984,82.546371000000022],[-75.773894999999925,82.557205000000067],[-75.671386999999925,82.586929000000112],[-75.648055999999997,82.591660000000047],[-75.606383999999935,82.595825000000048],[-75.500838999999928,82.600266000000147],[-75.451675000000023,82.603317000000004],[-75.420273000000009,82.606934000000138],[-75.396118000000001,82.614699999999971],[-75.40972899999997,82.61914100000007],[-75.43472300000002,82.623871000000122],[-75.468886999999881,82.627762000000018],[-75.503615999999852,82.628860000000088],[-75.55749499999996,82.628585999999984],[-75.625548999999978,82.633040999999992],[-75.670546999999999,82.642761000000064],[-75.807495000000017,82.654709000000082],[-76.103057999999976,82.68609600000002],[-76.235824999999977,82.712203999999986],[-76.256392999999946,82.717209000000025],[-76.275557999999933,82.724425999999994],[-76.299987999999871,82.739700000000028],[-76.306655999999919,82.745819000000097],[-76.309158000000025,82.752777000000094],[-76.269454999999994,82.760817999999972],[-76.226395000000025,82.764435000000105],[-76.176391999999964,82.767212000000029],[-76.056945999999982,82.771652000000017],[-76.014724999999999,82.775818000000129],[-75.989440999999999,82.779984000000013],[-75.976104999999961,82.784714000000065],[-75.998336999999935,82.787490999999932],[-76.18638599999997,82.78387500000008],[-76.241378999999995,82.783600000000035],[-76.288605000000018,82.784714000000065],[-76.375274999999988,82.789154000000053],[-76.447495000000004,82.797484999999938],[-76.50167799999997,82.8077550000001],[-76.525283999999942,82.813873000000001],[-76.545272999999952,82.821106000000043],[-76.586394999999982,82.83859300000006],[-76.629165999999998,82.859710999999947],[-76.666655999999989,82.872482000000048],[-76.710830999999985,82.885818000000029],[-76.752791999999999,82.894988999999953],[-76.844161999999983,82.90914900000007],[-76.881942999999978,82.913605000000018],[-77.025832999999977,82.927765000000079],[-77.066390999999953,82.93081699999999],[-77.131667999999991,82.939972000000068],[-77.344726999999978,82.972487999999998],[-77.385283999999899,82.983046999999999],[-77.381377999999984,82.994431000000134],[-77.364440999999999,83.000000000000114],[-77.341949,83.005554000000132],[-77.276108000000022,83.020264000000054],[-77.252227999999945,83.025269000000094],[-77.222777999999948,83.030548000000067],[-77.183883999999978,83.033875000000023],[-77.134734999999978,83.032486000000006],[-77.137221999999895,83.028320000000122],[-77.171386999999982,83.017211999999972],[-77.169723999999974,83.013885000000016],[-77.135558999999944,83.011383000000137],[-76.863051999999925,83.010818000000086],[-76.559432999999956,83.011932000000058],[-76.360274999999945,83.021378000000027],[-76.266662999999994,83.02915999999999],[-76.20666499999993,83.036652000000117],[-76.113327000000027,83.05053700000002],[-76.079177999999956,83.053589000000102],[-76.028610000000015,83.054428000000087],[-75.979720999999927,83.05304000000001],[-75.948607999999922,83.051926000000037],[-75.580841000000021,83.038040000000024],[-75.313323999999909,83.027480999999966],[-75.046951000000035,83.041656000000103],[-75,83.043884000000048],[-74.956389999999999,83.04553199999998],[-74.797501000000011,83.043594000000041],[-74.706664999999987,83.041091999999935],[-74.43582200000003,83.027205999999978],[-74.408050999999887,83.024704000000099],[-74.279175000000009,83.009995000000004],[-74.172774999999888,82.991088999999988],[-74.084166999999979,82.972487999999998],[-74.018065999999976,82.956940000000145],[-73.879439999999875,82.897217000000126],[-73.851668999999958,82.866653000000042],[-73.817779999999971,82.852767999999969],[-73.607772999999952,82.81581099999994],[-73.548339999999939,82.806091000000038],[-73.281951999999933,82.766388000000063],[-73.247222999999963,82.761658000000011],[-73.160278000000005,82.751388999999961],[-73.075011999999958,82.745819000000097],[-72.949721999999952,82.738876000000062],[-72.906661999999983,82.735808999999961],[-72.835830999999985,82.728592000000049],[-72.75,82.714706000000092],[-72.700835999999981,82.703323000000069],[-72.672225999999966,82.698593000000017],[-72.633895999999936,82.694427000000132],[-72.603332999999964,82.695815999999922],[-72.594727000000034,82.697479000000044],[-72.49888599999997,82.718323000000055],[-72.502501999999936,82.724425999999994],[-72.648894999999925,82.746643000000063],[-72.716659999999933,82.755553999999961],[-72.912216000000001,82.776657000000057],[-72.983886999999982,82.78387500000008],[-73.027221999999881,82.786926000000108],[-73.211394999999925,82.813873000000001],[-73.257506999999919,82.825821000000076],[-73.401397999999915,82.874985000000038],[-73.420272999999952,82.890548999999965],[-73.430556999999908,82.893599999999992],[-73.460830999999928,82.898605000000032],[-73.49499499999996,82.90248100000008],[-73.577224999999999,82.908035000000098],[-73.607498000000021,82.913040000000137],[-73.633330999999998,82.918593999999985],[-73.65055799999999,82.925811999999951],[-73.644164999999873,82.932205000000124],[-73.634444999999971,82.936646000000053],[-73.619155999999975,82.941086000000041],[-73.261948000000018,83.007767000000058],[-73.033889999999928,83.036652000000117],[-72.948607999999979,83.055252000000053],[-72.927489999999977,83.067490000000078],[-72.650557999999933,83.096374999999966],[-72.59973100000002,83.096939000000077],[-72.57028200000002,83.092758000000003],[-72.568619000000012,83.087769000000037],[-72.556655999999975,83.079712000000086],[-72.523894999999925,83.076934999999992],[-72.477492999999868,83.076659999999947],[-72.424163999999962,83.079163000000108],[-72.407776000000013,83.083602999999982],[-72.393616000000009,83.089431999999988],[-72.365829000000019,83.094147000000021],[-72.336394999999925,83.097763000000043],[-72.226943999999946,83.101379000000122],[-72.111938000000009,83.101089000000115],[-72.005568999999866,83.099152000000061],[-71.831680000000006,83.097763000000043],[-71.712783999999886,83.098877000000016],[-71.611663999999905,83.096099999999979],[-71.581679999999949,83.091095000000109],[-71.596953999999869,83.085266000000047],[-71.654448999999943,83.068878000000041],[-71.696380999999917,83.057755000000043],[-71.75,83.043045000000063],[-71.775008999999898,83.032211000000018],[-71.7933349999999,83.020537999999988],[-71.794998000000021,83.013611000000083],[-71.792220999999984,83.00749200000007],[-71.778335999999911,83.001663000000065],[-71.567229999999938,82.941086000000041],[-71.493606999999997,82.932205000000124],[-71.33666999999997,82.914703000000088],[-71.219726999999978,82.914993000000095],[-71.144164999999987,82.908325000000104],[-71.084166999999979,82.900542999999971],[-71.018340999999964,82.891937000000041],[-70.952224999999999,82.883605999999986],[-70.871384000000035,82.881087999999977],[-70.835006999999962,82.883041000000105],[-70.84333799999996,82.889984000000084],[-70.857773000000009,82.897217000000126],[-70.904174999999952,82.908035000000098],[-70.961944999999957,82.918593999999985],[-71.080841000000021,82.937484999999981],[-71.306380999999931,82.982208000000071],[-71.472777999999948,83.001663000000065],[-71.497498000000007,83.007217000000026],[-71.489990000000034,83.014435000000049],[-71.474166999999852,83.019440000000088],[-71.425002999999947,83.029434000000094],[-71.125274999999988,83.087494000000049],[-70.887221999999895,83.098038000000088],[-70.694152999999972,83.103592000000049],[-70.585280999999952,83.103317000000061],[-70.470000999999968,83.107482999999945],[-70.37388599999997,83.113311999999951],[-70.260009999999966,83.113876000000118],[-70.160003999999958,83.111374000000012],[-70.111937999999952,83.109421000000111]]]}
+}
+]
+}
diff --git a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/citm_catalog.json b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/citm_catalog.json
new file mode 100755
index 000000000..245fdbbed
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/citm_catalog.json
@@ -0,0 +1,50469 @@
+{
+    "areaNames": {
+        "205705993": "Arrière-scène central",
+        "205705994": "1er balcon central",
+        "205705995": "2ème balcon bergerie cour",
+        "205705996": "2ème balcon bergerie jardin",
+        "205705998": "1er balcon bergerie jardin",
+        "205705999": "1er balcon bergerie cour",
+        "205706000": "Arrière-scène jardin",
+        "205706001": "Arrière-scène cour",
+        "205706002": "2ème balcon jardin",
+        "205706003": "2ème balcon cour",
+        "205706004": "2ème Balcon central",
+        "205706005": "1er balcon jardin",
+        "205706006": "1er balcon cour",
+        "205706007": "Orchestre central",
+        "205706008": "Orchestre jardin",
+        "205706009": "Orchestre cour",
+        "342752287": "Zone physique secrète"
+    },
+    "audienceSubCategoryNames": {
+        "337100890": "Abonné"
+    },
+    "blockNames": {},
+    "events": {
+        "138586341": {
+            "description": null,
+            "id": 138586341,
+            "logo": null,
+            "name": "30th Anniversary Tour",
+            "subTopicIds": [
+                337184269,
+                337184283
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604
+            ]
+        },
+        "138586345": {
+            "description": null,
+            "id": 138586345,
+            "logo": "/images/UE0AAAAACEKo6QAAAAZDSVRN",
+            "name": "Berliner Philharmoniker",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586349": {
+            "description": null,
+            "id": 138586349,
+            "logo": "/images/UE0AAAAACEKo7QAAAAZDSVRN",
+            "name": "Berliner Philharmoniker",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586353": {
+            "description": null,
+            "id": 138586353,
+            "logo": "/images/UE0AAAAACEKo8QAAAAZDSVRN",
+            "name": "Pittsburgh Symphony Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586357": {
+            "description": null,
+            "id": 138586357,
+            "logo": "/images/UE0AAAAACEKo9QAAAAhDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586361": {
+            "description": null,
+            "id": 138586361,
+            "logo": "/images/UE0AAAAACEKo+QAAAAVDSVRN",
+            "name": "WDR Sinfonieorchester Köln",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586365": {
+            "description": null,
+            "id": 138586365,
+            "logo": "/images/UE0AAAAACEKo/QAAAAVDSVRN",
+            "name": "Alessandro - G.F. Haendel",
+            "subTopicIds": [
+                337184284,
+                337184263,
+                337184298,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586369": {
+            "description": null,
+            "id": 138586369,
+            "logo": "/images/UE0AAAAACEKpAQAAAAVDSVRN",
+            "name": "Orchestre Colonne",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586373": {
+            "description": null,
+            "id": 138586373,
+            "logo": "/images/UE0AAAAACEKpBQAAAAdDSVRN",
+            "name": "Christophe",
+            "subTopicIds": [
+                337184280,
+                337184297,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586377": {
+            "description": null,
+            "id": 138586377,
+            "logo": "/images/UE0AAAAACEKpCQAAAAVDSVRN",
+            "name": "Joshua Redman Quartet",
+            "subTopicIds": [
+                337184269,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586381": {
+            "description": null,
+            "id": 138586381,
+            "logo": "/images/UE0AAAAACEKpDQAAAAVDSVRN",
+            "name": "Orchestre Symphonique d'Etat de São Paulo",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586385": {
+            "description": null,
+            "id": 138586385,
+            "logo": "/images/UE0AAAAACEKpEQAAAAVDSVRN",
+            "name": "Le génie italien",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586389": {
+            "description": null,
+            "id": 138586389,
+            "logo": "/images/UE0AAAAACEKpFQAAAAVDSVRN",
+            "name": "Les Noces de Figaro - W.A. Mozart (version de concert)",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586393": {
+            "description": null,
+            "id": 138586393,
+            "logo": "/images/UE0AAAAACEKpGQAAAAhDSVRN",
+            "name": "Orchestre Pasdeloup",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586397": {
+            "description": null,
+            "id": 138586397,
+            "logo": null,
+            "name": "The Saxophone Summit",
+            "subTopicIds": [
+                337184269,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586401": {
+            "description": null,
+            "id": 138586401,
+            "logo": "/images/UE0AAAAACEKpIQAAAAVDSVRN",
+            "name": "Patricia Petibon - Nouveau Monde",
+            "subTopicIds": [
+                337184263,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586405": {
+            "description": null,
+            "id": 138586405,
+            "logo": "/images/UE0AAAAACEKpJQAAAAVDSVRN",
+            "name": "Russian National Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586409": {
+            "description": null,
+            "id": 138586409,
+            "logo": "/images/UE0AAAAACEKpKQAAAAZDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586413": {
+            "description": null,
+            "id": 138586413,
+            "logo": "/images/UE0AAAAACEKpLQAAAAVDSVRN",
+            "name": "Evgeny Kissin",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586417": {
+            "description": null,
+            "id": 138586417,
+            "logo": "/images/UE0AAAAACEKpMQAAAAZDSVRN",
+            "name": "Bach, concertos pour piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586421": {
+            "description": null,
+            "id": 138586421,
+            "logo": "/images/UE0AAAAACEKpNQAAAAVDSVRN",
+            "name": "Bach, concertos pour piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586425": {
+            "description": null,
+            "id": 138586425,
+            "logo": null,
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586429": {
+            "description": null,
+            "id": 138586429,
+            "logo": "/images/UE0AAAAACEKpPQAAAAVDSVRN",
+            "name": "Gewandhausorchester Leipzig",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586433": {
+            "description": null,
+            "id": 138586433,
+            "logo": "/images/UE0AAAAACEKpQQAAAAVDSVRN",
+            "name": "Gewandhausorchester Leipzig",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586437": {
+            "description": null,
+            "id": 138586437,
+            "logo": "/images/UE0AAAAACEKpRQAAAAVDSVRN",
+            "name": "Budapest Festival Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586441": {
+            "description": null,
+            "id": 138586441,
+            "logo": "/images/UE0AAAAACEKpSQAAAAVDSVRN",
+            "name": "Orchestre National du Capitole de Toulouse",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586445": {
+            "description": null,
+            "id": 138586445,
+            "logo": "/images/UE0AAAAACEKpTQAAAAVDSVRN",
+            "name": "Gewandhausorchester Leipzig",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586449": {
+            "description": null,
+            "id": 138586449,
+            "logo": "/images/UE0AAAAACEKpUQAAAAVDSVRN",
+            "name": "Gewandhausorchester Leipzig",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586453": {
+            "description": null,
+            "id": 138586453,
+            "logo": "/images/UE0AAAAACEKpVQAAAAVDSVRN",
+            "name": "Remember Shakti",
+            "subTopicIds": [
+                337184269,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586457": {
+            "description": null,
+            "id": 138586457,
+            "logo": "/images/UE0AAAAACEKpWQAAAAVDSVRN",
+            "name": "Menahem Pressler - Quatuor Ebène",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586461": {
+            "description": null,
+            "id": 138586461,
+            "logo": "/images/UE0AAAAACEKpXQAAAAZDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586465": {
+            "description": null,
+            "id": 138586465,
+            "logo": "/images/UE0AAAAACEKpYQAAAAVDSVRN",
+            "name": "Orquesta Buena Vista Social Club",
+            "subTopicIds": [
+                337184279,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586469": {
+            "description": null,
+            "id": 138586469,
+            "logo": "/images/UE0AAAAACEKpZQAAAAVDSVRN",
+            "name": "The Cleveland Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586473": {
+            "description": null,
+            "id": 138586473,
+            "logo": "/images/UE0AAAAACEKpaQAAAAVDSVRN",
+            "name": "The Cleveland Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586477": {
+            "description": null,
+            "id": 138586477,
+            "logo": "/images/UE0AAAAACEKpbQAAAAZDSVRN",
+            "name": "Orchestre Philharmonique du Luxembourg",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586481": {
+            "description": null,
+            "id": 138586481,
+            "logo": "/images/UE0AAAAACEKpcQAAAAVDSVRN",
+            "name": "Maurizio Pollini, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586485": {
+            "description": null,
+            "id": 138586485,
+            "logo": "/images/UE0AAAAACEKpdQAAAAZDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586501": {
+            "description": null,
+            "id": 138586501,
+            "logo": "/images/UE0AAAAACEKphQAAAAVDSVRN",
+            "name": "Antonio Meneses - Maria-João Pires",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586505": {
+            "description": null,
+            "id": 138586505,
+            "logo": "/images/UE0AAAAACEKpiQAAAAVDSVRN",
+            "name": "Musiques pour la reine Caroline",
+            "subTopicIds": [
+                337184284,
+                337184263,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586509": {
+            "description": null,
+            "id": 138586509,
+            "logo": null,
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586513": {
+            "description": null,
+            "id": 138586513,
+            "logo": "/images/UE0AAAAACEKpkQAAAAVDSVRN",
+            "name": "Les Mystères d'Isis - W.A. Mozart (cersion de concert)",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586517": {
+            "description": null,
+            "id": 138586517,
+            "logo": "/images/UE0AAAAACEKplQAAAAdDSVRN",
+            "name": "Martha Argerich - Gidon Kremer",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586521": {
+            "description": null,
+            "id": 138586521,
+            "logo": "/images/UE0AAAAACEKpmQAAAAVDSVRN",
+            "name": "Cecilia Bartoli - Mozart et la Vienne classique",
+            "subTopicIds": [
+                337184298,
+                337184268,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586525": {
+            "description": null,
+            "id": 138586525,
+            "logo": "/images/UE0AAAAACEKpnQAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586529": {
+            "description": null,
+            "id": 138586529,
+            "logo": null,
+            "name": "Orchestre Pasdeloup",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586533": {
+            "description": null,
+            "id": 138586533,
+            "logo": "/images/UE0AAAAACEKppQAAAAVDSVRN",
+            "name": "Orchestre du Théâtre Mariinsky",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586537": {
+            "description": null,
+            "id": 138586537,
+            "logo": "/images/UE0AAAAACEKpqQAAAAVDSVRN",
+            "name": "Orchestre du Théâtre Mariinsky",
+            "subTopicIds": [
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586541": {
+            "description": null,
+            "id": 138586541,
+            "logo": "/images/UE0AAAAACEKprQAAAAVDSVRN",
+            "name": "Orchestre du Théâtre Mariinsky",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586545": {
+            "description": null,
+            "id": 138586545,
+            "logo": "/images/UE0AAAAACEKpsQAAAAVDSVRN",
+            "name": "Academy of Saint Martin in the Fields",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586549": {
+            "description": null,
+            "id": 138586549,
+            "logo": "/images/UE0AAAAACEKptQAAAAVDSVRN",
+            "name": "Quatuor Hagen",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586553": {
+            "description": null,
+            "id": 138586553,
+            "logo": "/images/UE0AAAAACEKpuQAAAAVDSVRN",
+            "name": "Quatuor Hagen",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586557": {
+            "description": null,
+            "id": 138586557,
+            "logo": "/images/UE0AAAAACEKpvQAAAAVDSVRN",
+            "name": "Quatuor Hagen",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586561": {
+            "description": null,
+            "id": 138586561,
+            "logo": "/images/UE0AAAAACEKpwQAAAAVDSVRN",
+            "name": "Sunwook Kim, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586565": {
+            "description": null,
+            "id": 138586565,
+            "logo": null,
+            "name": "Orchestre Colonne",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586569": {
+            "description": null,
+            "id": 138586569,
+            "logo": "/images/UE0AAAAACEKpyQAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586581": {
+            "description": null,
+            "id": 138586581,
+            "logo": null,
+            "name": "Orchestre National de France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586585": {
+            "description": null,
+            "id": 138586585,
+            "logo": "/images/UE0AAAAACEKp2QAAAAVDSVRN",
+            "name": "Messe en si mineur - J.S. Bach",
+            "subTopicIds": [
+                337184296,
+                337184263,
+                337184298,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586589": {
+            "description": null,
+            "id": 138586589,
+            "logo": null,
+            "name": "Le Messie - G.F. Haendel",
+            "subTopicIds": [
+                337184263,
+                337184298,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586593": {
+            "description": null,
+            "id": 138586593,
+            "logo": "/images/UE0AAAAACEKp4QAAAAdDSVRN",
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586597": {
+            "description": null,
+            "id": 138586597,
+            "logo": "/images/UE0AAAAACEKp5QAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586601": {
+            "description": null,
+            "id": 138586601,
+            "logo": "/images/UE0AAAAACEKp6QAAAAdDSVRN",
+            "name": "Orchestre Pasdeloup",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586605": {
+            "description": null,
+            "id": 138586605,
+            "logo": null,
+            "name": "Orchestre Colonne",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586609": {
+            "description": null,
+            "id": 138586609,
+            "logo": null,
+            "name": "Ciné-concert - Le Cuirassé Potemkine",
+            "subTopicIds": [
+                337184267,
+                337184262,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                107888604,
+                324846100
+            ]
+        },
+        "138586613": {
+            "description": null,
+            "id": 138586613,
+            "logo": "/images/UE0AAAAACEKp9QAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586617": {
+            "description": null,
+            "id": 138586617,
+            "logo": "/images/UE0AAAAACEKp+QAAAAVDSVRN",
+            "name": "London Symphony Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586625": {
+            "description": null,
+            "id": 138586625,
+            "logo": null,
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586629": {
+            "description": null,
+            "id": 138586629,
+            "logo": "/images/UE0AAAAACEKqBQAAAAVDSVRN",
+            "name": "Orquesta Sinfonica Simón Bolívar de Venezuela",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586633": {
+            "description": null,
+            "id": 138586633,
+            "logo": "/images/UE0AAAAACEKqCQAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184298,
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586641": {
+            "description": null,
+            "id": 138586641,
+            "logo": "/images/UE0AAAAACEKqEQAAAAVDSVRN",
+            "name": "Edita Gruberova - Airs de concert",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586645": {
+            "description": null,
+            "id": 138586645,
+            "logo": "/images/UE0AAAAACEKqFQAAAAdDSVRN",
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586649": {
+            "description": null,
+            "id": 138586649,
+            "logo": "/images/UE0AAAAACEKqGQAAAAZDSVRN",
+            "name": "Alexei Volodin, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586653": {
+            "description": null,
+            "id": 138586653,
+            "logo": null,
+            "name": "Sonya Yoncheva - Diva !",
+            "subTopicIds": [
+                337184284,
+                337184263,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586657": {
+            "description": null,
+            "id": 138586657,
+            "logo": "/images/UE0AAAAACEKqIQAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586661": {
+            "description": null,
+            "id": 138586661,
+            "logo": null,
+            "name": "Le Ramayana balinais - L'Enlèvement de Sita",
+            "subTopicIds": [
+                337184279,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586667": {
+            "description": null,
+            "id": 138586667,
+            "logo": null,
+            "name": "Dave Holland & friends",
+            "subTopicIds": [
+                337184269,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586671": {
+            "description": null,
+            "id": 138586671,
+            "logo": "/images/UE0AAAAACEKqLwAAAAlDSVRN",
+            "name": "Boris Godounov - M.Moussorgski (version de concert)",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586675": {
+            "description": null,
+            "id": 138586675,
+            "logo": "/images/UE0AAAAACEKqMwAAAAVDSVRN",
+            "name": "Insula orchestra - Accentus",
+            "subTopicIds": [
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586679": {
+            "description": null,
+            "id": 138586679,
+            "logo": "/images/UE0AAAAACEKqNwAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586687": {
+            "description": null,
+            "id": 138586687,
+            "logo": "/images/UE0AAAAACEKqPwAAAAVDSVRN",
+            "name": "Bryn Terfel - Héros légendaires",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586691": {
+            "description": null,
+            "id": 138586691,
+            "logo": null,
+            "name": "Les Siècles",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586695": {
+            "description": null,
+            "id": 138586695,
+            "logo": "/images/UE0AAAAACEKqRwAAAAVDSVRN",
+            "name": "Gautier Capuçon - Frank Braley",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586699": {
+            "description": null,
+            "id": 138586699,
+            "logo": null,
+            "name": "Festival Présences 2014 \"Paris Berlin\"",
+            "subTopicIds": [
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586703": {
+            "description": null,
+            "id": 138586703,
+            "logo": "/images/UE0AAAAACEKqTwAAAAZDSVRN",
+            "name": "Autour de Tristan",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586707": {
+            "description": null,
+            "id": 138586707,
+            "logo": "/images/UE0AAAAACEKqUwAAAAVDSVRN",
+            "name": "Orchestre du Théâtre Mariinsky",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586711": {
+            "description": null,
+            "id": 138586711,
+            "logo": "/images/UE0AAAAACEKqVwAAAAVDSVRN",
+            "name": "Orchestre du Théâtre Mariinsky",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586715": {
+            "description": null,
+            "id": 138586715,
+            "logo": "/images/UE0AAAAACEKqWwAAAAVDSVRN",
+            "name": "Orchestre du Théâtre Mariinsky",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586719": {
+            "description": null,
+            "id": 138586719,
+            "logo": "/images/UE0AAAAACEKqXwAAAAVDSVRN",
+            "name": "Etienne Daho et invités",
+            "subTopicIds": [
+                337184280,
+                337184297,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586723": {
+            "description": null,
+            "id": 138586723,
+            "logo": null,
+            "name": "Fantasia in concert",
+            "subTopicIds": [
+                337184299,
+                337184268,
+                337184267,
+                337184275,
+                337184282
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846098,
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586731": {
+            "description": null,
+            "id": 138586731,
+            "logo": "/images/UE0AAAAACEKqawAAAAVDSVRN",
+            "name": "Khatia Buniatishvili, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586735": {
+            "description": null,
+            "id": 138586735,
+            "logo": "/images/UE0AAAAACEKqbwAAAAVDSVRN",
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586743": {
+            "description": null,
+            "id": 138586743,
+            "logo": null,
+            "name": "Guy Braunstein - Zvi Plesser - Sunwook Kim",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586747": {
+            "description": null,
+            "id": 138586747,
+            "logo": "/images/UE0AAAAACEKqewAAAAVDSVRN",
+            "name": "Janine Jansen and friends",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586751": {
+            "description": null,
+            "id": 138586751,
+            "logo": "/images/UE0AAAAACEKqfwAAAAVDSVRN",
+            "name": "Elena Bashkirova, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586755": {
+            "description": null,
+            "id": 138586755,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586759": {
+            "description": null,
+            "id": 138586759,
+            "logo": null,
+            "name": "San Francisco Symphony",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586771": {
+            "description": null,
+            "id": 138586771,
+            "logo": null,
+            "name": "Passion selon saint Jean - J.S. Bach",
+            "subTopicIds": [
+                337184296,
+                337184263,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586775": {
+            "description": null,
+            "id": 138586775,
+            "logo": null,
+            "name": "Yundi Li , piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586779": {
+            "description": null,
+            "id": 138586779,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586783": {
+            "description": null,
+            "id": 138586783,
+            "logo": null,
+            "name": "Orchestre Pasdeloup",
+            "subTopicIds": [
+                337184268,
+                337184269,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586787": {
+            "description": null,
+            "id": 138586787,
+            "logo": null,
+            "name": "Orchestre du Conservatoire de Paris",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586795": {
+            "description": null,
+            "id": 138586795,
+            "logo": null,
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586799": {
+            "description": null,
+            "id": 138586799,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586803": {
+            "description": null,
+            "id": 138586803,
+            "logo": null,
+            "name": "Royal Concertgebouw Orchestra Amsterdam",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586807": {
+            "description": null,
+            "id": 138586807,
+            "logo": null,
+            "name": "Royal Concertgebouw Orchestra Amsterdam",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586811": {
+            "description": null,
+            "id": 138586811,
+            "logo": null,
+            "name": "Royal Concertgebouw Orchestra Amsterdam",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586815": {
+            "description": null,
+            "id": 138586815,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586823": {
+            "description": null,
+            "id": 138586823,
+            "logo": null,
+            "name": "London Symphony Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586827": {
+            "description": null,
+            "id": 138586827,
+            "logo": null,
+            "name": "London Symphony Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586831": {
+            "description": null,
+            "id": 138586831,
+            "logo": null,
+            "name": "Le Concert des Nations - Jordi Savall",
+            "subTopicIds": [
+                337184263,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586835": {
+            "description": null,
+            "id": 138586835,
+            "logo": null,
+            "name": "Leonidas Kavakos - Yuja Wang",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586839": {
+            "description": null,
+            "id": 138586839,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586843": {
+            "description": null,
+            "id": 138586843,
+            "logo": null,
+            "name": "Quatuor Artemis - Gautier Capuçon",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586847": {
+            "description": null,
+            "id": 138586847,
+            "logo": null,
+            "name": "Quatuor Artemis - Quatuor Ébène",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586851": {
+            "description": null,
+            "id": 138586851,
+            "logo": null,
+            "name": "Quatuor Artemis - Elisabeth Leonskaja",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586855": {
+            "description": null,
+            "id": 138586855,
+            "logo": null,
+            "name": "Russian National Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586859": {
+            "description": null,
+            "id": 138586859,
+            "logo": null,
+            "name": "Passion selon saint Matthieu",
+            "subTopicIds": [
+                337184296,
+                337184263,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586863": {
+            "description": null,
+            "id": 138586863,
+            "logo": null,
+            "name": "Les Arts Florissants - Concert de Pâques",
+            "subTopicIds": [
+                337184263,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586867": {
+            "description": null,
+            "id": 138586867,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586871": {
+            "description": null,
+            "id": 138586871,
+            "logo": null,
+            "name": "Leylâ et Majnûn ou L'Amour mystique",
+            "subTopicIds": [
+                337184279,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586875": {
+            "description": null,
+            "id": 138586875,
+            "logo": null,
+            "name": "Stephen Kovacevich, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586879": {
+            "description": null,
+            "id": 138586879,
+            "logo": null,
+            "name": "Orchestra Mozart Bologna - Mahler Chamber Orchestra",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586883": {
+            "description": null,
+            "id": 138586883,
+            "logo": null,
+            "name": "Ballet Royal du Cambodge",
+            "subTopicIds": [
+                337184279,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586889": {
+            "description": null,
+            "id": 138586889,
+            "logo": null,
+            "name": "MDR Sinfonieorchester Leipzig",
+            "subTopicIds": [
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586893": {
+            "description": null,
+            "id": 138586893,
+            "logo": null,
+            "name": "Orchestre Colonne",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586897": {
+            "description": null,
+            "id": 138586897,
+            "logo": null,
+            "name": "Elisabeth Leonskaja, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586901": {
+            "description": null,
+            "id": 138586901,
+            "logo": null,
+            "name": "Yuja Wang, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586905": {
+            "description": null,
+            "id": 138586905,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586909": {
+            "description": null,
+            "id": 138586909,
+            "logo": null,
+            "name": "Anne-Sophie Mutter - Lambert Orkis",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586917": {
+            "description": null,
+            "id": 138586917,
+            "logo": null,
+            "name": "Orchestre National d'Île-de-France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586921": {
+            "description": null,
+            "id": 138586921,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586929": {
+            "description": null,
+            "id": 138586929,
+            "logo": null,
+            "name": "Orchestre Pasdeloup",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586933": {
+            "description": null,
+            "id": 138586933,
+            "logo": null,
+            "name": "Gilberto Gil",
+            "subTopicIds": [
+                337184279,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586937": {
+            "description": null,
+            "id": 138586937,
+            "logo": null,
+            "name": "Nelson Freire, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586941": {
+            "description": null,
+            "id": 138586941,
+            "logo": null,
+            "name": "Orchestre Philharmonique de Radio France",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586945": {
+            "description": null,
+            "id": 138586945,
+            "logo": null,
+            "name": "Orfeo - C. Monteverdi (version de concert)",
+            "subTopicIds": [
+                337184284,
+                337184263,
+                337184298,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586949": {
+            "description": null,
+            "id": 138586949,
+            "logo": null,
+            "name": "Bamberger Symphoniker",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586953": {
+            "description": null,
+            "id": 138586953,
+            "logo": null,
+            "name": "Murray Perahia, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586957": {
+            "description": null,
+            "id": 138586957,
+            "logo": null,
+            "name": "Orchestre National du Capitole de Toulouse",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586961": {
+            "description": null,
+            "id": 138586961,
+            "logo": null,
+            "name": "Krystian Zimerman, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586965": {
+            "description": null,
+            "id": 138586965,
+            "logo": null,
+            "name": "Rafal Blechacz, piano",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586969": {
+            "description": null,
+            "id": 138586969,
+            "logo": null,
+            "name": "Les Voyages musicaux de Marco Polo",
+            "subTopicIds": [
+                337184279,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586973": {
+            "description": null,
+            "id": 138586973,
+            "logo": null,
+            "name": "Orchestre National de Lyon",
+            "subTopicIds": [
+                337184298,
+                337184268,
+                337184283,
+                337184292,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586977": {
+            "description": null,
+            "id": 138586977,
+            "logo": null,
+            "name": "Guy Braunstein - Zvi Plesser - Sunwook Kim",
+            "subTopicIds": [
+                337184281,
+                337184283,
+                337184273
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586981": {
+            "description": null,
+            "id": 138586981,
+            "logo": null,
+            "name": "La Bohème - G. Puccini (version de concert)",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586989": {
+            "description": null,
+            "id": 138586989,
+            "logo": null,
+            "name": "Otello - G. Verdi (version de concert)",
+            "subTopicIds": [
+                337184284,
+                337184298,
+                337184268,
+                337184283,
+                337184292
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586993": {
+            "description": null,
+            "id": 138586993,
+            "logo": null,
+            "name": "Staatskapelle Berlin",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "138586997": {
+            "description": null,
+            "id": 138586997,
+            "logo": null,
+            "name": "Staatskapelle Berlin",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "151183114": {
+            "description": null,
+            "id": 151183114,
+            "logo": null,
+            "name": "San Francisco Symphony",
+            "subTopicIds": [
+                337184298,
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "339420802": {
+            "description": null,
+            "id": 339420802,
+            "logo": null,
+            "name": "Lou Doillon",
+            "subTopicIds": [
+                337184280,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "339420805": {
+            "description": null,
+            "id": 339420805,
+            "logo": null,
+            "name": "Patrick Watson & Orchestre National d'Ile-de-France",
+            "subTopicIds": [
+                337184280,
+                337184283,
+                337184262
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341069930": {
+            "description": null,
+            "id": 341069930,
+            "logo": "/images/UE0AAAAAFFRQagAAAAlDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181232": {
+            "description": null,
+            "id": 341181232,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181233": {
+            "description": null,
+            "id": 341181233,
+            "logo": "/images/UE0AAAAAFFYDMQAAAAhDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181234": {
+            "description": null,
+            "id": 341181234,
+            "logo": "/images/UE0AAAAAFFYDMgAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181235": {
+            "description": null,
+            "id": 341181235,
+            "logo": "/images/UE0AAAAAFFYDMwAAAAZDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181236": {
+            "description": null,
+            "id": 341181236,
+            "logo": "/images/UE0AAAAAFFYDNAAAAAZDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181237": {
+            "description": null,
+            "id": 341181237,
+            "logo": "/images/UE0AAAAAFFYDNQAAAAhDSVRN",
+            "name": "Paavo Järvi, direction",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181238": {
+            "description": null,
+            "id": 341181238,
+            "logo": "/images/UE0AAAAAFFYDNgAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181239": {
+            "description": null,
+            "id": 341181239,
+            "logo": "/images/UE0AAAAAFFYDNwAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181240": {
+            "description": null,
+            "id": 341181240,
+            "logo": "/images/UE0AAAAAFFYDOAAAAAhDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181241": {
+            "description": null,
+            "id": 341181241,
+            "logo": "/images/UE0AAAAAFFYDOQAAAAZDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181242": {
+            "description": null,
+            "id": 341181242,
+            "logo": "/images/UE0AAAAAFFYDOgAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181243": {
+            "description": null,
+            "id": 341181243,
+            "logo": "/images/UE0AAAAAFFYDOwAAAAdDSVRN",
+            "name": "Concert anniversaire des 90 ans de Menahem Pressler",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181244": {
+            "description": null,
+            "id": 341181244,
+            "logo": "/images/UE0AAAAAFFYDPAAAAAZDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181245": {
+            "description": null,
+            "id": 341181245,
+            "logo": "/images/UE0AAAAAFFYDPQAAAAZDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181246": {
+            "description": null,
+            "id": 341181246,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181247": {
+            "description": null,
+            "id": 341181247,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181248": {
+            "description": null,
+            "id": 341181248,
+            "logo": "/images/UE0AAAAAFFYDQAAAAAZDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181249": {
+            "description": null,
+            "id": 341181249,
+            "logo": "/images/UE0AAAAAFFYDQQAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181250": {
+            "description": null,
+            "id": 341181250,
+            "logo": "/images/UE0AAAAAFFYDQgAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181251": {
+            "description": null,
+            "id": 341181251,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181252": {
+            "description": null,
+            "id": 341181252,
+            "logo": "/images/UE0AAAAAFFYDRAAAAAdDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181253": {
+            "description": null,
+            "id": 341181253,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181254": {
+            "description": null,
+            "id": 341181254,
+            "logo": "/images/UE0AAAAAFFYDRgAAAAlDSVRN",
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181255": {
+            "description": null,
+            "id": 341181255,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181256": {
+            "description": null,
+            "id": 341181256,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181257": {
+            "description": null,
+            "id": 341181257,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181258": {
+            "description": null,
+            "id": 341181258,
+            "logo": null,
+            "name": "Orchestre de Paris",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "341181259": {
+            "description": null,
+            "id": 341181259,
+            "logo": null,
+            "name": "14052122 JARVI / GOERNE / SOLBERG / CHŒUR",
+            "subTopicIds": [
+                337184268,
+                337184288,
+                337184283,
+                337184275
+            ],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": [
+                324846099,
+                107888604,
+                324846100
+            ]
+        },
+        "342742592": {
+            "description": null,
+            "id": 342742592,
+            "logo": null,
+            "name": "event secret 2",
+            "subTopicIds": [],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": []
+        },
+        "342742593": {
+            "description": null,
+            "id": 342742593,
+            "logo": null,
+            "name": "event secret 3",
+            "subTopicIds": [],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": []
+        },
+        "342742594": {
+            "description": null,
+            "id": 342742594,
+            "logo": null,
+            "name": "event secret 4",
+            "subTopicIds": [],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": []
+        },
+        "342742595": {
+            "description": null,
+            "id": 342742595,
+            "logo": null,
+            "name": "event secret 5",
+            "subTopicIds": [],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": []
+        },
+        "342742596": {
+            "description": null,
+            "id": 342742596,
+            "logo": null,
+            "name": "event secret 6",
+            "subTopicIds": [],
+            "subjectCode": null,
+            "subtitle": null,
+            "topicIds": []
+        }
+    },
+    "performances": [
+        {
+            "eventId": 138586341,
+            "id": 339887544,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "amount": 66500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1372701600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 339420802,
+            "id": 339430296,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1372788000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 339420805,
+            "id": 339430301,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1373220000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586345,
+            "id": 138586347,
+            "logo": "/images/UE0AAAAACEKo6QAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 152000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 104500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1377972000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586349,
+            "id": 138586351,
+            "logo": "/images/UE0AAAAACEKo7QAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 152000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 104500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1378044000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586353,
+            "id": 138586355,
+            "logo": "/images/UE0AAAAACEKo8QAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1378490400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341069930,
+            "id": 341070133,
+            "logo": "/images/UE0AAAAAFFRQagAAAAlDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1378922400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341069930,
+            "id": 341070132,
+            "logo": "/images/UE0AAAAAFFRQagAAAAlDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1379008800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586357,
+            "id": 138586359,
+            "logo": "/images/UE0AAAAACEKo9QAAAAhDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1379095200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586361,
+            "id": 138586363,
+            "logo": "/images/UE0AAAAACEKo+QAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1379440800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586365,
+            "id": 138586367,
+            "logo": "/images/UE0AAAAACEKo/QAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1379959200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181254,
+            "id": 341181470,
+            "logo": "/images/UE0AAAAAFFYDRgAAAAlDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1380132000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181254,
+            "id": 341181469,
+            "logo": "/images/UE0AAAAAFFYDRgAAAAlDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1380218400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586369,
+            "id": 138586371,
+            "logo": "/images/UE0AAAAACEKpAQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1380650400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181252,
+            "id": 341181467,
+            "logo": "/images/UE0AAAAAFFYDRAAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1380736800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586373,
+            "id": 138586375,
+            "logo": "/images/UE0AAAAACEKpBQAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1380996000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586377,
+            "id": 138586379,
+            "logo": "/images/UE0AAAAACEKpCQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381082400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586381,
+            "id": 138586383,
+            "logo": "/images/UE0AAAAACEKpDQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381168800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586385,
+            "id": 138586387,
+            "logo": "/images/UE0AAAAACEKpEQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381255200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181234,
+            "id": 341181437,
+            "logo": "/images/UE0AAAAAFFYDMgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381341600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181234,
+            "id": 341181436,
+            "logo": "/images/UE0AAAAAFFYDMgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381428000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586389,
+            "id": 138586391,
+            "logo": "/images/UE0AAAAACEKpFQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381512600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586393,
+            "id": 138586395,
+            "logo": "/images/UE0AAAAACEKpGQAAAAhDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381586400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586397,
+            "id": 138586399,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381672800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586401,
+            "id": 138586403,
+            "logo": "/images/UE0AAAAACEKpIQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381773600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586405,
+            "id": 138586407,
+            "logo": "/images/UE0AAAAACEKpJQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381860000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181233,
+            "id": 341181435,
+            "logo": "/images/UE0AAAAAFFYDMQAAAAhDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1381946400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181237,
+            "id": 341181442,
+            "logo": "/images/UE0AAAAAFFYDNQAAAAhDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382032800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586409,
+            "id": 138586411,
+            "logo": "/images/UE0AAAAACEKpKQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382119200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586413,
+            "id": 138586415,
+            "logo": "/images/UE0AAAAACEKpLQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382277600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586417,
+            "id": 138586419,
+            "logo": "/images/UE0AAAAACEKpMQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382378400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586421,
+            "id": 138586423,
+            "logo": "/images/UE0AAAAACEKpNQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382464800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181238,
+            "id": 341181444,
+            "logo": "/images/UE0AAAAAFFYDNgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382551200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181238,
+            "id": 341181443,
+            "logo": "/images/UE0AAAAAFFYDNgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382637600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586425,
+            "id": 138586427,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382724000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586429,
+            "id": 138586431,
+            "logo": "/images/UE0AAAAACEKpPQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382810400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586433,
+            "id": 138586435,
+            "logo": "/images/UE0AAAAACEKpQQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1382886000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586437,
+            "id": 138586439,
+            "logo": "/images/UE0AAAAACEKpRQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383073200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586441,
+            "id": 138586443,
+            "logo": "/images/UE0AAAAACEKpSQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383246000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586445,
+            "id": 138586447,
+            "logo": "/images/UE0AAAAACEKpTQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383332400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586449,
+            "id": 138586451,
+            "logo": "/images/UE0AAAAACEKpUQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383418800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742708,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383555600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742709,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383562800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586453,
+            "id": 138586455,
+            "logo": "/images/UE0AAAAACEKpVQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383591600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742710,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383642000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742711,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383649200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742712,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383728400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742713,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383735600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742714,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383814800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742592,
+            "id": 342742715,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383822000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586457,
+            "id": 138586459,
+            "logo": "/images/UE0AAAAACEKpWQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383850800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586461,
+            "id": 138586463,
+            "logo": "/images/UE0AAAAACEKpXQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1383937200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586465,
+            "id": 138586467,
+            "logo": "/images/UE0AAAAACEKpYQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384110000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586469,
+            "id": 138586471,
+            "logo": "/images/UE0AAAAACEKpZQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937293
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937293
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384196400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586473,
+            "id": 138586475,
+            "logo": "/images/UE0AAAAACEKpaQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384282800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586477,
+            "id": 138586479,
+            "logo": "/images/UE0AAAAACEKpbQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384369200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586481,
+            "id": 138586483,
+            "logo": "/images/UE0AAAAACEKpcQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384455600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586485,
+            "id": 138586487,
+            "logo": "/images/UE0AAAAACEKpdQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384542000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586501,
+            "id": 138586503,
+            "logo": "/images/UE0AAAAACEKphQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384801200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586505,
+            "id": 138586507,
+            "logo": "/images/UE0AAAAACEKpiQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1384887600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586509,
+            "id": 138586511,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385146800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586513,
+            "id": 138586515,
+            "logo": "/images/UE0AAAAACEKpkQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385231400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586517,
+            "id": 138586519,
+            "logo": "/images/UE0AAAAACEKplQAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385305200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586521,
+            "id": 138586523,
+            "logo": "/images/UE0AAAAACEKpmQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 152000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 104500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385492400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181235,
+            "id": 341181439,
+            "logo": "/images/UE0AAAAAFFYDMwAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385665200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586525,
+            "id": 138586527,
+            "logo": "/images/UE0AAAAACEKpnQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385751600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586529,
+            "id": 138586531,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385823600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181235,
+            "id": 341181438,
+            "logo": "/images/UE0AAAAAFFYDMwAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385838000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586533,
+            "id": 138586535,
+            "logo": "/images/UE0AAAAACEKppQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1385910000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586537,
+            "id": 138586539,
+            "logo": "/images/UE0AAAAACEKpqQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386010800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586541,
+            "id": 138586543,
+            "logo": "/images/UE0AAAAACEKprQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386097200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181236,
+            "id": 341181440,
+            "logo": "/images/UE0AAAAAFFYDNAAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386183600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181236,
+            "id": 341181441,
+            "logo": "/images/UE0AAAAAFFYDNAAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386270000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586545,
+            "id": 138586547,
+            "logo": "/images/UE0AAAAACEKpsQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 104500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386356400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586549,
+            "id": 138586551,
+            "logo": "/images/UE0AAAAACEKptQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386428400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586553,
+            "id": 138586555,
+            "logo": "/images/UE0AAAAACEKpuQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386442800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586557,
+            "id": 138586559,
+            "logo": "/images/UE0AAAAACEKpvQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386514800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742716,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386579600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742717,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386586800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586561,
+            "id": 138586563,
+            "logo": "/images/UE0AAAAACEKpwQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386615600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742718,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386666000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742719,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386673200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586565,
+            "id": 138586567,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386702000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742720,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386752400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742721,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386759600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181241,
+            "id": 341181449,
+            "logo": "/images/UE0AAAAAFFYDOQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386788400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742722,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386838800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742593,
+            "id": 342742723,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386846000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181241,
+            "id": 341181450,
+            "logo": "/images/UE0AAAAAFFYDOQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386874800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586569,
+            "id": 138586571,
+            "logo": "/images/UE0AAAAACEKpyQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1386961200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742724,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387184400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742725,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387191600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586581,
+            "id": 138586583,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264860
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264861
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264863
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264864
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264860
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264861
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264863
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264864
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387220400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742726,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387270800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742727,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387278000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586585,
+            "id": 138586587,
+            "logo": "/images/UE0AAAAACEKp2QAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387306800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742728,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387357200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742729,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387364400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181250,
+            "id": 341181465,
+            "logo": "/images/UE0AAAAAFFYDQgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387393200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742730,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387443600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742594,
+            "id": 342742731,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387450800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586589,
+            "id": 138586591,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387566000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586593,
+            "id": 138586595,
+            "logo": "/images/UE0AAAAACEKp4QAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387724400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742732,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387789200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742733,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387796400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742734,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387875600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742735,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387882800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742736,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387962000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742737,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1387969200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742738,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1388048400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742595,
+            "id": 342742739,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1388055600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742740,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1388998800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742741,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389006000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742742,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389085200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742743,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389092400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742744,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389171600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742745,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389178800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181245,
+            "id": 341181458,
+            "logo": "/images/UE0AAAAAFFYDPQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389207600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742746,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389258000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 342742596,
+            "id": 342742747,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 180500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 342752287,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 342752792
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389265200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181245,
+            "id": 341181457,
+            "logo": "/images/UE0AAAAAFFYDPQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389294000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586597,
+            "id": 138586599,
+            "logo": "/images/UE0AAAAACEKp5QAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389380400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586601,
+            "id": 138586603,
+            "logo": "/images/UE0AAAAACEKp6QAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389452400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586605,
+            "id": 138586607,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389538800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586609,
+            "id": 138586611,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 15000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937314
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937314
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389726000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181242,
+            "id": 341181451,
+            "logo": "/images/UE0AAAAAFFYDOgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389812400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181242,
+            "id": 341181452,
+            "logo": "/images/UE0AAAAAFFYDOgAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389898800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586613,
+            "id": 138586615,
+            "logo": "/images/UE0AAAAACEKp9QAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1389985200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586617,
+            "id": 138586619,
+            "logo": "/images/UE0AAAAACEKp+QAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390071600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586625,
+            "id": 138586627,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390143600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586629,
+            "id": 138586631,
+            "logo": "/images/UE0AAAAACEKqBQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937271
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937272
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937274
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937275
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937271
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937272
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937274
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937275
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390159800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181239,
+            "id": 341181446,
+            "logo": "/images/UE0AAAAAFFYDNwAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390417200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181239,
+            "id": 341181445,
+            "logo": "/images/UE0AAAAAFFYDNwAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390503600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586633,
+            "id": 138586635,
+            "logo": "/images/UE0AAAAACEKqCQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390590000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586641,
+            "id": 138586643,
+            "logo": "/images/UE0AAAAACEKqEQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390676400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586645,
+            "id": 138586647,
+            "logo": "/images/UE0AAAAACEKqFQAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390748400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586649,
+            "id": 138586651,
+            "logo": "/images/UE0AAAAACEKqGQAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390849200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586653,
+            "id": 138586655,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1390935600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181243,
+            "id": 341181453,
+            "logo": "/images/UE0AAAAAFFYDOwAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391022000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181243,
+            "id": 341181454,
+            "logo": "/images/UE0AAAAAFFYDOwAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391108400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586657,
+            "id": 138586659,
+            "logo": "/images/UE0AAAAACEKqIQAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391194800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586661,
+            "id": 138586663,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391353200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586661,
+            "id": 138586665,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391367600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586667,
+            "id": 138586669,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937295
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937296
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391540400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586671,
+            "id": 138586673,
+            "logo": "/images/UE0AAAAACEKqLwAAAAlDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937293
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937293
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391626800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586675,
+            "id": 138586677,
+            "logo": "/images/UE0AAAAACEKqMwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391713200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586679,
+            "id": 138586681,
+            "logo": "/images/UE0AAAAACEKqNwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391799600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586687,
+            "id": 138586689,
+            "logo": "/images/UE0AAAAACEKqPwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391886000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586691,
+            "id": 138586693,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1391958000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586695,
+            "id": 138586697,
+            "logo": "/images/UE0AAAAACEKqRwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392145200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181240,
+            "id": 341181448,
+            "logo": "/images/UE0AAAAAFFYDOAAAAAhDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392231600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181240,
+            "id": 341181447,
+            "logo": "/images/UE0AAAAAFFYDOAAAAAhDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392318000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586699,
+            "id": 138586701,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 15000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264872
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264872
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392404400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586703,
+            "id": 138586705,
+            "logo": "/images/UE0AAAAACEKqTwAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392490800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586707,
+            "id": 138586709,
+            "logo": "/images/UE0AAAAACEKqUwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392562800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586711,
+            "id": 138586713,
+            "logo": "/images/UE0AAAAACEKqVwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392663600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586715,
+            "id": 138586717,
+            "logo": "/images/UE0AAAAACEKqWwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392750000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181248,
+            "id": 341181462,
+            "logo": "/images/UE0AAAAAFFYDQAAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1392836400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586719,
+            "id": 138586721,
+            "logo": "/images/UE0AAAAACEKqXwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1393095600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586723,
+            "id": 138586729,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937311
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937312
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937311
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937312
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1393678800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586723,
+            "id": 138586725,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937311
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937312
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937311
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937312
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1393693200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586723,
+            "id": 138586727,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937311
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937312
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937311
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937312
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1393754400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586731,
+            "id": 138586733,
+            "logo": "/images/UE0AAAAACEKqawAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1393959600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181249,
+            "id": 341181463,
+            "logo": "/images/UE0AAAAAFFYDQQAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394046000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181249,
+            "id": 341181464,
+            "logo": "/images/UE0AAAAAFFYDQQAAAAdDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394132400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586735,
+            "id": 138586737,
+            "logo": "/images/UE0AAAAACEKqbwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394218800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586743,
+            "id": 138586745,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394305200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586747,
+            "id": 138586749,
+            "logo": "/images/UE0AAAAACEKqewAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394377200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586751,
+            "id": 138586753,
+            "logo": "/images/UE0AAAAACEKqfwAAAAVDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394478000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181244,
+            "id": 341181455,
+            "logo": "/images/UE0AAAAAFFYDPAAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394650800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181244,
+            "id": 341181456,
+            "logo": "/images/UE0AAAAAFFYDPAAAAAZDSVRN",
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394737200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586755,
+            "id": 138586757,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264866
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264867
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264869
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264870
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264866
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264867
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264869
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264870
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1394823600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586759,
+            "id": 138586761,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395082800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 151183114,
+            "id": 151183116,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937293
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937293
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395169200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586771,
+            "id": 138586773,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395255600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586775,
+            "id": 138586777,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395342000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586779,
+            "id": 138586781,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395428400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586783,
+            "id": 138586785,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395500400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586787,
+            "id": 138586789,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395514800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586795,
+            "id": 138586797,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395586800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181246,
+            "id": 341181459,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395860400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181246,
+            "id": 341181460,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826019
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1395946800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586799,
+            "id": 138586801,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396033200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586803,
+            "id": 138586805,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396191600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586807,
+            "id": 138586809,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 104500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396288800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586811,
+            "id": 138586813,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 90250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 71250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396375200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181255,
+            "id": 341181472,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396461600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181255,
+            "id": 341181471,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396548000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586815,
+            "id": 138586817,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396634400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586823,
+            "id": 138586825,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396720800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586827,
+            "id": 138586829,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396792800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586831,
+            "id": 138586833,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396893600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586835,
+            "id": 138586837,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1396980000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181256,
+            "id": 341181473,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397066400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181256,
+            "id": 341181474,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397152800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586839,
+            "id": 138586841,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264866
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264867
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264869
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264870
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264866
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264867
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264869
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264870
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397239200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586843,
+            "id": 138586845,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397311200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586847,
+            "id": 138586849,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397325600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586851,
+            "id": 138586853,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397397600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586855,
+            "id": 138586857,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397498400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586859,
+            "id": 138586861,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397584800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586863,
+            "id": 138586865,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1397930400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181251,
+            "id": 341181466,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1398276000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181253,
+            "id": 341181468,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1398362400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586867,
+            "id": 138586869,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1398448800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586871,
+            "id": 138586873,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1398607200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586875,
+            "id": 138586877,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1398708000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586879,
+            "id": 138586881,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 171000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 123500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 66500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1398794400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586883,
+            "id": 138586887,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1399125600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586883,
+            "id": 138586885,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1399140000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586889,
+            "id": 138586891,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937311
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937307
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937308
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937310
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937311
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1399312800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586893,
+            "id": 138586895,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1399399200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181232,
+            "id": 341181434,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1399485600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586897,
+            "id": 138586899,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1399917600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586901,
+            "id": 138586903,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400176800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586905,
+            "id": 138586907,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400263200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586909,
+            "id": 138586911,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400349600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586917,
+            "id": 138586919,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "amount": 19000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "amount": 14250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937235
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937236
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937238
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937239
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937240
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400421600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181259,
+            "id": 341181480,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400695200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181259,
+            "id": 341181479,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 80750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "amount": 28500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826016
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826017
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826015
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 340826018
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400781600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586921,
+            "id": 138586923,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086210
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086211
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086214
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400868000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586929,
+            "id": 138586931,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937241
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937242
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937244
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937245
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937246
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1400940000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586933,
+            "id": 138586935,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401026400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586937,
+            "id": 138586939,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401127200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586941,
+            "id": 138586943,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264860
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264861
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264863
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341264864
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264860
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264861
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264863
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341264864
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401472800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586945,
+            "id": 138586947,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401730200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586949,
+            "id": 138586951,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401818400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586953,
+            "id": 138586955,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401904800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586957,
+            "id": 138586959,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1401991200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586961,
+            "id": 138586963,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402077600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586965,
+            "id": 138586967,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 95000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402423200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181258,
+            "id": 341181477,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402509600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181258,
+            "id": 341181478,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402596000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586969,
+            "id": 138586971,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086196
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 339086197
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402768800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586973,
+            "id": 138586975,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402840800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586977,
+            "id": 138586979,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 33250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 23750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 16150,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1402941600000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586981,
+            "id": 138586983,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 123500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "amount": 85500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "amount": 38000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937293
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937294
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937289
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937290
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937292
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937293
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937294
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1403028000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181257,
+            "id": 341181475,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1403114400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181257,
+            "id": 341181476,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1403200800000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 341181247,
+            "id": 341181461,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 57000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "amount": 42750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "amount": 32300,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "amount": 20900,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179212
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179213
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179214
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179215
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 341179216
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1403719200000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586989,
+            "id": 138586991,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 152000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "amount": 104500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "amount": 76000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "amount": 52250,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937284
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937285
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937287
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937288
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937283
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1403892000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586993,
+            "id": 138586995,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 123500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 85500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 38000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1404324000000,
+            "venueCode": "PLEYEL_PLEYEL"
+        },
+        {
+            "eventId": 138586997,
+            "id": 138586999,
+            "logo": null,
+            "name": null,
+            "prices": [
+                {
+                    "amount": 123500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "amount": 85500,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "amount": 61750,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "amount": 38000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "amount": 10000,
+                    "audienceSubCategoryId": 337100890,
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatCategories": [
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937277
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705999,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937278
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705998,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705995,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705996,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205705993,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706007,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937280
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205705994,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706006,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706001,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706000,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937281
+                },
+                {
+                    "areas": [
+                        {
+                            "areaId": 205706005,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706004,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706003,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706002,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706009,
+                            "blockIds": []
+                        },
+                        {
+                            "areaId": 205706008,
+                            "blockIds": []
+                        }
+                    ],
+                    "seatCategoryId": 338937282
+                }
+            ],
+            "seatMapImage": null,
+            "start": 1404410400000,
+            "venueCode": "PLEYEL_PLEYEL"
+        }
+    ],
+    "seatCategoryNames": {
+        "338937235": "1ère catégorie",
+        "338937236": "2ème catégorie",
+        "338937238": "3ème catégorie",
+        "338937239": "4ème catégorie",
+        "338937240": "5ème catégorie",
+        "338937241": "1ère catégorie",
+        "338937242": "2ème catégorie",
+        "338937244": "3ème catégorie",
+        "338937245": "4ème catégorie",
+        "338937246": "5ème catégorie",
+        "338937271": "1ère catégorie",
+        "338937272": "2ème catégorie",
+        "338937274": "3ème catégorie",
+        "338937275": "4ème catégorie",
+        "338937277": "1ère catégorie",
+        "338937278": "2ème catégorie",
+        "338937280": "3ème catégorie",
+        "338937281": "4ème catégorie",
+        "338937282": "5ème catégorie",
+        "338937283": "5ème catégorie",
+        "338937284": "1ère catégorie",
+        "338937285": "2ème catégorie",
+        "338937287": "3ème catégorie",
+        "338937288": "4ème catégorie",
+        "338937289": "1ère catégorie",
+        "338937290": "2ème catégorie",
+        "338937292": "3ème catégorie",
+        "338937293": "4ème catégorie",
+        "338937294": "5ème catégorie",
+        "338937295": "1ère catégorie",
+        "338937296": "2ème catégorie",
+        "338937307": "1ère catégorie",
+        "338937308": "2ème catégorie",
+        "338937310": "3ème catégorie",
+        "338937311": "4ème catégorie",
+        "338937312": "5ème catégorie",
+        "338937314": "Catégorie unique",
+        "339086196": "1ère catégorie",
+        "339086197": "2ème catégorie",
+        "339086210": "1ère catégorie",
+        "339086211": "2ème catégorie",
+        "339086213": "3ème catégorie",
+        "339086214": "4ème catégorie",
+        "339086215": "5ème catégorie",
+        "340826015": "Catégorie 3",
+        "340826016": "Catégorie 1",
+        "340826017": "Catégorie 2",
+        "340826018": "Catégorie 4",
+        "340826019": "Catégorie 5",
+        "341179212": "CAT1",
+        "341179213": "CAT2",
+        "341179214": "CAT3",
+        "341179215": "CAT4",
+        "341179216": "CAT5",
+        "341264860": "1ère catégorie",
+        "341264861": "2ème catégorie",
+        "341264863": "3ème catégorie",
+        "341264864": "4ème catégorie",
+        "341264866": "1ère catégorie",
+        "341264867": "2ème catégorie",
+        "341264869": "3ème catégorie",
+        "341264870": "4ème catégorie",
+        "341264872": "1ère catégorie",
+        "342752792": "catétgorie unique"
+    },
+    "subTopicNames": {
+        "337184262": "Musique amplifiée",
+        "337184263": "Musique baroque",
+        "337184267": "Ciné-concert",
+        "337184268": "Musique classique",
+        "337184269": "Jazz",
+        "337184273": "Musique de chambre",
+        "337184275": "Musique dirigée",
+        "337184279": "Musique du monde",
+        "337184280": "Pop/rock",
+        "337184281": "Musique de chambre",
+        "337184282": "Famille",
+        "337184283": "Concert",
+        "337184284": "Opéra (version de concert)",
+        "337184288": "Musique contemporaine",
+        "337184292": "Musique vocale",
+        "337184296": "Musique ancienne",
+        "337184297": "Chanson",
+        "337184298": "Voix",
+        "337184299": "famille"
+    },
+    "subjectNames": {},
+    "topicNames": {
+        "107888604": "Activité",
+        "324846098": "Type de public",
+        "324846099": "Genre",
+        "324846100": "Formations musicales"
+    },
+    "topicSubTopics": {
+        "107888604": [
+            337184283,
+            337184267
+        ],
+        "324846098": [
+            337184299
+        ],
+        "324846099": [
+            337184268,
+            337184288,
+            337184284,
+            337184263,
+            337184298,
+            337184269,
+            337184280,
+            337184297,
+            337184281,
+            337184296,
+            337184279
+        ],
+        "324846100": [
+            337184275,
+            337184262,
+            337184292,
+            337184273,
+            337184282
+        ]
+    },
+    "venueNames": {
+        "PLEYEL_PLEYEL": "Salle Pleyel"
+    }
+}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/twitter.json b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/twitter.json
new file mode 100755
index 000000000..137fb5162
--- /dev/null
+++ b/resources/3rdparty/modernjson/benchmarks/files/nativejson-benchmark/twitter.json
@@ -0,0 +1,15482 @@
+{
+  "statuses": [
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:15 +0000 2014",
+      "id": 505874924095815700,
+      "id_str": "505874924095815681",
+      "text": "@aym0566x \n\n名前:前田あゆみ\n第一印象:なんか怖っ!\n今の印象:とりあえずキモい。噛み合わない\n好きなところ:ぶすでキモいとこ😋✨✨\n思い出:んーーー、ありすぎ😊❤️\nLINE交換できる?:あぁ……ごめん✋\nトプ画をみて:照れますがな😘✨\n一言:お前は一生もんのダチ💖",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": 866260188,
+      "in_reply_to_user_id_str": "866260188",
+      "in_reply_to_screen_name": "aym0566x",
+      "user": {
+        "id": 1186275104,
+        "id_str": "1186275104",
+        "name": "AYUMI",
+        "screen_name": "ayuu0123",
+        "location": "",
+        "description": "元野球部マネージャー❤︎…最高の夏をありがとう…❤︎",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 262,
+        "friends_count": 252,
+        "listed_count": 0,
+        "created_at": "Sat Feb 16 13:40:25 +0000 2013",
+        "favourites_count": 235,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 1769,
+        "lang": "en",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497760886795153410/LDjAwR_y_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497760886795153410/LDjAwR_y_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1186275104/1409318784",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "aym0566x",
+            "name": "前田あゆみ",
+            "id": 866260188,
+            "id_str": "866260188",
+            "indices": [
+              0,
+              9
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:14 +0000 2014",
+      "id": 505874922023837700,
+      "id_str": "505874922023837696",
+      "text": "RT @KATANA77: えっそれは・・・(一同) http://t.co/PkCJAcSuYK",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 903487807,
+        "id_str": "903487807",
+        "name": "RT&ファボ魔のむっつんさっm",
+        "screen_name": "yuttari1998",
+        "location": "関西    ↓詳しいプロ↓",
+        "description": "無言フォローはあまり好みません ゲームと動画が好きですシモ野郎ですがよろしく…最近はMGSとブレイブルー、音ゲーをプレイしてます",
+        "url": "http://t.co/Yg9e1Fl8wd",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/Yg9e1Fl8wd",
+                "expanded_url": "http://twpf.jp/yuttari1998",
+                "display_url": "twpf.jp/yuttari1998",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 95,
+        "friends_count": 158,
+        "listed_count": 1,
+        "created_at": "Thu Oct 25 08:27:13 +0000 2012",
+        "favourites_count": 3652,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 10276,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/500268849275494400/AoXHZ7Ij_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/500268849275494400/AoXHZ7Ij_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/903487807/1409062272",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 23:49:35 +0000 2014",
+        "id": 505864943636197400,
+        "id_str": "505864943636197376",
+        "text": "えっそれは・・・(一同) http://t.co/PkCJAcSuYK",
+        "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 77915997,
+          "id_str": "77915997",
+          "name": "(有)刀",
+          "screen_name": "KATANA77",
+          "location": "",
+          "description": "プリキュア好きのサラリーマンです。好きなプリキュアシリーズはハートキャッチ、最愛のキャラクターは月影ゆりさんです。 http://t.co/QMLJeFmfMTご質問、お問い合わせはこちら http://t.co/LU8T7vmU3h",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": [
+                {
+                  "url": "http://t.co/QMLJeFmfMT",
+                  "expanded_url": "http://www.pixiv.net/member.php?id=4776",
+                  "display_url": "pixiv.net/member.php?id=…",
+                  "indices": [
+                    58,
+                    80
+                  ]
+                },
+                {
+                  "url": "http://t.co/LU8T7vmU3h",
+                  "expanded_url": "http://ask.fm/KATANA77",
+                  "display_url": "ask.fm/KATANA77",
+                  "indices": [
+                    95,
+                    117
+                  ]
+                }
+              ]
+            }
+          },
+          "protected": false,
+          "followers_count": 1095,
+          "friends_count": 740,
+          "listed_count": 50,
+          "created_at": "Mon Sep 28 03:41:27 +0000 2009",
+          "favourites_count": 3741,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": true,
+          "verified": false,
+          "statuses_count": 19059,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/808597451/45b82f887085d32bd4b87dfc348fe22a.png",
+          "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/808597451/45b82f887085d32bd4b87dfc348fe22a.png",
+          "profile_background_tile": true,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/480210114964504577/MjVIEMS4_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/480210114964504577/MjVIEMS4_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/77915997/1404661392",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "FFFFFF",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": false,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 82,
+        "favorite_count": 42,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": [],
+          "media": [
+            {
+              "id": 505864942575034400,
+              "id_str": "505864942575034369",
+              "indices": [
+                13,
+                35
+              ],
+              "media_url": "http://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg",
+              "media_url_https": "https://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg",
+              "url": "http://t.co/PkCJAcSuYK",
+              "display_url": "pic.twitter.com/PkCJAcSuYK",
+              "expanded_url": "http://twitter.com/KATANA77/status/505864943636197376/photo/1",
+              "type": "photo",
+              "sizes": {
+                "medium": {
+                  "w": 600,
+                  "h": 338,
+                  "resize": "fit"
+                },
+                "small": {
+                  "w": 340,
+                  "h": 192,
+                  "resize": "fit"
+                },
+                "thumb": {
+                  "w": 150,
+                  "h": 150,
+                  "resize": "crop"
+                },
+                "large": {
+                  "w": 765,
+                  "h": 432,
+                  "resize": "fit"
+                }
+              }
+            }
+          ]
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 82,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "KATANA77",
+            "name": "(有)刀",
+            "id": 77915997,
+            "id_str": "77915997",
+            "indices": [
+              3,
+              12
+            ]
+          }
+        ],
+        "media": [
+          {
+            "id": 505864942575034400,
+            "id_str": "505864942575034369",
+            "indices": [
+              27,
+              49
+            ],
+            "media_url": "http://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg",
+            "media_url_https": "https://pbs.twimg.com/media/BwUxfC6CIAEr-Ye.jpg",
+            "url": "http://t.co/PkCJAcSuYK",
+            "display_url": "pic.twitter.com/PkCJAcSuYK",
+            "expanded_url": "http://twitter.com/KATANA77/status/505864943636197376/photo/1",
+            "type": "photo",
+            "sizes": {
+              "medium": {
+                "w": 600,
+                "h": 338,
+                "resize": "fit"
+              },
+              "small": {
+                "w": 340,
+                "h": 192,
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": 150,
+                "h": 150,
+                "resize": "crop"
+              },
+              "large": {
+                "w": 765,
+                "h": 432,
+                "resize": "fit"
+              }
+            },
+            "source_status_id": 505864943636197400,
+            "source_status_id_str": "505864943636197376"
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:14 +0000 2014",
+      "id": 505874920140591100,
+      "id_str": "505874920140591104",
+      "text": "@longhairxMIURA 朝一ライカス辛目だよw",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": 505874728897085440,
+      "in_reply_to_status_id_str": "505874728897085440",
+      "in_reply_to_user_id": 114188950,
+      "in_reply_to_user_id_str": "114188950",
+      "in_reply_to_screen_name": "longhairxMIURA",
+      "user": {
+        "id": 114786346,
+        "id_str": "114786346",
+        "name": "PROTECT-T",
+        "screen_name": "ttm_protect",
+        "location": "静岡県長泉町",
+        "description": "24 / XXX / @andprotector / @lifefocus0545 potato design works",
+        "url": "http://t.co/5EclbQiRX4",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/5EclbQiRX4",
+                "expanded_url": "http://ap.furtherplatonix.net/index.html",
+                "display_url": "ap.furtherplatonix.net/index.html",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 1387,
+        "friends_count": 903,
+        "listed_count": 25,
+        "created_at": "Tue Feb 16 16:13:41 +0000 2010",
+        "favourites_count": 492,
+        "utc_offset": 32400,
+        "time_zone": "Osaka",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 12679,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/481360383253295104/4B9Rcfys_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/481360383253295104/4B9Rcfys_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/114786346/1403600232",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "longhairxMIURA",
+            "name": "miura desu",
+            "id": 114188950,
+            "id_str": "114188950",
+            "indices": [
+              0,
+              15
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:14 +0000 2014",
+      "id": 505874919020699650,
+      "id_str": "505874919020699648",
+      "text": "RT @omo_kko: ラウワン脱出→友達が家に連んで帰ってって言うから友達ん家に乗せて帰る(1度も行ったことない田舎道)→友達おろして迷子→500メートルくらい続く変な一本道進む→墓地で行き止まりでUターン出来ずバックで500メートル元のところまで進まないといけない←今ここ",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 392585658,
+        "id_str": "392585658",
+        "name": "原稿",
+        "screen_name": "chibu4267",
+        "location": "キミの部屋の燃えるゴミ箱",
+        "description": "RTしてTLに濁流を起こすからフォローしない方が良いよ 言ってることもつまらないし 詳細→http://t.co/ANSFlYXERJ 相方@1life_5106_hshd 葛西教徒その壱",
+        "url": "http://t.co/JTFjV89eaN",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/JTFjV89eaN",
+                "expanded_url": "http://www.pixiv.net/member.php?id=1778417",
+                "display_url": "pixiv.net/member.php?id=…",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": [
+              {
+                "url": "http://t.co/ANSFlYXERJ",
+                "expanded_url": "http://twpf.jp/chibu4267",
+                "display_url": "twpf.jp/chibu4267",
+                "indices": [
+                  45,
+                  67
+                ]
+              }
+            ]
+          }
+        },
+        "protected": false,
+        "followers_count": 1324,
+        "friends_count": 1165,
+        "listed_count": 99,
+        "created_at": "Mon Oct 17 08:23:46 +0000 2011",
+        "favourites_count": 9542,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": true,
+        "verified": false,
+        "statuses_count": 369420,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/453106940822814720/PcJIZv43.png",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/453106940822814720/PcJIZv43.png",
+        "profile_background_tile": true,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505731759216943107/pzhnkMEg_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505731759216943107/pzhnkMEg_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/392585658/1362383911",
+        "profile_link_color": "5EB9FF",
+        "profile_sidebar_border_color": "FFFFFF",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 16:51:09 +0000 2014",
+        "id": 505759640164892700,
+        "id_str": "505759640164892673",
+        "text": "ラウワン脱出→友達が家に連んで帰ってって言うから友達ん家に乗せて帰る(1度も行ったことない田舎道)→友達おろして迷子→500メートルくらい続く変な一本道進む→墓地で行き止まりでUターン出来ずバックで500メートル元のところまで進まないといけない←今ここ",
+        "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 309565423,
+          "id_str": "309565423",
+          "name": "おもっこ",
+          "screen_name": "omo_kko",
+          "location": "",
+          "description": "ぱんすと",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 730,
+          "friends_count": 200,
+          "listed_count": 23,
+          "created_at": "Thu Jun 02 09:15:51 +0000 2011",
+          "favourites_count": 5441,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": true,
+          "verified": false,
+          "statuses_count": 30012,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/499126939378929664/GLWpIKTW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/499126939378929664/GLWpIKTW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/309565423/1409418370",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 67,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "omo_kko",
+            "name": "おもっこ",
+            "id": 309565423,
+            "id_str": "309565423",
+            "indices": [
+              3,
+              11
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:13 +0000 2014",
+      "id": 505874918198624260,
+      "id_str": "505874918198624256",
+      "text": "RT @thsc782_407: #LEDカツカツ選手権\n漢字一文字ぶんのスペースに「ハウステンボス」を収める狂気 http://t.co/vmrreDMziI",
+      "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 753161754,
+        "id_str": "753161754",
+        "name": "ねこねこみかん*",
+        "screen_name": "nekonekomikan",
+        "location": "ソーダ水のあふれるビンの中",
+        "description": "猫×6、大学・高校・旦那各1と暮らしています。猫、子供、日常思った事をつぶやいています/今年の目標:読書、庭の手入れ、ランニング、手芸/猫*花*写真*詩*林ももこさん*鉄道など好きな方をフォローさせていただいています。よろしくお願いします♬",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 217,
+        "friends_count": 258,
+        "listed_count": 8,
+        "created_at": "Sun Aug 12 14:00:47 +0000 2012",
+        "favourites_count": 7650,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 20621,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/470627990271848448/m83uy6Vc_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/470627990271848448/m83uy6Vc_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Fri Feb 28 16:04:13 +0000 2014",
+        "id": 439430848190742500,
+        "id_str": "439430848190742528",
+        "text": "#LEDカツカツ選手権\n漢字一文字ぶんのスペースに「ハウステンボス」を収める狂気 http://t.co/vmrreDMziI",
+        "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 82900665,
+          "id_str": "82900665",
+          "name": "[90]青葉台  芦 (第二粟屋) 屋",
+          "screen_name": "thsc782_407",
+          "location": "かんましき",
+          "description": "湯の街の元勃酩姦なんちゃら大 赤い犬の犬(外資系) 肥後で緑ナンバー屋さん勤め\nくだらないことしかつぶやかないし、いちいち訳のわからない記号を連呼するので相当邪魔になると思います。害はないと思います。のりものの画像とかたくさん上げます。さみしい。車輪のついたものならだいたい好き。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 587,
+          "friends_count": 623,
+          "listed_count": 30,
+          "created_at": "Fri Oct 16 15:13:32 +0000 2009",
+          "favourites_count": 1405,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": true,
+          "verified": false,
+          "statuses_count": 60427,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "352726",
+          "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/154137819/__813-1103.jpg",
+          "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/154137819/__813-1103.jpg",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/493760276676620289/32oLiTtT_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/493760276676620289/32oLiTtT_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/82900665/1398865798",
+          "profile_link_color": "D02B55",
+          "profile_sidebar_border_color": "829D5E",
+          "profile_sidebar_fill_color": "99CC33",
+          "profile_text_color": "3E4415",
+          "profile_use_background_image": true,
+          "default_profile": false,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 3291,
+        "favorite_count": 1526,
+        "entities": {
+          "hashtags": [
+            {
+              "text": "LEDカツカツ選手権",
+              "indices": [
+                0,
+                11
+              ]
+            }
+          ],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": [],
+          "media": [
+            {
+              "id": 439430848194936800,
+              "id_str": "439430848194936832",
+              "indices": [
+                41,
+                63
+              ],
+              "media_url": "http://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg",
+              "media_url_https": "https://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg",
+              "url": "http://t.co/vmrreDMziI",
+              "display_url": "pic.twitter.com/vmrreDMziI",
+              "expanded_url": "http://twitter.com/thsc782_407/status/439430848190742528/photo/1",
+              "type": "photo",
+              "sizes": {
+                "medium": {
+                  "w": 600,
+                  "h": 450,
+                  "resize": "fit"
+                },
+                "large": {
+                  "w": 1024,
+                  "h": 768,
+                  "resize": "fit"
+                },
+                "thumb": {
+                  "w": 150,
+                  "h": 150,
+                  "resize": "crop"
+                },
+                "small": {
+                  "w": 340,
+                  "h": 255,
+                  "resize": "fit"
+                }
+              }
+            }
+          ]
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 3291,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "LEDカツカツ選手権",
+            "indices": [
+              17,
+              28
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "thsc782_407",
+            "name": "[90]青葉台  芦 (第二粟屋) 屋",
+            "id": 82900665,
+            "id_str": "82900665",
+            "indices": [
+              3,
+              15
+            ]
+          }
+        ],
+        "media": [
+          {
+            "id": 439430848194936800,
+            "id_str": "439430848194936832",
+            "indices": [
+              58,
+              80
+            ],
+            "media_url": "http://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg",
+            "media_url_https": "https://pbs.twimg.com/media/BhksBzoCAAAJeDS.jpg",
+            "url": "http://t.co/vmrreDMziI",
+            "display_url": "pic.twitter.com/vmrreDMziI",
+            "expanded_url": "http://twitter.com/thsc782_407/status/439430848190742528/photo/1",
+            "type": "photo",
+            "sizes": {
+              "medium": {
+                "w": 600,
+                "h": 450,
+                "resize": "fit"
+              },
+              "large": {
+                "w": 1024,
+                "h": 768,
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": 150,
+                "h": 150,
+                "resize": "crop"
+              },
+              "small": {
+                "w": 340,
+                "h": 255,
+                "resize": "fit"
+              }
+            },
+            "source_status_id": 439430848190742500,
+            "source_status_id_str": "439430848190742528"
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:13 +0000 2014",
+      "id": 505874918039228400,
+      "id_str": "505874918039228416",
+      "text": "【金一地区太鼓台】川関と小山の見分けがつかない",
+      "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2530194984,
+        "id_str": "2530194984",
+        "name": "川之江中高生あるある",
+        "screen_name": "kw_aru",
+        "location": "DMにてネタ提供待ってますよ",
+        "description": "川之江中高生の川之江中高生による川之江中高生のためのあるあるアカウントです。タイムリーなネタはお気に入りにあります。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 113,
+        "friends_count": 157,
+        "listed_count": 0,
+        "created_at": "Wed May 28 15:01:43 +0000 2014",
+        "favourites_count": 30,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 4472,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/471668359314948097/XbIyXiZK_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/471668359314948097/XbIyXiZK_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2530194984/1401289473",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:13 +0000 2014",
+      "id": 505874915338104800,
+      "id_str": "505874915338104833",
+      "text": "おはようございますん♪ SSDSのDVDが朝一で届いた〜(≧∇≦)",
+      "source": "<a href=\"http://tweetli.st/\" rel=\"nofollow\">TweetList!</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 428179337,
+        "id_str": "428179337",
+        "name": "サラ",
+        "screen_name": "sala_mgn",
+        "location": "東京都",
+        "description": "bot遊びと実況が主目的の趣味アカウント。成人済♀。時々TLお騒がせします。リフォ率低いですがF/Bご自由に。スパムはブロック![HOT]K[アニメ]タイバニ/K/薄桜鬼/トライガン/進撃[小説]冲方丁/森博嗣[漫画]内藤泰弘/高河ゆん[他]声優/演劇 ※@sano_bot1二代目管理人",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 104,
+        "friends_count": 421,
+        "listed_count": 2,
+        "created_at": "Sun Dec 04 12:51:18 +0000 2011",
+        "favourites_count": 3257,
+        "utc_offset": -36000,
+        "time_zone": "Hawaii",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 25303,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "1A1B1F",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/601682567/put73jtg48ytjylq00if.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/601682567/put73jtg48ytjylq00if.jpeg",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/3350624721/755920942e4f512e6ba489df7eb1147e_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/3350624721/755920942e4f512e6ba489df7eb1147e_normal.jpeg",
+        "profile_link_color": "2FC2EF",
+        "profile_sidebar_border_color": "181A1E",
+        "profile_sidebar_fill_color": "252429",
+        "profile_text_color": "666666",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:13 +0000 2014",
+      "id": 505874914897690600,
+      "id_str": "505874914897690624",
+      "text": "@ran_kirazuki そのようなお言葉を頂けるとは……!この雨太郎、誠心誠意を持って姉御の足の指の第一関節を崇め奉りとうございます",
+      "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": 505874276692406300,
+      "in_reply_to_status_id_str": "505874276692406272",
+      "in_reply_to_user_id": 531544559,
+      "in_reply_to_user_id_str": "531544559",
+      "in_reply_to_screen_name": "ran_kirazuki",
+      "user": {
+        "id": 2364828518,
+        "id_str": "2364828518",
+        "name": "雨",
+        "screen_name": "tear_dice",
+        "location": "変態/日常/創作/室町/たまに版権",
+        "description": "アイコンは兄さんから!",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 28,
+        "friends_count": 28,
+        "listed_count": 0,
+        "created_at": "Fri Feb 28 00:28:40 +0000 2014",
+        "favourites_count": 109,
+        "utc_offset": 32400,
+        "time_zone": "Seoul",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 193,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "000000",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/504434510675443713/lvW7ad5b.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/504434510675443713/lvW7ad5b.jpeg",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505170142284640256/rnW4XeEJ_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505170142284640256/rnW4XeEJ_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2364828518/1409087198",
+        "profile_link_color": "0D31BF",
+        "profile_sidebar_border_color": "000000",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "ran_kirazuki",
+            "name": "蘭ぴよの日常",
+            "id": 531544559,
+            "id_str": "531544559",
+            "indices": [
+              0,
+              13
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:13 +0000 2014",
+      "id": 505874914591514600,
+      "id_str": "505874914591514626",
+      "text": "RT @AFmbsk: @samao21718 \n呼び方☞まおちゃん\n呼ばれ方☞あーちゃん\n第一印象☞平野から?!\n今の印象☞おとなっぽい!!\nLINE交換☞もってるん\\( ˆoˆ )/\nトプ画について☞楽しそうでいーな😳\n家族にするなら☞おねぇちゃん\n最後に一言☞全然会えない…",
+      "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2179759316,
+        "id_str": "2179759316",
+        "name": "まお",
+        "screen_name": "samao21718",
+        "location": "埼玉  UK留学してました✈",
+        "description": "゚.*97line おさらに貢いでる系女子*.゜                                   DISH// ✯ 佐野悠斗 ✯ 読モ ✯ WEGO ✯ 嵐                                I met @OTYOfficial in the London ;)",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 111,
+        "friends_count": 121,
+        "listed_count": 0,
+        "created_at": "Thu Nov 07 09:47:41 +0000 2013",
+        "favourites_count": 321,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 1777,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501535615351926784/c5AAh6Sz_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501535615351926784/c5AAh6Sz_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2179759316/1407640217",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 14:59:49 +0000 2014",
+        "id": 505731620456771600,
+        "id_str": "505731620456771584",
+        "text": "@samao21718 \n呼び方☞まおちゃん\n呼ばれ方☞あーちゃん\n第一印象☞平野から?!\n今の印象☞おとなっぽい!!\nLINE交換☞もってるん\\( ˆoˆ )/\nトプ画について☞楽しそうでいーな😳\n家族にするなら☞おねぇちゃん\n最後に一言☞全然会えないねー今度会えたらいいな!",
+        "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": 2179759316,
+        "in_reply_to_user_id_str": "2179759316",
+        "in_reply_to_screen_name": "samao21718",
+        "user": {
+          "id": 1680668713,
+          "id_str": "1680668713",
+          "name": "★Shiiiii!☆",
+          "screen_name": "AFmbsk",
+          "location": "埼玉",
+          "description": "2310*basketball#41*UVERworld*Pooh☪Bell +.。*弱さを知って強くなれ*゚",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 429,
+          "friends_count": 434,
+          "listed_count": 0,
+          "created_at": "Sun Aug 18 12:45:00 +0000 2013",
+          "favourites_count": 2488,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 6352,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/504643170886365185/JN_dlwUd_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/504643170886365185/JN_dlwUd_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/1680668713/1408805886",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 1,
+        "favorite_count": 1,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": [
+            {
+              "screen_name": "samao21718",
+              "name": "まお",
+              "id": 2179759316,
+              "id_str": "2179759316",
+              "indices": [
+                0,
+                11
+              ]
+            }
+          ]
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 1,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "AFmbsk",
+            "name": "★Shiiiii!☆",
+            "id": 1680668713,
+            "id_str": "1680668713",
+            "indices": [
+              3,
+              10
+            ]
+          },
+          {
+            "screen_name": "samao21718",
+            "name": "まお",
+            "id": 2179759316,
+            "id_str": "2179759316",
+            "indices": [
+              12,
+              23
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:10 +0000 2014",
+      "id": 505874905712189440,
+      "id_str": "505874905712189440",
+      "text": "一、常に身一つ簡素にして、美食を好んではならない",
+      "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1330420010,
+        "id_str": "1330420010",
+        "name": "獨行道bot",
+        "screen_name": "dokkodo_bot",
+        "location": "",
+        "description": "宮本武蔵の自誓書、「獨行道」に記された二十一箇条をランダムにつぶやくbotです。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 4,
+        "friends_count": 5,
+        "listed_count": 1,
+        "created_at": "Sat Apr 06 01:19:55 +0000 2013",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 9639,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/3482551671/d9e749f7658b523bdd50b7584ed4ba6a_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/3482551671/d9e749f7658b523bdd50b7584ed4ba6a_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1330420010/1365212335",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:10 +0000 2014",
+      "id": 505874903094939650,
+      "id_str": "505874903094939648",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/mote_danshi1\" rel=\"nofollow\">モテモテ大作戦★男子編</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2714526565,
+        "id_str": "2714526565",
+        "name": "モテモテ大作戦★男子編",
+        "screen_name": "mote_danshi1",
+        "location": "",
+        "description": "やっぱりモテモテ男子になりたい!自分を磨くヒントをみつけたい!応援してくれる人は RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 664,
+        "friends_count": 1835,
+        "listed_count": 0,
+        "created_at": "Thu Aug 07 12:59:59 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 597,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497368689386086400/7hqdKMzG_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497368689386086400/7hqdKMzG_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714526565/1407416898",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:10 +0000 2014",
+      "id": 505874902390276100,
+      "id_str": "505874902390276096",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/kokoro_meigen11\" rel=\"nofollow\">心に響くアツい名言集</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2699261263,
+        "id_str": "2699261263",
+        "name": "心に響くアツい名言集",
+        "screen_name": "kokoro_meigen11",
+        "location": "",
+        "description": "人生の格言は、人の心や人生を瞬時にに動かしてしまうことがある。\r\nそんな言葉の重みを味わおう。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 183,
+        "friends_count": 1126,
+        "listed_count": 0,
+        "created_at": "Fri Aug 01 22:00:00 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 749,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495328654126112768/1rKnNuWK_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495328654126112768/1rKnNuWK_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2699261263/1406930543",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:10 +0000 2014",
+      "id": 505874902247677950,
+      "id_str": "505874902247677954",
+      "text": "RT @POTENZA_SUPERGT: ありがとうございます!“@8CBR8: @POTENZA_SUPERGT 13時半ごろ一雨きそうですが、無事全車決勝レース完走出来ること祈ってます! http://t.co/FzTyFnt9xH”",
+      "source": "<a href=\"http://jigtwi.jp/?p=1\" rel=\"nofollow\">jigtwi</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1021030416,
+        "id_str": "1021030416",
+        "name": "narur",
+        "screen_name": "narur2",
+        "location": "晴れの国なのに何故か開幕戦では雨や雪や冰や霰が降る✨",
+        "description": "F1.GP2.Superformula.SuperGT.F3...\nスーパーGTが大好き♡車が好き!新幹線も好き!飛行機も好き!こっそり別アカです(๑´ㅂ`๑)♡*.+゜",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 257,
+        "friends_count": 237,
+        "listed_count": 2,
+        "created_at": "Wed Dec 19 01:14:41 +0000 2012",
+        "favourites_count": 547,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 55417,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/462180217574789121/1Jf6m_2L.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/462180217574789121/1Jf6m_2L.jpeg",
+        "profile_background_tile": true,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/444312241395863552/FKl40ebQ_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/444312241395863552/FKl40ebQ_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:05:11 +0000 2014",
+        "id": 505868866686169100,
+        "id_str": "505868866686169089",
+        "text": "ありがとうございます!“@8CBR8: @POTENZA_SUPERGT 13時半ごろ一雨きそうですが、無事全車決勝レース完走出来ること祈ってます! http://t.co/FzTyFnt9xH”",
+        "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+        "truncated": false,
+        "in_reply_to_status_id": 505868690588303360,
+        "in_reply_to_status_id_str": "505868690588303360",
+        "in_reply_to_user_id": 333344408,
+        "in_reply_to_user_id_str": "333344408",
+        "in_reply_to_screen_name": "8CBR8",
+        "user": {
+          "id": 359324738,
+          "id_str": "359324738",
+          "name": "POTENZA_SUPERGT",
+          "screen_name": "POTENZA_SUPERGT",
+          "location": "",
+          "description": "ブリヂストンのスポーツタイヤ「POTENZA」のアカウントです。レースやタイヤの事などをつぶやきます。今シーズンも「チャンピオンタイヤの称号は譲らない」をキャッチコピーに、タイヤ供給チームを全力でサポートしていきますので、応援よろしくお願いします!なお、返信ができない場合もありますので、ご了承よろしくお願い致します。",
+          "url": "http://t.co/LruVPk5x4K",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/LruVPk5x4K",
+                  "expanded_url": "http://www.bridgestone.co.jp/sc/potenza/",
+                  "display_url": "bridgestone.co.jp/sc/potenza/",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 9612,
+          "friends_count": 308,
+          "listed_count": 373,
+          "created_at": "Sun Aug 21 11:33:38 +0000 2011",
+          "favourites_count": 26,
+          "utc_offset": -36000,
+          "time_zone": "Hawaii",
+          "geo_enabled": true,
+          "verified": false,
+          "statuses_count": 10032,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "131516",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme14/bg.gif",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme14/bg.gif",
+          "profile_background_tile": true,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/1507885396/TW_image_normal.jpg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/1507885396/TW_image_normal.jpg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/359324738/1402546267",
+          "profile_link_color": "FF2424",
+          "profile_sidebar_border_color": "EEEEEE",
+          "profile_sidebar_fill_color": "EFEFEF",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": false,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 7,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": [
+            {
+              "screen_name": "8CBR8",
+              "name": "CBR Rider #17 KEIHIN",
+              "id": 333344408,
+              "id_str": "333344408",
+              "indices": [
+                12,
+                18
+              ]
+            },
+            {
+              "screen_name": "POTENZA_SUPERGT",
+              "name": "POTENZA_SUPERGT",
+              "id": 359324738,
+              "id_str": "359324738",
+              "indices": [
+                20,
+                36
+              ]
+            }
+          ],
+          "media": [
+            {
+              "id": 505868690252779500,
+              "id_str": "505868690252779521",
+              "indices": [
+                75,
+                97
+              ],
+              "media_url": "http://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg",
+              "media_url_https": "https://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg",
+              "url": "http://t.co/FzTyFnt9xH",
+              "display_url": "pic.twitter.com/FzTyFnt9xH",
+              "expanded_url": "http://twitter.com/8CBR8/status/505868690588303360/photo/1",
+              "type": "photo",
+              "sizes": {
+                "medium": {
+                  "w": 600,
+                  "h": 399,
+                  "resize": "fit"
+                },
+                "thumb": {
+                  "w": 150,
+                  "h": 150,
+                  "resize": "crop"
+                },
+                "large": {
+                  "w": 1024,
+                  "h": 682,
+                  "resize": "fit"
+                },
+                "small": {
+                  "w": 340,
+                  "h": 226,
+                  "resize": "fit"
+                }
+              },
+              "source_status_id": 505868690588303360,
+              "source_status_id_str": "505868690588303360"
+            }
+          ]
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 7,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "POTENZA_SUPERGT",
+            "name": "POTENZA_SUPERGT",
+            "id": 359324738,
+            "id_str": "359324738",
+            "indices": [
+              3,
+              19
+            ]
+          },
+          {
+            "screen_name": "8CBR8",
+            "name": "CBR Rider #17 KEIHIN",
+            "id": 333344408,
+            "id_str": "333344408",
+            "indices": [
+              33,
+              39
+            ]
+          },
+          {
+            "screen_name": "POTENZA_SUPERGT",
+            "name": "POTENZA_SUPERGT",
+            "id": 359324738,
+            "id_str": "359324738",
+            "indices": [
+              41,
+              57
+            ]
+          }
+        ],
+        "media": [
+          {
+            "id": 505868690252779500,
+            "id_str": "505868690252779521",
+            "indices": [
+              96,
+              118
+            ],
+            "media_url": "http://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg",
+            "media_url_https": "https://pbs.twimg.com/media/BwU05MGCUAEY6Wu.jpg",
+            "url": "http://t.co/FzTyFnt9xH",
+            "display_url": "pic.twitter.com/FzTyFnt9xH",
+            "expanded_url": "http://twitter.com/8CBR8/status/505868690588303360/photo/1",
+            "type": "photo",
+            "sizes": {
+              "medium": {
+                "w": 600,
+                "h": 399,
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": 150,
+                "h": 150,
+                "resize": "crop"
+              },
+              "large": {
+                "w": 1024,
+                "h": 682,
+                "resize": "fit"
+              },
+              "small": {
+                "w": 340,
+                "h": 226,
+                "resize": "fit"
+              }
+            },
+            "source_status_id": 505868690588303360,
+            "source_status_id_str": "505868690588303360"
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:09 +0000 2014",
+      "id": 505874901689851900,
+      "id_str": "505874901689851904",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/danshi_honne1\" rel=\"nofollow\">ここだけの本音★男子編</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2762136439,
+        "id_str": "2762136439",
+        "name": "ここだけの本音★男子編",
+        "screen_name": "danshi_honne1",
+        "location": "",
+        "description": "思ってるけど言えない!でもホントは言いたいこと、実はいっぱいあるんです! \r\nそんな男子の本音を、つぶやきます。 \r\nその気持わかるって人は RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 101,
+        "friends_count": 985,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 11:11:30 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 209,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503500282840354816/CEv8UMay_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503500282840354816/CEv8UMay_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762136439/1408878822",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:09 +0000 2014",
+      "id": 505874900939046900,
+      "id_str": "505874900939046912",
+      "text": "RT @UARROW_Y: ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2454426158,
+        "id_str": "2454426158",
+        "name": "ぴかりん",
+        "screen_name": "gncnToktTtksg",
+        "location": "",
+        "description": "銀魂/黒バス/進撃/ハイキュー/BLEACH/うたプリ/鈴木達央さん/神谷浩史さん 気軽にフォローしてください(^∇^)✨",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 1274,
+        "friends_count": 1320,
+        "listed_count": 17,
+        "created_at": "Sun Apr 20 07:48:53 +0000 2014",
+        "favourites_count": 2314,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 5868,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/457788684146716672/KCOy0S75_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/457788684146716672/KCOy0S75_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2454426158/1409371302",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:45 +0000 2014",
+        "id": 505871779949051900,
+        "id_str": "505871779949051904",
+        "text": "ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as",
+        "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 1261662588,
+          "id_str": "1261662588",
+          "name": "ゆう矢",
+          "screen_name": "UARROW_Y",
+          "location": "つくり出そう国影の波 広げよう国影の輪",
+          "description": "HQ!! 成人済腐女子。日常ツイート多いです。赤葦京治夢豚クソツイ含みます注意。フォローをお考えの際はプロフご一読お願い致します。FRBお気軽に",
+          "url": "http://t.co/LFX2XOzb0l",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/LFX2XOzb0l",
+                  "expanded_url": "http://twpf.jp/UARROW_Y",
+                  "display_url": "twpf.jp/UARROW_Y",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 265,
+          "friends_count": 124,
+          "listed_count": 12,
+          "created_at": "Tue Mar 12 10:42:17 +0000 2013",
+          "favourites_count": 6762,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": true,
+          "verified": false,
+          "statuses_count": 55946,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/1261662588/1408618604",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 29,
+        "favorite_count": 54,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [
+            {
+              "url": "http://t.co/SXoYWH98as",
+              "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1",
+              "display_url": "pic.twitter.com/SXoYWH98as",
+              "indices": [
+                15,
+                37
+              ]
+            }
+          ],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 29,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/SXoYWH98as",
+            "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1",
+            "display_url": "pic.twitter.com/SXoYWH98as",
+            "indices": [
+              29,
+              51
+            ]
+          }
+        ],
+        "user_mentions": [
+          {
+            "screen_name": "UARROW_Y",
+            "name": "ゆう矢",
+            "id": 1261662588,
+            "id_str": "1261662588",
+            "indices": [
+              3,
+              12
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:09 +0000 2014",
+      "id": 505874900561580000,
+      "id_str": "505874900561580032",
+      "text": "今日は一高と三桜(・θ・)\n光梨ちゃんに会えないかな〜",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1366375976,
+        "id_str": "1366375976",
+        "name": "ゆいの",
+        "screen_name": "yuino1006",
+        "location": "",
+        "description": "さんおう 男バスマネ2ねん(^ω^)",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 270,
+        "friends_count": 260,
+        "listed_count": 0,
+        "created_at": "Sat Apr 20 07:02:08 +0000 2013",
+        "favourites_count": 1384,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 5202,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505354401448349696/nxVFEQQ4_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505354401448349696/nxVFEQQ4_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1366375976/1399989379",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:09 +0000 2014",
+      "id": 505874899324248060,
+      "id_str": "505874899324248064",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/kyoukan_aru\" rel=\"nofollow\">共感★絶対あるあるww</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2704420069,
+        "id_str": "2704420069",
+        "name": "共感★絶対あるあるww",
+        "screen_name": "kyoukan_aru",
+        "location": "",
+        "description": "みんなにもわかってもらえる、あるあるを見つけたい。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 857,
+        "friends_count": 1873,
+        "listed_count": 0,
+        "created_at": "Sun Aug 03 15:50:40 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 682,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495960812670836737/1LqkoyvU_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495960812670836737/1LqkoyvU_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2704420069/1407081298",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:09 +0000 2014",
+      "id": 505874898493796350,
+      "id_str": "505874898493796352",
+      "text": "RT @assam_house: 泉田新潟県知事は、東電の申請書提出を容認させられただけで、再稼働に必要な「同意」はまだ与えていません。今まで柏崎刈羽の再稼働を抑え続けてきた知事に、もう一踏ん張りをお願いする意見を送って下さい。全国の皆様、お願いします!\nhttp://t.co…",
+      "source": "<a href=\"http://jigtwi.jp/?p=1001\" rel=\"nofollow\">jigtwi for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 960765968,
+        "id_str": "960765968",
+        "name": "さち",
+        "screen_name": "sachitaka_dears",
+        "location": "宮城県",
+        "description": "動物関連のアカウントです。サブアカウント@sachi_dears (さち ❷) もあります。『心あるものは皆、愛し愛されるために生まれてきた。そして愛情を感じながら生を全うするべきなんだ』",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 3212,
+        "friends_count": 3528,
+        "listed_count": 91,
+        "created_at": "Tue Nov 20 16:30:53 +0000 2012",
+        "favourites_count": 3180,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 146935,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/3659653229/5b698df67f5d105400e9077f5ea50e91_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/3659653229/5b698df67f5d105400e9077f5ea50e91_normal.png",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Tue Aug 19 11:00:53 +0000 2014",
+        "id": 501685228427964400,
+        "id_str": "501685228427964417",
+        "text": "泉田新潟県知事は、東電の申請書提出を容認させられただけで、再稼働に必要な「同意」はまだ与えていません。今まで柏崎刈羽の再稼働を抑え続けてきた知事に、もう一踏ん張りをお願いする意見を送って下さい。全国の皆様、お願いします!\nhttp://t.co/9oH5cgpy1q",
+        "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 1104771276,
+          "id_str": "1104771276",
+          "name": "アッサム山中(殺処分ゼロに一票)",
+          "screen_name": "assam_house",
+          "location": "新潟県柏崎市",
+          "description": "アッサム山中の趣味用アカ。当分の間、選挙啓発用としても使っていきます。このアカウントがアッサム山中本人のものである事は @assam_yamanaka のプロフでご確認下さい。\r\n公選法に係る表示\r\n庶民新党 #脱原発 http://t.co/96UqoCo0oU\r\nonestep.revival@gmail.com",
+          "url": "http://t.co/AEOCATaNZc",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/AEOCATaNZc",
+                  "expanded_url": "http://www.assam-house.net/",
+                  "display_url": "assam-house.net",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": [
+                {
+                  "url": "http://t.co/96UqoCo0oU",
+                  "expanded_url": "http://blog.assam-house.net/datsu-genpatsu/index.html",
+                  "display_url": "blog.assam-house.net/datsu-genpatsu…",
+                  "indices": [
+                    110,
+                    132
+                  ]
+                }
+              ]
+            }
+          },
+          "protected": false,
+          "followers_count": 2977,
+          "friends_count": 3127,
+          "listed_count": 64,
+          "created_at": "Sat Jan 19 22:10:13 +0000 2013",
+          "favourites_count": 343,
+          "utc_offset": 32400,
+          "time_zone": "Irkutsk",
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 18021,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/378800000067217575/e0a85b440429ff50430a41200327dcb8_normal.png",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000067217575/e0a85b440429ff50430a41200327dcb8_normal.png",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/1104771276/1408948288",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 2,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [
+            {
+              "url": "http://t.co/9oH5cgpy1q",
+              "expanded_url": "http://www.pref.niigata.lg.jp/kouhou/info.html",
+              "display_url": "pref.niigata.lg.jp/kouhou/info.ht…",
+              "indices": [
+                111,
+                133
+              ]
+            }
+          ],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 2,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/9oH5cgpy1q",
+            "expanded_url": "http://www.pref.niigata.lg.jp/kouhou/info.html",
+            "display_url": "pref.niigata.lg.jp/kouhou/info.ht…",
+            "indices": [
+              139,
+              140
+            ]
+          }
+        ],
+        "user_mentions": [
+          {
+            "screen_name": "assam_house",
+            "name": "アッサム山中(殺処分ゼロに一票)",
+            "id": 1104771276,
+            "id_str": "1104771276",
+            "indices": [
+              3,
+              15
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:09 +0000 2014",
+      "id": 505874898468630500,
+      "id_str": "505874898468630528",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/osyare_pea\" rel=\"nofollow\">おしゃれ★ペアルック</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2708607692,
+        "id_str": "2708607692",
+        "name": "おしゃれ★ペアルック",
+        "screen_name": "osyare_pea",
+        "location": "",
+        "description": "ラブラブ度がアップする、素敵なペアルックを見つけて紹介します♪ 気に入ったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 129,
+        "friends_count": 1934,
+        "listed_count": 0,
+        "created_at": "Tue Aug 05 07:09:31 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 641,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496554257676382208/Zgg0bmNu_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496554257676382208/Zgg0bmNu_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2708607692/1407222776",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:08 +0000 2014",
+      "id": 505874897633951740,
+      "id_str": "505874897633951745",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/love_live55\" rel=\"nofollow\">LOVE ♥ ラブライブ</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2745389137,
+        "id_str": "2745389137",
+        "name": "LOVE ♥ ラブライブ",
+        "screen_name": "love_live55",
+        "location": "",
+        "description": "とにかく「ラブライブが好きで~す♥」 \r\nラブライブファンには、たまらない内容ばかり集めています♪ \r\n気に入ったら RT & 相互フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 251,
+        "friends_count": 969,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 15:45:40 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 348,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501757482448850944/x2uPpqRx_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501757482448850944/x2uPpqRx_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745389137/1408463342",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:08 +0000 2014",
+      "id": 505874896795086850,
+      "id_str": "505874896795086848",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/koisurudoress\" rel=\"nofollow\">恋する♡ドレスシリーズ</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2726346560,
+        "id_str": "2726346560",
+        "name": "恋する♡ドレスシリーズ",
+        "screen_name": "koisurudoress",
+        "location": "",
+        "description": "どれもこれも、見ているだけで欲しくなっちゃう♪  \r\n特別な日に着る素敵なドレスを見つけたいです。  \r\n着てみたいと思ったら RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 314,
+        "friends_count": 1900,
+        "listed_count": 0,
+        "created_at": "Tue Aug 12 14:10:35 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 471,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/499199619465621504/fg7sVusT_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/499199619465621504/fg7sVusT_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2726346560/1407853688",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:08 +0000 2014",
+      "id": 505874895964626940,
+      "id_str": "505874895964626944",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/doubutuzukan\" rel=\"nofollow\">胸キュン♥動物図鑑</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2759192574,
+        "id_str": "2759192574",
+        "name": "胸キュン♥動物図鑑",
+        "screen_name": "doubutuzukan",
+        "location": "",
+        "description": "ふとした表情に思わずキュンとしてしまう♪ \r\nそんな愛しの動物たちの写真を見つけます。 \r\n気に入ったら RT & フォローを、お願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 80,
+        "friends_count": 959,
+        "listed_count": 1,
+        "created_at": "Sat Aug 23 15:47:36 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 219,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503211559552688128/Ej_bixna_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503211559552688128/Ej_bixna_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2759192574/1408809101",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:08 +0000 2014",
+      "id": 505874895079608300,
+      "id_str": "505874895079608320",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/disney_para\" rel=\"nofollow\">ディズニー★パラダイス</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2719228561,
+        "id_str": "2719228561",
+        "name": "ディズニー★パラダイス",
+        "screen_name": "disney_para",
+        "location": "",
+        "description": "ディズニーのかわいい画像、ニュース情報、あるあるなどをお届けします♪\r\nディズニーファンは RT & フォローもお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 331,
+        "friends_count": 1867,
+        "listed_count": 0,
+        "created_at": "Sat Aug 09 12:01:32 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 540,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498076922488696832/Ti2AEuOT_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498076922488696832/Ti2AEuOT_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719228561/1407585841",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:08 +0000 2014",
+      "id": 505874894135898100,
+      "id_str": "505874894135898112",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/nama_fuushi\" rel=\"nofollow\">生々しい風刺画</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2714772727,
+        "id_str": "2714772727",
+        "name": "生々しい風刺画",
+        "screen_name": "nama_fuushi",
+        "location": "",
+        "description": "深い意味が込められた「生々しい風刺画」を見つけます。\r\n考えさせられたら RT & 相互フォローでみなさん、お願いします",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 298,
+        "friends_count": 1902,
+        "listed_count": 1,
+        "created_at": "Thu Aug 07 15:04:45 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 595,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497398363352875011/tS-5FPJB_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497398363352875011/tS-5FPJB_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714772727/1407424091",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874893347377150,
+      "id_str": "505874893347377152",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/arashi_suki1\" rel=\"nofollow\">嵐★大好きっ娘</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2721682579,
+        "id_str": "2721682579",
+        "name": "嵐★大好きっ娘",
+        "screen_name": "arashi_suki1",
+        "location": "",
+        "description": "なんだかんだ言って、やっぱり嵐が好きなんです♪\r\nいろいろ集めたいので、嵐好きな人に見てほしいです。\r\n気に入ったら RT & 相互フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 794,
+        "friends_count": 1913,
+        "listed_count": 2,
+        "created_at": "Sun Aug 10 13:43:56 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 504,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498465364733198336/RO6wupdc_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498465364733198336/RO6wupdc_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2721682579/1407678436",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874893154426900,
+      "id_str": "505874893154426881",
+      "text": "RT @Takashi_Shiina: テレビで「成人男性のカロリー摂取量は1900kcal」とか言ってて、それはいままさに私がダイエットのために必死でキープしようとしている量で、「それが普通なら人はいつ天一やココイチに行って大盛りを食えばいいんだ!」と思った。",
+      "source": "<a href=\"http://twicca.r246.jp/\" rel=\"nofollow\">twicca</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 353516742,
+        "id_str": "353516742",
+        "name": "おしんこー@土曜西え41a",
+        "screen_name": "oshin_koko",
+        "location": "こたつ",
+        "description": "ROMって楽しんでいる部分もあり無言フォロー多めですすみません…。ツイート数多め・あらぶり多めなのでフォロー非推奨です。最近は早兵・兵部受け中心ですがBLNLなんでも好きです。地雷少ないため雑多に呟きます。腐・R18・ネタバレ有るのでご注意。他好きなジャンルはプロフ参照願います。 主催→@chounou_antholo",
+        "url": "http://t.co/mM1dG54NiO",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/mM1dG54NiO",
+                "expanded_url": "http://twpf.jp/oshin_koko",
+                "display_url": "twpf.jp/oshin_koko",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 479,
+        "friends_count": 510,
+        "listed_count": 43,
+        "created_at": "Fri Aug 12 05:53:13 +0000 2011",
+        "favourites_count": 3059,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 104086,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "000000",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/799871497/01583a031f83a45eba881c8acde729ee.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/799871497/01583a031f83a45eba881c8acde729ee.jpeg",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/484347196523835393/iHaYxm-2_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/484347196523835393/iHaYxm-2_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/353516742/1369039651",
+        "profile_link_color": "FF96B0",
+        "profile_sidebar_border_color": "FFFFFF",
+        "profile_sidebar_fill_color": "95E8EC",
+        "profile_text_color": "3C3940",
+        "profile_use_background_image": false,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 09:58:30 +0000 2014",
+        "id": 505655792733650940,
+        "id_str": "505655792733650944",
+        "text": "テレビで「成人男性のカロリー摂取量は1900kcal」とか言ってて、それはいままさに私がダイエットのために必死でキープしようとしている量で、「それが普通なら人はいつ天一やココイチに行って大盛りを食えばいいんだ!」と思った。",
+        "source": "<a href=\"http://janetter.net/\" rel=\"nofollow\">Janetter</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 126573583,
+          "id_str": "126573583",
+          "name": "椎名高志",
+          "screen_name": "Takashi_Shiina",
+          "location": "BABEL(超能力支援研究局)",
+          "description": "漫画家。週刊少年サンデーで『絶対可憐チルドレン』連載中。TVアニメ『THE UNLIMITED 兵部京介』公式サイト>http://t.co/jVqBoBEc",
+          "url": "http://t.co/K3Oi83wM3w",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/K3Oi83wM3w",
+                  "expanded_url": "http://cnanews.asablo.jp/blog/",
+                  "display_url": "cnanews.asablo.jp/blog/",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": [
+                {
+                  "url": "http://t.co/jVqBoBEc",
+                  "expanded_url": "http://unlimited-zc.jp/index.html",
+                  "display_url": "unlimited-zc.jp/index.html",
+                  "indices": [
+                    59,
+                    79
+                  ]
+                }
+              ]
+            }
+          },
+          "protected": false,
+          "followers_count": 110756,
+          "friends_count": 61,
+          "listed_count": 8159,
+          "created_at": "Fri Mar 26 08:54:51 +0000 2010",
+          "favourites_count": 25,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 27364,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "EDECE9",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme3/bg.gif",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme3/bg.gif",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/504597210772688896/Uvt4jgf5_normal.png",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/504597210772688896/Uvt4jgf5_normal.png",
+          "profile_link_color": "088253",
+          "profile_sidebar_border_color": "D3D2CF",
+          "profile_sidebar_fill_color": "E3E2DE",
+          "profile_text_color": "634047",
+          "profile_use_background_image": false,
+          "default_profile": false,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 221,
+        "favorite_count": 109,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 221,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "Takashi_Shiina",
+            "name": "椎名高志",
+            "id": 126573583,
+            "id_str": "126573583",
+            "indices": [
+              3,
+              18
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874892567244800,
+      "id_str": "505874892567244801",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/shimo_hentai\" rel=\"nofollow\">下ネタ&笑変態雑学</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2762581922,
+        "id_str": "2762581922",
+        "name": "下ネタ&笑変態雑学",
+        "screen_name": "shimo_hentai",
+        "location": "",
+        "description": "普通の人には思いつかない、ちょっと変態チックな 笑える下ネタ雑学をお届けします。 \r\nおもしろかったら RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 37,
+        "friends_count": 990,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 14:13:20 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 212,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503545991950114816/K9yQbh1Q_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503545991950114816/K9yQbh1Q_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762581922/1408889893",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874891778703360,
+      "id_str": "505874891778703360",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/kantaneigo1\" rel=\"nofollow\">超簡単★初心者英語</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744544025,
+        "id_str": "2744544025",
+        "name": "超簡単★初心者英語",
+        "screen_name": "kantaneigo1",
+        "location": "",
+        "description": "すぐに使えるフレーズや簡単な会話を紹介します。 \r\n少しづつ練習して、どんどん使ってみよう☆ \r\n使ってみたいと思ったら RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 147,
+        "friends_count": 970,
+        "listed_count": 1,
+        "created_at": "Tue Aug 19 10:11:48 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 345,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501676136321929216/4MLpyHe3_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501676136321929216/4MLpyHe3_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744544025/1408443928",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874891032121340,
+      "id_str": "505874891032121344",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/ima_handsign\" rel=\"nofollow\">現代のハンドサイン</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2762816814,
+        "id_str": "2762816814",
+        "name": "現代のハンドサイン",
+        "screen_name": "ima_handsign",
+        "location": "",
+        "description": "イザという時や、困った時に、必ず役に立つハンドサインのオンパレードです♪ \r\n使ってみたくなったら RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 95,
+        "friends_count": 996,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 15:33:58 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 210,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503566188253687809/7wtdp1AC_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503566188253687809/7wtdp1AC_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762816814/1408894540",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874890247782400,
+      "id_str": "505874890247782401",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/anata_iionna\" rel=\"nofollow\">今日からアナタもイイ女♪</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2714167411,
+        "id_str": "2714167411",
+        "name": "今日からアナタもイイ女♪",
+        "screen_name": "anata_iionna",
+        "location": "",
+        "description": "みんなが知りたい イイ女の秘密を見つけます♪ いいな~と思ってくれた人は RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 390,
+        "friends_count": 1425,
+        "listed_count": 0,
+        "created_at": "Thu Aug 07 09:27:59 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 609,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497314455655436288/dz7P3-fy_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497314455655436288/dz7P3-fy_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714167411/1407404214",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874890218434560,
+      "id_str": "505874890218434560",
+      "text": "@kohecyan3 \n名前:上野滉平\n呼び方:うえの\n呼ばれ方:ずるかわ\n第一印象:過剰な俺イケメンですアピール\n今の印象:バーバリーの時計\n好きなところ:あの自信さ、笑いが絶えない\n一言:大学受かったの?応援してる〜(*^^*)!\n\n#RTした人にやる\nちょっとやってみる笑",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": 2591363659,
+      "in_reply_to_user_id_str": "2591363659",
+      "in_reply_to_screen_name": "kohecyan3",
+      "user": {
+        "id": 2613282517,
+        "id_str": "2613282517",
+        "name": "K",
+        "screen_name": "kawazurukenna",
+        "location": "",
+        "description": "# I surprise even my self",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 113,
+        "friends_count": 185,
+        "listed_count": 0,
+        "created_at": "Wed Jul 09 09:39:13 +0000 2014",
+        "favourites_count": 157,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 242,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/502436858135973888/PcUU0lov_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/502436858135973888/PcUU0lov_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "RTした人にやる",
+            "indices": [
+              119,
+              128
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "kohecyan3",
+            "name": "上野滉平",
+            "id": 2591363659,
+            "id_str": "2591363659",
+            "indices": [
+              0,
+              10
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:07 +0000 2014",
+      "id": 505874889392156700,
+      "id_str": "505874889392156672",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/iq_tameshi\" rel=\"nofollow\">IQ★力だめし</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2709308887,
+        "id_str": "2709308887",
+        "name": "IQ★力だめし",
+        "screen_name": "iq_tameshi",
+        "location": "",
+        "description": "解けると楽しい気分になれる問題を見つけて紹介します♪面白かったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 443,
+        "friends_count": 1851,
+        "listed_count": 1,
+        "created_at": "Tue Aug 05 13:14:30 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 664,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496646485266558977/W_W--qV__normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496646485266558977/W_W--qV__normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2709308887/1407244754",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874888817532900,
+      "id_str": "505874888817532928",
+      "text": "第一三軍から2個師団が北へ移動中らしい     この調子では満州に陸軍兵力があふれかえる",
+      "source": "<a href=\"http://m.blogs.yahoo.co.jp/misa_1273\" rel=\"nofollow\">如月克己</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1171299612,
+        "id_str": "1171299612",
+        "name": "如月 克己",
+        "screen_name": "kisaragi_katumi",
+        "location": "満州",
+        "description": "GパングのA型K月克己中尉の非公式botです。 主に七巻と八巻が中心の台詞をつぶやきます。 4/18.台詞追加しました/現在試運転中/現在軽い挨拶だけTL反応。/追加したい台詞や何おかしい所がありましたらDMやリプライで/フォロー返しは手動です/",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 65,
+        "friends_count": 63,
+        "listed_count": 0,
+        "created_at": "Tue Feb 12 08:21:38 +0000 2013",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 27219,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/3242847112/0ce536444c94cbec607229022d43a27a_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/3242847112/0ce536444c94cbec607229022d43a27a_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874888616181760,
+      "id_str": "505874888616181760",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/tokuda_ouen1\" rel=\"nofollow\">徳田有希★応援隊</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2766021865,
+        "id_str": "2766021865",
+        "name": "徳田有希★応援隊",
+        "screen_name": "tokuda_ouen1",
+        "location": "",
+        "description": "女子中高生に大人気ww いやされるイラストを紹介します。 \r\nみんなで RTして応援しよう~♪ \r\n「非公式アカウントです」",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 123,
+        "friends_count": 978,
+        "listed_count": 0,
+        "created_at": "Mon Aug 25 10:48:41 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 210,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503857235802333184/YS0sDN6q_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503857235802333184/YS0sDN6q_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2766021865/1408963998",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874887802511360,
+      "id_str": "505874887802511361",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/fujyoshinoheya\" rel=\"nofollow\">腐女子の☆部屋</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744683982,
+        "id_str": "2744683982",
+        "name": "腐女子の☆部屋",
+        "screen_name": "fujyoshinoheya",
+        "location": "",
+        "description": "腐女子にしかわからないネタや、あるあるを見つけていきます。 \r\n他には、BL~萌えキュン系まで、腐のための画像を集めています♪ \r\n同じ境遇の人には、わかってもらえると思うので、気軽に RT & フォローお願いします☆",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 241,
+        "friends_count": 990,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 11:47:21 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 345,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501697365590306817/GLP_QH_b_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501697365590306817/GLP_QH_b_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744683982/1408448984",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874887009767400,
+      "id_str": "505874887009767424",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/moe_rate\" rel=\"nofollow\">萌え芸術★ラテアート</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2763178045,
+        "id_str": "2763178045",
+        "name": "萌え芸術★ラテアート",
+        "screen_name": "moe_rate",
+        "location": "",
+        "description": "ここまで来ると、もはや芸術!! 見てるだけで楽しい♪ \r\nそんなラテアートを、とことん探します。 \r\nスゴイと思ったら RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 187,
+        "friends_count": 998,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 16:53:16 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 210,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503586151764992000/RC80it20_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503586151764992000/RC80it20_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2763178045/1408899447",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874886225448960,
+      "id_str": "505874886225448960",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/zenbu_johnnys\" rel=\"nofollow\">全部★ジャニーズ図鑑</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2724158970,
+        "id_str": "2724158970",
+        "name": "全部★ジャニーズ図鑑",
+        "screen_name": "zenbu_johnnys",
+        "location": "",
+        "description": "ジャニーズのカッコイイ画像、おもしろエピソードなどを発信します。\r\n「非公式アカウントです」\r\nジャニーズ好きな人は、是非 RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 738,
+        "friends_count": 1838,
+        "listed_count": 0,
+        "created_at": "Mon Aug 11 15:50:08 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 556,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498859581057945600/ncMKwdvC_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498859581057945600/ncMKwdvC_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2724158970/1407772462",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874885810200600,
+      "id_str": "505874885810200576",
+      "text": "RT @naopisu_: 呼び方:\n呼ばれ方:\n第一印象:\n今の印象:\n好きなところ:\n家族にするなら:\n最後に一言:\n#RTした人にやる\n\nお腹痛くて寝れないからやるww\nだれでもどうぞ〜😏🙌",
+      "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2347898072,
+        "id_str": "2347898072",
+        "name": "にたにた",
+        "screen_name": "syo6660129",
+        "location": "",
+        "description": "",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 64,
+        "friends_count": 70,
+        "listed_count": 1,
+        "created_at": "Mon Feb 17 04:29:46 +0000 2014",
+        "favourites_count": 58,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 145,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/485603672118669314/73uh_xRS_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/485603672118669314/73uh_xRS_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2347898072/1396957619",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 14:19:31 +0000 2014",
+        "id": 505721480261300200,
+        "id_str": "505721480261300224",
+        "text": "呼び方:\n呼ばれ方:\n第一印象:\n今の印象:\n好きなところ:\n家族にするなら:\n最後に一言:\n#RTした人にやる\n\nお腹痛くて寝れないからやるww\nだれでもどうぞ〜😏🙌",
+        "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 856045488,
+          "id_str": "856045488",
+          "name": "なおぴす",
+          "screen_name": "naopisu_",
+          "location": "Fujino 65th ⇢ Sagaso 12A(LJK",
+          "description": "\ もうすぐ18歳 “Only One”になる /",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 267,
+          "friends_count": 259,
+          "listed_count": 2,
+          "created_at": "Mon Oct 01 08:36:23 +0000 2012",
+          "favourites_count": 218,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 1790,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/496321592553525249/tuzX9ByR_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/496321592553525249/tuzX9ByR_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/856045488/1407118111",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 23,
+        "favorite_count": 1,
+        "entities": {
+          "hashtags": [
+            {
+              "text": "RTした人にやる",
+              "indices": [
+                47,
+                56
+              ]
+            }
+          ],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 23,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "RTした人にやる",
+            "indices": [
+              61,
+              70
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "naopisu_",
+            "name": "なおぴす",
+            "id": 856045488,
+            "id_str": "856045488",
+            "indices": [
+              3,
+              12
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:06 +0000 2014",
+      "id": 505874885474656260,
+      "id_str": "505874885474656256",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/line_aru1\" rel=\"nofollow\">爆笑★LINE あるある</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2709561589,
+        "id_str": "2709561589",
+        "name": "爆笑★LINE あるある",
+        "screen_name": "line_aru1",
+        "location": "",
+        "description": "思わず笑ってしまうLINEでのやりとりや、あるあるを見つけたいです♪面白かったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 496,
+        "friends_count": 1875,
+        "listed_count": 1,
+        "created_at": "Tue Aug 05 15:01:30 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 687,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496673793939492867/p1BN4YaW_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496673793939492867/p1BN4YaW_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2709561589/1407251270",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874884627410940,
+      "id_str": "505874884627410944",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/misawahatugen\" rel=\"nofollow\">全力★ミサワ的w発言</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2734455415,
+        "id_str": "2734455415",
+        "name": "全力★ミサワ的w発言!!",
+        "screen_name": "misawahatugen",
+        "location": "",
+        "description": "ウザすぎて笑えるミサワ的名言や、おもしろミサワ画像を集めています。 \r\nミサワを知らない人でも、いきなりツボにハマっちゃう内容をお届けします。 \r\nウザいwと思ったら RT & 相互フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 144,
+        "friends_count": 1915,
+        "listed_count": 1,
+        "created_at": "Fri Aug 15 13:20:04 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 436,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/500271070834749444/HvengMe5_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/500271070834749444/HvengMe5_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2734455415/1408108944",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874883809521660,
+      "id_str": "505874883809521664",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/otakara_sotuaru\" rel=\"nofollow\">お宝ww有名人卒アル特集</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2708183557,
+        "id_str": "2708183557",
+        "name": "お宝ww有名人卒アル特集",
+        "screen_name": "otakara_sotuaru",
+        "location": "",
+        "description": "みんな昔は若かったんですね。今からは想像もつかない、あの有名人を見つけます。\r\n面白かったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 286,
+        "friends_count": 1938,
+        "listed_count": 0,
+        "created_at": "Tue Aug 05 03:26:54 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 650,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496499121276985344/hC8RoebP_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496499121276985344/hC8RoebP_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2708183557/1407318758",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874883322970100,
+      "id_str": "505874883322970112",
+      "text": "レッドクリフのキャラのこと女装ってくそわろたwww朝一で面白かった( ˘ω゜)笑",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1620730616,
+        "id_str": "1620730616",
+        "name": "ひーちゃん@橘芋健ぴ",
+        "screen_name": "2nd_8hkr",
+        "location": "北の大地.95年組 ☞ 9/28.10/2(5).12/28",
+        "description": "THE SECOND/劇団EXILE/EXILE/二代目JSB ☞KENCHI.AKIRA.青柳翔.小森隼.石井杏奈☜ Big Love ♡ Respect ..... ✍ MATSU Origin✧ .た ち ば な '' い も '' け ん い ち ろ う さ んTEAM NACS 安田.戸次 Liebe !",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 109,
+        "friends_count": 148,
+        "listed_count": 0,
+        "created_at": "Thu Jul 25 16:09:29 +0000 2013",
+        "favourites_count": 783,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 9541,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/458760951060123648/Cocoxi-2_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/458760951060123648/Cocoxi-2_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1620730616/1408681982",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874883067129860,
+      "id_str": "505874883067129857",
+      "text": "【状態良好】ペンタックス・デジタル一眼レフカメラ・K20D 入札数=38 現在価格=15000円 http://t.co/4WK1f6V2n6終了=2014年08月31日 20:47:53 #一眼レフ http://t.co/PcSaXzfHMW",
+      "source": "<a href=\"https://github.com/AKB428/YahooAuctionBot\" rel=\"nofollow\">YahooAuction Degicame</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2278053589,
+        "id_str": "2278053589",
+        "name": "AuctionCamera",
+        "screen_name": "AuctionCamera",
+        "location": "",
+        "description": "Yahooオークションのデジカメカテゴリから商品を抽出するボットです。",
+        "url": "https://t.co/3sB1NDnd0m",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "https://t.co/3sB1NDnd0m",
+                "expanded_url": "https://github.com/AKB428/YahooAuctionBot",
+                "display_url": "github.com/AKB428/YahooAu…",
+                "indices": [
+                  0,
+                  23
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 5,
+        "friends_count": 24,
+        "listed_count": 0,
+        "created_at": "Sun Jan 05 20:10:56 +0000 2014",
+        "favourites_count": 1,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 199546,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/419927606146789376/vko-kd6Q_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/419927606146789376/vko-kd6Q_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "一眼レフ",
+            "indices": [
+              95,
+              100
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/4WK1f6V2n6",
+            "expanded_url": "http://atq.ck.valuecommerce.com/servlet/atq/referral?sid=2219441&pid=877510753&vcptn=auct/p/RJH492.PLqoLQQx1Jy8U9LE-&vc_url=http://page8.auctions.yahoo.co.jp/jp/auction/h192024356",
+            "display_url": "atq.ck.valuecommerce.com/servlet/atq/re…",
+            "indices": [
+              49,
+              71
+            ]
+          }
+        ],
+        "user_mentions": [],
+        "media": [
+          {
+            "id": 505874882828046340,
+            "id_str": "505874882828046336",
+            "indices": [
+              101,
+              123
+            ],
+            "media_url": "http://pbs.twimg.com/media/BwU6hpPCEAAxnpq.jpg",
+            "media_url_https": "https://pbs.twimg.com/media/BwU6hpPCEAAxnpq.jpg",
+            "url": "http://t.co/PcSaXzfHMW",
+            "display_url": "pic.twitter.com/PcSaXzfHMW",
+            "expanded_url": "http://twitter.com/AuctionCamera/status/505874883067129857/photo/1",
+            "type": "photo",
+            "sizes": {
+              "large": {
+                "w": 600,
+                "h": 450,
+                "resize": "fit"
+              },
+              "medium": {
+                "w": 600,
+                "h": 450,
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": 150,
+                "h": 150,
+                "resize": "crop"
+              },
+              "small": {
+                "w": 340,
+                "h": 255,
+                "resize": "fit"
+              }
+            }
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874882995826700,
+      "id_str": "505874882995826689",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/yabai_giness\" rel=\"nofollow\">ヤバすぎる!!ギネス世界記録</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2762405780,
+        "id_str": "2762405780",
+        "name": "ヤバすぎる!!ギネス世界記録",
+        "screen_name": "yabai_giness",
+        "location": "",
+        "description": "世の中には、まだまだ知られていないスゴイ記録があるんです! \r\nそんなギネス世界記録を見つけます☆ \r\nどんどん友達にも教えてあげてくださいねww \r\nヤバイと思ったら RT & フォローを、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 36,
+        "friends_count": 985,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 13:17:03 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 210,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503531782919045121/NiIC25wL_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503531782919045121/NiIC25wL_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762405780/1408886328",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874882870009860,
+      "id_str": "505874882870009856",
+      "text": "すごく面白い夢見た。魔法科高校通ってて(別に一科二科の区別ない)クラスメイトにヨセアツメ面子や赤僕の拓也がいて、学校対抗合唱コンクールが開催されたり会場入りの際他校の妨害工作受けたり、拓也が連れてきてた実が人質に取られたりとにかくてんこ盛りだった楽しかった赤僕読みたい手元にない",
+      "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 597357105,
+        "id_str": "597357105",
+        "name": "ふじよし",
+        "screen_name": "fuji_mark",
+        "location": "多摩動物公園",
+        "description": "成人腐女子",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 128,
+        "friends_count": 126,
+        "listed_count": 6,
+        "created_at": "Sat Jun 02 10:06:05 +0000 2012",
+        "favourites_count": 2842,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 10517,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "0099B9",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme4/bg.gif",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme4/bg.gif",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503553738569560065/D_JW2dCJ_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503553738569560065/D_JW2dCJ_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/597357105/1408864355",
+        "profile_link_color": "0099B9",
+        "profile_sidebar_border_color": "5ED4DC",
+        "profile_sidebar_fill_color": "95E8EC",
+        "profile_text_color": "3C3940",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874882228281340,
+      "id_str": "505874882228281345",
+      "text": "RT @oen_yakyu: ●継続試合(中京対崇徳)46回~ 9時~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK-FM\n●決勝戦(三浦対中京or崇徳) 12時30分~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK第一\n ※神奈川の方は普通のラ…",
+      "source": "<a href=\"http://twicca.r246.jp/\" rel=\"nofollow\">twicca</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 18477566,
+        "id_str": "18477566",
+        "name": "Natit(なち)@そうだ、トップ行こう",
+        "screen_name": "natit_yso",
+        "location": "福岡市の端っこ",
+        "description": "ヤー・チャイカ。紫宝勢の末席くらいでQMAやってます。\r\n9/13(土)「九州杯」今年も宜しくお願いします!キーワードは「そうだ、トップ、行こう。」\r\nmore → http://t.co/ezuHyjF4Qy \r\n【旅の予定】9/20-22 関西 → 9/23-28 北海道ぐるり",
+        "url": "http://t.co/ll2yu78DGR",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/ll2yu78DGR",
+                "expanded_url": "http://qma-kyushu.sakura.ne.jp/",
+                "display_url": "qma-kyushu.sakura.ne.jp",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": [
+              {
+                "url": "http://t.co/ezuHyjF4Qy",
+                "expanded_url": "http://twpf.jp/natit_yso",
+                "display_url": "twpf.jp/natit_yso",
+                "indices": [
+                  83,
+                  105
+                ]
+              }
+            ]
+          }
+        },
+        "protected": false,
+        "followers_count": 591,
+        "friends_count": 548,
+        "listed_count": 93,
+        "created_at": "Tue Dec 30 14:11:44 +0000 2008",
+        "favourites_count": 11676,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 130145,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "131516",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme14/bg.gif",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme14/bg.gif",
+        "profile_background_tile": true,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/1556202861/chibi-Leon_normal.jpg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/1556202861/chibi-Leon_normal.jpg",
+        "profile_link_color": "009999",
+        "profile_sidebar_border_color": "EEEEEE",
+        "profile_sidebar_fill_color": "EFEFEF",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 23:12:39 +0000 2014",
+        "id": 505855649196953600,
+        "id_str": "505855649196953600",
+        "text": "●継続試合(中京対崇徳)46回~ 9時~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK-FM\n●決勝戦(三浦対中京or崇徳) 12時30分~\n 〈ラジオ中継〉\n らじる★らじる→大阪放送局を選択→NHK第一\n ※神奈川の方は普通のラジオのNHK-FMでも",
+        "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2761692762,
+          "id_str": "2761692762",
+          "name": "三浦学苑軟式野球部応援団!",
+          "screen_name": "oen_yakyu",
+          "location": "",
+          "description": "兵庫県で開催される「もう一つの甲子園」こと全国高校軟式野球選手権大会に南関東ブロックから出場する三浦学苑軟式野球部を応援する非公式アカウントです。",
+          "url": "http://t.co/Cn1tPTsBGY",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/Cn1tPTsBGY",
+                  "expanded_url": "http://www.miura.ed.jp/index.html",
+                  "display_url": "miura.ed.jp/index.html",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 464,
+          "friends_count": 117,
+          "listed_count": 4,
+          "created_at": "Sun Aug 24 07:47:29 +0000 2014",
+          "favourites_count": 69,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 553,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/504299474445811712/zsxJUmL0_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/504299474445811712/zsxJUmL0_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2761692762/1409069337",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 7,
+        "favorite_count": 2,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 7,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "oen_yakyu",
+            "name": "三浦学苑軟式野球部応援団!",
+            "id": 2761692762,
+            "id_str": "2761692762",
+            "indices": [
+              3,
+              13
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874882110824450,
+      "id_str": "505874882110824448",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/sumahoanime\" rel=\"nofollow\">スマホに密封★アニメ画像</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2725976444,
+        "id_str": "2725976444",
+        "name": "スマホに密封★アニメ画像",
+        "screen_name": "sumahoanime",
+        "location": "",
+        "description": "なんともめずらしい、いろんなキャラがスマホに閉じ込められています。 \r\nあなたのスマホにマッチする画像が見つかるかも♪  \r\n気に入ったら是非 RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 227,
+        "friends_count": 1918,
+        "listed_count": 0,
+        "created_at": "Tue Aug 12 11:27:54 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 527,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/499155646164393984/l5vSz5zu_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/499155646164393984/l5vSz5zu_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2725976444/1407843121",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:05 +0000 2014",
+      "id": 505874881297133600,
+      "id_str": "505874881297133568",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/mijika_kiken\" rel=\"nofollow\">アナタのそばの身近な危険</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2713926078,
+        "id_str": "2713926078",
+        "name": "アナタのそばの身近な危険",
+        "screen_name": "mijika_kiken",
+        "location": "",
+        "description": "知らないうちにやっている危険な行動を見つけて自分を守りましょう。 役に立つと思ったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 301,
+        "friends_count": 1871,
+        "listed_count": 0,
+        "created_at": "Thu Aug 07 07:12:50 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 644,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497279579245907968/Ftvms_HR_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497279579245907968/Ftvms_HR_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2713926078/1407395683",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:04 +0000 2014",
+      "id": 505874880294682600,
+      "id_str": "505874880294682624",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/ninkimono_daosy\" rel=\"nofollow\">人気者♥デイジー大好き</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2726199583,
+        "id_str": "2726199583",
+        "name": "人気者♥デイジー大好き",
+        "screen_name": "ninkimono_daosy",
+        "location": "",
+        "description": "デイジーの想いを、代わりにつぶやきます♪  \r\nデイジーのかわいい画像やグッズも大好きw  \r\n可愛いと思ったら RT & フォローお願いします。 \r\n「非公式アカウントです」",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 190,
+        "friends_count": 474,
+        "listed_count": 0,
+        "created_at": "Tue Aug 12 12:58:33 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 469,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/499178622494576640/EzWKdR_p_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/499178622494576640/EzWKdR_p_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2726199583/1407848478",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:04 +0000 2014",
+      "id": 505874879392919550,
+      "id_str": "505874879392919552",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/shiawasehanashi\" rel=\"nofollow\">幸せ話でフル充電しよう</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2721453846,
+        "id_str": "2721453846",
+        "name": "幸せ話でフル充電しようww",
+        "screen_name": "shiawasehanashi",
+        "location": "",
+        "description": "私が聞いて心に残った感動エピソードをお届けします。\r\n少しでも多くの人へ届けたいと思います。\r\nいいなと思ったら RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 302,
+        "friends_count": 1886,
+        "listed_count": 0,
+        "created_at": "Sun Aug 10 12:16:25 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 508,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498444554916216832/ml8EiQka_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498444554916216832/ml8EiQka_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2721453846/1407673555",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:04 +0000 2014",
+      "id": 505874879103520800,
+      "id_str": "505874879103520768",
+      "text": "RT @Ang_Angel73: 逢坂「くっ…僕の秘められし右目が…!」\n一同「……………。」",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2571968509,
+        "id_str": "2571968509",
+        "name": "イイヒト",
+        "screen_name": "IwiAlohomora",
+        "location": "草葉の陰",
+        "description": "大人です。気軽に絡んでくれるとうれしいです! イラスト大好き!(≧∇≦) BF(仮)逢坂紘夢くんにお熱です! マンガも好き♡欲望のままにつぶやきますのでご注意を。雑食♡",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 156,
+        "friends_count": 165,
+        "listed_count": 14,
+        "created_at": "Tue Jun 17 01:18:34 +0000 2014",
+        "favourites_count": 11926,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 7234,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/504990074862178304/DoBvOb9c_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/504990074862178304/DoBvOb9c_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2571968509/1409106012",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:27:01 +0000 2014",
+        "id": 505874364596621300,
+        "id_str": "505874364596621313",
+        "text": "逢坂「くっ…僕の秘められし右目が…!」\n一同「……………。」",
+        "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 1600750194,
+          "id_str": "1600750194",
+          "name": "臙脂",
+          "screen_name": "Ang_Angel73",
+          "location": "逢坂紘夢のそばに",
+          "description": "自由、気ままに。詳しくはツイプロ。アイコンはまめせろりちゃんからだよ☆~(ゝ。∂)",
+          "url": "http://t.co/kKCCwHTaph",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/kKCCwHTaph",
+                  "expanded_url": "http://twpf.jp/Ang_Angel73",
+                  "display_url": "twpf.jp/Ang_Angel73",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 155,
+          "friends_count": 154,
+          "listed_count": 10,
+          "created_at": "Wed Jul 17 11:44:31 +0000 2013",
+          "favourites_count": 2115,
+          "utc_offset": 32400,
+          "time_zone": "Irkutsk",
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 12342,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/378800000027871001/aa764602922050b22bf9ade3741367dc.jpeg",
+          "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/378800000027871001/aa764602922050b22bf9ade3741367dc.jpeg",
+          "profile_background_tile": true,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/500293786287603713/Ywyh69eG_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/500293786287603713/Ywyh69eG_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/1600750194/1403879183",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "FFFFFF",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": false,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 2,
+        "favorite_count": 2,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 2,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "Ang_Angel73",
+            "name": "臙脂",
+            "id": 1600750194,
+            "id_str": "1600750194",
+            "indices": [
+              3,
+              15
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:04 +0000 2014",
+      "id": 505874877933314050,
+      "id_str": "505874877933314048",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/honne_jyoshi1\" rel=\"nofollow\">秘密の本音♥女子編</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2762237088,
+        "id_str": "2762237088",
+        "name": "秘密の本音♥女子編",
+        "screen_name": "honne_jyoshi1",
+        "location": "",
+        "description": "普段は言えない「お・ん・なの建前と本音」をつぶやきます。 気になる あの人の本音も、わかるかも!? \r\nわかるって人は RT & フォローを、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 123,
+        "friends_count": 988,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 12:27:07 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 211,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503519190364332032/BVjS_XBD_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503519190364332032/BVjS_XBD_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2762237088/1408883328",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:04 +0000 2014",
+      "id": 505874877148958700,
+      "id_str": "505874877148958721",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/bi_iroenpitu\" rel=\"nofollow\">美し過ぎる★色鉛筆アート</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2740047343,
+        "id_str": "2740047343",
+        "name": "美し過ぎる★色鉛筆アート",
+        "screen_name": "bi_iroenpitu",
+        "location": "",
+        "description": "ほんとにコレ色鉛筆なの~? \r\n本物と見間違える程のリアリティを御覧ください。 \r\n気に入ったら RT & 相互フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 321,
+        "friends_count": 1990,
+        "listed_count": 0,
+        "created_at": "Sun Aug 17 16:15:05 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 396,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501039950972739585/isigil4V_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501039950972739585/isigil4V_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2740047343/1408292283",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874876465295360,
+      "id_str": "505874876465295361",
+      "text": "【H15-9-4】道路を利用する利益は反射的利益であり、建築基準法に基づいて道路一の指定がなされている私道の敷地所有者に対し、通行妨害行為の排除を求める人格的権利を認めることはできない。→誤。",
+      "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1886570281,
+        "id_str": "1886570281",
+        "name": "行政法過去問",
+        "screen_name": "gyosei_goukaku",
+        "location": "",
+        "description": "行政書士の本試験問題の過去問(行政法分野)をランダムにつぶやきます。問題は随時追加中です。基本的に相互フォローします。※140字制限の都合上、表現は一部変えてあります。解説も文字数が可能であればなるべく…。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 1554,
+        "friends_count": 1772,
+        "listed_count": 12,
+        "created_at": "Fri Sep 20 13:24:29 +0000 2013",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 14565,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/378800000487791870/0e45e3c089c6b641cdd8d1b6f1ceb8a4_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000487791870/0e45e3c089c6b641cdd8d1b6f1ceb8a4_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874876318511100,
+      "id_str": "505874876318511104",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/kgoehassou\" rel=\"nofollow\">K点越えの発想力!!</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744863153,
+        "id_str": "2744863153",
+        "name": "K点越えの発想力!!",
+        "screen_name": "kgoehassou",
+        "location": "",
+        "description": "いったいどうやったら、その領域にたどりつけるのか!? \r\nそんな思わず笑ってしまう別世界の発想力をお届けします♪ \r\nおもしろかったら RT & 相互フォローで、お願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 76,
+        "friends_count": 957,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 13:00:08 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 341,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501715651686178816/Fgpe0B8M_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501715651686178816/Fgpe0B8M_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744863153/1408453328",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874875521581060,
+      "id_str": "505874875521581056",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/ketueki_sinjitu\" rel=\"nofollow\">血液型の真実2</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2698625690,
+        "id_str": "2698625690",
+        "name": "血液型の真実",
+        "screen_name": "ketueki_sinjitu",
+        "location": "",
+        "description": "やっぱりそうだったのか~♪\r\n意外な、あの人の裏側を見つけます。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 193,
+        "friends_count": 1785,
+        "listed_count": 1,
+        "created_at": "Fri Aug 01 16:11:40 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 769,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495241446706790400/h_0DSFPG_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495241446706790400/h_0DSFPG_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2698625690/1406911319",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874874712072200,
+      "id_str": "505874874712072192",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/yahari_kamiga\" rel=\"nofollow\">やっぱり神が??を作る時</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2714868440,
+        "id_str": "2714868440",
+        "name": "やっぱり神が??を作る時",
+        "screen_name": "yahari_kamiga",
+        "location": "",
+        "description": "やっぱり今日も、神は何かを作ろうとしています 笑。 どうやって作っているのかわかったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 243,
+        "friends_count": 1907,
+        "listed_count": 0,
+        "created_at": "Thu Aug 07 16:12:33 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 590,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497416102108884992/NRMEbKaT_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497416102108884992/NRMEbKaT_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714868440/1407428237",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874874275864600,
+      "id_str": "505874874275864576",
+      "text": "RT @takuramix: 福島第一原発の構内地図がこちら。\nhttp://t.co/ZkU4TZCGPG\nどう見ても、1号機。\nRT @Lightworker19: 【大拡散】  福島第一原発 4号機 爆発動画 40秒~  http://t.co/lmlgp38fgZ",
+      "source": "<a href=\"http://twitter.softama.com/\" rel=\"nofollow\">ツイタマ</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 62525372,
+        "id_str": "62525372",
+        "name": "NANCY-MOON☆ひよこちゃん☆",
+        "screen_name": "nancy_moon_703",
+        "location": "JAPAN",
+        "description": "【無断転載禁止・コピペ禁止・非公式RT禁止】【必読!】⇒ http://t.co/nuUvfUVD 今現在活動中の東方神起YUNHO&CHANGMINの2人を全力で応援しています!!(^_-)-☆ ※東方神起及びYUNHO&CHANGMINを応援していない方・鍵付ユーザーのフォローお断り!",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": [
+              {
+                "url": "http://t.co/nuUvfUVD",
+                "expanded_url": "http://goo.gl/SrGLb",
+                "display_url": "goo.gl/SrGLb",
+                "indices": [
+                  29,
+                  49
+                ]
+              }
+            ]
+          }
+        },
+        "protected": false,
+        "followers_count": 270,
+        "friends_count": 328,
+        "listed_count": 4,
+        "created_at": "Mon Aug 03 14:22:24 +0000 2009",
+        "favourites_count": 3283,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 180310,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "642D8B",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/470849781397336064/ltM6EdFn.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/470849781397336064/ltM6EdFn.jpeg",
+        "profile_background_tile": true,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/3699005246/9ba2e306518d296b68b7cbfa5e4ce4e6_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/3699005246/9ba2e306518d296b68b7cbfa5e4ce4e6_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/62525372/1401094223",
+        "profile_link_color": "FF0000",
+        "profile_sidebar_border_color": "FFFFFF",
+        "profile_sidebar_fill_color": "F065A8",
+        "profile_text_color": "080808",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 21:21:33 +0000 2014",
+        "id": 505827689660313600,
+        "id_str": "505827689660313600",
+        "text": "福島第一原発の構内地図がこちら。\nhttp://t.co/ZkU4TZCGPG\nどう見ても、1号機。\nRT @Lightworker19: 【大拡散】  福島第一原発 4号機 爆発動画 40秒~  http://t.co/lmlgp38fgZ",
+        "source": "<a href=\"https://about.twitter.com/products/tweetdeck\" rel=\"nofollow\">TweetDeck</a>",
+        "truncated": false,
+        "in_reply_to_status_id": 505774460910043140,
+        "in_reply_to_status_id_str": "505774460910043136",
+        "in_reply_to_user_id": 238157843,
+        "in_reply_to_user_id_str": "238157843",
+        "in_reply_to_screen_name": "Lightworker19",
+        "user": {
+          "id": 29599253,
+          "id_str": "29599253",
+          "name": "タクラミックス",
+          "screen_name": "takuramix",
+          "location": "i7",
+          "description": "私の機能一覧:歌う、演劇、ネットワークエンジニア、ライター、プログラマ、翻訳、シルバーアクセサリ、……何をやってる人かは良くわからない人なので、「機能」が欲しい人は私にがっかりするでしょう。私って人間に御用があるなら別ですが。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 5136,
+          "friends_count": 724,
+          "listed_count": 335,
+          "created_at": "Wed Apr 08 01:10:58 +0000 2009",
+          "favourites_count": 21363,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 70897,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/2049751947/takuramix1204_normal.jpg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/2049751947/takuramix1204_normal.jpg",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 1,
+        "favorite_count": 1,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [
+            {
+              "url": "http://t.co/ZkU4TZCGPG",
+              "expanded_url": "http://www.tepco.co.jp/nu/fukushima-np/review/images/review1_01.gif",
+              "display_url": "tepco.co.jp/nu/fukushima-n…",
+              "indices": [
+                17,
+                39
+              ]
+            },
+            {
+              "url": "http://t.co/lmlgp38fgZ",
+              "expanded_url": "http://youtu.be/gDXEhyuVSDk",
+              "display_url": "youtu.be/gDXEhyuVSDk",
+              "indices": [
+                99,
+                121
+              ]
+            }
+          ],
+          "user_mentions": [
+            {
+              "screen_name": "Lightworker19",
+              "name": "Lightworker",
+              "id": 238157843,
+              "id_str": "238157843",
+              "indices": [
+                54,
+                68
+              ]
+            }
+          ]
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 1,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/ZkU4TZCGPG",
+            "expanded_url": "http://www.tepco.co.jp/nu/fukushima-np/review/images/review1_01.gif",
+            "display_url": "tepco.co.jp/nu/fukushima-n…",
+            "indices": [
+              32,
+              54
+            ]
+          },
+          {
+            "url": "http://t.co/lmlgp38fgZ",
+            "expanded_url": "http://youtu.be/gDXEhyuVSDk",
+            "display_url": "youtu.be/gDXEhyuVSDk",
+            "indices": [
+              114,
+              136
+            ]
+          }
+        ],
+        "user_mentions": [
+          {
+            "screen_name": "takuramix",
+            "name": "タクラミックス",
+            "id": 29599253,
+            "id_str": "29599253",
+            "indices": [
+              3,
+              13
+            ]
+          },
+          {
+            "screen_name": "Lightworker19",
+            "name": "Lightworker",
+            "id": 238157843,
+            "id_str": "238157843",
+            "indices": [
+              69,
+              83
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874873961308160,
+      "id_str": "505874873961308160",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/anayuki_suki\" rel=\"nofollow\">やっぱりアナ雪が好き♥</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2714052962,
+        "id_str": "2714052962",
+        "name": "やっぱりアナ雪が好き♥",
+        "screen_name": "anayuki_suki",
+        "location": "",
+        "description": "なんだかんだ言ってもやっぱりアナ雪が好きなんですよね~♪ \r\n私も好きって人は RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 368,
+        "friends_count": 1826,
+        "listed_count": 1,
+        "created_at": "Thu Aug 07 08:29:13 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 670,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/497299646662705153/KMo3gkv7_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/497299646662705153/KMo3gkv7_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2714052962/1407400477",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "zh"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874873759977500,
+      "id_str": "505874873759977473",
+      "text": "四川盆地江淮等地将有强降雨 开学日多地将有雨:   中新网8月31日电 据中央气象台消息,江淮东部、四川盆地东北部等地今天(31日)又将迎来一场暴雨或大暴雨天气。明天9月1日,是中小学生开学的日子。预计明天,内蒙古中部、... http://t.co/toQgVlXPyH",
+      "source": "<a href=\"http://twitterfeed.com\" rel=\"nofollow\">twitterfeed</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2281979863,
+        "id_str": "2281979863",
+        "name": "News 24h China",
+        "screen_name": "news24hchn",
+        "location": "",
+        "description": "",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 719,
+        "friends_count": 807,
+        "listed_count": 7,
+        "created_at": "Wed Jan 08 10:56:04 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": 7200,
+        "time_zone": "Amsterdam",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 94782,
+        "lang": "it",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/452558963754561536/QPID3isM.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/452558963754561536/QPID3isM.jpeg",
+        "profile_background_tile": true,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/439031926569979904/SlBH9iMg_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/439031926569979904/SlBH9iMg_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2281979863/1393508427",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "FFFFFF",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/toQgVlXPyH",
+            "expanded_url": "http://news24h.allnews24h.com/FX54",
+            "display_url": "news24h.allnews24h.com/FX54",
+            "indices": [
+              114,
+              136
+            ]
+          }
+        ],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "zh"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874873248268300,
+      "id_str": "505874873248268288",
+      "text": "@Take3carnifex それは大変!一大事!命に関わります!\n是非うちに受診して下さい!",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": 505874353716600800,
+      "in_reply_to_status_id_str": "505874353716600832",
+      "in_reply_to_user_id": 535179785,
+      "in_reply_to_user_id_str": "535179785",
+      "in_reply_to_screen_name": "Take3carnifex",
+      "user": {
+        "id": 226897125,
+        "id_str": "226897125",
+        "name": "ひかり@hack",
+        "screen_name": "hikari_thirteen",
+        "location": "",
+        "description": "hackというバンドで、ギターを弾いています。 モンハンとポケモンが好き。 \nSPRING WATER リードギター(ヘルプ)\nROCK OUT レギュラーDJ",
+        "url": "http://t.co/SQLZnvjVxB",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/SQLZnvjVxB",
+                "expanded_url": "http://s.ameblo.jp/hikarihikarimay",
+                "display_url": "s.ameblo.jp/hikarihikarimay",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 296,
+        "friends_count": 348,
+        "listed_count": 3,
+        "created_at": "Wed Dec 15 10:51:51 +0000 2010",
+        "favourites_count": 33,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 3293,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "131516",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme14/bg.gif",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme14/bg.gif",
+        "profile_background_tile": true,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/378800000504584690/8ccba98eda8c0fd1d15a74e401f621d1_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000504584690/8ccba98eda8c0fd1d15a74e401f621d1_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/226897125/1385551752",
+        "profile_link_color": "009999",
+        "profile_sidebar_border_color": "EEEEEE",
+        "profile_sidebar_fill_color": "EFEFEF",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "Take3carnifex",
+            "name": "Take3",
+            "id": 535179785,
+            "id_str": "535179785",
+            "indices": [
+              0,
+              14
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:03 +0000 2014",
+      "id": 505874873223110660,
+      "id_str": "505874873223110656",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/imadokijoshiko\" rel=\"nofollow\">今どき女子高生の謎w</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744236873,
+        "id_str": "2744236873",
+        "name": "今どき女子高生の謎w",
+        "screen_name": "imadokijoshiko",
+        "location": "",
+        "description": "思わず耳を疑う男性の方の夢を壊してしまう、\r\n女子高生達のディープな世界を見てください☆  \r\nおもしろいと思ったら RT & 相互フォローでお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 79,
+        "friends_count": 973,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 07:06:47 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 354,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501627015980535808/avWBgkDh_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501627015980535808/avWBgkDh_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744236873/1408432455",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874872463925250,
+      "id_str": "505874872463925248",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/risou_dansei\" rel=\"nofollow\">私の理想の男性像</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2761782601,
+        "id_str": "2761782601",
+        "name": "私の理想の男性像",
+        "screen_name": "risou_dansei",
+        "location": "",
+        "description": "こんな男性♥ ほんとにいるのかしら!? \r\n「いたらいいのになぁ」っていう理想の男性像をを、私目線でつぶやきます。 \r\nいいなと思った人は RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 69,
+        "friends_count": 974,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 08:03:32 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 208,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503452833719410688/tFU509Yk_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503452833719410688/tFU509Yk_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2761782601/1408867519",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874871713157100,
+      "id_str": "505874871713157120",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/gekiatu_6byou\" rel=\"nofollow\">激アツ★6秒動画</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2725690658,
+        "id_str": "2725690658",
+        "name": "激アツ★6秒動画",
+        "screen_name": "gekiatu_6byou",
+        "location": "",
+        "description": "話題の6秒動画! \r\n思わず「ほんとかよっ」てツッコんでしまう内容のオンパレード! \r\nおもしろかったら、是非 RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 195,
+        "friends_count": 494,
+        "listed_count": 0,
+        "created_at": "Tue Aug 12 08:17:29 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 477,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/499107997444886528/3rl6FrIk_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/499107997444886528/3rl6FrIk_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2725690658/1407832963",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874871616671740,
+      "id_str": "505874871616671744",
+      "text": "爆笑ww珍解答集!\n先生のツメの甘さと生徒のセンスを感じる一問一答だとFBでも話題!!\nうどん天下一決定戦ウィンドウズ9三重高校竹内由恵アナ花火保険\nhttp://t.co/jRWJt8IrSB http://t.co/okrAoxSbt0",
+      "source": "<a href=\"https://twitter.com/waraeru_kan\" rel=\"nofollow\">笑える博物館</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2748747362,
+        "id_str": "2748747362",
+        "name": "笑える博物館",
+        "screen_name": "waraeru_kan",
+        "location": "",
+        "description": "",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 19,
+        "friends_count": 10,
+        "listed_count": 0,
+        "created_at": "Wed Aug 20 11:11:04 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 15137,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://abs.twimg.com/sticky/default_profile_images/default_profile_4_normal.png",
+        "profile_image_url_https": "https://abs.twimg.com/sticky/default_profile_images/default_profile_4_normal.png",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": true,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/jRWJt8IrSB",
+            "expanded_url": "http://bit.ly/1qBa1nl",
+            "display_url": "bit.ly/1qBa1nl",
+            "indices": [
+              75,
+              97
+            ]
+          }
+        ],
+        "user_mentions": [],
+        "media": [
+          {
+            "id": 505874871344066560,
+            "id_str": "505874871344066560",
+            "indices": [
+              98,
+              120
+            ],
+            "media_url": "http://pbs.twimg.com/media/BwU6g-dCcAALxAW.png",
+            "media_url_https": "https://pbs.twimg.com/media/BwU6g-dCcAALxAW.png",
+            "url": "http://t.co/okrAoxSbt0",
+            "display_url": "pic.twitter.com/okrAoxSbt0",
+            "expanded_url": "http://twitter.com/waraeru_kan/status/505874871616671744/photo/1",
+            "type": "photo",
+            "sizes": {
+              "small": {
+                "w": 340,
+                "h": 425,
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": 150,
+                "h": 150,
+                "resize": "crop"
+              },
+              "large": {
+                "w": 600,
+                "h": 750,
+                "resize": "fit"
+              },
+              "medium": {
+                "w": 600,
+                "h": 750,
+                "resize": "fit"
+              }
+            }
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874871268540400,
+      "id_str": "505874871268540416",
+      "text": "@nasan_arai \n名前→なーさん\n第一印象→誰。(´・_・`)\n今の印象→れいら♡\nLINE交換できる?→してる(「・ω・)「\n好きなところ→可愛い優しい優しい優しい\n最後に一言→なーさん好き〜(´・_・`)♡GEM現場おいでね(´・_・`)♡\n\n#ふぁぼした人にやる",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": 1717603286,
+      "in_reply_to_user_id_str": "1717603286",
+      "in_reply_to_screen_name": "nasan_arai",
+      "user": {
+        "id": 2417626784,
+        "id_str": "2417626784",
+        "name": "✩.ゆきଘ(*´꒳`)",
+        "screen_name": "Ymaaya_gem",
+        "location": "",
+        "description": "⁽⁽٩( ᐖ )۶⁾⁾ ❤︎ 武 田 舞 彩 ❤︎ ₍₍٩( ᐛ )۶₎₎",
+        "url": "http://t.co/wR0Qb76TbB",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/wR0Qb76TbB",
+                "expanded_url": "http://twpf.jp/Ymaaya_gem",
+                "display_url": "twpf.jp/Ymaaya_gem",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 198,
+        "friends_count": 245,
+        "listed_count": 1,
+        "created_at": "Sat Mar 29 16:03:06 +0000 2014",
+        "favourites_count": 3818,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": true,
+        "verified": false,
+        "statuses_count": 8056,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505516858816987136/4gFGjHzu_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505516858816987136/4gFGjHzu_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2417626784/1407764793",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "ふぁぼした人にやる",
+            "indices": [
+              128,
+              138
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "nasan_arai",
+            "name": "なーさん",
+            "id": 1717603286,
+            "id_str": "1717603286",
+            "indices": [
+              0,
+              11
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874871218225150,
+      "id_str": "505874871218225152",
+      "text": "\"ソードマスター\"剣聖カミイズミ (CV:緑川光)-「ソードマスター」のアスタリスク所持者\n第一師団団長にして「剣聖」の称号を持つ剣士。イデアの剣の師匠。 \n敵味方からも尊敬される一流の武人。",
+      "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1435517814,
+        "id_str": "1435517814",
+        "name": "俺、関係ないよ?",
+        "screen_name": "BDFF_LOVE",
+        "location": "ルクセンダルクorリングアベルさんの隣",
+        "description": "自分なりに生きる人、最後まであきらめないの。でも、フォローありがとう…。@ringo_BDFFLOVE ←は、妹です。時々、会話します。「現在BOTで、BDFFのこと呟くよ!」夜は、全滅 「BDFFプレイ中」詳しくは、ツイプロみてください!(絶対)",
+        "url": "http://t.co/5R4dzpbWX2",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/5R4dzpbWX2",
+                "expanded_url": "http://twpf.jp/BDFF_LOVE",
+                "display_url": "twpf.jp/BDFF_LOVE",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 1066,
+        "friends_count": 1799,
+        "listed_count": 6,
+        "created_at": "Fri May 17 12:33:23 +0000 2013",
+        "favourites_count": 1431,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": true,
+        "verified": false,
+        "statuses_count": 6333,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505696320380612608/qvaxb_zx_normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505696320380612608/qvaxb_zx_normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1435517814/1409401948",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874871130136600,
+      "id_str": "505874871130136576",
+      "text": "闇「リンと付き合うに当たって歳の差以外にもいろいろ壁があったんだよ。愛し隊の妨害とか風紀厨の生徒会長とか…」\n一号「リンちゃんを泣かせたらシメるかんね!」\n二号「リンちゃんにやましい事したら×す…」\n執行部「不純な交際は僕が取り締まろうじゃないか…」\n闇「(消される)」",
+      "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2386208737,
+        "id_str": "2386208737",
+        "name": "闇未来Bot",
+        "screen_name": "StxRinFbot",
+        "location": "DIVAルーム",
+        "description": "ProjectDIVAのモジュール・ストレンジダーク×鏡音リンFutureStyleの自己満足非公式Bot マセレン仕様。CP要素あります。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 7,
+        "friends_count": 2,
+        "listed_count": 0,
+        "created_at": "Thu Mar 13 02:58:09 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 4876,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/443948925351755776/6rmljL5C_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/443948925351755776/6rmljL5C_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2386208737/1396259004",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874870933016600,
+      "id_str": "505874870933016576",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/suitestengoku\" rel=\"nofollow\">絶品!!スイーツ天国</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2725681663,
+        "id_str": "2725681663",
+        "name": "絶品!!スイーツ天国",
+        "screen_name": "suitestengoku",
+        "location": "",
+        "description": "美味しそうなスイーツって、見てるだけで幸せな気分になれますね♪\r\nそんな素敵なスイーツに出会いたいです。\r\n食べたいと思ったら是非 RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 401,
+        "friends_count": 1877,
+        "listed_count": 1,
+        "created_at": "Tue Aug 12 07:43:52 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 554,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/499099533507178496/g5dNpArt_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/499099533507178496/g5dNpArt_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2725681663/1407829743",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874870148669440,
+      "id_str": "505874870148669440",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/dengeki_omoro\" rel=\"nofollow\">電車厳禁!!おもしろ話</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2699667800,
+        "id_str": "2699667800",
+        "name": "電車厳禁!!おもしろ話w",
+        "screen_name": "dengeki_omoro",
+        "location": "",
+        "description": "日常のオモシロくて笑える場面を探します♪\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 461,
+        "friends_count": 1919,
+        "listed_count": 0,
+        "created_at": "Sat Aug 02 02:16:32 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 728,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495400387961036800/BBMb_hcG_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495400387961036800/BBMb_hcG_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2699667800/1406947654",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874869339189250,
+      "id_str": "505874869339189249",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/ketueki_face\" rel=\"nofollow\">笑えるwwランキング2</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2695745652,
+        "id_str": "2695745652",
+        "name": "笑えるwwランキング",
+        "screen_name": "wara_runk",
+        "location": "",
+        "description": "知ってると使えるランキングを探そう。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 314,
+        "friends_count": 1943,
+        "listed_count": 1,
+        "created_at": "Thu Jul 31 13:51:57 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 737,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/494844659856728064/xBQfnm5J_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/494844659856728064/xBQfnm5J_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2695745652/1406815103",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:02 +0000 2014",
+      "id": 505874868533854200,
+      "id_str": "505874868533854209",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/sunikar_daisuki\" rel=\"nofollow\">スニーカー大好き★図鑑</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2707963890,
+        "id_str": "2707963890",
+        "name": "スニーカー大好き★図鑑",
+        "screen_name": "sunikar_daisuki",
+        "location": "",
+        "description": "スニーカー好きを見つけて仲間になろう♪\r\n気に入ったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 394,
+        "friends_count": 1891,
+        "listed_count": 0,
+        "created_at": "Tue Aug 05 01:54:28 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 642,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496474952631996416/f0C_u3_u_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496474952631996416/f0C_u3_u_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2707963890/1407203869",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "zh"
+      },
+      "created_at": "Sun Aug 31 00:29:01 +0000 2014",
+      "id": 505874867997380600,
+      "id_str": "505874867997380608",
+      "text": "\"@BelloTexto: ¿Quieres ser feliz? \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\" \n一\"No stalkees\".\"",
+      "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2249378935,
+        "id_str": "2249378935",
+        "name": "Maggie Becerril ",
+        "screen_name": "maggdesie",
+        "location": "",
+        "description": "cambiando la vida de las personas.",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 120,
+        "friends_count": 391,
+        "listed_count": 0,
+        "created_at": "Mon Dec 16 21:56:49 +0000 2013",
+        "favourites_count": 314,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 1657,
+        "lang": "es",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505093371665604608/K0x_LV2y_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505093371665604608/K0x_LV2y_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2249378935/1409258479",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "BelloTexto",
+            "name": "Indirectas... ✉",
+            "id": 833083404,
+            "id_str": "833083404",
+            "indices": [
+              1,
+              12
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "zh"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:01 +0000 2014",
+      "id": 505874867720183800,
+      "id_str": "505874867720183808",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/iseiuragao\" rel=\"nofollow\">ザ・異性の裏の顔</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2719746578,
+        "id_str": "2719746578",
+        "name": "ザ・異性の裏の顔",
+        "screen_name": "iseiuragao",
+        "location": "",
+        "description": "異性について少し学ぶことで、必然的にモテるようになる!? 相手を理解することで見えてくるもの「それは・・・●●」 いい内容だと思ったら RT & フォローもお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 238,
+        "friends_count": 1922,
+        "listed_count": 0,
+        "created_at": "Sat Aug 09 17:18:43 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 532,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498157077726900224/tW8q4di__normal.png",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498157077726900224/tW8q4di__normal.png",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719746578/1407604947",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:01 +0000 2014",
+      "id": 505874866910687200,
+      "id_str": "505874866910687233",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/bijyoalbum\" rel=\"nofollow\">超w美女☆アルバム</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744054334,
+        "id_str": "2744054334",
+        "name": "超w美女☆アルバム",
+        "screen_name": "bijyoalbum",
+        "location": "",
+        "description": "「おお~っ!いいね~」って、思わず言ってしまう、美女を見つけます☆ \r\nタイプだと思ったら RT & 相互フォローでお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 45,
+        "friends_count": 966,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 05:36:48 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 352,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501604413312491520/GP66eKWr_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501604413312491520/GP66eKWr_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744054334/1408426814",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:01 +0000 2014",
+      "id": 505874866105376800,
+      "id_str": "505874866105376769",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/jyoshiuraseitai\" rel=\"nofollow\">男に見せない女子の裏生態</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744261238,
+        "id_str": "2744261238",
+        "name": "男に見せない女子の裏生態",
+        "screen_name": "jyoshiuraseitai",
+        "location": "",
+        "description": "男の知らない女子ならではのあるある☆ \r\nそんな生々しい女子の生態をつぶやきます。 \r\nわかる~って人は RT & フォローでお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 203,
+        "friends_count": 967,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 08:01:28 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 348,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501641354804346880/Uh1-n1LD_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501641354804346880/Uh1-n1LD_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744261238/1408435630",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:01 +0000 2014",
+      "id": 505874865354584060,
+      "id_str": "505874865354584064",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/soubutu_seitai\" rel=\"nofollow\">驚きの動物たちの生態</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2759403146,
+        "id_str": "2759403146",
+        "name": "驚きの動物たちの生態",
+        "screen_name": "soubutu_seitai",
+        "location": "",
+        "description": "「おお~っ」と 言われるような、動物の生態をツイートします♪ \r\n知っていると、あなたも人気者に!? \r\nおもしろかったら RT & フォローを、お願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 67,
+        "friends_count": 954,
+        "listed_count": 0,
+        "created_at": "Sat Aug 23 16:39:31 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 219,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503220468128567296/Z8mGDIBS_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503220468128567296/Z8mGDIBS_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2759403146/1408812130",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:01 +0000 2014",
+      "id": 505874864603820000,
+      "id_str": "505874864603820032",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/mote_woman\" rel=\"nofollow\">モテ女子★ファションの秘密</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2706659820,
+        "id_str": "2706659820",
+        "name": "モテ女子★ファションの秘密",
+        "screen_name": "mote_woman",
+        "location": "",
+        "description": "オシャレかわいい♥モテ度UPの注目アイテムを見つけます。\r\n気に入ったら RT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 217,
+        "friends_count": 1806,
+        "listed_count": 0,
+        "created_at": "Mon Aug 04 14:30:24 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 682,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496303370936668161/s7xP8rTy_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496303370936668161/s7xP8rTy_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2706659820/1407163059",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874863874007040,
+      "id_str": "505874863874007040",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/danjyonotigai1\" rel=\"nofollow\">男女の違いを解明する</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2761896468,
+        "id_str": "2761896468",
+        "name": "男女の違いを解明する",
+        "screen_name": "danjyonotigai1",
+        "location": "",
+        "description": "意外と理解できていない男女それぞれの事情。 \r\n「えっ マジで!?」と驚くような、男女の習性をつぶやきます♪ ためになったら、是非 RT & フォローで、お願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 82,
+        "friends_count": 992,
+        "listed_count": 0,
+        "created_at": "Sun Aug 24 09:47:44 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 237,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503479057380413441/zDLu5Z9o_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503479057380413441/zDLu5Z9o_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2761896468/1408873803",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874862900924400,
+      "id_str": "505874862900924416",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/kamihassou\" rel=\"nofollow\">神レベル★極限の発想</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744950735,
+        "id_str": "2744950735",
+        "name": "神レベル★極限の発想",
+        "screen_name": "kamihassou",
+        "location": "",
+        "description": "見ているだけで、本気がビシバシ伝わってきます! \r\n人生のヒントになるような、そんな究極の発想を集めています。 \r\nいいなと思ったら RT & 相互フォローで、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 84,
+        "friends_count": 992,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 13:36:05 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 343,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501725053189226496/xZNOTYz2_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501725053189226496/xZNOTYz2_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744950735/1408455571",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874862397591550,
+      "id_str": "505874862397591552",
+      "text": "@kaoritoxx そうよ!あたしはそう思うようにしておる。いま職場一やけとる気がする(°_°)!満喫幸せ焼け!!wあー、なるほどね!毎回そうだよね!ティアラちゃんみにいってるもんね♡五月と九月恐ろしい、、、\nハリポタエリアはいった??",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": 505838547308277760,
+      "in_reply_to_status_id_str": "505838547308277761",
+      "in_reply_to_user_id": 796000214,
+      "in_reply_to_user_id_str": "796000214",
+      "in_reply_to_screen_name": "kaoritoxx",
+      "user": {
+        "id": 2256249487,
+        "id_str": "2256249487",
+        "name": "はあちゃん@海賊同盟中",
+        "screen_name": "onepiece_24",
+        "location": "どえすえろぉたんの助手兼ね妹(願望)",
+        "description": "ONE PIECE愛しすぎて今年23ちゃい(歴14年目)ゾロ様に一途だったのにロー、このやろー。ロビンちゃんが幸せになればいい。ルフィは無条件にすき。ゾロビン、ローロビ、ルロビ♡usj、声優さん、コナン、進撃、クレしん、H x Hも好き♩",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 415,
+        "friends_count": 384,
+        "listed_count": 3,
+        "created_at": "Sat Dec 21 09:37:25 +0000 2013",
+        "favourites_count": 1603,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 9636,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501686340564418561/hMQFN4vD_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501686340564418561/hMQFN4vD_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2256249487/1399987924",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "kaoritoxx",
+            "name": "かおちゃん",
+            "id": 796000214,
+            "id_str": "796000214",
+            "indices": [
+              0,
+              10
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874861973991400,
+      "id_str": "505874861973991424",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/renai_sennin\" rel=\"nofollow\">恋愛仙人</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2698885082,
+        "id_str": "2698885082",
+        "name": "恋愛仙人",
+        "screen_name": "renai_sennin",
+        "location": "",
+        "description": "豊富でステキな恋愛経験を、シェアしましょう。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 618,
+        "friends_count": 1847,
+        "listed_count": 1,
+        "created_at": "Fri Aug 01 18:09:38 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 726,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495272204641132544/GNA18aOg_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495272204641132544/GNA18aOg_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2698885082/1406917096",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874861881700350,
+      "id_str": "505874861881700353",
+      "text": "@itsukibot_ 一稀の俺のソーセージをペロペロする音はデカイ",
+      "source": "<a href=\"http://jigtwi.jp/?p=1\" rel=\"nofollow\">jigtwi</a>",
+      "truncated": false,
+      "in_reply_to_status_id": 505871017428795400,
+      "in_reply_to_status_id_str": "505871017428795392",
+      "in_reply_to_user_id": 141170845,
+      "in_reply_to_user_id_str": "141170845",
+      "in_reply_to_screen_name": "itsukibot_",
+      "user": {
+        "id": 2184752048,
+        "id_str": "2184752048",
+        "name": "アンドー",
+        "screen_name": "55dakedayo",
+        "location": "",
+        "description": "",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 15,
+        "friends_count": 24,
+        "listed_count": 0,
+        "created_at": "Sat Nov 09 17:42:22 +0000 2013",
+        "favourites_count": 37249,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 21070,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://abs.twimg.com/sticky/default_profile_images/default_profile_3_normal.png",
+        "profile_image_url_https": "https://abs.twimg.com/sticky/default_profile_images/default_profile_3_normal.png",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": true,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "itsukibot_",
+            "name": "前田一稀",
+            "id": 141170845,
+            "id_str": "141170845",
+            "indices": [
+              0,
+              11
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874861185437700,
+      "id_str": "505874861185437697",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/densetunodorama\" rel=\"nofollow\">あの伝説の名ドラマ&名場面</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2706951979,
+        "id_str": "2706951979",
+        "name": "あの伝説の名ドラマ&名場面",
+        "screen_name": "densetunodorama",
+        "location": "",
+        "description": "誰にでも記憶に残る、ドラマの名場面があると思います。そんな感動のストーリーを、もう一度わかちあいたいです。\r\n「これ知ってる!」とか「あ~懐かしい」と思ったら RT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 300,
+        "friends_count": 1886,
+        "listed_count": 0,
+        "created_at": "Mon Aug 04 16:38:25 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 694,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/496335892152209408/fKzb8Nv3_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/496335892152209408/fKzb8Nv3_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2706951979/1407170704",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:29:00 +0000 2014",
+      "id": 505874860447260700,
+      "id_str": "505874860447260672",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/tabetaicake1\" rel=\"nofollow\">マジで食べたい♥ケーキ特集</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2724328646,
+        "id_str": "2724328646",
+        "name": "マジで食べたい♥ケーキ特集",
+        "screen_name": "tabetaicake1",
+        "location": "",
+        "description": "女性の目線から見た、美味しそうなケーキを探し求めています。\r\n見てるだけで、あれもコレも食べたくなっちゃう♪\r\n美味しそうだと思ったら、是非 RT & フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 158,
+        "friends_count": 1907,
+        "listed_count": 0,
+        "created_at": "Mon Aug 11 17:15:22 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 493,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498881289844293632/DAa9No9M_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498881289844293632/DAa9No9M_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2724328646/1407777704",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:59 +0000 2014",
+      "id": 505874859662925800,
+      "id_str": "505874859662925824",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/adi_mania11\" rel=\"nofollow\">アディダス★マニア</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2704003662,
+        "id_str": "2704003662",
+        "name": "アディダス★マニア",
+        "screen_name": "adi_mania11",
+        "location": "",
+        "description": "素敵なアディダスのアイテムを見つけたいです♪\r\n気に入ってもらえたららRT & 相互フォローで みなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 340,
+        "friends_count": 1851,
+        "listed_count": 0,
+        "created_at": "Sun Aug 03 12:26:37 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 734,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495911561781727235/06QAMVrR_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495911561781727235/06QAMVrR_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2704003662/1407069046",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:59 +0000 2014",
+      "id": 505874858920513540,
+      "id_str": "505874858920513537",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/moe_pet1\" rel=\"nofollow\">萌えペット大好き</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2719061228,
+        "id_str": "2719061228",
+        "name": "萌えペット大好き",
+        "screen_name": "moe_pet1",
+        "location": "",
+        "description": "かわいいペットを見るのが趣味です♥そんな私と一緒にいやされたい人いませんか?かわいいと思ったら RT & フォローもお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 289,
+        "friends_count": 1812,
+        "listed_count": 0,
+        "created_at": "Sat Aug 09 10:20:25 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 632,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498051549537386496/QizThq7N_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498051549537386496/QizThq7N_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719061228/1407581287",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:59 +0000 2014",
+      "id": 505874858115219460,
+      "id_str": "505874858115219456",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/renaikyoukasyo\" rel=\"nofollow\">恋愛の教科書 </a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2744344514,
+        "id_str": "2744344514",
+        "name": "恋愛の教科書",
+        "screen_name": "renaikyoukasyo",
+        "location": "",
+        "description": "もっと早く知っとくべきだった~!知っていればもっと上手くいく♪ \r\n今すぐ役立つ恋愛についての雑学やマメ知識をお届けします。 \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 124,
+        "friends_count": 955,
+        "listed_count": 0,
+        "created_at": "Tue Aug 19 08:32:45 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 346,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/501655512018997248/7SznYGWi_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/501655512018997248/7SznYGWi_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2744344514/1408439001",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:59 +0000 2014",
+      "id": 505874857335074800,
+      "id_str": "505874857335074816",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/omorogakusei\" rel=\"nofollow\">オモロすぎる★学生の日常</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2699365116,
+        "id_str": "2699365116",
+        "name": "オモロすぎる★学生の日常",
+        "screen_name": "omorogakusei",
+        "location": "",
+        "description": "楽しすぎる学生の日常を探していきます。\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 289,
+        "friends_count": 1156,
+        "listed_count": 2,
+        "created_at": "Fri Aug 01 23:35:18 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 770,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495353473886478336/S-4B_RVl_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495353473886478336/S-4B_RVl_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2699365116/1406936481",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:59 +0000 2014",
+      "id": 505874856605257700,
+      "id_str": "505874856605257728",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/akogareinteria\" rel=\"nofollow\">憧れの★インテリア図鑑</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2721907602,
+        "id_str": "2721907602",
+        "name": "憧れの★インテリア図鑑",
+        "screen_name": "akogareinteria",
+        "location": "",
+        "description": "自分の住む部屋もこんなふうにしてみたい♪ \r\nそんな素敵なインテリアを、日々探していますw \r\nいいなと思ったら RT & 相互フォローお願いします。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 298,
+        "friends_count": 1925,
+        "listed_count": 0,
+        "created_at": "Sun Aug 10 15:59:13 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 540,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498499374423343105/Wi_izHvT_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498499374423343105/Wi_izHvT_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2721907602/1407686543",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:59 +0000 2014",
+      "id": 505874856089378800,
+      "id_str": "505874856089378816",
+      "text": "天冥の標 VI 宿怨 PART1 / 小川 一水\nhttp://t.co/fXIgRt4ffH\n \n#キンドル #天冥の標VI宿怨PART1",
+      "source": "<a href=\"http://twitter.com/\" rel=\"nofollow\">waromett</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1953404612,
+        "id_str": "1953404612",
+        "name": "わろめっと",
+        "screen_name": "waromett",
+        "location": "",
+        "description": "たのしいついーとしょうかい",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 16980,
+        "friends_count": 16983,
+        "listed_count": 18,
+        "created_at": "Fri Oct 11 05:49:57 +0000 2013",
+        "favourites_count": 3833,
+        "utc_offset": 32400,
+        "time_zone": "Tokyo",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 98655,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "352726",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme5/bg.gif",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme5/bg.gif",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/378800000578908101/14c4744c7aa34b1f8bbd942b78e59385_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000578908101/14c4744c7aa34b1f8bbd942b78e59385_normal.jpeg",
+        "profile_link_color": "D02B55",
+        "profile_sidebar_border_color": "829D5E",
+        "profile_sidebar_fill_color": "99CC33",
+        "profile_text_color": "3E4415",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "キンドル",
+            "indices": [
+              50,
+              55
+            ]
+          },
+          {
+            "text": "天冥の標VI宿怨PART1",
+            "indices": [
+              56,
+              70
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/fXIgRt4ffH",
+            "expanded_url": "http://j.mp/1kHBOym",
+            "display_url": "j.mp/1kHBOym",
+            "indices": [
+              25,
+              47
+            ]
+          }
+        ],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "zh"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874855770599400,
+      "id_str": "505874855770599425",
+      "text": "四川盆地江淮等地将有强降雨 开学日多地将有雨:   中新网8月31日电 据中央气象台消息,江淮东部、四川盆地东北部等地今天(31日)又将迎来一场暴雨或大暴雨天气。明天9月1日,是中小学生开学的日子。预计明天,内蒙古中部、... http://t.co/RNdqIHmTby",
+      "source": "<a href=\"http://twitterfeed.com\" rel=\"nofollow\">twitterfeed</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 402427654,
+        "id_str": "402427654",
+        "name": "中国新闻",
+        "screen_name": "zhongwenxinwen",
+        "location": "",
+        "description": "中国的新闻,世界的新闻。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 2429,
+        "friends_count": 15,
+        "listed_count": 29,
+        "created_at": "Tue Nov 01 01:56:43 +0000 2011",
+        "favourites_count": 0,
+        "utc_offset": -28800,
+        "time_zone": "Alaska",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 84564,
+        "lang": "zh-cn",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "709397",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme6/bg.gif",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme6/bg.gif",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/2700523149/5597e347b2eb880425faef54287995f2_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/2700523149/5597e347b2eb880425faef54287995f2_normal.jpeg",
+        "profile_link_color": "FF3300",
+        "profile_sidebar_border_color": "86A4A6",
+        "profile_sidebar_fill_color": "A0C5C7",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/RNdqIHmTby",
+            "expanded_url": "http://bit.ly/1tOdNsI",
+            "display_url": "bit.ly/1tOdNsI",
+            "indices": [
+              114,
+              136
+            ]
+          }
+        ],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "zh"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874854877200400,
+      "id_str": "505874854877200384",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/LDH_daisuki1\" rel=\"nofollow\">LDH ★大好き応援団</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2700961603,
+        "id_str": "2700961603",
+        "name": "LDH ★大好き応援団",
+        "screen_name": "LDH_daisuki1",
+        "location": "",
+        "description": "LDHファンは、全員仲間です♪\r\n面白かったらRT & 相互フォローでみなさん、お願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 458,
+        "friends_count": 1895,
+        "listed_count": 0,
+        "created_at": "Sat Aug 02 14:23:46 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 735,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/495578007298252800/FOZflgYu_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/495578007298252800/FOZflgYu_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2700961603/1406989928",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874854147407900,
+      "id_str": "505874854147407872",
+      "text": "RT @shiawaseomamori: 一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるの…",
+      "source": "<a href=\"https://twitter.com/anime_toshiden1\" rel=\"nofollow\">マジ!?怖いアニメ都市伝説</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2719489172,
+        "id_str": "2719489172",
+        "name": "マジ!?怖いアニメ都市伝説",
+        "screen_name": "anime_toshiden1",
+        "location": "",
+        "description": "あなたの知らない、怖すぎるアニメの都市伝説を集めています。\r\n「え~知らなかったよww]」って人は RT & フォローお願いします♪",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 377,
+        "friends_count": 1911,
+        "listed_count": 1,
+        "created_at": "Sat Aug 09 14:41:15 +0000 2014",
+        "favourites_count": 0,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 536,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/498118027322208258/h7XOTTSi_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/498118027322208258/h7XOTTSi_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2719489172/1407595513",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:06 +0000 2014",
+        "id": 505871615125491700,
+        "id_str": "505871615125491712",
+        "text": "一に止まると書いて、正しいという意味だなんて、この年になるまで知りませんでした。 人は生きていると、前へ前へという気持ちばかり急いて、どんどん大切なものを置き去りにしていくものでしょう。本当に正しいことというのは、一番初めの場所にあるのかもしれません。 by神様のカルテ、夏川草介",
+        "source": "<a href=\"https://twitter.com/shiawaseomamori\" rel=\"nofollow\">幸せの☆お守り</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2745121514,
+          "id_str": "2745121514",
+          "name": "幸せの☆お守り",
+          "screen_name": "shiawaseomamori",
+          "location": "",
+          "description": "自分が幸せだと周りも幸せにできる! \r\nそんな人生を精一杯生きるために必要な言葉をお届けします♪ \r\nいいなと思ったら RT & 相互フォローで、お願いします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 213,
+          "friends_count": 991,
+          "listed_count": 0,
+          "created_at": "Tue Aug 19 14:45:19 +0000 2014",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 349,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/501742437606244354/scXy81ZW_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2745121514/1408459730",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 58,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 58,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "shiawaseomamori",
+            "name": "幸せの☆お守り",
+            "id": 2745121514,
+            "id_str": "2745121514",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874854134820860,
+      "id_str": "505874854134820864",
+      "text": "@vesperia1985 おはよー!\n今日までなのですよ…!!明日一生来なくていい",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": 505868030329364500,
+      "in_reply_to_status_id_str": "505868030329364480",
+      "in_reply_to_user_id": 2286548834,
+      "in_reply_to_user_id_str": "2286548834",
+      "in_reply_to_screen_name": "vesperia1985",
+      "user": {
+        "id": 2389045190,
+        "id_str": "2389045190",
+        "name": "りいこ",
+        "screen_name": "riiko_dq10",
+        "location": "",
+        "description": "サマーエルフです、りいこです。えるおくんラブです!随時ふれぼしゅ〜〜(っ˘ω˘c )*日常のどうでもいいことも呟いてますがよろしくね〜",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 67,
+        "friends_count": 69,
+        "listed_count": 0,
+        "created_at": "Fri Mar 14 13:02:27 +0000 2014",
+        "favourites_count": 120,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 324,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/503906346815610881/BfSrCoBr_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/503906346815610881/BfSrCoBr_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/2389045190/1409232058",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "vesperia1985",
+            "name": "ユーリ",
+            "id": 2286548834,
+            "id_str": "2286548834",
+            "indices": [
+              0,
+              13
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874853778685950,
+      "id_str": "505874853778685952",
+      "text": "【映画パンフレット】 永遠の0 (永遠のゼロ) 監督 山崎貴 キャスト 岡田准一、三浦春馬、井上真央東宝(2)11点の新品/中古品を見る: ¥ 500より\n(この商品の現在のランクに関する正式な情報については、アートフレーム... http://t.co/4hbyB1rbQ7",
+      "source": "<a href=\"http://ifttt.com\" rel=\"nofollow\">IFTTT</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1319883571,
+        "id_str": "1319883571",
+        "name": "森林木工家具製作所",
+        "screen_name": "Furniturewood",
+        "location": "沖縄",
+        "description": "家具(かぐ、Furniture)は、家財道具のうち家の中に据え置いて利用する比較的大型の道具類、または元々家に作り付けられている比較的大型の道具類をさす。なお、日本の建築基準法上は、作り付け家具は、建築確認及び完了検査の対象となるが、後から置かれるものについては対象外である。",
+        "url": "http://t.co/V4oyL0xtZk",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/V4oyL0xtZk",
+                "expanded_url": "http://astore.amazon.co.jp/furniturewood-22",
+                "display_url": "astore.amazon.co.jp/furniturewood-…",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 677,
+        "friends_count": 743,
+        "listed_count": 1,
+        "created_at": "Mon Apr 01 07:55:14 +0000 2013",
+        "favourites_count": 0,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 17210,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/3460466135/c67d9df9b760787b9ed284fe80b1dd31_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/3460466135/c67d9df9b760787b9ed284fe80b1dd31_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1319883571/1364804982",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/4hbyB1rbQ7",
+            "expanded_url": "http://ift.tt/1kT55bk",
+            "display_url": "ift.tt/1kT55bk",
+            "indices": [
+              116,
+              138
+            ]
+          }
+        ],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874852754907140,
+      "id_str": "505874852754907136",
+      "text": "RT @siranuga_hotoke: ゴキブリは一世帯に平均して480匹いる。",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 413944345,
+        "id_str": "413944345",
+        "name": "泥酔イナバウアー",
+        "screen_name": "Natade_co_co_21",
+        "location": "",
+        "description": "君の瞳にうつる僕に乾杯。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 298,
+        "friends_count": 300,
+        "listed_count": 4,
+        "created_at": "Wed Nov 16 12:52:46 +0000 2011",
+        "favourites_count": 3125,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 12237,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "FFF04D",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/378800000115928444/9bf5fa13385cc80bfeb097e51af9862a.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/378800000115928444/9bf5fa13385cc80bfeb097e51af9862a.jpeg",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/500849752351600640/lMQqIzYj_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/500849752351600640/lMQqIzYj_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/413944345/1403511193",
+        "profile_link_color": "0099CC",
+        "profile_sidebar_border_color": "000000",
+        "profile_sidebar_fill_color": "F6FFD1",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sat Aug 30 23:24:23 +0000 2014",
+        "id": 505858599411666940,
+        "id_str": "505858599411666944",
+        "text": "ゴキブリは一世帯に平均して480匹いる。",
+        "source": "<a href=\"http://twittbot.net/\" rel=\"nofollow\">twittbot.net</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 2243896200,
+          "id_str": "2243896200",
+          "name": "知らぬが仏bot",
+          "screen_name": "siranuga_hotoke",
+          "location": "奈良・京都辺り",
+          "description": "知らぬが仏な情報をお伝えします。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 3288,
+          "friends_count": 3482,
+          "listed_count": 7,
+          "created_at": "Fri Dec 13 13:16:35 +0000 2013",
+          "favourites_count": 0,
+          "utc_offset": null,
+          "time_zone": null,
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 1570,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/378800000866399372/ypy5NnPe_normal.png",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000866399372/ypy5NnPe_normal.png",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/2243896200/1386997755",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 1,
+        "favorite_count": 0,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "lang": "ja"
+      },
+      "retweet_count": 1,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [],
+        "user_mentions": [
+          {
+            "screen_name": "siranuga_hotoke",
+            "name": "知らぬが仏bot",
+            "id": 2243896200,
+            "id_str": "2243896200",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:58 +0000 2014",
+      "id": 505874852603908100,
+      "id_str": "505874852603908096",
+      "text": "RT @UARROW_Y: ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 2463035136,
+        "id_str": "2463035136",
+        "name": "や",
+        "screen_name": "yae45",
+        "location": "",
+        "description": "きもちわるいことつぶやく用",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 4,
+        "friends_count": 30,
+        "listed_count": 0,
+        "created_at": "Fri Apr 25 10:49:20 +0000 2014",
+        "favourites_count": 827,
+        "utc_offset": 32400,
+        "time_zone": "Irkutsk",
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 390,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/505345820137234433/csFeRxPm_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/505345820137234433/csFeRxPm_normal.jpeg",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "ja"
+        },
+        "created_at": "Sun Aug 31 00:16:45 +0000 2014",
+        "id": 505871779949051900,
+        "id_str": "505871779949051904",
+        "text": "ようかい体操第一を踊る国見英 http://t.co/SXoYWH98as",
+        "source": "<a href=\"http://twitter.com/download/android\" rel=\"nofollow\">Twitter for Android</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 1261662588,
+          "id_str": "1261662588",
+          "name": "ゆう矢",
+          "screen_name": "UARROW_Y",
+          "location": "つくり出そう国影の波 広げよう国影の輪",
+          "description": "HQ!! 成人済腐女子。日常ツイート多いです。赤葦京治夢豚クソツイ含みます注意。フォローをお考えの際はプロフご一読お願い致します。FRBお気軽に",
+          "url": "http://t.co/LFX2XOzb0l",
+          "entities": {
+            "url": {
+              "urls": [
+                {
+                  "url": "http://t.co/LFX2XOzb0l",
+                  "expanded_url": "http://twpf.jp/UARROW_Y",
+                  "display_url": "twpf.jp/UARROW_Y",
+                  "indices": [
+                    0,
+                    22
+                  ]
+                }
+              ]
+            },
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 265,
+          "friends_count": 124,
+          "listed_count": 12,
+          "created_at": "Tue Mar 12 10:42:17 +0000 2013",
+          "favourites_count": 6762,
+          "utc_offset": 32400,
+          "time_zone": "Tokyo",
+          "geo_enabled": true,
+          "verified": false,
+          "statuses_count": 55946,
+          "lang": "ja",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "C0DEED",
+          "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+          "profile_background_tile": false,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/502095104618663937/IzuPYx3E_normal.png",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/1261662588/1408618604",
+          "profile_link_color": "0084B4",
+          "profile_sidebar_border_color": "C0DEED",
+          "profile_sidebar_fill_color": "DDEEF6",
+          "profile_text_color": "333333",
+          "profile_use_background_image": true,
+          "default_profile": true,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 29,
+        "favorite_count": 54,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [
+            {
+              "url": "http://t.co/SXoYWH98as",
+              "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1",
+              "display_url": "pic.twitter.com/SXoYWH98as",
+              "indices": [
+                15,
+                37
+              ]
+            }
+          ],
+          "user_mentions": []
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "ja"
+      },
+      "retweet_count": 29,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/SXoYWH98as",
+            "expanded_url": "http://twitter.com/UARROW_Y/status/505871779949051904/photo/1",
+            "display_url": "pic.twitter.com/SXoYWH98as",
+            "indices": [
+              29,
+              51
+            ]
+          }
+        ],
+        "user_mentions": [
+          {
+            "screen_name": "UARROW_Y",
+            "name": "ゆう矢",
+            "id": 1261662588,
+            "id_str": "1261662588",
+            "indices": [
+              3,
+              12
+            ]
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "zh"
+      },
+      "created_at": "Sun Aug 31 00:28:57 +0000 2014",
+      "id": 505874848900341760,
+      "id_str": "505874848900341760",
+      "text": "RT @fightcensorship: 李克強總理的臉綠了!在前日南京青奧會閉幕式,觀眾席上一名貪玩韓國少年運動員,竟斗膽用激光筆射向中國總理李克強的臉。http://t.co/HLX9mHcQwe http://t.co/fVVOSML5s8",
+      "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 889332218,
+        "id_str": "889332218",
+        "name": "民權初步",
+        "screen_name": "JoeyYoungkm",
+        "location": "km/cn",
+        "description": "经历了怎样的曲折才从追求“一致通过”发展到今天人们接受“过半数通过”,正是人们认识到对“一致”甚至是“基本一致”的追求本身就会变成一种独裁。",
+        "url": null,
+        "entities": {
+          "description": {
+            "urls": []
+          }
+        },
+        "protected": false,
+        "followers_count": 313,
+        "friends_count": 46,
+        "listed_count": 0,
+        "created_at": "Thu Oct 18 17:21:17 +0000 2012",
+        "favourites_count": 24,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 15707,
+        "lang": "en",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "C0DEED",
+        "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/378800000563062033/a7e8274752ce36a6cd5bad971ec7d416_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000563062033/a7e8274752ce36a6cd5bad971ec7d416_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/889332218/1388896916",
+        "profile_link_color": "0084B4",
+        "profile_sidebar_border_color": "C0DEED",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": true,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweeted_status": {
+        "metadata": {
+          "result_type": "recent",
+          "iso_language_code": "zh"
+        },
+        "created_at": "Sat Aug 30 23:56:27 +0000 2014",
+        "id": 505866670356070400,
+        "id_str": "505866670356070401",
+        "text": "李克強總理的臉綠了!在前日南京青奧會閉幕式,觀眾席上一名貪玩韓國少年運動員,竟斗膽用激光筆射向中國總理李克強的臉。http://t.co/HLX9mHcQwe http://t.co/fVVOSML5s8",
+        "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
+        "truncated": false,
+        "in_reply_to_status_id": null,
+        "in_reply_to_status_id_str": null,
+        "in_reply_to_user_id": null,
+        "in_reply_to_user_id_str": null,
+        "in_reply_to_screen_name": null,
+        "user": {
+          "id": 67661086,
+          "id_str": "67661086",
+          "name": "※范强※法特姗瑟希蒲※",
+          "screen_name": "fightcensorship",
+          "location": "Middle of Nowhere",
+          "description": "被人指责“封建”、“落后”、“保守”的代表,当代红卫兵攻击对象。致力于言论自由,人权; 倡导资讯公开,反对网络封锁。既不是精英分子,也不是意见领袖,本推言论不代表任何国家、党派和组织,也不标榜伟大、光荣和正确。",
+          "url": null,
+          "entities": {
+            "description": {
+              "urls": []
+            }
+          },
+          "protected": false,
+          "followers_count": 7143,
+          "friends_count": 779,
+          "listed_count": 94,
+          "created_at": "Fri Aug 21 17:16:22 +0000 2009",
+          "favourites_count": 364,
+          "utc_offset": 28800,
+          "time_zone": "Singapore",
+          "geo_enabled": false,
+          "verified": false,
+          "statuses_count": 16751,
+          "lang": "en",
+          "contributors_enabled": false,
+          "is_translator": false,
+          "is_translation_enabled": false,
+          "profile_background_color": "FFFFFF",
+          "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/611138516/toeccqnahbpmr0sw9ybv.jpeg",
+          "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/611138516/toeccqnahbpmr0sw9ybv.jpeg",
+          "profile_background_tile": true,
+          "profile_image_url": "http://pbs.twimg.com/profile_images/3253137427/3524557d21ef2c04871e985d4d136bdb_normal.jpeg",
+          "profile_image_url_https": "https://pbs.twimg.com/profile_images/3253137427/3524557d21ef2c04871e985d4d136bdb_normal.jpeg",
+          "profile_banner_url": "https://pbs.twimg.com/profile_banners/67661086/1385608347",
+          "profile_link_color": "ED1313",
+          "profile_sidebar_border_color": "FFFFFF",
+          "profile_sidebar_fill_color": "E0FF92",
+          "profile_text_color": "000000",
+          "profile_use_background_image": true,
+          "default_profile": false,
+          "default_profile_image": false,
+          "following": false,
+          "follow_request_sent": false,
+          "notifications": false
+        },
+        "geo": null,
+        "coordinates": null,
+        "place": null,
+        "contributors": null,
+        "retweet_count": 4,
+        "favorite_count": 2,
+        "entities": {
+          "hashtags": [],
+          "symbols": [],
+          "urls": [
+            {
+              "url": "http://t.co/HLX9mHcQwe",
+              "expanded_url": "http://is.gd/H3OgTO",
+              "display_url": "is.gd/H3OgTO",
+              "indices": [
+                57,
+                79
+              ]
+            }
+          ],
+          "user_mentions": [],
+          "media": [
+            {
+              "id": 505866668485386240,
+              "id_str": "505866668485386241",
+              "indices": [
+                80,
+                102
+              ],
+              "media_url": "http://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg",
+              "media_url_https": "https://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg",
+              "url": "http://t.co/fVVOSML5s8",
+              "display_url": "pic.twitter.com/fVVOSML5s8",
+              "expanded_url": "http://twitter.com/fightcensorship/status/505866670356070401/photo/1",
+              "type": "photo",
+              "sizes": {
+                "large": {
+                  "w": 640,
+                  "h": 554,
+                  "resize": "fit"
+                },
+                "medium": {
+                  "w": 600,
+                  "h": 519,
+                  "resize": "fit"
+                },
+                "thumb": {
+                  "w": 150,
+                  "h": 150,
+                  "resize": "crop"
+                },
+                "small": {
+                  "w": 340,
+                  "h": 294,
+                  "resize": "fit"
+                }
+              }
+            }
+          ]
+        },
+        "favorited": false,
+        "retweeted": false,
+        "possibly_sensitive": false,
+        "lang": "zh"
+      },
+      "retweet_count": 4,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/HLX9mHcQwe",
+            "expanded_url": "http://is.gd/H3OgTO",
+            "display_url": "is.gd/H3OgTO",
+            "indices": [
+              78,
+              100
+            ]
+          }
+        ],
+        "user_mentions": [
+          {
+            "screen_name": "fightcensorship",
+            "name": "※范强※法特姗瑟希蒲※",
+            "id": 67661086,
+            "id_str": "67661086",
+            "indices": [
+              3,
+              19
+            ]
+          }
+        ],
+        "media": [
+          {
+            "id": 505866668485386240,
+            "id_str": "505866668485386241",
+            "indices": [
+              101,
+              123
+            ],
+            "media_url": "http://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg",
+            "media_url_https": "https://pbs.twimg.com/media/BwUzDgbIIAEgvhD.jpg",
+            "url": "http://t.co/fVVOSML5s8",
+            "display_url": "pic.twitter.com/fVVOSML5s8",
+            "expanded_url": "http://twitter.com/fightcensorship/status/505866670356070401/photo/1",
+            "type": "photo",
+            "sizes": {
+              "large": {
+                "w": 640,
+                "h": 554,
+                "resize": "fit"
+              },
+              "medium": {
+                "w": 600,
+                "h": 519,
+                "resize": "fit"
+              },
+              "thumb": {
+                "w": 150,
+                "h": 150,
+                "resize": "crop"
+              },
+              "small": {
+                "w": 340,
+                "h": 294,
+                "resize": "fit"
+              }
+            },
+            "source_status_id": 505866670356070400,
+            "source_status_id_str": "505866670356070401"
+          }
+        ]
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "zh"
+    },
+    {
+      "metadata": {
+        "result_type": "recent",
+        "iso_language_code": "ja"
+      },
+      "created_at": "Sun Aug 31 00:28:56 +0000 2014",
+      "id": 505874847260352500,
+      "id_str": "505874847260352513",
+      "text": "【マイリスト】【彩りりあ】妖怪体操第一 踊ってみた【反転】 http://t.co/PjL9if8OZC #sm24357625",
+      "source": "<a href=\"http://www.nicovideo.jp/\" rel=\"nofollow\">ニコニコ動画</a>",
+      "truncated": false,
+      "in_reply_to_status_id": null,
+      "in_reply_to_status_id_str": null,
+      "in_reply_to_user_id": null,
+      "in_reply_to_user_id_str": null,
+      "in_reply_to_screen_name": null,
+      "user": {
+        "id": 1609789375,
+        "id_str": "1609789375",
+        "name": "食いしん坊前ちゃん",
+        "screen_name": "2no38mae",
+        "location": "ニノと二次元の間",
+        "description": "ニコ動で踊り手やってます!!応援本当に嬉しいですありがとうございます!! ぽっちゃりだけど前向きに頑張る腐女子です。嵐と弱虫ペダルが大好き!【お返事】りぷ(基本は)”○” DM (同業者様を除いて)”×” 動画の転載は絶対にやめてください。 ブログ→http://t.co/8E91tqoeKX  ",
+        "url": "http://t.co/ulD2e9mcwb",
+        "entities": {
+          "url": {
+            "urls": [
+              {
+                "url": "http://t.co/ulD2e9mcwb",
+                "expanded_url": "http://www.nicovideo.jp/mylist/37917495",
+                "display_url": "nicovideo.jp/mylist/37917495",
+                "indices": [
+                  0,
+                  22
+                ]
+              }
+            ]
+          },
+          "description": {
+            "urls": [
+              {
+                "url": "http://t.co/8E91tqoeKX",
+                "expanded_url": "http://ameblo.jp/2no38mae/",
+                "display_url": "ameblo.jp/2no38mae/",
+                "indices": [
+                  125,
+                  147
+                ]
+              }
+            ]
+          }
+        },
+        "protected": false,
+        "followers_count": 560,
+        "friends_count": 875,
+        "listed_count": 11,
+        "created_at": "Sun Jul 21 05:09:43 +0000 2013",
+        "favourites_count": 323,
+        "utc_offset": null,
+        "time_zone": null,
+        "geo_enabled": false,
+        "verified": false,
+        "statuses_count": 3759,
+        "lang": "ja",
+        "contributors_enabled": false,
+        "is_translator": false,
+        "is_translation_enabled": false,
+        "profile_background_color": "F2C6E4",
+        "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/378800000029400927/114b242f5d838ec7cb098ea5db6df413.jpeg",
+        "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/378800000029400927/114b242f5d838ec7cb098ea5db6df413.jpeg",
+        "profile_background_tile": false,
+        "profile_image_url": "http://pbs.twimg.com/profile_images/487853237723095041/LMBMGvOc_normal.jpeg",
+        "profile_image_url_https": "https://pbs.twimg.com/profile_images/487853237723095041/LMBMGvOc_normal.jpeg",
+        "profile_banner_url": "https://pbs.twimg.com/profile_banners/1609789375/1375752225",
+        "profile_link_color": "FF9EDD",
+        "profile_sidebar_border_color": "FFFFFF",
+        "profile_sidebar_fill_color": "DDEEF6",
+        "profile_text_color": "333333",
+        "profile_use_background_image": true,
+        "default_profile": false,
+        "default_profile_image": false,
+        "following": false,
+        "follow_request_sent": false,
+        "notifications": false
+      },
+      "geo": null,
+      "coordinates": null,
+      "place": null,
+      "contributors": null,
+      "retweet_count": 0,
+      "favorite_count": 0,
+      "entities": {
+        "hashtags": [
+          {
+            "text": "sm24357625",
+            "indices": [
+              53,
+              64
+            ]
+          }
+        ],
+        "symbols": [],
+        "urls": [
+          {
+            "url": "http://t.co/PjL9if8OZC",
+            "expanded_url": "http://nico.ms/sm24357625",
+            "display_url": "nico.ms/sm24357625",
+            "indices": [
+              30,
+              52
+            ]
+          }
+        ],
+        "user_mentions": []
+      },
+      "favorited": false,
+      "retweeted": false,
+      "possibly_sensitive": false,
+      "lang": "ja"
+    }
+  ],
+  "search_metadata": {
+    "completed_in": 0.087,
+    "max_id": 505874924095815700,
+    "max_id_str": "505874924095815681",
+    "next_results": "?max_id=505874847260352512&q=%E4%B8%80&count=100&include_entities=1",
+    "query": "%E4%B8%80",
+    "refresh_url": "?since_id=505874924095815681&q=%E4%B8%80&include_entities=1",
+    "count": 100,
+    "since_id": 0,
+    "since_id_str": "0"
+  }
+}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/cmake/config.cmake.in b/resources/3rdparty/modernjson/cmake/config.cmake.in
new file mode 100755
index 000000000..3ff97adda
--- /dev/null
+++ b/resources/3rdparty/modernjson/cmake/config.cmake.in
@@ -0,0 +1,6 @@
+@PACKAGE_INIT@
+
+cmake_policy(PUSH)
+cmake_policy(SET CMP0024 OLD)
+include(${CMAKE_CURRENT_LIST_DIR}/@JSON_TARGETS_FILENAME@)
+cmake_policy(POP)
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/Doxyfile b/resources/3rdparty/modernjson/doc/Doxyfile
new file mode 100755
index 000000000..11faf6d03
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/Doxyfile
@@ -0,0 +1,317 @@
+# Doxyfile 1.8.9.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING      = UTF-8
+PROJECT_NAME           = "JSON for Modern C++"
+PROJECT_NUMBER         = 2.0.0
+PROJECT_BRIEF          = 
+PROJECT_LOGO           =
+OUTPUT_DIRECTORY       = .
+CREATE_SUBDIRS         = NO
+ALLOW_UNICODE_NAMES    = NO
+OUTPUT_LANGUAGE        = English
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = NO
+ABBREVIATE_BRIEF       =
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        =
+STRIP_FROM_INC_PATH    =
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+QT_AUTOBRIEF           = NO
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = YES
+TAB_SIZE               = 4
+ALIASES                = "complexity=@par Complexity\n"
+ALIASES                += liveexample{2}="@par Example\n \1 \n @includelineno \2.cpp \n Output (play with this example @htmlinclude \2.link):\n @verbinclude \2.output \n The example code above can be translated with @verbatim g++ -std=c++11 -Isrc doc/examples/\2.cpp -o \2 @endverbatim"
+ALIASES                += requirement="@par Requirements\n"
+ALIASES                += exceptionsafety="@par Exception safety\n"
+TCL_SUBST              =
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+OPTIMIZE_FOR_FORTRAN   = NO
+OPTIMIZE_OUTPUT_VHDL   = NO
+EXTENSION_MAPPING      =
+MARKDOWN_SUPPORT       = YES
+AUTOLINK_SUPPORT       = NO
+BUILTIN_STL_SUPPORT    = YES
+CPP_CLI_SUPPORT        = NO
+SIP_SUPPORT            = NO
+IDL_PROPERTY_SUPPORT   = YES
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+INLINE_GROUPED_CLASSES = NO
+INLINE_SIMPLE_STRUCTS  = NO
+TYPEDEF_HIDES_STRUCT   = NO
+LOOKUP_CACHE_SIZE      = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = YES
+EXTRACT_PRIVATE        = NO
+EXTRACT_PACKAGE        = YES
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = YES
+EXTRACT_ANON_NSPACES   = YES
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = NO
+HIDE_SCOPE_NAMES       = NO
+HIDE_COMPOUND_REFERENCE= NO
+SHOW_INCLUDE_FILES     = YES
+SHOW_GROUPED_MEMB_INC  = NO
+FORCE_LOCAL_INCLUDES   = NO
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = YES
+SORT_MEMBERS_CTORS_1ST = YES
+SORT_GROUP_NAMES       = NO
+SORT_BY_SCOPE_NAME     = NO
+STRICT_PROTO_MATCHING  = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       =
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = NO
+SHOW_FILES             = NO
+SHOW_NAMESPACES        = NO
+FILE_VERSION_FILTER    =
+LAYOUT_FILE            =
+CITE_BIB_FILES         =
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = YES
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = YES
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           =
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = ../src/json.hpp index.md
+INPUT_ENCODING         = UTF-8
+FILE_PATTERNS          =
+RECURSIVE              = NO
+EXCLUDE                =
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       =
+EXCLUDE_SYMBOLS        = nlohmann::anonymous_namespace
+EXAMPLE_PATH           = examples
+EXAMPLE_PATTERNS       =
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = images
+INPUT_FILTER           =
+FILTER_PATTERNS        =
+FILTER_SOURCE_FILES    = NO
+FILTER_SOURCE_PATTERNS =
+USE_MDFILE_AS_MAINPAGE = index.md
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = YES
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = NO
+REFERENCES_LINK_SOURCE = NO
+SOURCE_TOOLTIPS        = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          =
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            =
+HTML_FOOTER            =
+HTML_STYLESHEET        =
+HTML_EXTRA_STYLESHEET  = css/mylayout.css
+HTML_EXTRA_FILES       =
+HTML_COLORSTYLE_HUE    = 220
+HTML_COLORSTYLE_SAT    = 100
+HTML_COLORSTYLE_GAMMA  = 80
+HTML_TIMESTAMP         = YES
+HTML_DYNAMIC_SECTIONS  = YES
+HTML_INDEX_NUM_ENTRIES = 100
+GENERATE_DOCSET        = YES
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+DOCSET_BUNDLE_ID       = me.nlohmann.json
+DOCSET_PUBLISHER_ID    = me.nlohmann
+DOCSET_PUBLISHER_NAME  = Niels Lohmann
+GENERATE_HTMLHELP      = NO
+CHM_FILE               =
+HHC_LOCATION           =
+GENERATE_CHI           = NO
+CHM_INDEX_ENCODING     =
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+GENERATE_QHP           = NO
+QCH_FILE               =
+QHP_NAMESPACE          = org.doxygen.Project
+QHP_VIRTUAL_FOLDER     = doc
+QHP_CUST_FILTER_NAME   =
+QHP_CUST_FILTER_ATTRS  =
+QHP_SECT_FILTER_ATTRS  =
+QHG_LOCATION           =
+GENERATE_ECLIPSEHELP   = NO
+ECLIPSE_DOC_ID         = org.doxygen.Project
+DISABLE_INDEX          = NO
+GENERATE_TREEVIEW      = NO
+ENUM_VALUES_PER_LINE   = 4
+TREEVIEW_WIDTH         = 250
+EXT_LINKS_IN_WINDOW    = NO
+FORMULA_FONTSIZE       = 10
+FORMULA_TRANSPARENT    = YES
+USE_MATHJAX            = NO
+MATHJAX_FORMAT         = HTML-CSS
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+MATHJAX_EXTENSIONS     =
+MATHJAX_CODEFILE       =
+SEARCHENGINE           = YES
+SERVER_BASED_SEARCH    = NO
+EXTERNAL_SEARCH        = NO
+SEARCHENGINE_URL       =
+SEARCHDATA_FILE        = searchdata.xml
+EXTERNAL_SEARCH_ID     =
+EXTRA_SEARCH_MAPPINGS  =
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4
+EXTRA_PACKAGES         =
+LATEX_HEADER           =
+LATEX_FOOTER           =
+LATEX_EXTRA_STYLESHEET =
+LATEX_EXTRA_FILES      =
+PDF_HYPERLINKS         = YES
+USE_PDFLATEX           = YES
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+LATEX_SOURCE_CODE      = NO
+LATEX_BIB_STYLE        = plain
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    =
+RTF_EXTENSIONS_FILE    =
+RTF_SOURCE_CODE        = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_SUBDIR             =
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+GENERATE_DOCBOOK       = NO
+DOCBOOK_OUTPUT         = docbook
+DOCBOOK_PROGRAMLISTING = NO
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           =
+INCLUDE_FILE_PATTERNS  =
+PREDEFINED             =
+EXPAND_AS_DEFINED      =
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+TAGFILES               =
+GENERATE_TAGFILE       =
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+EXTERNAL_PAGES         = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = NO
+MSCGEN_PATH            =
+DIA_PATH               =
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = YES
+DOT_NUM_THREADS        = 0
+DOT_FONTNAME           = Helvetica
+DOT_FONTSIZE           = 10
+DOT_FONTPATH           =
+CLASS_GRAPH            = NO
+COLLABORATION_GRAPH    = NO
+GROUP_GRAPHS           = YES
+UML_LOOK               = YES
+UML_LIMIT_NUM_FIELDS   = 10
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = NO
+INCLUDED_BY_GRAPH      = NO
+CALL_GRAPH             = NO
+CALLER_GRAPH           = NO
+GRAPHICAL_HIERARCHY    = NO
+DIRECTORY_GRAPH        = NO
+DOT_IMAGE_FORMAT       = svg
+INTERACTIVE_SVG        = YES
+DOT_PATH               =
+DOTFILE_DIRS           =
+MSCFILE_DIRS           =
+DIAFILE_DIRS           =
+PLANTUML_JAR_PATH      =
+PLANTUML_INCLUDE_PATH  =
+DOT_GRAPH_MAX_NODES    = 50
+MAX_DOT_GRAPH_DEPTH    = 0
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
diff --git a/resources/3rdparty/modernjson/doc/Makefile b/resources/3rdparty/modernjson/doc/Makefile
new file mode 100755
index 000000000..dc10f1dd1
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/Makefile
@@ -0,0 +1,82 @@
+SRCDIR = ../src
+
+all: doxygen
+
+clean:
+	rm -fr me.nlohmann.json.docset html
+
+
+##########################################################################
+# example files
+##########################################################################
+
+# where are the example cpp files
+EXAMPLES = $(wildcard examples/*.cpp)
+
+# create output from a stand-alone example file
+%.output: %.cpp
+	make $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11"
+	./$(<:.cpp=) > $@
+	rm $(<:.cpp=)
+
+# compare created output with current output of the example files
+%.test: %.cpp
+	make $(<:.cpp=) CPPFLAGS="-I $(SRCDIR)" CXXFLAGS="-std=c++11"
+	./$(<:.cpp=) > $@
+	diff $@ $(<:.cpp=.output)
+	rm $(<:.cpp=) $@
+
+# create links to try the code online
+%.link: %.cpp
+	rm -fr tmp
+	mkdir tmp
+	cp $(SRCDIR)/json.hpp tmp
+	scripts/send_to_wandbox.py tmp $< > $@.tmp
+	/bin/echo -n "<a target=\"_blank\" href=\"`cat $@.tmp`\"><b>online</b></a>" > $@
+	rm -fr tmp $@.tmp
+
+# create output from all stand-alone example files
+create_output: $(EXAMPLES:.cpp=.output)
+
+create_links: $(EXAMPLES:.cpp=.link)
+
+# check output of all stand-alone example files
+check_output: $(EXAMPLES:.cpp=.test)
+
+
+##########################################################################
+# Doxygen HTML documentation
+##########################################################################
+
+# create Doxygen documentation
+doxygen: create_output create_links
+	doxygen
+	gsed -i 's@&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType &gt;@@g' html/*.html
+	gsed -i 's@&lt;&#160;ObjectType,&#160;ArrayType,&#160;StringType,&#160;BooleanType,&#160;NumberIntegerType,&#160;NumberFloatType,&#160;AllocatorType&#160;&gt;@@g' html/*.html
+	gsed -i 's@&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType &gt;@@g' html/*.html
+	gsed -i 's@< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType >@@g' html/*.html
+
+upload: clean doxygen check_output
+	cd html ; ../scripts/git-update-ghpages nlohmann/json
+	rm -fr html
+	open http://nlohmann.github.io/json/
+
+
+##########################################################################
+# docset
+##########################################################################
+
+# create docset for Dash
+docset: create_output
+	cp Doxyfile Doxyfile_docset
+	gsed -i 's/DISABLE_INDEX          = NO/DISABLE_INDEX          = YES/' Doxyfile_docset
+	gsed -i 's/SEARCHENGINE           = YES/SEARCHENGINE           = NO/' Doxyfile_docset
+	gsed -i 's@HTML_EXTRA_STYLESHEET  = css/mylayout.css@HTML_EXTRA_STYLESHEET  = css/mylayout_docset.css@' Doxyfile_docset
+	rm -fr html *.docset
+	doxygen Doxyfile_docset
+	gsed -i 's@&lt; ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberFloatType, AllocatorType &gt;@@g' html/*.html
+	gsed -i 's@&lt;&#160;ObjectType,&#160;ArrayType,&#160;StringType,&#160;BooleanType,&#160;NumberIntegerType,&#160;NumberFloatType,&#160;AllocatorType&#160;&gt;@@g' html/*.html
+	make -C html
+	mv html/*.docset .
+	gsed -i 's@<string>doxygen</string>@<string>json</string>@' me.nlohmann.json.docset/Contents/Info.plist
+	rm -fr Doxyfile_docset html
diff --git a/resources/3rdparty/modernjson/doc/css/mylayout.css b/resources/3rdparty/modernjson/doc/css/mylayout.css
new file mode 100755
index 000000000..fe20b82c5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/css/mylayout.css
@@ -0,0 +1,26 @@
+/* hide lengthy template information */
+.memtemplate, .memTemplParams {
+    display: none;
+}
+
+/* allow compiler information to wrap */
+/* https://css-tricks.com/snippets/css/make-pre-text-wrap/ */
+pre.fragment {
+    white-space: pre-wrap;       /* css-3 */
+    white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
+    white-space: -pre-wrap;      /* Opera 4-6 */
+    white-space: -o-pre-wrap;    /* Opera 7 */
+    word-wrap: break-word;       /* Internet Explorer 5.5+ */
+}
+
+td.paramname {
+    vertical-align: top;
+}
+
+.ok_green {
+    background-color: #89C35C;
+}
+
+.nok_throws {
+    background-color: #ffa500;
+}
diff --git a/resources/3rdparty/modernjson/doc/css/mylayout_docset.css b/resources/3rdparty/modernjson/doc/css/mylayout_docset.css
new file mode 100755
index 000000000..1a67e99df
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/css/mylayout_docset.css
@@ -0,0 +1,27 @@
+.memtemplate {
+    display: none;
+}
+
+.memTemplParams {
+    display: none;
+}
+
+.navtab {
+    display: none;
+}
+
+#top, .footer {
+    display: none;
+}
+
+td.paramname {
+    vertical-align: top;
+}
+
+.ok_green {
+    background-color: #89C35C;
+}
+
+.nok_throws {
+    background-color: #ffa500;
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/README.cpp b/resources/3rdparty/modernjson/doc/examples/README.cpp
new file mode 100755
index 000000000..b928e1167
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/README.cpp
@@ -0,0 +1,36 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object
+    json j =
+    {
+        {"pi", 3.141},
+        {"happy", true},
+        {"name", "Niels"},
+        {"nothing", nullptr},
+        {
+            "answer", {
+                {"everything", 42}
+            }
+        },
+        {"list", {1, 0, 2}},
+        {
+            "object", {
+                {"currency", "USD"},
+                {"value", 42.99}
+            }
+        }
+    };
+
+    // add new values
+    j["new"]["key"]["value"] = {"another", "list"};
+
+    // count elements
+    j["size"] = j.size();
+
+    // pretty print with indent of 4 spaces
+    std::cout << std::setw(4) << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/README.link b/resources/3rdparty/modernjson/doc/examples/README.link
new file mode 100755
index 000000000..a2526dc64
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/README.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/fYyscqrsQFtgUePA"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/README.output b/resources/3rdparty/modernjson/doc/examples/README.output
new file mode 100755
index 000000000..3226f7290
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/README.output
@@ -0,0 +1,27 @@
+{
+    "answer": {
+        "everything": 42
+    },
+    "happy": true,
+    "list": [
+        1,
+        0,
+        2
+    ],
+    "name": "Niels",
+    "new": {
+        "key": {
+            "value": [
+                "another",
+                "list"
+            ]
+        }
+    },
+    "nothing": null,
+    "object": {
+        "currency": "USD",
+        "value": 42.99
+    },
+    "pi": 3.141,
+    "size": 9
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/array.cpp b/resources/3rdparty/modernjson/doc/examples/array.cpp
new file mode 100755
index 000000000..3ec0a133b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/array.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON arrays
+    json j_no_init_list = json::array();
+    json j_empty_init_list = json::array({});
+    json j_nonempty_init_list = json::array({1, 2, 3, 4});
+    json j_list_of_pairs = json::array({ {"one", 1}, {"two", 2} });
+
+    // serialize the JSON arrays
+    std::cout << j_no_init_list << '\n';
+    std::cout << j_empty_init_list << '\n';
+    std::cout << j_nonempty_init_list << '\n';
+    std::cout << j_list_of_pairs << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/array.link b/resources/3rdparty/modernjson/doc/examples/array.link
new file mode 100755
index 000000000..626dcd25c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/array.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/TTykAqoDgbLzKxt3"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/array.output b/resources/3rdparty/modernjson/doc/examples/array.output
new file mode 100755
index 000000000..4e75a1b67
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/array.output
@@ -0,0 +1,4 @@
+[]
+[]
+[1,2,3,4]
+[["one",1],["two",2]]
diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.cpp b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.cpp
new file mode 100755
index 000000000..a8fc9998c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.cpp
@@ -0,0 +1,33 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON object
+    json object =
+    {
+        {"the good", "il buono"},
+        {"the bad", "il cativo"},
+        {"the ugly", "il brutto"}
+    };
+
+    // output element with key "the ugly"
+    std::cout << object.at("the ugly") << '\n';
+
+    // change element with key "the bad"
+    object.at("the bad") = "il cattivo";
+
+    // output changed array
+    std::cout << object << '\n';
+
+    // try to write at a nonexisting key
+    try
+    {
+        object.at("the fast") = "il rapido";
+    }
+    catch (std::out_of_range& e)
+    {
+        std::cout << "out of range: " << e.what() << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.link b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.link
new file mode 100755
index 000000000..f7e44b204
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/wjOUJUwo2SO7q5u8"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.output b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.output
new file mode 100755
index 000000000..79cff2d7f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type.output
@@ -0,0 +1,3 @@
+"il brutto"
+{"the bad":"il cattivo","the good":"il buono","the ugly":"il brutto"}
+out of range: key 'the fast' not found
diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.cpp
new file mode 100755
index 000000000..0686db45e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON object
+    json object =
+    {
+        {"the good", "il buono"},
+        {"the bad", "il cativo"},
+        {"the ugly", "il brutto"}
+    };
+
+    // output element with key "the ugly"
+    std::cout << object.at("the ugly") << '\n';
+
+    // try to read from a nonexisting key
+    try
+    {
+        std::cout << object.at("the fast") << '\n';
+    }
+    catch (std::out_of_range)
+    {
+        std::cout << "out of range" << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.link b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.link
new file mode 100755
index 000000000..8ba211662
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/7gGtalpuoF4xE7VN"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.output b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.output
new file mode 100755
index 000000000..b3dd11d35
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__object_t_key_type_const.output
@@ -0,0 +1,2 @@
+"il brutto"
+out of range
diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type.cpp b/resources/3rdparty/modernjson/doc/examples/at__size_type.cpp
new file mode 100755
index 000000000..e31d61d35
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__size_type.cpp
@@ -0,0 +1,28 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON array
+    json array = {"first", "2nd", "third", "fourth"};
+
+    // output element at index 2 (third element)
+    std::cout << array.at(2) << '\n';
+
+    // change element at index 1 (second element) to "second"
+    array.at(1) = "second";
+
+    // output changed array
+    std::cout << array << '\n';
+
+    // try to write beyond the array limit
+    try
+    {
+        array.at(5) = "sixth";
+    }
+    catch (std::out_of_range& e)
+    {
+        std::cout << "out of range: " << e.what() << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type.link b/resources/3rdparty/modernjson/doc/examples/at__size_type.link
new file mode 100755
index 000000000..76a409c20
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__size_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Sa6XYQS7TJ5sGG8a"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type.output b/resources/3rdparty/modernjson/doc/examples/at__size_type.output
new file mode 100755
index 000000000..d1f68bdb8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__size_type.output
@@ -0,0 +1,3 @@
+"third"
+["first","second","third","fourth"]
+out of range: array index 5 is out of range
diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.cpp
new file mode 100755
index 000000000..a8a43ed8f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.cpp
@@ -0,0 +1,22 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON array
+    json array = {"first", "2nd", "third", "fourth"};
+
+    // output element at index 2 (third element)
+    std::cout << array.at(2) << '\n';
+
+    // try to read beyond the array limit
+    try
+    {
+        std::cout << array.at(5) << '\n';
+    }
+    catch (std::out_of_range)
+    {
+        std::cout << "out of range" << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.link b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.link
new file mode 100755
index 000000000..5a1cdde95
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/PGQOjyIV7s5YnsQM"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/at__size_type_const.output b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.output
new file mode 100755
index 000000000..d0b7a66a8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at__size_type_const.output
@@ -0,0 +1,2 @@
+"third"
+out of range
diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.cpp b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.cpp
new file mode 100755
index 000000000..0665e608c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.cpp
@@ -0,0 +1,35 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json j =
+    {
+        {"number", 1}, {"string", "foo"}, {"array", {1, 2}}
+    };
+
+    // read-only access
+
+    // output element with JSON pointer "/number"
+    std::cout << j.at("/number"_json_pointer) << '\n';
+    // output element with JSON pointer "/string"
+    std::cout << j.at("/string"_json_pointer) << '\n';
+    // output element with JSON pointer "/array"
+    std::cout << j.at("/array"_json_pointer) << '\n';
+    // output element with JSON pointer "/array/1"
+    std::cout << j.at("/array/1"_json_pointer) << '\n';
+
+    // writing access
+
+    // change the string
+    j.at("/string"_json_pointer) = "bar";
+    // output the changed string
+    std::cout << j["string"] << '\n';
+
+    // change an array element
+    j.at("/array/1"_json_pointer) = 21;
+    // output the changed array
+    std::cout << j["array"] << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.link b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.link
new file mode 100755
index 000000000..7a7efa268
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/NDSjglHZIjIZ0Uxg"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer.output b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.output
new file mode 100755
index 000000000..11913c723
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at_json_pointer.output
@@ -0,0 +1,6 @@
+1
+"foo"
+[1,2]
+2
+"bar"
+[1,21]
diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.cpp b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.cpp
new file mode 100755
index 000000000..e3cfc5154
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json j =
+    {
+        {"number", 1}, {"string", "foo"}, {"array", {1, 2}}
+    };
+
+    // read-only access
+
+    // output element with JSON pointer "/number"
+    std::cout << j.at("/number"_json_pointer) << '\n';
+    // output element with JSON pointer "/string"
+    std::cout << j.at("/string"_json_pointer) << '\n';
+    // output element with JSON pointer "/array"
+    std::cout << j.at("/array"_json_pointer) << '\n';
+    // output element with JSON pointer "/array/1"
+    std::cout << j.at("/array/1"_json_pointer) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.link b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.link
new file mode 100755
index 000000000..9057e0b27
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/OuLYiMJ3pgyOHupb"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.output b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.output
new file mode 100755
index 000000000..7b9306bbc
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/at_json_pointer_const.output
@@ -0,0 +1,4 @@
+1
+"foo"
+[1,2]
+2
diff --git a/resources/3rdparty/modernjson/doc/examples/back.cpp b/resources/3rdparty/modernjson/doc/examples/back.cpp
new file mode 100755
index 000000000..70516e588
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/back.cpp
@@ -0,0 +1,28 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_object_empty(json::value_t::object);
+    json j_array = {1, 2, 4, 8, 16};
+    json j_array_empty(json::value_t::array);
+    json j_string = "Hello, world";
+
+    // call back()
+    //std::cout << j_null.back() << '\n';          // would throw
+    std::cout << j_boolean.back() << '\n';
+    std::cout << j_number_integer.back() << '\n';
+    std::cout << j_number_float.back() << '\n';
+    std::cout << j_object.back() << '\n';
+    //std::cout << j_object_empty.back() << '\n';  // undefined behavior
+    std::cout << j_array.back() << '\n';
+    //std::cout << j_array_empty.back() << '\n';   // undefined behavior
+    std::cout << j_string.back() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/back.link b/resources/3rdparty/modernjson/doc/examples/back.link
new file mode 100755
index 000000000..49d008f5b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/back.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/V7lUsd6LyndZDGoM"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/back.output b/resources/3rdparty/modernjson/doc/examples/back.output
new file mode 100755
index 000000000..159ba0fc5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/back.output
@@ -0,0 +1,6 @@
+true
+17
+23.42
+2
+16
+"Hello, world"
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json.cpp
new file mode 100755
index 000000000..0f36e4f84
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json.cpp
@@ -0,0 +1,12 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value with default null value
+    json j;
+
+    // serialize the JSON null value
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json.link b/resources/3rdparty/modernjson/doc/examples/basic_json.link
new file mode 100755
index 000000000..1625c487a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/mSAAr3GATT6ciVjV"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json.output b/resources/3rdparty/modernjson/doc/examples/basic_json.output
new file mode 100755
index 000000000..19765bd50
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json.output
@@ -0,0 +1 @@
+null
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.cpp
new file mode 100755
index 000000000..bbbf5970c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.cpp
@@ -0,0 +1,58 @@
+#include <json.hpp>
+#include <deque>
+#include <list>
+#include <forward_list>
+#include <set>
+#include <unordered_set>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array from std::vector
+    std::vector<int> c_vector {1, 2, 3, 4};
+    json j_vec(c_vector);
+
+    // create an array from std::deque
+    std::deque<double> c_deque {1.2, 2.3, 3.4, 5.6};
+    json j_deque(c_deque);
+
+    // create an array from std::list
+    std::list<bool> c_list {true, true, false, true};
+    json j_list(c_list);
+
+    // create an array from std::forward_list
+    std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};
+    json j_flist(c_flist);
+
+    // create an array from std::array
+    std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};
+    json j_array(c_array);
+
+    // create an array from std::set
+    std::set<std::string> c_set {"one", "two", "three", "four", "one"};
+    json j_set(c_set); // only one entry for "one" is used
+
+    // create an array from std::unordered_set
+    std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"};
+    json j_uset(c_uset); // only one entry for "one" is used
+
+    // create an array from std::multiset
+    std::multiset<std::string> c_mset {"one", "two", "one", "four"};
+    json j_mset(c_mset); // only one entry for "one" is used
+
+    // create an array from std::unordered_multiset
+    std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"};
+    json j_umset(c_umset); // both entries for "one" are used
+
+    // serialize the JSON arrays
+    std::cout << j_vec << '\n';
+    std::cout << j_deque << '\n';
+    std::cout << j_list << '\n';
+    std::cout << j_flist << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_set << '\n';
+    std::cout << j_uset << '\n';
+    std::cout << j_mset << '\n';
+    std::cout << j_umset << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.link
new file mode 100755
index 000000000..313ae3fed
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/InYach9gNBDvA8QR"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.output
new file mode 100755
index 000000000..428505a17
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleArrayType.output
@@ -0,0 +1,9 @@
+[1,2,3,4]
+[1.2,2.3,3.4,5.6]
+[true,true,false,true]
+[12345678909876,23456789098765,34567890987654,45678909876543]
+[1,2,3,4]
+["four","one","three","two"]
+["four","three","two","one"]
+["four","one","one","two"]
+["four","two","one","one"]
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.cpp
new file mode 100755
index 000000000..50e751d11
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create values of different integer types
+    short n42 = 42;
+    int n23 = 23;
+    long n1024 = 1024;
+    int_least32_t n17 = 17;
+    uint8_t n8 = 8;
+
+    // create JSON numbers
+    json j42(n42);
+    json j23(n23);
+    json j1024(n1024);
+    json j17(n17);
+    json j8(n8);
+
+    // serialize the JSON numbers
+    std::cout << j42 << '\n';
+    std::cout << j23 << '\n';
+    std::cout << j1024 << '\n';
+    std::cout << j17 << '\n';
+    std::cout << j8 << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.link
new file mode 100755
index 000000000..f994babb3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/VDu3HkQPf0Rv5dzH"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.output
new file mode 100755
index 000000000..c7f24d63d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleIntegerNumberType.output
@@ -0,0 +1,5 @@
+42
+23
+1024
+17
+8
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.cpp
new file mode 100755
index 000000000..6f8d3f67a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.cpp
@@ -0,0 +1,21 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create values of different floating-point types
+    float f42 = 42.23;
+    float f_nan = 1.0f / 0.0f;
+    double f23 = 23.42;
+
+    // create JSON numbers
+    json j42(f42);
+    json j_nan(f_nan);
+    json j23(f23);
+
+    // serialize the JSON numbers
+    std::cout << j42 << '\n';
+    std::cout << j_nan << '\n';
+    std::cout << j23 << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.link
new file mode 100755
index 000000000..9e08b6a64
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/BjDrTHvJMwFC3iLr"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.output
new file mode 100755
index 000000000..64bb796c3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleNumberFloatType.output
@@ -0,0 +1,3 @@
+42.2299995422363
+null
+23.42
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.cpp
new file mode 100755
index 000000000..d284b697b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.cpp
@@ -0,0 +1,41 @@
+#include <json.hpp>
+#include <unordered_map>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an object from std::map
+    std::map<std::string, int> c_map
+    {
+        {"one", 1}, {"two", 2}, {"three", 3}
+    };
+    json j_map(c_map);
+
+    // create an object from std::unordered_map
+    std::unordered_map<const char*, double> c_umap
+    {
+        {"one", 1.2}, {"two", 2.3}, {"three", 3.4}
+    };
+    json j_umap(c_umap);
+
+    // create an object from std::multimap
+    std::multimap<std::string, bool> c_mmap
+    {
+        {"one", true}, {"two", true}, {"three", false}, {"three", true}
+    };
+    json j_mmap(c_mmap); // only one entry for key "three" is used
+
+    // create an object from std::unordered_multimap
+    std::unordered_multimap<std::string, bool> c_ummap
+    {
+        {"one", true}, {"two", true}, {"three", false}, {"three", true}
+    };
+    json j_ummap(c_ummap); // only one entry for key "three" is used
+
+    // serialize the JSON objects
+    std::cout << j_map << '\n';
+    std::cout << j_umap << '\n';
+    std::cout << j_mmap << '\n';
+    std::cout << j_ummap << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.link
new file mode 100755
index 000000000..6d65b17a4
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ZJz4SFD4Iuy8OS4T"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.output
new file mode 100755
index 000000000..c70f71848
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleObjectType.output
@@ -0,0 +1,4 @@
+{"one":1,"three":3,"two":2}
+{"one":1.2,"three":3.4,"two":2.3}
+{"one":true,"three":false,"two":true}
+{"one":true,"three":false,"two":true}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.cpp
new file mode 100755
index 000000000..a0f3b4f67
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a string value
+    std::string s = "The quick brown fox jumps over the lazy dog.";
+
+    // create a JSON string value
+    json j = s;
+
+    // serialize the JSON string
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.link b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.link
new file mode 100755
index 000000000..2131a163b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Fe1WNG7eJRaWYMM4"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.output b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.output
new file mode 100755
index 000000000..1316dd98a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__CompatibleStringType.output
@@ -0,0 +1 @@
+"The quick brown fox jumps over the lazy dog."
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.cpp
new file mode 100755
index 000000000..86a0faf8c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.cpp
@@ -0,0 +1,21 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_array = {"alpha", "bravo", "charly", "delta", "easy"};
+    json j_number = 42;
+    json j_object = {{"one", "eins"}, {"two", "zwei"}};
+
+    // create copies using iterators
+    json j_array_range(j_array.begin() + 1, j_array.end() - 2);
+    json j_number_range(j_number.begin(), j_number.end());
+    json j_object_range(j_object.begin(), j_object.find("two"));
+
+    // serialize the values
+    std::cout << j_array_range << '\n';
+    std::cout << j_number_range << '\n';
+    std::cout << j_object_range << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.link b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.link
new file mode 100755
index 000000000..3ce3686ad
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Ulv0RYN6QoJ6ECVR"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.output b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.output
new file mode 100755
index 000000000..367142004
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__InputIt_InputIt.output
@@ -0,0 +1,3 @@
+["bravo","charly"]
+42
+{"one":"eins"}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.cpp
new file mode 100755
index 000000000..1bb6931b2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array_t value
+    json::array_t value = {"one", "two", 3, 4.5, false};
+
+    // create a JSON array from the value
+    json j(value);
+
+    // serialize the JSON array
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.link
new file mode 100755
index 000000000..53322832d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/T5FlYwVpQ1oXBuBH"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.output
new file mode 100755
index 000000000..d379a756e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__array_t.output
@@ -0,0 +1 @@
+["one","two",3,4.5,false]
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.cpp
new file mode 100755
index 000000000..28f1fd072
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.cpp
@@ -0,0 +1,16 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json j1 = {"one", "two", 3, 4.5, false};
+
+    // create a copy
+    json j2(j1);
+
+    // serialize the JSON array
+    std::cout << j1 << " = " << j2 << '\n';
+    std::cout << std::boolalpha << (j1 == j2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.link b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.link
new file mode 100755
index 000000000..c3109d16e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/vPBv5smAPKUko4Qo"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.output b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.output
new file mode 100755
index 000000000..ee93a41ca
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__basic_json.output
@@ -0,0 +1,2 @@
+["one","two",3,4.5,false] = ["one","two",3,4.5,false]
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.cpp
new file mode 100755
index 000000000..38f014e01
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.cpp
@@ -0,0 +1,14 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create boolean values
+    json j_truth = true;
+    json j_falsity = false;
+
+    // serialize the JSON booleans
+    std::cout << j_truth << '\n';
+    std::cout << j_falsity << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.link
new file mode 100755
index 000000000..9fe211e42
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/saCwetmQZaB8tQ24"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.output
new file mode 100755
index 000000000..da29283aa
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__boolean_t.output
@@ -0,0 +1,2 @@
+true
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.cpp
new file mode 100755
index 000000000..7e38544bf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // an anonymous enum
+    enum { t = 17 };
+
+    // create a JSON number from the enum
+    json j(t);
+
+    // serialize the JSON numbers
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.link b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.link
new file mode 100755
index 000000000..73d286286
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/BzGFT02b2KTR6z2B"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.output b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.output
new file mode 100755
index 000000000..98d9bcb75
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__const_int.output
@@ -0,0 +1 @@
+17
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.cpp
new file mode 100755
index 000000000..9e9c2eccf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.cpp
@@ -0,0 +1,17 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json a = 23;
+    json b = 42;
+
+    // copy-assign a to b
+    b = a;
+
+    // serialize the JSON arrays
+    std::cout << a << '\n';
+    std::cout << b << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.link b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.link
new file mode 100755
index 000000000..96679cf45
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Ib1A0jrFXwYhf0eA"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.output b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.output
new file mode 100755
index 000000000..c1eee2105
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__copyassignment.output
@@ -0,0 +1,2 @@
+23
+23
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.cpp
new file mode 100755
index 000000000..71f16ed34
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.cpp
@@ -0,0 +1,55 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // a JSON text
+    auto text = R"(
+    {
+        "Image": {
+            "Width":  800,
+            "Height": 600,
+            "Title":  "View from 15th Floor",
+            "Thumbnail": {
+                "Url":    "http://www.example.com/image/481989943",
+                "Height": 125,
+                "Width":  100
+            },
+            "Animated" : false,
+            "IDs": [116, 943, 234, 38793]
+        }
+    }
+    )";
+
+    // fill a stream with JSON text
+    std::stringstream ss;
+    ss << text;
+
+    // create JSON from stream
+    json j_complete(ss);
+    std::cout << std::setw(4) << j_complete << "\n\n";
+
+
+    // define parser callback
+    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)
+    {
+        // skip object elements with key "Thumbnail"
+        if (event == json::parse_event_t::key and parsed == json("Thumbnail"))
+        {
+            return false;
+        }
+        else
+        {
+            return true;
+        }
+    };
+
+    // fill a stream with JSON text
+    ss.clear();
+    ss << text;
+
+    // create JSON from stream (with callback)
+    json j_filtered(ss, cb);
+    std::cout << std::setw(4) << j_filtered << '\n';
+}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.link b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.link
new file mode 100755
index 000000000..20d1033c3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/VzSqLszbnoWE92dD"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__istream.output b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.output
new file mode 100755
index 000000000..279a7ff74
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__istream.output
@@ -0,0 +1,34 @@
+{
+    "Image": {
+        "Animated": false,
+        "Height": 600,
+        "IDs": [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Thumbnail": {
+            "Height": 125,
+            "Url": "http://www.example.com/image/481989943",
+            "Width": 100
+        },
+        "Title": "View from 15th Floor",
+        "Width": 800
+    }
+}
+
+{
+    "Image": {
+        "Animated": false,
+        "Height": 600,
+        "IDs": [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Title": "View from 15th Floor",
+        "Width": 800
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.cpp
new file mode 100755
index 000000000..8734dff15
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.cpp
@@ -0,0 +1,20 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_empty_init_list = json({});
+    json j_object = { {"one", 1}, {"two", 2} };
+    json j_array = {1, 2, 3, 4};
+    json j_nested_object = { {"one", {1}}, {"two", {1, 2}} };
+    json j_nested_array = { {{1}, "one"}, {{1, 2}, "two"} };
+
+    // serialize the JSON value
+    std::cout << j_empty_init_list << '\n';
+    std::cout << j_object << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_nested_object << '\n';
+    std::cout << j_nested_array << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.link
new file mode 100755
index 000000000..5eca20502
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/r7SIosyJCePZZvqh"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.output
new file mode 100755
index 000000000..d38f5b842
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__list_init_t.output
@@ -0,0 +1,5 @@
+{}
+{"one":1,"two":2}
+[1,2,3,4]
+{"one":[1],"two":[1,2]}
+[[[1],"one"],[[1,2],"two"]]
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.cpp
new file mode 100755
index 000000000..e470c95b1
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.cpp
@@ -0,0 +1,16 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json a = 23;
+
+    // move contents of a to b
+    json b(std::move(a));
+
+    // serialize the JSON arrays
+    std::cout << a << '\n';
+    std::cout << b << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.link b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.link
new file mode 100755
index 000000000..88002bbd8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/y7ngrkT74SN0fFWG"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.output b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.output
new file mode 100755
index 000000000..911b5b1ac
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__moveconstructor.output
@@ -0,0 +1,2 @@
+null
+23
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.cpp
new file mode 100755
index 000000000..426afabc6
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.cpp
@@ -0,0 +1,12 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON null value
+    json j(nullptr);
+
+    // serialize the JSON null value
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.link
new file mode 100755
index 000000000..bb26af46d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Y7B27Mtrcp64PI9l"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.output
new file mode 100755
index 000000000..19765bd50
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__nullptr_t.output
@@ -0,0 +1 @@
+null
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.cpp
new file mode 100755
index 000000000..92533b7d0
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.cpp
@@ -0,0 +1,21 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create values of different floating-point types
+    json::number_float_t v_ok = 3.141592653589793;
+    json::number_float_t v_nan = NAN;
+    json::number_float_t v_infinity = INFINITY;
+
+    // create JSON numbers
+    json j_ok(v_ok);
+    json j_nan(v_nan);
+    json j_infinity(v_infinity);
+
+    // serialize the JSON numbers
+    std::cout << j_ok << '\n';
+    std::cout << j_nan << '\n';
+    std::cout << j_infinity << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.link
new file mode 100755
index 000000000..a7c6b6074
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/rsIsQEvaeJEaJx9c"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.output
new file mode 100755
index 000000000..964a7b1f2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__number_float_t.output
@@ -0,0 +1,3 @@
+3.14159265358979
+null
+null
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.cpp
new file mode 100755
index 000000000..1078f360e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.cpp
@@ -0,0 +1,14 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON number from number_integer_t
+    json::number_integer_t value = 42;
+
+    json j(value);
+
+    // serialize the JSON numbers
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.link
new file mode 100755
index 000000000..764aa649d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/3aV9OONj8OfHPXBV"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.output
new file mode 100755
index 000000000..d81cc0710
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__number_integer_t.output
@@ -0,0 +1 @@
+42
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.cpp
new file mode 100755
index 000000000..39e2fcc0c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an object_t value
+    json::object_t value = { {"one", 1}, {"two", 2} };
+
+    // create a JSON object from the value
+    json j(value);
+
+    // serialize the JSON object
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.link
new file mode 100755
index 000000000..f6bad665a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/YhDZ1WhldMdwBthI"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.output
new file mode 100755
index 000000000..62376d83e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__object_t.output
@@ -0,0 +1 @@
+{"one":1,"two":2}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.cpp
new file mode 100755
index 000000000..15f8c0d5c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.cpp
@@ -0,0 +1,17 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array by creating copies of a JSON value
+    json value = "Hello";
+    json array_0 = json(0, value);
+    json array_1 = json(1, value);
+    json array_5 = json(5, value);
+
+    // serialize the JSON arrays
+    std::cout << array_0 << '\n';
+    std::cout << array_1 << '\n';
+    std::cout << array_5 << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.link b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.link
new file mode 100755
index 000000000..6ae76b6f2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/OTJ7W8jL7z9qQlkL"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.output b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.output
new file mode 100755
index 000000000..f4c59b348
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__size_type_basic_json.output
@@ -0,0 +1,3 @@
+[]
+["Hello"]
+["Hello","Hello","Hello","Hello","Hello"]
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.cpp
new file mode 100755
index 000000000..3205f623d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an string_t value
+    json::string_t value = "The quick brown fox jumps over the lazy doc";
+
+    // create a JSON string from the value
+    json j(value);
+
+    // serialize the JSON array
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.link
new file mode 100755
index 000000000..a5051e582
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ZRv2SsnLGdLzBhFO"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.output
new file mode 100755
index 000000000..89990044c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t.output
@@ -0,0 +1 @@
+"The quick brown fox jumps over the lazy doc"
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.cpp
new file mode 100755
index 000000000..5379ca064
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.cpp
@@ -0,0 +1,12 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON string directly from a string literal
+    json j("The quick brown fox jumps over the lazy doc");
+
+    // serialize the JSON array
+    std::cout << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.link b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.link
new file mode 100755
index 000000000..4646b5b2a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/xttjHgaxVqpfriXz"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.output b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.output
new file mode 100755
index 000000000..89990044c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__string_t_value_type.output
@@ -0,0 +1 @@
+"The quick brown fox jumps over the lazy doc"
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__value.cpp
new file mode 100755
index 000000000..dfb91d840
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__value.cpp
@@ -0,0 +1,29 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object with different entry types
+    json j =
+    {
+        {"integer", 1},
+        {"floating", 42.23},
+        {"string", "hello world"},
+        {"boolean", true},
+        {"object", {{"key1", 1}, {"key2", 2}}},
+        {"array", {1, 2, 3}}
+    };
+
+    // access existing values
+    int v_integer = j.value("integer", 0);
+    double v_floating = j.value("floating", 47.11);
+
+    // access nonexisting values and rely on default value
+    std::string v_string = j.value("nonexisting", "oops");
+    bool v_boolean = j.value("nonexisting", false);
+
+    // output values
+    std::cout << std::boolalpha << v_integer << " " << v_floating
+              << " " << v_string << " " << v_boolean << "\n";
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value.link b/resources/3rdparty/modernjson/doc/examples/basic_json__value.link
new file mode 100755
index 000000000..452a1fe4f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__value.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ejZBeBBPEBmYsPFz"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value.output b/resources/3rdparty/modernjson/doc/examples/basic_json__value.output
new file mode 100755
index 000000000..dfc40e58c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__value.output
@@ -0,0 +1 @@
+1 42.23 oops false
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.cpp b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.cpp
new file mode 100755
index 000000000..faf5dfaec
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create the different JSON values with default values
+    json j_null(json::value_t::null);
+    json j_boolean(json::value_t::boolean);
+    json j_number_integer(json::value_t::number_integer);
+    json j_number_float(json::value_t::number_float);
+    json j_object(json::value_t::object);
+    json j_array(json::value_t::array);
+    json j_string(json::value_t::string);
+
+    // serialize the JSON values
+    std::cout << j_null << '\n';
+    std::cout << j_boolean << '\n';
+    std::cout << j_number_integer << '\n';
+    std::cout << j_number_float << '\n';
+    std::cout << j_object << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_string << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.link b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.link
new file mode 100755
index 000000000..774aaa255
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/fkrZveuulCw95PXF"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.output b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.output
new file mode 100755
index 000000000..ea542caeb
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/basic_json__value_t.output
@@ -0,0 +1,7 @@
+null
+false
+0
+0.0
+{}
+[]
+""
diff --git a/resources/3rdparty/modernjson/doc/examples/begin.cpp b/resources/3rdparty/modernjson/doc/examples/begin.cpp
new file mode 100755
index 000000000..46c17218d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/begin.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get am iterator to the first element
+    json::iterator it = array.begin();
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/begin.link b/resources/3rdparty/modernjson/doc/examples/begin.link
new file mode 100755
index 000000000..6a76a5887
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/begin.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/9HE53y23Ldu1xzQU"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/begin.output b/resources/3rdparty/modernjson/doc/examples/begin.output
new file mode 100755
index 000000000..d00491fd7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/begin.output
@@ -0,0 +1 @@
+1
diff --git a/resources/3rdparty/modernjson/doc/examples/cbegin.cpp b/resources/3rdparty/modernjson/doc/examples/cbegin.cpp
new file mode 100755
index 000000000..fe45e49b0
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/cbegin.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    const json array = {1, 2, 3, 4, 5};
+
+    // get am iterator to the first element
+    json::const_iterator it = array.cbegin();
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/cbegin.link b/resources/3rdparty/modernjson/doc/examples/cbegin.link
new file mode 100755
index 000000000..83c75dd3c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/cbegin.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/8rGgyscFrA1fCiIn"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/cbegin.output b/resources/3rdparty/modernjson/doc/examples/cbegin.output
new file mode 100755
index 000000000..d00491fd7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/cbegin.output
@@ -0,0 +1 @@
+1
diff --git a/resources/3rdparty/modernjson/doc/examples/cend.cpp b/resources/3rdparty/modernjson/doc/examples/cend.cpp
new file mode 100755
index 000000000..a140fb0b5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/cend.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get am iterator to one past the last element
+    json::const_iterator it = array.cend();
+
+    // decrement the iterator to point to the last element
+    --it;
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/cend.link b/resources/3rdparty/modernjson/doc/examples/cend.link
new file mode 100755
index 000000000..acca215d2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/cend.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Zek4QM4kvKLUywGC"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/cend.output b/resources/3rdparty/modernjson/doc/examples/cend.output
new file mode 100755
index 000000000..7ed6ff82d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/cend.output
@@ -0,0 +1 @@
+5
diff --git a/resources/3rdparty/modernjson/doc/examples/clear.cpp b/resources/3rdparty/modernjson/doc/examples/clear.cpp
new file mode 100755
index 000000000..60016753b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/clear.cpp
@@ -0,0 +1,33 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call clear()
+    j_null.clear();
+    j_boolean.clear();
+    j_number_integer.clear();
+    j_number_float.clear();
+    j_object.clear();
+    j_array.clear();
+    j_string.clear();
+
+    // serialize the cleared values()
+    std::cout << j_null << '\n';
+    std::cout << j_boolean << '\n';
+    std::cout << j_number_integer << '\n';
+    std::cout << j_number_float << '\n';
+    std::cout << j_object << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_string << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/clear.link b/resources/3rdparty/modernjson/doc/examples/clear.link
new file mode 100755
index 000000000..8defa668d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/clear.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/D6RJMyjkibQmKUC4"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/clear.output b/resources/3rdparty/modernjson/doc/examples/clear.output
new file mode 100755
index 000000000..ea542caeb
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/clear.output
@@ -0,0 +1,7 @@
+null
+false
+0
+0.0
+{}
+[]
+""
diff --git a/resources/3rdparty/modernjson/doc/examples/count.cpp b/resources/3rdparty/modernjson/doc/examples/count.cpp
new file mode 100755
index 000000000..a805eeb6a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/count.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object
+    json j_object = {{"one", 1}, {"two", 2}};
+
+    // call find
+    auto count_two = j_object.count("two");
+    auto count_three = j_object.count("three");
+
+    // print values
+    std::cout << std::boolalpha;
+    std::cout << "number of elements with key \"two\": " << count_two << '\n';
+    std::cout << "number of elements with key \"three\": " << count_three << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/count.link b/resources/3rdparty/modernjson/doc/examples/count.link
new file mode 100755
index 000000000..e13caf363
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/count.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/GFOaqTzQCZeTQk3R"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/count.output b/resources/3rdparty/modernjson/doc/examples/count.output
new file mode 100755
index 000000000..d816fcb24
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/count.output
@@ -0,0 +1,2 @@
+number of elements with key "two": 1
+number of elements with key "three": 0
diff --git a/resources/3rdparty/modernjson/doc/examples/crbegin.cpp b/resources/3rdparty/modernjson/doc/examples/crbegin.cpp
new file mode 100755
index 000000000..4ea71d973
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/crbegin.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get an iterator to the reverse-beginning
+    json::const_reverse_iterator it = array.crbegin();
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/crbegin.link b/resources/3rdparty/modernjson/doc/examples/crbegin.link
new file mode 100755
index 000000000..27de8eb89
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/crbegin.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ZVFFzaSjRzx81O7o"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/crbegin.output b/resources/3rdparty/modernjson/doc/examples/crbegin.output
new file mode 100755
index 000000000..7ed6ff82d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/crbegin.output
@@ -0,0 +1 @@
+5
diff --git a/resources/3rdparty/modernjson/doc/examples/crend.cpp b/resources/3rdparty/modernjson/doc/examples/crend.cpp
new file mode 100755
index 000000000..079eeea6c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/crend.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get an iterator to the reverse-end
+    json::const_reverse_iterator it = array.crend();
+
+    // increment the iterator to point to the first element
+    --it;
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/crend.link b/resources/3rdparty/modernjson/doc/examples/crend.link
new file mode 100755
index 000000000..c678236d9
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/crend.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/EmWt4iCaVbSmTxUs"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/crend.output b/resources/3rdparty/modernjson/doc/examples/crend.output
new file mode 100755
index 000000000..d00491fd7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/crend.output
@@ -0,0 +1 @@
+1
diff --git a/resources/3rdparty/modernjson/doc/examples/diff.cpp b/resources/3rdparty/modernjson/doc/examples/diff.cpp
new file mode 100755
index 000000000..d81a58dbd
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/diff.cpp
@@ -0,0 +1,34 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // the source document
+    json source = R"(
+        {
+            "baz": "qux",
+            "foo": "bar"
+        }
+    )"_json;
+
+    // the target document
+    json target = R"(
+        {
+            "baz": "boo",
+            "hello": [
+                "world"
+            ]
+        }
+    )"_json;
+
+    // create the patch
+    json patch = json::diff(source, target);
+
+    // roundtrip
+    json patched_source = source.patch(patch);
+
+    // output patch and roundtrip result
+    std::cout << std::setw(4) << patch << "\n\n"
+              << std::setw(4) << patched_source << std::endl;
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/diff.link b/resources/3rdparty/modernjson/doc/examples/diff.link
new file mode 100755
index 000000000..c3e3fa4d7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/diff.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/hicmeOK39tBxaluM"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/diff.output b/resources/3rdparty/modernjson/doc/examples/diff.output
new file mode 100755
index 000000000..7dc79791f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/diff.output
@@ -0,0 +1,25 @@
+[
+    {
+        "op": "replace",
+        "path": "/baz",
+        "value": "boo"
+    },
+    {
+        "op": "remove",
+        "path": "/foo"
+    },
+    {
+        "op": "add",
+        "path": "/hello",
+        "value": [
+            "world"
+        ]
+    }
+]
+
+{
+    "baz": "boo",
+    "hello": [
+        "world"
+    ]
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/dump.cpp b/resources/3rdparty/modernjson/doc/examples/dump.cpp
new file mode 100755
index 000000000..3145d4539
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/dump.cpp
@@ -0,0 +1,20 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+
+    // call dump()
+    std::cout << j_object.dump() << "\n\n";
+    std::cout << j_object.dump(-1) << "\n\n";
+    std::cout << j_object.dump(0) << "\n\n";
+    std::cout << j_object.dump(4) << "\n\n";
+    std::cout << j_array.dump() << "\n\n";
+    std::cout << j_array.dump(-1) << "\n\n";
+    std::cout << j_array.dump(0) << "\n\n";
+    std::cout << j_array.dump(4) << "\n\n";
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/dump.link b/resources/3rdparty/modernjson/doc/examples/dump.link
new file mode 100755
index 000000000..35ef46533
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/dump.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/PjtHNsrmmgEeCFVp"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/dump.output b/resources/3rdparty/modernjson/doc/examples/dump.output
new file mode 100755
index 000000000..9b462eabe
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/dump.output
@@ -0,0 +1,34 @@
+{"one":1,"two":2}
+
+{"one":1,"two":2}
+
+{
+"one": 1,
+"two": 2
+}
+
+{
+    "one": 1,
+    "two": 2
+}
+
+[1,2,4,8,16]
+
+[1,2,4,8,16]
+
+[
+1,
+2,
+4,
+8,
+16
+]
+
+[
+    1,
+    2,
+    4,
+    8,
+    16
+]
+
diff --git a/resources/3rdparty/modernjson/doc/examples/empty.cpp b/resources/3rdparty/modernjson/doc/examples/empty.cpp
new file mode 100755
index 000000000..2edda6dc9
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/empty.cpp
@@ -0,0 +1,29 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_object_empty(json::value_t::object);
+    json j_array = {1, 2, 4, 8, 16};
+    json j_array_empty(json::value_t::array);
+    json j_string = "Hello, world";
+
+    // call empty()
+    std::cout << std::boolalpha;
+    std::cout << j_null.empty() << '\n';
+    std::cout << j_boolean.empty() << '\n';
+    std::cout << j_number_integer.empty() << '\n';
+    std::cout << j_number_float.empty() << '\n';
+    std::cout << j_object.empty() << '\n';
+    std::cout << j_object_empty.empty() << '\n';
+    std::cout << j_array.empty() << '\n';
+    std::cout << j_array_empty.empty() << '\n';
+    std::cout << j_string.empty() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/empty.link b/resources/3rdparty/modernjson/doc/examples/empty.link
new file mode 100755
index 000000000..fd22770cf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/empty.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/daiGc21CilMsU7ln"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/empty.output b/resources/3rdparty/modernjson/doc/examples/empty.output
new file mode 100755
index 000000000..d071a3980
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/empty.output
@@ -0,0 +1,9 @@
+true
+false
+false
+false
+false
+true
+false
+true
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/end.cpp b/resources/3rdparty/modernjson/doc/examples/end.cpp
new file mode 100755
index 000000000..848623a4d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/end.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get am iterator to one past the last element
+    json::iterator it = array.end();
+
+    // decrement the iterator to point to the last element
+    --it;
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/end.link b/resources/3rdparty/modernjson/doc/examples/end.link
new file mode 100755
index 000000000..260696d5a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/end.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/7QIAVTX9fvOkHUrH"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/end.output b/resources/3rdparty/modernjson/doc/examples/end.output
new file mode 100755
index 000000000..7ed6ff82d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/end.output
@@ -0,0 +1 @@
+5
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.cpp b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.cpp
new file mode 100755
index 000000000..5743c3274
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.cpp
@@ -0,0 +1,30 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call erase
+    j_boolean.erase(j_boolean.begin());
+    j_number_integer.erase(j_number_integer.begin());
+    j_number_float.erase(j_number_float.begin());
+    j_object.erase(j_object.find("two"));
+    j_array.erase(j_array.begin() + 2);
+    j_string.erase(j_string.begin());
+
+    // print values
+    std::cout << j_boolean << '\n';
+    std::cout << j_number_integer << '\n';
+    std::cout << j_number_float << '\n';
+    std::cout << j_object << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_string << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.link b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.link
new file mode 100755
index 000000000..b523066ed
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/DlwzEWGJkvmikaNi"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.output b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.output
new file mode 100755
index 000000000..e392f8eaf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType.output
@@ -0,0 +1,6 @@
+null
+null
+null
+{"one":1}
+[1,2,8,16]
+null
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.cpp b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.cpp
new file mode 100755
index 000000000..9250c3ca0
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.cpp
@@ -0,0 +1,30 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call erase
+    j_boolean.erase(j_boolean.begin(), j_boolean.end());
+    j_number_integer.erase(j_number_integer.begin(), j_number_integer.end());
+    j_number_float.erase(j_number_float.begin(), j_number_float.end());
+    j_object.erase(j_object.find("two"), j_object.end());
+    j_array.erase(j_array.begin() + 1, j_array.begin() + 3);
+    j_string.erase(j_string.begin(), j_string.end());
+
+    // print values
+    std::cout << j_boolean << '\n';
+    std::cout << j_number_integer << '\n';
+    std::cout << j_number_float << '\n';
+    std::cout << j_object << '\n';
+    std::cout << j_array << '\n';
+    std::cout << j_string << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.link b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.link
new file mode 100755
index 000000000..b7f3da724
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ds4TH3IAYVLCGyIz"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.output b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.output
new file mode 100755
index 000000000..5d01f0089
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__IteratorType_IteratorType.output
@@ -0,0 +1,6 @@
+null
+null
+null
+{"one":1}
+[1,8,16]
+null
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__key_type.cpp b/resources/3rdparty/modernjson/doc/examples/erase__key_type.cpp
new file mode 100755
index 000000000..ca0962aaa
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__key_type.cpp
@@ -0,0 +1,17 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object
+    json j_object = {{"one", 1}, {"two", 2}};
+
+    // call erase
+    auto count_one = j_object.erase("one");
+    auto count_three = j_object.erase("three");
+
+    // print values
+    std::cout << j_object << '\n';
+    std::cout << count_one << " " << count_three << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__key_type.link b/resources/3rdparty/modernjson/doc/examples/erase__key_type.link
new file mode 100755
index 000000000..bef018cab
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__key_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/h6FfQqA0UIqdG6ca"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__key_type.output b/resources/3rdparty/modernjson/doc/examples/erase__key_type.output
new file mode 100755
index 000000000..28d79391a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__key_type.output
@@ -0,0 +1,2 @@
+{"two":2}
+1 0
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__size_type.cpp b/resources/3rdparty/modernjson/doc/examples/erase__size_type.cpp
new file mode 100755
index 000000000..7df3d0625
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__size_type.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json j_array = {0, 1, 2, 3, 4, 5};
+
+    // call erase
+    j_array.erase(2);
+
+    // print values
+    std::cout << j_array << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__size_type.link b/resources/3rdparty/modernjson/doc/examples/erase__size_type.link
new file mode 100755
index 000000000..fe2d560d5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__size_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Fg7ut6CV4YBCsDbQ"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/erase__size_type.output b/resources/3rdparty/modernjson/doc/examples/erase__size_type.output
new file mode 100755
index 000000000..4ad74061f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/erase__size_type.output
@@ -0,0 +1 @@
+[0,1,3,4,5]
diff --git a/resources/3rdparty/modernjson/doc/examples/find__key_type.cpp b/resources/3rdparty/modernjson/doc/examples/find__key_type.cpp
new file mode 100755
index 000000000..79eed509a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/find__key_type.cpp
@@ -0,0 +1,19 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object
+    json j_object = {{"one", 1}, {"two", 2}};
+
+    // call find
+    auto it_two = j_object.find("two");
+    auto it_three = j_object.find("three");
+
+    // print values
+    std::cout << std::boolalpha;
+    std::cout << "\"two\" was found: " << (it_two != j_object.end()) << '\n';
+    std::cout << "value at key \"two\": " << *it_two << '\n';
+    std::cout << "\"three\" was found: " << (it_three != j_object.end()) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/find__key_type.link b/resources/3rdparty/modernjson/doc/examples/find__key_type.link
new file mode 100755
index 000000000..2bc0512d1
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/find__key_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/BfABW7AMVl4xqeoJ"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/find__key_type.output b/resources/3rdparty/modernjson/doc/examples/find__key_type.output
new file mode 100755
index 000000000..509bb42d5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/find__key_type.output
@@ -0,0 +1,3 @@
+"two" was found: true
+value at key "two": 2
+"three" was found: false
diff --git a/resources/3rdparty/modernjson/doc/examples/flatten.cpp b/resources/3rdparty/modernjson/doc/examples/flatten.cpp
new file mode 100755
index 000000000..ace53a21b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/flatten.cpp
@@ -0,0 +1,30 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON value
+    json j =
+    {
+        {"pi", 3.141},
+        {"happy", true},
+        {"name", "Niels"},
+        {"nothing", nullptr},
+        {
+            "answer", {
+                {"everything", 42}
+            }
+        },
+        {"list", {1, 0, 2}},
+        {
+            "object", {
+                {"currency", "USD"},
+                {"value", 42.99}
+            }
+        }
+    };
+
+    // call flatten()
+    std::cout << std::setw(4) << j.flatten() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/flatten.link b/resources/3rdparty/modernjson/doc/examples/flatten.link
new file mode 100755
index 000000000..50d3841f3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/flatten.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/cdQa6jE0N2LyqFJe"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/flatten.output b/resources/3rdparty/modernjson/doc/examples/flatten.output
new file mode 100755
index 000000000..33bd4c4b9
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/flatten.output
@@ -0,0 +1,12 @@
+{
+    "/answer/everything": 42,
+    "/happy": true,
+    "/list/0": 1,
+    "/list/1": 0,
+    "/list/2": 2,
+    "/name": "Niels",
+    "/nothing": null,
+    "/object/currency": "USD",
+    "/object/value": 42.99,
+    "/pi": 3.141
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/front.cpp b/resources/3rdparty/modernjson/doc/examples/front.cpp
new file mode 100755
index 000000000..7c5a2ae99
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/front.cpp
@@ -0,0 +1,28 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_object_empty(json::value_t::object);
+    json j_array = {1, 2, 4, 8, 16};
+    json j_array_empty(json::value_t::array);
+    json j_string = "Hello, world";
+
+    // call front()
+    //std::cout << j_null.front() << '\n';          // would throw
+    std::cout << j_boolean.front() << '\n';
+    std::cout << j_number_integer.front() << '\n';
+    std::cout << j_number_float.front() << '\n';
+    std::cout << j_object.front() << '\n';
+    //std::cout << j_object_empty.front() << '\n';  // undefined behavior
+    std::cout << j_array.front() << '\n';
+    //std::cout << j_array_empty.front() << '\n';   // undefined behavior
+    std::cout << j_string.front() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/front.link b/resources/3rdparty/modernjson/doc/examples/front.link
new file mode 100755
index 000000000..22e99c7dd
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/front.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/HheeceJWHngZFhu2"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/front.output b/resources/3rdparty/modernjson/doc/examples/front.output
new file mode 100755
index 000000000..6301db533
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/front.output
@@ -0,0 +1,6 @@
+true
+17
+23.42
+1
+1
+"Hello, world"
diff --git a/resources/3rdparty/modernjson/doc/examples/get__PointerType.cpp b/resources/3rdparty/modernjson/doc/examples/get__PointerType.cpp
new file mode 100755
index 000000000..7c15c5aa3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get__PointerType.cpp
@@ -0,0 +1,20 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON number
+    json value = 17;
+
+    // explicitly getting pointers
+    auto p1 = value.get<const json::number_integer_t*>();
+    auto p2 = value.get<json::number_integer_t*>();
+    auto p3 = value.get<json::number_integer_t* const>();
+    auto p4 = value.get<const json::number_integer_t* const>();
+    auto p5 = value.get<json::number_float_t*>();
+
+    // print the pointees
+    std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\n';
+    std::cout << std::boolalpha << (p5 == nullptr) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/get__PointerType.link b/resources/3rdparty/modernjson/doc/examples/get__PointerType.link
new file mode 100755
index 000000000..a811b26df
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get__PointerType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/iunIxpTIIy6vcWJZ"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/get__PointerType.output b/resources/3rdparty/modernjson/doc/examples/get__PointerType.output
new file mode 100755
index 000000000..a15dd774e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get__PointerType.output
@@ -0,0 +1,2 @@
+17 17 17 17
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.cpp b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.cpp
new file mode 100755
index 000000000..40a96184b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.cpp
@@ -0,0 +1,49 @@
+#include <json.hpp>
+#include <unordered_map>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value with different types
+    json json_types =
+    {
+        {"boolean", true},
+        {
+            "number", {
+                {"integer", 42},
+                {"floating-point", 17.23}
+            }
+        },
+        {"string", "Hello, world!"},
+        {"array", {1, 2, 3, 4, 5}},
+        {"null", nullptr}
+    };
+
+    // use explicit conversions
+    auto v1 = json_types["boolean"].get<bool>();
+    auto v2 = json_types["number"]["integer"].get<int>();
+    auto v3 = json_types["number"]["integer"].get<short>();
+    auto v4 = json_types["number"]["floating-point"].get<float>();
+    auto v5 = json_types["number"]["floating-point"].get<int>();
+    auto v6 = json_types["string"].get<std::string>();
+    auto v7 = json_types["array"].get<std::vector<short>>();
+    auto v8 = json_types.get<std::unordered_map<std::string, json>>();
+
+    // print the conversion results
+    std::cout << v1 << '\n';
+    std::cout << v2 << ' ' << v3 << '\n';
+    std::cout << v4 << ' ' << v5 << '\n';
+    std::cout << v6 << '\n';
+
+    for (auto i : v7)
+    {
+        std::cout << i << ' ';
+    }
+    std::cout << "\n\n";
+
+    for (auto i : v8)
+    {
+        std::cout << i.first << ": " << i.second << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.link b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.link
new file mode 100755
index 000000000..fce774b2b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/7k9830oUxfGndWzT"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.output b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.output
new file mode 100755
index 000000000..5cd9cd3aa
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get__ValueType_const.output
@@ -0,0 +1,11 @@
+1
+42 42
+17.23 17
+Hello, world!
+1 2 3 4 5 
+
+string: "Hello, world!"
+number: {"floating-point":17.23,"integer":42}
+null: null
+boolean: true
+array: [1,2,3,4,5]
diff --git a/resources/3rdparty/modernjson/doc/examples/get_ptr.cpp b/resources/3rdparty/modernjson/doc/examples/get_ptr.cpp
new file mode 100755
index 000000000..2c319dc40
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get_ptr.cpp
@@ -0,0 +1,20 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON number
+    json value = 17;
+
+    // explicitly getting pointers
+    auto p1 = value.get_ptr<const json::number_integer_t*>();
+    auto p2 = value.get_ptr<json::number_integer_t*>();
+    auto p3 = value.get_ptr<json::number_integer_t* const>();
+    auto p4 = value.get_ptr<const json::number_integer_t* const>();
+    auto p5 = value.get_ptr<json::number_float_t*>();
+
+    // print the pointees
+    std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\n';
+    std::cout << std::boolalpha << (p5 == nullptr) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/get_ptr.link b/resources/3rdparty/modernjson/doc/examples/get_ptr.link
new file mode 100755
index 000000000..e318d7780
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get_ptr.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/NDeUS78poIDrGhIP"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/get_ptr.output b/resources/3rdparty/modernjson/doc/examples/get_ptr.output
new file mode 100755
index 000000000..a15dd774e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get_ptr.output
@@ -0,0 +1,2 @@
+17 17 17 17
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/get_ref.cpp b/resources/3rdparty/modernjson/doc/examples/get_ref.cpp
new file mode 100755
index 000000000..d0ddb2d27
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get_ref.cpp
@@ -0,0 +1,26 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON number
+    json value = 17;
+
+    // explicitly getting references
+    auto r1 = value.get_ref<const json::number_integer_t&>();
+    auto r2 = value.get_ref<json::number_integer_t&>();
+
+    // print the values
+    std::cout << r1 << ' ' << r2 << '\n';
+
+    // incompatible type throws exception
+    try
+    {
+        auto r3 = value.get_ref<json::number_float_t&>();
+    }
+    catch (std::domain_error& ex)
+    {
+        std::cout << ex.what() << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/get_ref.link b/resources/3rdparty/modernjson/doc/examples/get_ref.link
new file mode 100755
index 000000000..c0d8275a3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get_ref.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/5IINd4ZXCINhlk8u"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/get_ref.output b/resources/3rdparty/modernjson/doc/examples/get_ref.output
new file mode 100755
index 000000000..50bc0df69
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/get_ref.output
@@ -0,0 +1,2 @@
+17 17
+incompatible ReferenceType for get_ref, actual type is number
diff --git a/resources/3rdparty/modernjson/doc/examples/insert.cpp b/resources/3rdparty/modernjson/doc/examples/insert.cpp
new file mode 100755
index 000000000..967f443ef
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert.cpp
@@ -0,0 +1,16 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json v = {1, 2, 3, 4};
+
+    // insert number 10 before number 3
+    auto new_pos = v.insert(v.begin() + 2, 10);
+
+    // output new array and result of insert call
+    std::cout << *new_pos << '\n';
+    std::cout << v << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/insert.link b/resources/3rdparty/modernjson/doc/examples/insert.link
new file mode 100755
index 000000000..3886e04d5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/814P5z0lA90nVh8b"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/insert.output b/resources/3rdparty/modernjson/doc/examples/insert.output
new file mode 100755
index 000000000..ed5cab1d0
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert.output
@@ -0,0 +1,2 @@
+10
+[1,2,10,3,4]
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__count.cpp b/resources/3rdparty/modernjson/doc/examples/insert__count.cpp
new file mode 100755
index 000000000..258515e68
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__count.cpp
@@ -0,0 +1,16 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json v = {1, 2, 3, 4};
+
+    // insert number 7 copies of number 7 before number 3
+    auto new_pos = v.insert(v.begin() + 2, 7, 7);
+
+    // output new array and result of insert call
+    std::cout << *new_pos << '\n';
+    std::cout << v << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__count.link b/resources/3rdparty/modernjson/doc/examples/insert__count.link
new file mode 100755
index 000000000..b97d0d69f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__count.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/OG3x3F7DFoqtHyqh"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__count.output b/resources/3rdparty/modernjson/doc/examples/insert__count.output
new file mode 100755
index 000000000..294685ac4
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__count.output
@@ -0,0 +1,2 @@
+7
+[1,2,7,7,7,7,7,7,7,3,4]
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__ilist.cpp b/resources/3rdparty/modernjson/doc/examples/insert__ilist.cpp
new file mode 100755
index 000000000..c0138d2a0
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__ilist.cpp
@@ -0,0 +1,16 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json v = {1, 2, 3, 4};
+
+    // insert range from v2 before the end of array v
+    auto new_pos = v.insert(v.end(), {7, 8, 9});
+
+    // output new array and result of insert call
+    std::cout << *new_pos << '\n';
+    std::cout << v << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__ilist.link b/resources/3rdparty/modernjson/doc/examples/insert__ilist.link
new file mode 100755
index 000000000..4920588b5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__ilist.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/6gMuEfviD6ijflgd"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__ilist.output b/resources/3rdparty/modernjson/doc/examples/insert__ilist.output
new file mode 100755
index 000000000..b2fc7eeb9
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__ilist.output
@@ -0,0 +1,2 @@
+7
+[1,2,3,4,7,8,9]
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__range.cpp b/resources/3rdparty/modernjson/doc/examples/insert__range.cpp
new file mode 100755
index 000000000..b5d0001ba
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__range.cpp
@@ -0,0 +1,19 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json v = {1, 2, 3, 4};
+
+    // create a JSON array to copy values from
+    json v2 = {"one", "two", "three", "four"};
+
+    // insert range from v2 before the end of array v
+    auto new_pos = v.insert(v.end(), v2.begin(), v2.end());
+
+    // output new array and result of insert call
+    std::cout << *new_pos << '\n';
+    std::cout << v << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__range.link b/resources/3rdparty/modernjson/doc/examples/insert__range.link
new file mode 100755
index 000000000..ac773f8b2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__range.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/pUKVc892loGnjxUL"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/insert__range.output b/resources/3rdparty/modernjson/doc/examples/insert__range.output
new file mode 100755
index 000000000..d50e9f63a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/insert__range.output
@@ -0,0 +1,2 @@
+"one"
+[1,2,3,4,"one","two","three","four"]
diff --git a/resources/3rdparty/modernjson/doc/examples/is_array.cpp b/resources/3rdparty/modernjson/doc/examples/is_array.cpp
new file mode 100755
index 000000000..11a631150
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_array.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_array()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_array() << '\n';
+    std::cout << j_boolean.is_array() << '\n';
+    std::cout << j_number_integer.is_array() << '\n';
+    std::cout << j_number_unsigned_integer.is_array() << '\n';
+    std::cout << j_number_float.is_array() << '\n';
+    std::cout << j_object.is_array() << '\n';
+    std::cout << j_array.is_array() << '\n';
+    std::cout << j_string.is_array() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_array.link b/resources/3rdparty/modernjson/doc/examples/is_array.link
new file mode 100755
index 000000000..8c8b9f825
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_array.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/0jJBJgku6NLIxJfv"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_array.output b/resources/3rdparty/modernjson/doc/examples/is_array.output
new file mode 100755
index 000000000..5b8cc40c9
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_array.output
@@ -0,0 +1,8 @@
+false
+false
+false
+false
+false
+false
+true
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_boolean.cpp b/resources/3rdparty/modernjson/doc/examples/is_boolean.cpp
new file mode 100755
index 000000000..9efcf6943
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_boolean.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_boolean()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_boolean() << '\n';
+    std::cout << j_boolean.is_boolean() << '\n';
+    std::cout << j_number_integer.is_boolean() << '\n';
+    std::cout << j_number_unsigned_integer.is_boolean() << '\n';
+    std::cout << j_number_float.is_boolean() << '\n';
+    std::cout << j_object.is_boolean() << '\n';
+    std::cout << j_array.is_boolean() << '\n';
+    std::cout << j_string.is_boolean() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_boolean.link b/resources/3rdparty/modernjson/doc/examples/is_boolean.link
new file mode 100755
index 000000000..62f5fed14
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_boolean.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/chWkSIROaePvwcDq"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_boolean.output b/resources/3rdparty/modernjson/doc/examples/is_boolean.output
new file mode 100755
index 000000000..721b3a5e2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_boolean.output
@@ -0,0 +1,8 @@
+false
+true
+false
+false
+false
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_discarded.cpp b/resources/3rdparty/modernjson/doc/examples/is_discarded.cpp
new file mode 100755
index 000000000..a1d42a7a8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_discarded.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_discarded()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_discarded() << '\n';
+    std::cout << j_boolean.is_discarded() << '\n';
+    std::cout << j_number_integer.is_discarded() << '\n';
+    std::cout << j_number_unsigned_integer.is_discarded() << '\n';
+    std::cout << j_number_float.is_discarded() << '\n';
+    std::cout << j_object.is_discarded() << '\n';
+    std::cout << j_array.is_discarded() << '\n';
+    std::cout << j_string.is_discarded() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_discarded.link b/resources/3rdparty/modernjson/doc/examples/is_discarded.link
new file mode 100755
index 000000000..7ce69a104
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_discarded.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/j10gcmatdR8o625C"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_discarded.output b/resources/3rdparty/modernjson/doc/examples/is_discarded.output
new file mode 100755
index 000000000..485b16967
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_discarded.output
@@ -0,0 +1,8 @@
+false
+false
+false
+false
+false
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_null.cpp b/resources/3rdparty/modernjson/doc/examples/is_null.cpp
new file mode 100755
index 000000000..0d69c05c2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_null.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_null()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_null() << '\n';
+    std::cout << j_boolean.is_null() << '\n';
+    std::cout << j_number_integer.is_null() << '\n';
+    std::cout << j_number_unsigned_integer.is_null() << '\n';
+    std::cout << j_number_float.is_null() << '\n';
+    std::cout << j_object.is_null() << '\n';
+    std::cout << j_array.is_null() << '\n';
+    std::cout << j_string.is_null() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_null.link b/resources/3rdparty/modernjson/doc/examples/is_null.link
new file mode 100755
index 000000000..6b22b9780
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_null.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/rnEIZwD2AvtjaEzo"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_null.output b/resources/3rdparty/modernjson/doc/examples/is_null.output
new file mode 100755
index 000000000..4cc64628d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_null.output
@@ -0,0 +1,8 @@
+true
+false
+false
+false
+false
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number.cpp b/resources/3rdparty/modernjson/doc/examples/is_number.cpp
new file mode 100755
index 000000000..fd2a99b11
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_number()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_number() << '\n';
+    std::cout << j_boolean.is_number() << '\n';
+    std::cout << j_number_integer.is_number() << '\n';
+    std::cout << j_number_unsigned_integer.is_number() << '\n';
+    std::cout << j_number_float.is_number() << '\n';
+    std::cout << j_object.is_number() << '\n';
+    std::cout << j_array.is_number() << '\n';
+    std::cout << j_string.is_number() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number.link b/resources/3rdparty/modernjson/doc/examples/is_number.link
new file mode 100755
index 000000000..bf863a1cf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ZyMWRbD7gH5eC5Xy"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number.output b/resources/3rdparty/modernjson/doc/examples/is_number.output
new file mode 100755
index 000000000..06dbc2823
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number.output
@@ -0,0 +1,8 @@
+false
+false
+true
+true
+true
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_float.cpp b/resources/3rdparty/modernjson/doc/examples/is_number_float.cpp
new file mode 100755
index 000000000..92bcfa108
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_float.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_number_float()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_number_float() << '\n';
+    std::cout << j_boolean.is_number_float() << '\n';
+    std::cout << j_number_integer.is_number_float() << '\n';
+    std::cout << j_number_unsigned_integer.is_number_float() << '\n';
+    std::cout << j_number_float.is_number_float() << '\n';
+    std::cout << j_object.is_number_float() << '\n';
+    std::cout << j_array.is_number_float() << '\n';
+    std::cout << j_string.is_number_float() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_float.link b/resources/3rdparty/modernjson/doc/examples/is_number_float.link
new file mode 100755
index 000000000..38abb5985
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_float.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ouIIgi0X3Te9upBj"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_float.output b/resources/3rdparty/modernjson/doc/examples/is_number_float.output
new file mode 100755
index 000000000..09afae4c9
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_float.output
@@ -0,0 +1,8 @@
+false
+false
+false
+false
+true
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_integer.cpp b/resources/3rdparty/modernjson/doc/examples/is_number_integer.cpp
new file mode 100755
index 000000000..ecac7cd64
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_integer.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_number_integer()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_number_integer() << '\n';
+    std::cout << j_boolean.is_number_integer() << '\n';
+    std::cout << j_number_integer.is_number_integer() << '\n';
+    std::cout << j_number_unsigned_integer.is_number_integer() << '\n';
+    std::cout << j_number_float.is_number_integer() << '\n';
+    std::cout << j_object.is_number_integer() << '\n';
+    std::cout << j_array.is_number_integer() << '\n';
+    std::cout << j_string.is_number_integer() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_integer.link b/resources/3rdparty/modernjson/doc/examples/is_number_integer.link
new file mode 100755
index 000000000..d6162ab0e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_integer.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/jZwJVIXretvfg4kS"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_integer.output b/resources/3rdparty/modernjson/doc/examples/is_number_integer.output
new file mode 100755
index 000000000..be0f73936
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_integer.output
@@ -0,0 +1,8 @@
+false
+false
+true
+true
+false
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.cpp b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.cpp
new file mode 100755
index 000000000..ad457591c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_number_unsigned()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_number_unsigned() << '\n';
+    std::cout << j_boolean.is_number_unsigned() << '\n';
+    std::cout << j_number_integer.is_number_unsigned() << '\n';
+    std::cout << j_number_unsigned_integer.is_number_unsigned() << '\n';
+    std::cout << j_number_float.is_number_unsigned() << '\n';
+    std::cout << j_object.is_number_unsigned() << '\n';
+    std::cout << j_array.is_number_unsigned() << '\n';
+    std::cout << j_string.is_number_unsigned() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.link b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.link
new file mode 100755
index 000000000..41986cefa
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Vd3c1gtskokcJHp7"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.output b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.output
new file mode 100755
index 000000000..fdf264e0c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_number_unsigned.output
@@ -0,0 +1,8 @@
+false
+false
+false
+true
+false
+false
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_object.cpp b/resources/3rdparty/modernjson/doc/examples/is_object.cpp
new file mode 100755
index 000000000..56db66e56
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_object.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_object()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_object() << '\n';
+    std::cout << j_boolean.is_object() << '\n';
+    std::cout << j_number_integer.is_object() << '\n';
+    std::cout << j_number_unsigned_integer.is_object() << '\n';
+    std::cout << j_number_float.is_object() << '\n';
+    std::cout << j_object.is_object() << '\n';
+    std::cout << j_array.is_object() << '\n';
+    std::cout << j_string.is_object() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_object.link b/resources/3rdparty/modernjson/doc/examples/is_object.link
new file mode 100755
index 000000000..1a304d09a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_object.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ivLUeazmkk6aCUkE"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_object.output b/resources/3rdparty/modernjson/doc/examples/is_object.output
new file mode 100755
index 000000000..e041e3922
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_object.output
@@ -0,0 +1,8 @@
+false
+false
+false
+false
+false
+true
+false
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/is_primitive.cpp b/resources/3rdparty/modernjson/doc/examples/is_primitive.cpp
new file mode 100755
index 000000000..48872ab5a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_primitive.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_primitive()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_primitive() << '\n';
+    std::cout << j_boolean.is_primitive() << '\n';
+    std::cout << j_number_integer.is_primitive() << '\n';
+    std::cout << j_number_unsigned_integer.is_primitive() << '\n';
+    std::cout << j_number_float.is_primitive() << '\n';
+    std::cout << j_object.is_primitive() << '\n';
+    std::cout << j_array.is_primitive() << '\n';
+    std::cout << j_string.is_primitive() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_primitive.link b/resources/3rdparty/modernjson/doc/examples/is_primitive.link
new file mode 100755
index 000000000..eb73ffb1b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_primitive.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/9qjfclmdmZrCnVR3"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_primitive.output b/resources/3rdparty/modernjson/doc/examples/is_primitive.output
new file mode 100755
index 000000000..635db6e34
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_primitive.output
@@ -0,0 +1,8 @@
+true
+true
+true
+true
+true
+false
+false
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/is_string.cpp b/resources/3rdparty/modernjson/doc/examples/is_string.cpp
new file mode 100755
index 000000000..2d6ed0698
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_string.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_string()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_string() << '\n';
+    std::cout << j_boolean.is_string() << '\n';
+    std::cout << j_number_integer.is_string() << '\n';
+    std::cout << j_number_unsigned_integer.is_string() << '\n';
+    std::cout << j_number_float.is_string() << '\n';
+    std::cout << j_object.is_string() << '\n';
+    std::cout << j_array.is_string() << '\n';
+    std::cout << j_string.is_string() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_string.link b/resources/3rdparty/modernjson/doc/examples/is_string.link
new file mode 100755
index 000000000..6af78b0ba
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_string.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Uh60XVyyG1N5pL2n"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_string.output b/resources/3rdparty/modernjson/doc/examples/is_string.output
new file mode 100755
index 000000000..672eb4385
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_string.output
@@ -0,0 +1,8 @@
+false
+false
+false
+false
+false
+false
+false
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/is_structured.cpp b/resources/3rdparty/modernjson/doc/examples/is_structured.cpp
new file mode 100755
index 000000000..ed573e3cc
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_structured.cpp
@@ -0,0 +1,27 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_number_unsigned_integer = 12345678987654321u;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call is_structured()
+    std::cout << std::boolalpha;
+    std::cout << j_null.is_structured() << '\n';
+    std::cout << j_boolean.is_structured() << '\n';
+    std::cout << j_number_integer.is_structured() << '\n';
+    std::cout << j_number_unsigned_integer.is_structured() << '\n';
+    std::cout << j_number_float.is_structured() << '\n';
+    std::cout << j_object.is_structured() << '\n';
+    std::cout << j_array.is_structured() << '\n';
+    std::cout << j_string.is_structured() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/is_structured.link b/resources/3rdparty/modernjson/doc/examples/is_structured.link
new file mode 100755
index 000000000..8ae6fd044
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_structured.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/QH2PmyggbFbaA8Dg"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/is_structured.output b/resources/3rdparty/modernjson/doc/examples/is_structured.output
new file mode 100755
index 000000000..e1186dd8f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/is_structured.output
@@ -0,0 +1,8 @@
+false
+false
+false
+false
+false
+true
+true
+false
diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer.cpp b/resources/3rdparty/modernjson/doc/examples/json_pointer.cpp
new file mode 100755
index 000000000..140eac3b6
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/json_pointer.cpp
@@ -0,0 +1,46 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // correct JSON pointers
+    json::json_pointer p1;
+    json::json_pointer p2("");
+    json::json_pointer p3("/");
+    json::json_pointer p4("//");
+    json::json_pointer p5("/foo/bar");
+    json::json_pointer p6("/foo/bar/-");
+    json::json_pointer p7("/foo/~0");
+    json::json_pointer p8("/foo/~1");
+
+    // error: JSON pointer does not begin with a slash
+    try
+    {
+        json::json_pointer p9("foo");
+    }
+    catch (std::domain_error& e)
+    {
+        std::cout << "domain_error: " << e.what() << '\n';
+    }
+
+    // error: JSON pointer uses escape symbol ~ not followed by 0 or 1
+    try
+    {
+        json::json_pointer p10("/foo/~");
+    }
+    catch (std::domain_error& e)
+    {
+        std::cout << "domain_error: " << e.what() << '\n';
+    }
+
+    // error: JSON pointer uses escape symbol ~ not followed by 0 or 1
+    try
+    {
+        json::json_pointer p11("/foo/~3");
+    }
+    catch (std::domain_error& e)
+    {
+        std::cout << "domain_error: " << e.what() << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer.link b/resources/3rdparty/modernjson/doc/examples/json_pointer.link
new file mode 100755
index 000000000..6602f0cf4
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/json_pointer.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/WM2WWKnXdmdw17Wu"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer.output b/resources/3rdparty/modernjson/doc/examples/json_pointer.output
new file mode 100755
index 000000000..b81c8a201
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/json_pointer.output
@@ -0,0 +1,3 @@
+domain_error: JSON pointer must be empty or begin with '/'
+domain_error: escape error: '~' must be followed with '0' or '1'
+domain_error: escape error: '~' must be followed with '0' or '1'
diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.cpp b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.cpp
new file mode 100755
index 000000000..4cb053c53
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.cpp
@@ -0,0 +1,34 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // different JSON Pointers
+    json::json_pointer ptr1("");
+    json::json_pointer ptr2("/foo");
+    json::json_pointer ptr3("/foo/0");
+    json::json_pointer ptr4("/");
+    json::json_pointer ptr5("/a~1b");
+    json::json_pointer ptr6("/c%d");
+    json::json_pointer ptr7("/e^f");
+    json::json_pointer ptr8("/g|h");
+    json::json_pointer ptr9("/i\\j");
+    json::json_pointer ptr10("/k\"l");
+    json::json_pointer ptr11("/ ");
+    json::json_pointer ptr12("/m~0n");
+
+
+    std::cout << ptr1.to_string() << '\n'
+              << ptr2.to_string() << '\n'
+              << ptr3.to_string() << '\n'
+              << ptr4.to_string() << '\n'
+              << ptr5.to_string() << '\n'
+              << ptr6.to_string() << '\n'
+              << ptr7.to_string() << '\n'
+              << ptr8.to_string() << '\n'
+              << ptr9.to_string() << '\n'
+              << ptr10.to_string() << '\n'
+              << ptr11.to_string() << '\n'
+              << ptr12.to_string() << std::endl;
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.link b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.link
new file mode 100755
index 000000000..407609b20
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/O4FbKx0TbZioFhfU"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.output b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.output
new file mode 100755
index 000000000..c4b5ea8fa
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/json_pointer__to_string.output
@@ -0,0 +1,12 @@
+
+/foo
+/foo/0
+/
+/a~1b
+/c%d
+/e^f
+/g|h
+/i\j
+/k"l
+/ 
+/m~0n
diff --git a/resources/3rdparty/modernjson/doc/examples/max_size.cpp b/resources/3rdparty/modernjson/doc/examples/max_size.cpp
new file mode 100755
index 000000000..d2f1b727d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/max_size.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call max_size()
+    std::cout << j_null.max_size() << '\n';
+    std::cout << j_boolean.max_size() << '\n';
+    std::cout << j_number_integer.max_size() << '\n';
+    std::cout << j_number_float.max_size() << '\n';
+    std::cout << j_object.max_size() << '\n';
+    std::cout << j_array.max_size() << '\n';
+    std::cout << j_string.max_size() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/max_size.link b/resources/3rdparty/modernjson/doc/examples/max_size.link
new file mode 100755
index 000000000..d91bc8cda
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/max_size.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/pHK8lxPJaR0LZwRM"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/max_size.output b/resources/3rdparty/modernjson/doc/examples/max_size.output
new file mode 100755
index 000000000..8c79995ba
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/max_size.output
@@ -0,0 +1,7 @@
+0
+1
+1
+1
+256204778801521550
+1152921504606846975
+1
diff --git a/resources/3rdparty/modernjson/doc/examples/object.cpp b/resources/3rdparty/modernjson/doc/examples/object.cpp
new file mode 100755
index 000000000..54f3ca3b8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/object.cpp
@@ -0,0 +1,17 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON objects
+    json j_no_init_list = json::object();
+    json j_empty_init_list = json::object({});
+    json j_list_of_pairs = json::object({ {"one", 1}, {"two", 2} });
+    //json j_invalid_list = json::object({ "one", 1 }); // would throw
+
+    // serialize the JSON objects
+    std::cout << j_no_init_list << '\n';
+    std::cout << j_empty_init_list << '\n';
+    std::cout << j_list_of_pairs << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/object.link b/resources/3rdparty/modernjson/doc/examples/object.link
new file mode 100755
index 000000000..575473b35
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/object.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/g46YJ0TCAELXYvZb"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/object.output b/resources/3rdparty/modernjson/doc/examples/object.output
new file mode 100755
index 000000000..f6c27ee8f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/object.output
@@ -0,0 +1,3 @@
+{}
+{}
+{"one":1,"two":2}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.cpp b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.cpp
new file mode 100755
index 000000000..9307e69bb
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.cpp
@@ -0,0 +1,49 @@
+#include <json.hpp>
+#include <unordered_map>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value with different types
+    json json_types =
+    {
+        {"boolean", true},
+        {
+            "number", {
+                {"integer", 42},
+                {"floating-point", 17.23}
+            }
+        },
+        {"string", "Hello, world!"},
+        {"array", {1, 2, 3, 4, 5}},
+        {"null", nullptr}
+    };
+
+    // use implicit conversions
+    bool v1 = json_types["boolean"];
+    int v2 = json_types["number"]["integer"];
+    short v3 = json_types["number"]["integer"];
+    float v4 = json_types["number"]["floating-point"];
+    int v5 = json_types["number"]["floating-point"];
+    std::string v6 = json_types["string"];
+    std::vector<short> v7 = json_types["array"];
+    std::unordered_map<std::string, json> v8 = json_types;
+
+    // print the conversion results
+    std::cout << v1 << '\n';
+    std::cout << v2 << ' ' << v3 << '\n';
+    std::cout << v4 << ' ' << v5 << '\n';
+    std::cout << v6 << '\n';
+
+    for (auto i : v7)
+    {
+        std::cout << i << ' ';
+    }
+    std::cout << "\n\n";
+
+    for (auto i : v8)
+    {
+        std::cout << i.first << ": " << i.second << '\n';
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.link b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.link
new file mode 100755
index 000000000..204d8f5e3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/laFGVm1oHwhEIiJl"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__ValueType.output b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.output
new file mode 100755
index 000000000..5cd9cd3aa
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__ValueType.output
@@ -0,0 +1,11 @@
+1
+42 42
+17.23 17
+Hello, world!
+1 2 3 4 5 
+
+string: "Hello, world!"
+number: {"floating-point":17.23,"integer":42}
+null: null
+boolean: true
+array: [1,2,3,4,5]
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__equal.cpp
new file mode 100755
index 000000000..12bf92ed5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array_1 = {1, 2, 3};
+    json array_2 = {1, 2, 4};
+    json object_1 = {{"A", "a"}, {"B", "b"}};
+    json object_2 = {{"B", "b"}, {"A", "a"}};
+    json number_1 = 17;
+    json number_2 = 17.000000000000001L;
+    json string_1 = "foo";
+    json string_2 = "bar";
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array_1 << " == " << array_2 << " " << (array_1 == array_2) << '\n';
+    std::cout << object_1 << " == " << object_2 << " " << (object_1 == object_2) << '\n';
+    std::cout << number_1 << " == " << number_2 << " " << (number_1 == number_2) << '\n';
+    std::cout << string_1 << " == " << string_2 << " " << (string_1 == string_2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.link b/resources/3rdparty/modernjson/doc/examples/operator__equal.link
new file mode 100755
index 000000000..41ae20ce3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Zpc5xccVHh210pJ4"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.output b/resources/3rdparty/modernjson/doc/examples/operator__equal.output
new file mode 100755
index 000000000..e9dfd7551
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal.output
@@ -0,0 +1,4 @@
+[1,2,3] == [1,2,4] false
+{"A":"a","B":"b"} == {"A":"a","B":"b"} true
+17 == 17 true
+"foo" == "bar" false
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal.test b/resources/3rdparty/modernjson/doc/examples/operator__equal.test
new file mode 100755
index 000000000..e9dfd7551
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal.test
@@ -0,0 +1,4 @@
+[1,2,3] == [1,2,4] false
+{"A":"a","B":"b"} == {"A":"a","B":"b"} true
+17 == 17 true
+"foo" == "bar" false
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.cpp b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.cpp
new file mode 100755
index 000000000..49c632cfd
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.cpp
@@ -0,0 +1,21 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array = {1, 2, 3};
+    json object = {{"A", "a"}, {"B", "b"}};
+    json number = 17;
+    json string = "foo";
+    json null;
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array << " == nullptr " << (array == nullptr) << '\n';
+    std::cout << object << " == nullptr " << (object == nullptr) << '\n';
+    std::cout << number << " == nullptr " << (number == nullptr) << '\n';
+    std::cout << string << " == nullptr " << (string == nullptr) << '\n';
+    std::cout << null << " == nullptr " << (null == nullptr) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.link b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.link
new file mode 100755
index 000000000..49e46fd65
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Y7k4oKr0qq2C1m6Q"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.output b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.output
new file mode 100755
index 000000000..b7128e13d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__equal__nullptr_t.output
@@ -0,0 +1,5 @@
+[1,2,3] == nullptr false
+{"A":"a","B":"b"} == nullptr false
+17 == nullptr false
+"foo" == nullptr false
+null == nullptr true
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greater.cpp b/resources/3rdparty/modernjson/doc/examples/operator__greater.cpp
new file mode 100755
index 000000000..bee3b2b5a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__greater.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array_1 = {1, 2, 3};
+    json array_2 = {1, 2, 4};
+    json object_1 = {{"A", "a"}, {"B", "b"}};
+    json object_2 = {{"B", "b"}, {"A", "a"}};
+    json number_1 = 17;
+    json number_2 = 17.0000000000001L;
+    json string_1 = "foo";
+    json string_2 = "bar";
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array_1 << " == " << array_2 << " " << (array_1 > array_2) << '\n';
+    std::cout << object_1 << " == " << object_2 << " " << (object_1 > object_2) << '\n';
+    std::cout << number_1 << " == " << number_2 << " " << (number_1 > number_2) << '\n';
+    std::cout << string_1 << " == " << string_2 << " " << (string_1 > string_2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greater.link b/resources/3rdparty/modernjson/doc/examples/operator__greater.link
new file mode 100755
index 000000000..2299d6102
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__greater.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/FsDUutWOyZiFDADV"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greater.output b/resources/3rdparty/modernjson/doc/examples/operator__greater.output
new file mode 100755
index 000000000..045847c38
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__greater.output
@@ -0,0 +1,4 @@
+[1,2,3] == [1,2,4] false
+{"A":"a","B":"b"} == {"A":"a","B":"b"} false
+17 == 17.0000000000001 false
+"foo" == "bar" true
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.cpp
new file mode 100755
index 000000000..cd3989669
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array_1 = {1, 2, 3};
+    json array_2 = {1, 2, 4};
+    json object_1 = {{"A", "a"}, {"B", "b"}};
+    json object_2 = {{"B", "b"}, {"A", "a"}};
+    json number_1 = 17;
+    json number_2 = 17.0000000000001L;
+    json string_1 = "foo";
+    json string_2 = "bar";
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array_1 << " >= " << array_2 << " " << (array_1 >= array_2) << '\n';
+    std::cout << object_1 << " >= " << object_2 << " " << (object_1 >= object_2) << '\n';
+    std::cout << number_1 << " >= " << number_2 << " " << (number_1 >= number_2) << '\n';
+    std::cout << string_1 << " >= " << string_2 << " " << (string_1 >= string_2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.link b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.link
new file mode 100755
index 000000000..fdd676e6e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/EGB8bgj4XZ1QDdoG"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.output b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.output
new file mode 100755
index 000000000..c7b91514e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__greaterequal.output
@@ -0,0 +1,4 @@
+[1,2,3] >= [1,2,4] false
+{"A":"a","B":"b"} >= {"A":"a","B":"b"} true
+17 >= 17.0000000000001 false
+"foo" >= "bar" true
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__less.cpp b/resources/3rdparty/modernjson/doc/examples/operator__less.cpp
new file mode 100755
index 000000000..d4a7b7941
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__less.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array_1 = {1, 2, 3};
+    json array_2 = {1, 2, 4};
+    json object_1 = {{"A", "a"}, {"B", "b"}};
+    json object_2 = {{"B", "b"}, {"A", "a"}};
+    json number_1 = 17;
+    json number_2 = 17.0000000000001L;
+    json string_1 = "foo";
+    json string_2 = "bar";
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array_1 << " == " << array_2 << " " << (array_1 < array_2) << '\n';
+    std::cout << object_1 << " == " << object_2 << " " << (object_1 < object_2) << '\n';
+    std::cout << number_1 << " == " << number_2 << " " << (number_1 < number_2) << '\n';
+    std::cout << string_1 << " == " << string_2 << " " << (string_1 < string_2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__less.link b/resources/3rdparty/modernjson/doc/examples/operator__less.link
new file mode 100755
index 000000000..5d7f6f566
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__less.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/4UPUe8lpV9e48paC"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__less.output b/resources/3rdparty/modernjson/doc/examples/operator__less.output
new file mode 100755
index 000000000..abbbc455e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__less.output
@@ -0,0 +1,4 @@
+[1,2,3] == [1,2,4] true
+{"A":"a","B":"b"} == {"A":"a","B":"b"} false
+17 == 17.0000000000001 true
+"foo" == "bar" false
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.cpp
new file mode 100755
index 000000000..20654d9e8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array_1 = {1, 2, 3};
+    json array_2 = {1, 2, 4};
+    json object_1 = {{"A", "a"}, {"B", "b"}};
+    json object_2 = {{"B", "b"}, {"A", "a"}};
+    json number_1 = 17;
+    json number_2 = 17.0000000000001L;
+    json string_1 = "foo";
+    json string_2 = "bar";
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array_1 << " <= " << array_2 << " " << (array_1 <= array_2) << '\n';
+    std::cout << object_1 << " <= " << object_2 << " " << (object_1 <= object_2) << '\n';
+    std::cout << number_1 << " <= " << number_2 << " " << (number_1 <= number_2) << '\n';
+    std::cout << string_1 << " <= " << string_2 << " " << (string_1 <= string_2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.link b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.link
new file mode 100755
index 000000000..620b6aa8a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/D1CUYI3AqEozXpjh"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__lessequal.output b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.output
new file mode 100755
index 000000000..f7f0327ec
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__lessequal.output
@@ -0,0 +1,4 @@
+[1,2,3] <= [1,2,4] true
+{"A":"a","B":"b"} <= {"A":"a","B":"b"} true
+17 <= 17.0000000000001 true
+"foo" <= "bar" false
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.cpp b/resources/3rdparty/modernjson/doc/examples/operator__notequal.cpp
new file mode 100755
index 000000000..499a00d17
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array_1 = {1, 2, 3};
+    json array_2 = {1, 2, 4};
+    json object_1 = {{"A", "a"}, {"B", "b"}};
+    json object_2 = {{"B", "b"}, {"A", "a"}};
+    json number_1 = 17;
+    json number_2 = 17.000000000000001L;
+    json string_1 = "foo";
+    json string_2 = "bar";
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array_1 << " == " << array_2 << " " << (array_1 != array_2) << '\n';
+    std::cout << object_1 << " == " << object_2 << " " << (object_1 != object_2) << '\n';
+    std::cout << number_1 << " == " << number_2 << " " << (number_1 != number_2) << '\n';
+    std::cout << string_1 << " == " << string_2 << " " << (string_1 != string_2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.link b/resources/3rdparty/modernjson/doc/examples/operator__notequal.link
new file mode 100755
index 000000000..482b97212
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/AVJ7PQO6te3sC6kp"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.output b/resources/3rdparty/modernjson/doc/examples/operator__notequal.output
new file mode 100755
index 000000000..ddd838b4a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal.output
@@ -0,0 +1,4 @@
+[1,2,3] == [1,2,4] true
+{"A":"a","B":"b"} == {"A":"a","B":"b"} false
+17 == 17 false
+"foo" == "bar" true
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal.test b/resources/3rdparty/modernjson/doc/examples/operator__notequal.test
new file mode 100755
index 000000000..ddd838b4a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal.test
@@ -0,0 +1,4 @@
+[1,2,3] == [1,2,4] true
+{"A":"a","B":"b"} == {"A":"a","B":"b"} false
+17 == 17 false
+"foo" == "bar" true
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.cpp b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.cpp
new file mode 100755
index 000000000..014e6343a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.cpp
@@ -0,0 +1,21 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create several JSON values
+    json array = {1, 2, 3};
+    json object = {{"A", "a"}, {"B", "b"}};
+    json number = 17;
+    json string = "foo";
+    json null;
+
+    // output values and comparisons
+    std::cout << std::boolalpha;
+    std::cout << array << " != nullptr " << (array != nullptr) << '\n';
+    std::cout << object << " != nullptr " << (object != nullptr) << '\n';
+    std::cout << number << " != nullptr " << (number != nullptr) << '\n';
+    std::cout << string << " != nullptr " << (string != nullptr) << '\n';
+    std::cout << null << " != nullptr " << (null != nullptr) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.link b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.link
new file mode 100755
index 000000000..40f6bb4fe
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/E0Hu2nk9YvMUW1ck"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.output b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.output
new file mode 100755
index 000000000..0fc36dcf5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__notequal__nullptr_t.output
@@ -0,0 +1,5 @@
+[1,2,3] != nullptr true
+{"A":"a","B":"b"} != nullptr true
+17 != nullptr true
+"foo" != nullptr true
+null != nullptr false
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__value_t.cpp b/resources/3rdparty/modernjson/doc/examples/operator__value_t.cpp
new file mode 100755
index 000000000..d281df0d8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__value_t.cpp
@@ -0,0 +1,34 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call operator value_t()
+    json::value_t t_null = j_null;
+    json::value_t t_boolean = j_boolean;
+    json::value_t t_number_integer = j_number_integer;
+    json::value_t t_number_float = j_number_float;
+    json::value_t t_object = j_object;
+    json::value_t t_array = j_array;
+    json::value_t t_string = j_string;
+
+    // print types
+    std::cout << std::boolalpha;
+    std::cout << (t_null == json::value_t::null) << '\n';
+    std::cout << (t_boolean == json::value_t::boolean) << '\n';
+    std::cout << (t_number_integer == json::value_t::number_integer) << '\n';
+    std::cout << (t_number_float == json::value_t::number_float) << '\n';
+    std::cout << (t_object == json::value_t::object) << '\n';
+    std::cout << (t_array == json::value_t::array) << '\n';
+    std::cout << (t_string == json::value_t::string) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__value_t.link b/resources/3rdparty/modernjson/doc/examples/operator__value_t.link
new file mode 100755
index 000000000..a97072328
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__value_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/qt8t1mE1LjXjtBtO"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator__value_t.output b/resources/3rdparty/modernjson/doc/examples/operator__value_t.output
new file mode 100755
index 000000000..814ccfee2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator__value_t.output
@@ -0,0 +1,7 @@
+true
+true
+true
+true
+true
+true
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.cpp b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.cpp
new file mode 100755
index 000000000..a43cdf0fb
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create stream with serialized JSON
+    std::stringstream ss;
+    ss << R"({
+        "number": 23,
+        "string": "Hello, world!",
+        "array": [1, 2, 3, 4, 5],
+        "boolean": false,
+        "null": null
+    })";
+
+    // create JSON value and read the serialization from the stream
+    json j;
+    j << ss;
+
+    // serialize JSON
+    std::cout << std::setw(2) << j << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.link b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.link
new file mode 100755
index 000000000..27e998d9a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Q4f0uwIQWvnheKCb"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator_deserialize.output b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.output
new file mode 100755
index 000000000..81a203fb0
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator_deserialize.output
@@ -0,0 +1,13 @@
+{
+  "array": [
+    1,
+    2,
+    3,
+    4,
+    5
+  ],
+  "boolean": false,
+  "null": null,
+  "number": 23,
+  "string": "Hello, world!"
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator_serialize.cpp b/resources/3rdparty/modernjson/doc/examples/operator_serialize.cpp
new file mode 100755
index 000000000..c1568d99d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator_serialize.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+
+    // serialize without indentation
+    std::cout << j_object << "\n\n";
+    std::cout << j_array << "\n\n";
+
+    // serialize with indentation
+    std::cout << std::setw(4) << j_object << "\n\n";
+    std::cout << std::setw(2) << j_array << "\n\n";
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operator_serialize.link b/resources/3rdparty/modernjson/doc/examples/operator_serialize.link
new file mode 100755
index 000000000..231306ac2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator_serialize.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/c5XBX38eOBEz5Xkw"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operator_serialize.output b/resources/3rdparty/modernjson/doc/examples/operator_serialize.output
new file mode 100755
index 000000000..712a58da6
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operator_serialize.output
@@ -0,0 +1,17 @@
+{"one":1,"two":2}
+
+[1,2,4,8,16]
+
+{
+    "one": 1,
+    "two": 2
+}
+
+[
+  1,
+  2,
+  4,
+  8,
+  16
+]
+
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.cpp
new file mode 100755
index 000000000..e83a2ac00
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.cpp
@@ -0,0 +1,30 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object
+    json object =
+    {
+        {"one", 1}, {"two", 2}, {"three", 2.9}
+    };
+
+    // output element with key "two"
+    std::cout << object["two"] << "\n\n";
+
+    // change element with key "three"
+    object["three"] = 3;
+
+    // output changed array
+    std::cout << std::setw(4) << object << "\n\n";
+
+    // mention nonexisting key
+    object["four"];
+
+    // write to nonexisting key
+    object["five"]["really"]["nested"] = true;
+
+    // output changed object
+    std::cout << std::setw(4) << object << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.link
new file mode 100755
index 000000000..40df071bf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ibp0eDm8dPhHEsSB"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.output
new file mode 100755
index 000000000..b643587f1
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type.output
@@ -0,0 +1,19 @@
+2
+
+{
+    "one": 1,
+    "three": 3,
+    "two": 2
+}
+
+{
+    "five": {
+        "really": {
+            "nested": true
+        }
+    },
+    "four": null,
+    "one": 1,
+    "three": 3,
+    "two": 2
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.cpp
new file mode 100755
index 000000000..5ad97355e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON object
+    const json object =
+    {
+        {"one", 1}, {"two", 2}, {"three", 2.9}
+    };
+
+    // output element with key "two"
+    std::cout << object["two"] << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.link
new file mode 100755
index 000000000..bba664a5c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/pHB8PKHjuFOesfMM"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.output
new file mode 100755
index 000000000..0cfbf0888
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__key_type_const.output
@@ -0,0 +1 @@
+2
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.cpp
new file mode 100755
index 000000000..4ccbf2704
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON array
+    json array = {1, 2, 3, 4, 5};
+
+    // output element at index 3 (fourth element)
+    std::cout << array[3] << '\n';
+
+    // change last element to 6
+    array[array.size() - 1] = 6;
+
+    // output changed array
+    std::cout << array << '\n';
+
+    // write beyond array limit
+    array[10] = 11;
+
+    // output changed array
+    std::cout << array << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.link
new file mode 100755
index 000000000..b9d578810
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/KUCir2gm6mh39HNy"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.output
new file mode 100755
index 000000000..a91a10698
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type.output
@@ -0,0 +1,3 @@
+4
+[1,2,3,4,6]
+[1,2,3,4,6,null,null,null,null,null,11]
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.cpp b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.cpp
new file mode 100755
index 000000000..2ef794781
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.cpp
@@ -0,0 +1,12 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON array
+    json array = {"first", "2nd", "third", "fourth"};
+
+    // output element at index 2 (third element)
+    std::cout << array.at(2) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.link b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.link
new file mode 100755
index 000000000..a1f8c98b7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/KGERZ2Wgb9dpt4V0"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.output b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.output
new file mode 100755
index 000000000..4450c9f00
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorarray__size_type_const.output
@@ -0,0 +1 @@
+"third"
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.cpp b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.cpp
new file mode 100755
index 000000000..18e41c1f5
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.cpp
@@ -0,0 +1,47 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json j =
+    {
+        {"number", 1}, {"string", "foo"}, {"array", {1, 2}}
+    };
+
+    // read-only access
+
+    // output element with JSON pointer "/number"
+    std::cout << j["/number"_json_pointer] << '\n';
+    // output element with JSON pointer "/string"
+    std::cout << j["/string"_json_pointer] << '\n';
+    // output element with JSON pointer "/array"
+    std::cout << j["/array"_json_pointer] << '\n';
+    // output element with JSON pointer "/array/1"
+    std::cout << j["/array/1"_json_pointer] << '\n';
+
+    // writing access
+
+    // change the string
+    j["/string"_json_pointer] = "bar";
+    // output the changed string
+    std::cout << j["string"] << '\n';
+
+    // "change" a nonexisting object entry
+    j["/boolean"_json_pointer] = true;
+    // output the changed object
+    std::cout << j << '\n';
+
+    // change an array element
+    j["/array/1"_json_pointer] = 21;
+    // "change" an array element with nonexisting index
+    j["/array/4"_json_pointer] = 44;
+    // output the changed array
+    std::cout << j["array"] << '\n';
+
+    // "change" the arry element past the end
+    j["/array/-"_json_pointer] = 55;
+    // output the changed array
+    std::cout << j["array"] << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.link b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.link
new file mode 100755
index 000000000..3a60e8a65
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/xzFX3E4gYBXFwd04"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.output b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.output
new file mode 100755
index 000000000..1fd1b032d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer.output
@@ -0,0 +1,8 @@
+1
+"foo"
+[1,2]
+2
+"bar"
+{"array":[1,2],"boolean":true,"number":1,"string":"bar"}
+[1,21,null,null,44]
+[1,21,null,null,44,55]
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.cpp b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.cpp
new file mode 100755
index 000000000..20ac36cb2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.cpp
@@ -0,0 +1,23 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    const json j =
+    {
+        {"number", 1}, {"string", "foo"}, {"array", {1, 2}}
+    };
+
+    // read-only access
+
+    // output element with JSON pointer "/number"
+    std::cout << j["/number"_json_pointer] << '\n';
+    // output element with JSON pointer "/string"
+    std::cout << j["/string"_json_pointer] << '\n';
+    // output element with JSON pointer "/array"
+    std::cout << j["/array"_json_pointer] << '\n';
+    // output element with JSON pointer "/array/1"
+    std::cout << j["/array/1"_json_pointer] << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.link b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.link
new file mode 100755
index 000000000..1bc14234d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/IKpbJkMdcocVdlRd"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.output b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.output
new file mode 100755
index 000000000..7b9306bbc
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/operatorjson_pointer_const.output
@@ -0,0 +1,4 @@
+1
+"foo"
+[1,2]
+2
diff --git a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.cpp b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.cpp
new file mode 100755
index 000000000..6812a5e2e
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.cpp
@@ -0,0 +1,55 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // a JSON text
+    auto text = R"(
+    {
+        "Image": {
+            "Width":  800,
+            "Height": 600,
+            "Title":  "View from 15th Floor",
+            "Thumbnail": {
+                "Url":    "http://www.example.com/image/481989943",
+                "Height": 125,
+                "Width":  100
+            },
+            "Animated" : false,
+            "IDs": [116, 943, 234, 38793]
+        }
+    }
+    )";
+
+    // fill a stream with JSON text
+    std::stringstream ss;
+    ss << text;
+
+    // parse and serialize JSON
+    json j_complete = json::parse(ss);
+    std::cout << std::setw(4) << j_complete << "\n\n";
+
+
+    // define parser callback
+    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)
+    {
+        // skip object elements with key "Thumbnail"
+        if (event == json::parse_event_t::key and parsed == json("Thumbnail"))
+        {
+            return false;
+        }
+        else
+        {
+            return true;
+        }
+    };
+
+    // fill a stream with JSON text
+    ss.clear();
+    ss << text;
+
+    // parse (with callback) and serialize JSON
+    json j_filtered = json::parse(ss, cb);
+    std::cout << std::setw(4) << j_filtered << '\n';
+}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.link b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.link
new file mode 100755
index 000000000..85960e159
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/9Maolv5LJQM9pbqb"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.output b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.output
new file mode 100755
index 000000000..279a7ff74
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/parse__istream__parser_callback_t.output
@@ -0,0 +1,34 @@
+{
+    "Image": {
+        "Animated": false,
+        "Height": 600,
+        "IDs": [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Thumbnail": {
+            "Height": 125,
+            "Url": "http://www.example.com/image/481989943",
+            "Width": 100
+        },
+        "Title": "View from 15th Floor",
+        "Width": 800
+    }
+}
+
+{
+    "Image": {
+        "Animated": false,
+        "Height": 600,
+        "IDs": [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Title": "View from 15th Floor",
+        "Width": 800
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.cpp b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.cpp
new file mode 100755
index 000000000..62982ca6f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.cpp
@@ -0,0 +1,47 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // a JSON text
+    std::string text = R"(
+    {
+        "Image": {
+            "Width":  800,
+            "Height": 600,
+            "Title":  "View from 15th Floor",
+            "Thumbnail": {
+                "Url":    "http://www.example.com/image/481989943",
+                "Height": 125,
+                "Width":  100
+            },
+            "Animated" : false,
+            "IDs": [116, 943, 234, 38793]
+        }
+    }
+    )";
+
+    // parse and serialize JSON
+    json j_complete = json::parse(text);
+    std::cout << std::setw(4) << j_complete << "\n\n";
+
+
+    // define parser callback
+    json::parser_callback_t cb = [](int depth, json::parse_event_t event, json & parsed)
+    {
+        // skip object elements with key "Thumbnail"
+        if (event == json::parse_event_t::key and parsed == json("Thumbnail"))
+        {
+            return false;
+        }
+        else
+        {
+            return true;
+        }
+    };
+
+    // parse (with callback) and serialize JSON
+    json j_filtered = json::parse(text, cb);
+    std::cout << std::setw(4) << j_filtered << '\n';
+}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.link b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.link
new file mode 100755
index 000000000..9db1c3b83
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/rleJPtEaWVJ9oBAn"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.output b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.output
new file mode 100755
index 000000000..279a7ff74
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/parse__string__parser_callback_t.output
@@ -0,0 +1,34 @@
+{
+    "Image": {
+        "Animated": false,
+        "Height": 600,
+        "IDs": [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Thumbnail": {
+            "Height": 125,
+            "Url": "http://www.example.com/image/481989943",
+            "Width": 100
+        },
+        "Title": "View from 15th Floor",
+        "Width": 800
+    }
+}
+
+{
+    "Image": {
+        "Animated": false,
+        "Height": 600,
+        "IDs": [
+            116,
+            943,
+            234,
+            38793
+        ],
+        "Title": "View from 15th Floor",
+        "Width": 800
+    }
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/patch.cpp b/resources/3rdparty/modernjson/doc/examples/patch.cpp
new file mode 100755
index 000000000..24a52d596
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/patch.cpp
@@ -0,0 +1,30 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // the original document
+    json doc = R"(
+        {
+          "baz": "qux",
+          "foo": "bar"
+        }
+    )"_json;
+
+    // the patch
+    json patch = R"(
+        [
+          { "op": "replace", "path": "/baz", "value": "boo" },
+          { "op": "add", "path": "/hello", "value": ["world"] },
+          { "op": "remove", "path": "/foo"}
+        ]
+    )"_json;
+
+    // apply the patch
+    json patched_doc = doc.patch(patch);
+
+    // output original and patched document
+    std::cout << std::setw(4) << doc << "\n\n"
+              << std::setw(4) << patched_doc << std::endl;
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/patch.link b/resources/3rdparty/modernjson/doc/examples/patch.link
new file mode 100755
index 000000000..5d5032b7b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/patch.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/lbczW3AzcUbH1Nbo"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/patch.output b/resources/3rdparty/modernjson/doc/examples/patch.output
new file mode 100755
index 000000000..eb558fe25
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/patch.output
@@ -0,0 +1,11 @@
+{
+    "baz": "qux",
+    "foo": "bar"
+}
+
+{
+    "baz": "boo",
+    "hello": [
+        "world"
+    ]
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back.cpp b/resources/3rdparty/modernjson/doc/examples/push_back.cpp
new file mode 100755
index 000000000..5d0877f0a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json array = {1, 2, 3, 4, 5};
+    json null;
+
+    // print values
+    std::cout << array << '\n';
+    std::cout << null << '\n';
+
+    // add values
+    array.push_back(6);
+    array += 7;
+    null += "first";
+    null += "second";
+
+    // print values
+    std::cout << array << '\n';
+    std::cout << null << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back.link b/resources/3rdparty/modernjson/doc/examples/push_back.link
new file mode 100755
index 000000000..8ec17dbac
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/NDbzJ3aIWcJCtyQj"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back.output b/resources/3rdparty/modernjson/doc/examples/push_back.output
new file mode 100755
index 000000000..3306b60e3
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back.output
@@ -0,0 +1,4 @@
+[1,2,3,4,5]
+null
+[1,2,3,4,5,6,7]
+["first","second"]
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.cpp b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.cpp
new file mode 100755
index 000000000..9fe01ad79
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.cpp
@@ -0,0 +1,26 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json object = {{"one", 1}, {"two", 2}};
+    json null;
+
+    // print values
+    std::cout << object << '\n';
+    std::cout << null << '\n';
+
+    // add values:
+    object.push_back({"three", 3});  // object is extended
+    object += {"four", 4};           // object is extended
+    null.push_back({"five", 5});     // null is converted to array
+
+    // print values
+    std::cout << object << '\n';
+    std::cout << null << '\n';
+
+    // would throw:
+    //object.push_back({1, 2, 3});
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.link b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.link
new file mode 100755
index 000000000..2b5abaeda
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/wZF4dRHjfCyjb3rx"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.output b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.output
new file mode 100755
index 000000000..668eb25d7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back__initializer_list.output
@@ -0,0 +1,4 @@
+{"one":1,"two":2}
+null
+{"four":4,"one":1,"three":3,"two":2}
+[["five",5]]
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.cpp b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.cpp
new file mode 100755
index 000000000..b55ee6402
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json object = {{"one", 1}, {"two", 2}};
+    json null;
+
+    // print values
+    std::cout << object << '\n';
+    std::cout << null << '\n';
+
+    // add values
+    object.push_back(json::object_t::value_type("three", 3));
+    object += json::object_t::value_type("four", 4);
+    null += json::object_t::value_type("A", "a");
+    null += json::object_t::value_type("B", "b");
+
+    // print values
+    std::cout << object << '\n';
+    std::cout << null << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.link b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.link
new file mode 100755
index 000000000..24882e38c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/PbG1Ox3wbWO5M2n0"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.output b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.output
new file mode 100755
index 000000000..b8a7d3560
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/push_back__object_t__value.output
@@ -0,0 +1,4 @@
+{"one":1,"two":2}
+null
+{"four":4,"one":1,"three":3,"two":2}
+{"A":"a","B":"b"}
diff --git a/resources/3rdparty/modernjson/doc/examples/rbegin.cpp b/resources/3rdparty/modernjson/doc/examples/rbegin.cpp
new file mode 100755
index 000000000..2ced56d3c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/rbegin.cpp
@@ -0,0 +1,15 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get an iterator to the reverse-beginning
+    json::reverse_iterator it = array.rbegin();
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/rbegin.link b/resources/3rdparty/modernjson/doc/examples/rbegin.link
new file mode 100755
index 000000000..de269d74b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/rbegin.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/61XbPi0WzoFMwGOC"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/rbegin.output b/resources/3rdparty/modernjson/doc/examples/rbegin.output
new file mode 100755
index 000000000..7ed6ff82d
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/rbegin.output
@@ -0,0 +1 @@
+5
diff --git a/resources/3rdparty/modernjson/doc/examples/rend.cpp b/resources/3rdparty/modernjson/doc/examples/rend.cpp
new file mode 100755
index 000000000..ece1c5517
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/rend.cpp
@@ -0,0 +1,18 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create an array value
+    json array = {1, 2, 3, 4, 5};
+
+    // get an iterator to the reverse-end
+    json::reverse_iterator it = array.rend();
+
+    // increment the iterator to point to the first element
+    --it;
+
+    // serialize the element that the iterator points to
+    std::cout << *it << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/rend.link b/resources/3rdparty/modernjson/doc/examples/rend.link
new file mode 100755
index 000000000..17faa9117
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/rend.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/1jdSpDY9sGkVXNXf"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/rend.output b/resources/3rdparty/modernjson/doc/examples/rend.output
new file mode 100755
index 000000000..d00491fd7
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/rend.output
@@ -0,0 +1 @@
+1
diff --git a/resources/3rdparty/modernjson/doc/examples/size.cpp b/resources/3rdparty/modernjson/doc/examples/size.cpp
new file mode 100755
index 000000000..5949ed63f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/size.cpp
@@ -0,0 +1,28 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_object_empty(json::value_t::object);
+    json j_array = {1, 2, 4, 8, 16};
+    json j_array_empty(json::value_t::array);
+    json j_string = "Hello, world";
+
+    // call size()
+    std::cout << j_null.size() << '\n';
+    std::cout << j_boolean.size() << '\n';
+    std::cout << j_number_integer.size() << '\n';
+    std::cout << j_number_float.size() << '\n';
+    std::cout << j_object.size() << '\n';
+    std::cout << j_object_empty.size() << '\n';
+    std::cout << j_array.size() << '\n';
+    std::cout << j_array_empty.size() << '\n';
+    std::cout << j_string.size() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/size.link b/resources/3rdparty/modernjson/doc/examples/size.link
new file mode 100755
index 000000000..4cc0afa10
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/size.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/EbP2syhcIlnzaVgg"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/size.output b/resources/3rdparty/modernjson/doc/examples/size.output
new file mode 100755
index 000000000..3831387b1
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/size.output
@@ -0,0 +1,9 @@
+0
+1
+1
+1
+2
+0
+5
+0
+1
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__array_t.cpp b/resources/3rdparty/modernjson/doc/examples/swap__array_t.cpp
new file mode 100755
index 000000000..3c2cc6b76
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__array_t.cpp
@@ -0,0 +1,19 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json value = {{"array", {1, 2, 3, 4}}};
+
+    // create an array_t
+    json::array_t array = {"Snap", "Crackle", "Pop"};
+
+    // swap the array stored in the JSON value
+    value["array"].swap(array);
+
+    // output the values
+    std::cout << "value = " << value << '\n';
+    std::cout << "array = " << array << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__array_t.link b/resources/3rdparty/modernjson/doc/examples/swap__array_t.link
new file mode 100755
index 000000000..8851fdb98
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__array_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/Dm8mklPRNsWM9jDG"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__array_t.output b/resources/3rdparty/modernjson/doc/examples/swap__array_t.output
new file mode 100755
index 000000000..365302cc1
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__array_t.output
@@ -0,0 +1,2 @@
+value = {"array":["Snap","Crackle","Pop"]}
+array = [1,2,3,4]
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__object_t.cpp b/resources/3rdparty/modernjson/doc/examples/swap__object_t.cpp
new file mode 100755
index 000000000..d3a0bae25
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__object_t.cpp
@@ -0,0 +1,19 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json value = { {"translation", {{"one", "eins"}, {"two", "zwei"}}} };
+
+    // create an object_t
+    json::object_t object = {{"cow", "Kuh"}, {"dog", "Hund"}};
+
+    // swap the object stored in the JSON value
+    value["translation"].swap(object);
+
+    // output the values
+    std::cout << "value = " << value << '\n';
+    std::cout << "object = " << object << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__object_t.link b/resources/3rdparty/modernjson/doc/examples/swap__object_t.link
new file mode 100755
index 000000000..8bd7495ef
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__object_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/oTEHCv1zOE5n03v8"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__object_t.output b/resources/3rdparty/modernjson/doc/examples/swap__object_t.output
new file mode 100755
index 000000000..b5c9791bf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__object_t.output
@@ -0,0 +1,2 @@
+value = {"translation":{"cow":"Kuh","dog":"Hund"}}
+object = {"one":"eins","two":"zwei"}
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__reference.cpp b/resources/3rdparty/modernjson/doc/examples/swap__reference.cpp
new file mode 100755
index 000000000..178a60bec
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__reference.cpp
@@ -0,0 +1,17 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create two JSON values
+    json j1 = {1, 2, 3, 4, 5};
+    json j2 = {{"pi", 3.141592653589793}, {"e", 2.718281828459045}};
+
+    // swap the values
+    j1.swap(j2);
+
+    // output the values
+    std::cout << "j1 = " << j1 << '\n';
+    std::cout << "j2 = " << j2 << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__reference.link b/resources/3rdparty/modernjson/doc/examples/swap__reference.link
new file mode 100755
index 000000000..3ee4c0df8
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__reference.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/HUBPhdgANUGiBEWp"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__reference.output b/resources/3rdparty/modernjson/doc/examples/swap__reference.output
new file mode 100755
index 000000000..f5495bd55
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__reference.output
@@ -0,0 +1,2 @@
+j1 = {"e":2.71828182845905,"pi":3.14159265358979}
+j2 = [1,2,3,4,5]
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__string_t.cpp b/resources/3rdparty/modernjson/doc/examples/swap__string_t.cpp
new file mode 100755
index 000000000..af166849f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__string_t.cpp
@@ -0,0 +1,19 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create a JSON value
+    json value = { "the good", "the bad", "the ugly" };
+
+    // create string_t
+    json::string_t string = "the fast";
+
+    // swap the object stored in the JSON value
+    value[1].swap(string);
+
+    // output the values
+    std::cout << "value = " << value << '\n';
+    std::cout << "string = " << string << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__string_t.link b/resources/3rdparty/modernjson/doc/examples/swap__string_t.link
new file mode 100755
index 000000000..719313695
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__string_t.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/BBJAr8uCd2ru1ODN"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/swap__string_t.output b/resources/3rdparty/modernjson/doc/examples/swap__string_t.output
new file mode 100755
index 000000000..ae2a0976b
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/swap__string_t.output
@@ -0,0 +1,2 @@
+value = ["the good","the fast","the ugly"]
+string = the bad
diff --git a/resources/3rdparty/modernjson/doc/examples/type.cpp b/resources/3rdparty/modernjson/doc/examples/type.cpp
new file mode 100755
index 000000000..07ec78856
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/type.cpp
@@ -0,0 +1,25 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON values
+    json j_null;
+    json j_boolean = true;
+    json j_number_integer = 17;
+    json j_number_float = 23.42;
+    json j_object = {{"one", 1}, {"two", 2}};
+    json j_array = {1, 2, 4, 8, 16};
+    json j_string = "Hello, world";
+
+    // call type()
+    std::cout << std::boolalpha;
+    std::cout << (j_null.type() == json::value_t::null) << '\n';
+    std::cout << (j_boolean.type() == json::value_t::boolean) << '\n';
+    std::cout << (j_number_integer.type() == json::value_t::number_integer) << '\n';
+    std::cout << (j_number_float.type() == json::value_t::number_float) << '\n';
+    std::cout << (j_object.type() == json::value_t::object) << '\n';
+    std::cout << (j_array.type() == json::value_t::array) << '\n';
+    std::cout << (j_string.type() == json::value_t::string) << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/type.link b/resources/3rdparty/modernjson/doc/examples/type.link
new file mode 100755
index 000000000..f197d847a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/type.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/ZfaJtrNZiwyke1M8"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/type.output b/resources/3rdparty/modernjson/doc/examples/type.output
new file mode 100755
index 000000000..814ccfee2
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/type.output
@@ -0,0 +1,7 @@
+true
+true
+true
+true
+true
+true
+true
diff --git a/resources/3rdparty/modernjson/doc/examples/unflatten.cpp b/resources/3rdparty/modernjson/doc/examples/unflatten.cpp
new file mode 100755
index 000000000..e2b9b6b86
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/unflatten.cpp
@@ -0,0 +1,24 @@
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+    // create JSON value
+    json j_flattened =
+    {
+        {"/answer/everything", 42},
+        {"/happy", true},
+        {"/list/0", 1},
+        {"/list/1", 0},
+        {"/list/2", 2},
+        {"/name", "Niels"},
+        {"/nothing", nullptr},
+        {"/object/currency", "USD"},
+        {"/object/value", 42.99},
+        {"/pi", 3.141}
+    };
+
+    // call unflatten()
+    std::cout << std::setw(4) << j_flattened.unflatten() << '\n';
+}
diff --git a/resources/3rdparty/modernjson/doc/examples/unflatten.link b/resources/3rdparty/modernjson/doc/examples/unflatten.link
new file mode 100755
index 000000000..386f5e11f
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/unflatten.link
@@ -0,0 +1 @@
+<a target="_blank" href="http://melpon.org/wandbox/permlink/PFBoQVT7RG0e0Wua"><b>online</b></a>
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/doc/examples/unflatten.output b/resources/3rdparty/modernjson/doc/examples/unflatten.output
new file mode 100755
index 000000000..ed48385ae
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/examples/unflatten.output
@@ -0,0 +1,18 @@
+{
+    "answer": {
+        "everything": 42
+    },
+    "happy": true,
+    "list": [
+        1,
+        0,
+        2
+    ],
+    "name": "Niels",
+    "nothing": null,
+    "object": {
+        "currency": "USD",
+        "value": 42.99
+    },
+    "pi": 3.141
+}
diff --git a/resources/3rdparty/modernjson/doc/images/range-begin-end.svg b/resources/3rdparty/modernjson/doc/images/range-begin-end.svg
new file mode 100755
index 000000000..8e2b2fb6c
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/images/range-begin-end.svg
@@ -0,0 +1,435 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="545.89282"
+   height="156.9409"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="range-begin-end.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible">
+      <path
+         id="path6525"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path6519"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <linearGradient
+       id="linearGradient5488">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4040">
+      <stop
+         style="stop-color:#b6b6b6;stop-opacity:1;"
+         offset="0"
+         id="stop4042" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop4044" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488"
+       id="linearGradient6284"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-2"
+       id="linearGradient6284-3"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient5488-2">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490-5" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492-8" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-0"
+       id="linearGradient6284-5"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient5488-0">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490-1" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492-3" />
+    </linearGradient>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-8"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6525-3"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488"
+       id="linearGradient9026"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="332.80082"
+     inkscape:cy="165.04542"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="993"
+     inkscape:window-x="0"
+     inkscape:window-y="34"
+     inkscape:window-maximized="1"
+     inkscape:snap-bbox="true"
+     inkscape:object-nodes="true"
+     inkscape:snap-smooth-nodes="false"
+     inkscape:bbox-nodes="false"
+     inkscape:snap-bbox-edge-midpoints="false"
+     inkscape:object-paths="true"
+     fit-margin-top="10"
+     fit-margin-right="10"
+     fit-margin-bottom="10"
+     fit-margin-left="10" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-26.107143,-893.4807)">
+    <g
+       id="g7184">
+      <path
+         inkscape:tile-y0="219"
+         inkscape:tile-x0="51"
+         inkscape:tile-h="30.00002"
+         inkscape:tile-w="29.999997"
+         inkscape:tile-cy="234.00001"
+         inkscape:tile-cx="65.999998"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path3006"
+         d="m 80.999997,1001.3622 -29.999997,0 0,-30.00002 29.999997,0 z"
+         style="fill:url(#linearGradient9026);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <use
+         height="300"
+         width="600"
+         style="fill:none"
+         id="use4010"
+         transform="translate(29.999997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0" />
+      <use
+         id="use4012"
+         transform="translate(59.999994,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4014"
+         transform="translate(89.999991,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4016"
+         transform="translate(119.99999,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4018"
+         transform="translate(149.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4020"
+         transform="translate(179.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4022"
+         transform="translate(209.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4024"
+         transform="translate(239.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4026"
+         transform="translate(269.99997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4028"
+         transform="translate(299.99997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4030"
+         transform="translate(329.99997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4032"
+         transform="translate(359.99996,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4034"
+         transform="translate(389.99996,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4036"
+         transform="translate(419.99996,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4038"
+         transform="translate(449.99995,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <path
+         inkscape:tile-y0="219"
+         inkscape:tile-x0="51"
+         inkscape:tile-h="30.00002"
+         inkscape:tile-w="29.999997"
+         inkscape:tile-cy="234.00001"
+         inkscape:tile-cx="65.999998"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path3006-3"
+         d="m 560.99995,1001.3622 -30,0 0,-30.00002 30,0 z"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 2;stroke-dashoffset:0;marker-start:none" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:55.00000119%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
+       x="392.94931"
+       y="1040.2404"
+       id="text6504"
+       sodipodi:linespacing="55.000001%"><tspan
+         sodipodi:role="line"
+         id="tspan6506"
+         x="392.94931"
+         y="1040.2404"
+         rotate="0 0 0 0 0 0 0 0 0.50000191 0 0 0 0 0 0 0 0 0 0 0 0 0"
+         dy="0"
+         dx="0"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Past-the-last element</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 531.84531,279.29187 c 14.75083,-11.1311 12.86656,-14.42379 15.15229,-29.29442"
+       id="path6510"
+       inkscape:connector-curvature="0"
+       transform="translate(0,752.36218)"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g7203"
+       transform="translate(-40,-18.482143)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 128.39286,947.36218 -51.785717,0 0,-21.51786 51.785717,0 z"
+         id="use6288-9"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc"
+         inkscape:tile-x0="51"
+         inkscape:tile-y0="219" />
+      <text
+         transform="translate(0,752.36218)"
+         sodipodi:linespacing="55.000001%"
+         id="text7176"
+         y="189.10715"
+         x="80.535713"
+         style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:55.00000119%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         xml:space="preserve"><tspan
+           y="189.10715"
+           x="80.535713"
+           id="tspan7178"
+           sodipodi:role="line">begin</tspan></text>
+    </g>
+    <g
+       id="g7238"
+       transform="translate(20.035895,11.306019)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 538.39286,914.19254 -37.50001,0 0,-21.51786 37.50001,0 z"
+         id="use6288-9-7"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc"
+         inkscape:tile-x0="51"
+         inkscape:tile-y0="219" />
+      <text
+         sodipodi:linespacing="55.000001%"
+         id="text7176-3"
+         y="908.29968"
+         x="504.82141"
+         style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:55.00000119%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         xml:space="preserve"><tspan
+           y="908.29968"
+           x="504.82141"
+           id="tspan7178-7"
+           sodipodi:role="line">end</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Mend)"
+       d="M 60.16588,176.51786 C 64.809921,191.17027 67.41717,201.02245 68.196339,219"
+       id="path7243"
+       inkscape:connector-curvature="0"
+       transform="translate(0,752.36218)"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Mend)"
+       d="m 540.40821,925.49856 c 2.63474,15.08647 5.72454,31.23577 6.06617,45.86362"
+       id="path7243-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/resources/3rdparty/modernjson/doc/images/range-rbegin-rend.svg b/resources/3rdparty/modernjson/doc/images/range-rbegin-rend.svg
new file mode 100755
index 000000000..dc6045fcf
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/images/range-rbegin-rend.svg
@@ -0,0 +1,1232 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="588.98236"
+   height="249.91817"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="range-rbegin-rend.svg">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend"
+       style="overflow:visible">
+      <path
+         id="path6525"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path6519"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.8,0,0,-0.8,-10,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <linearGradient
+       id="linearGradient5488">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4040">
+      <stop
+         style="stop-color:#b6b6b6;stop-opacity:1;"
+         offset="0"
+         id="stop4042" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop4044" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488"
+       id="linearGradient6284"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-2"
+       id="linearGradient6284-3"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient5488-2">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490-5" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492-8" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-0"
+       id="linearGradient6284-5"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient5488-0">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490-1" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492-3" />
+    </linearGradient>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-8"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path6525-3"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
+    </marker>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7873-9"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient5488-20">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop5490-7" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop5492-87" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7889"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7891">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7893" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7895" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7897"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7899">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7901" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7903" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7905"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7907">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7909" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7911" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7913"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7915">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7917" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7919" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7921"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7923">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7925" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7927" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7929"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7931">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7933" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7935" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7937"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7939">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7941" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7943" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7945"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7947">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7949" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7951" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7953"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7955">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7957" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7959" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7961"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7963">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7965" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7967" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7969"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7971">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7973" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7975" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7977"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7979">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7981" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7983" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7985"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7987">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7989" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7991" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient7993"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient7995">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop7997" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop7999" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient8001"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       id="linearGradient8003">
+      <stop
+         style="stop-color:#c1b1b1;stop-opacity:1;"
+         offset="0"
+         id="stop8005" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:0;"
+         offset="1"
+         id="stop8007" />
+    </linearGradient>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-1"
+       style="overflow:visible">
+      <path
+         id="path6525-2"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-6"
+       style="overflow:visible">
+      <path
+         id="path6525-25"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-65"
+       style="overflow:visible">
+      <path
+         id="path6525-7"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-61"
+       style="overflow:visible">
+      <path
+         id="path6525-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-14"
+       style="overflow:visible">
+      <path
+         id="path6525-0"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mend-4"
+       style="overflow:visible">
+      <path
+         id="path6525-05"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(-0.4,0,0,-0.4,-4,0)"
+         inkscape:connector-curvature="0" />
+    </marker>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488"
+       id="linearGradient8849"
+       gradientUnits="userSpaceOnUse"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5488-20"
+       id="linearGradient8851"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(29.00003,-121.12184)"
+       x1="81"
+       y1="1001.3622"
+       x2="81"
+       y2="971.36218" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="369.86016"
+     inkscape:cy="93.704339"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1680"
+     inkscape:window-height="993"
+     inkscape:window-x="0"
+     inkscape:window-y="34"
+     inkscape:window-maximized="1"
+     inkscape:snap-bbox="false"
+     inkscape:object-nodes="true"
+     inkscape:snap-smooth-nodes="false"
+     inkscape:bbox-nodes="false"
+     inkscape:snap-bbox-edge-midpoints="false"
+     inkscape:object-paths="true"
+     inkscape:snap-nodes="false"
+     fit-margin-left="10"
+     fit-margin-top="10"
+     fit-margin-right="10"
+     fit-margin-bottom="10" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-12.08927,-776.79467)">
+    <g
+       id="g7184"
+       transform="translate(0,-37.142857)">
+      <path
+         inkscape:tile-y0="219"
+         inkscape:tile-x0="51"
+         inkscape:tile-h="30.00002"
+         inkscape:tile-w="29.999997"
+         inkscape:tile-cy="234.00001"
+         inkscape:tile-cx="65.999998"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path3006"
+         d="m 80.999997,1001.3622 -29.999997,0 0,-30.00002 29.999997,0 z"
+         style="fill:url(#linearGradient8849);fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <use
+         height="300"
+         width="600"
+         style="fill:none"
+         id="use4010"
+         transform="translate(29.999997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0" />
+      <use
+         id="use4012"
+         transform="translate(59.999994,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4014"
+         transform="translate(89.999991,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4016"
+         transform="translate(119.99999,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4018"
+         transform="translate(149.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4020"
+         transform="translate(179.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4022"
+         transform="translate(209.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4024"
+         transform="translate(239.99998,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4026"
+         transform="translate(269.99997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4028"
+         transform="translate(299.99997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4030"
+         transform="translate(329.99997,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4032"
+         transform="translate(359.99996,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4034"
+         transform="translate(389.99996,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4036"
+         transform="translate(419.99996,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <use
+         id="use4038"
+         transform="translate(449.99995,0)"
+         xlink:href="#path3006"
+         inkscape:tiled-clone-of="#path3006"
+         y="0"
+         x="0"
+         width="600"
+         height="300" />
+      <path
+         inkscape:tile-y0="219"
+         inkscape:tile-x0="51"
+         inkscape:tile-h="30.00002"
+         inkscape:tile-w="29.999997"
+         inkscape:tile-cy="234.00001"
+         inkscape:tile-cx="65.999998"
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path3006-3"
+         d="m 560.99995,1001.3622 -30,0 0,-30.00002 30,0 z"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:2, 2;stroke-dashoffset:0;marker-start:none" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:55.00000119%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
+       x="392.94931"
+       y="1003.0975"
+       id="text6504"
+       sodipodi:linespacing="55.000001%"><tspan
+         sodipodi:role="line"
+         id="tspan6506"
+         x="392.94931"
+         y="1003.0975"
+         rotate="0 0 0 0 0 0 0 0 0.50000191 0 0 0 0 0 0 0 0 0 0 0 0 0"
+         dy="0"
+         dx="0"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Past-the-last element</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 531.84531,994.51119 c 14.75083,-11.1311 12.86656,-14.42379 15.15229,-29.29442"
+       id="path6510"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <g
+       id="g7203"
+       transform="translate(-42.857143,66.517857)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 128.39286,947.36218 -51.785717,0 0,-21.51786 51.785717,0 z"
+         id="use6288-9"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc"
+         inkscape:tile-x0="51"
+         inkscape:tile-y0="219" />
+      <text
+         transform="translate(0,752.36218)"
+         sodipodi:linespacing="100%"
+         id="text7176"
+         y="189.10715"
+         x="80.535713"
+         style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         xml:space="preserve"><tspan
+           y="189.10715"
+           x="80.535713"
+           id="tspan7178"
+           sodipodi:role="line">begin</tspan></text>
+    </g>
+    <g
+       id="g7238"
+       transform="translate(52.178752,102.0203)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 538.39286,914.19254 -37.50001,0 0,-21.51786 37.50001,0 z"
+         id="use6288-9-7"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc"
+         inkscape:tile-x0="51"
+         inkscape:tile-y0="219" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text7176-3"
+         y="908.29968"
+         x="504.82141"
+         style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         xml:space="preserve"><tspan
+           y="908.29968"
+           x="504.82141"
+           id="tspan7178-7"
+           sodipodi:role="line">end</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Mend)"
+       d="m 60.418418,992.36218 c 5.631311,-10.66231 5.437814,-12.13048 7.020307,-28.14284"
+       id="path7243"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Mend)"
+       d="m 572.55107,994.69498 c -2.41602,-14.2079 -5.14198,-19.41885 -16.54338,-30.61303"
+       id="path7243-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:url(#linearGradient8851);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:3, 1;stroke-dashoffset:0"
+       d="m 110.00003,880.24036 -30,0 0,-30.00002 30,0 z"
+       id="path3006-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc"
+       inkscape:tile-cx="65.999998"
+       inkscape:tile-cy="234.00001"
+       inkscape:tile-w="29.999997"
+       inkscape:tile-h="30.00002"
+       inkscape:tile-x0="51"
+       inkscape:tile-y0="219" />
+    <use
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(29.999997,-4.5577924e-7)"
+       id="use4010-1"
+       style="fill:none"
+       width="600"
+       height="300" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(59.999994,-4.5577924e-7)"
+       id="use4012-7" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(89.999991,-4.5577924e-7)"
+       id="use4014-8" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(119.99999,-4.5577924e-7)"
+       id="use4016-7" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(149.99998,-4.5577924e-7)"
+       id="use4018-1" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(179.99998,-4.5577924e-7)"
+       id="use4020-8" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(209.99998,-4.5577924e-7)"
+       id="use4022-2" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(239.99998,-4.5577924e-7)"
+       id="use4024-8" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(269.99997,-4.5577924e-7)"
+       id="use4026-5" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(299.99997,-4.5577924e-7)"
+       id="use4028-1" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(329.99997,-4.5577924e-7)"
+       id="use4030-2" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(359.99996,-4.5577924e-7)"
+       id="use4032-3" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(389.99996,-4.5577924e-7)"
+       id="use4034-3" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(419.99996,-4.5577924e-7)"
+       id="use4036-3" />
+    <use
+       height="300"
+       width="600"
+       x="0"
+       y="0"
+       inkscape:tiled-clone-of="#path3006-0"
+       xlink:href="#path3006-0"
+       transform="translate(449.99995,-4.5577924e-7)"
+       id="use4038-6" />
+    <path
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-start:none"
+       d="m 80.00003,880.24036 -30,0 0,-30.00002 30,0 z"
+       id="path3006-3-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc"
+       inkscape:tile-cx="65.999998"
+       inkscape:tile-cy="234.00001"
+       inkscape:tile-w="29.999997"
+       inkscape:tile-h="30.00002"
+       inkscape:tile-x0="51"
+       inkscape:tile-y0="219" />
+    <g
+       id="g8277"
+       transform="translate(-51.428571,-1.4285714)">
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(0,752.36218)"
+         inkscape:connector-curvature="0"
+         id="path8237"
+         d="m 233.34524,84.837508 c 1.254,-15.536217 114.98903,-2.777919 121.72338,-15.152288"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <use
+         height="300"
+         width="600"
+         transform="matrix(-1,0,0,1,710.13724,0)"
+         id="use8275"
+         xlink:href="#path8237"
+         y="0"
+         x="0" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:55.00000119%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
+       x="240.33884"
+       y="813.02692"
+       id="text6504-7"
+       sodipodi:linespacing="55.000001%"><tspan
+         sodipodi:role="line"
+         id="tspan6506-6"
+         x="240.33884"
+         y="813.02692"
+         rotate="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Reversed sequence</tspan></text>
+    <use
+       height="300"
+       width="600"
+       style="fill:none"
+       id="use8302"
+       transform="translate(29.999997,-4.5577924e-7)"
+       xlink:href="#path3006-0"
+       inkscape:tiled-clone-of="#path3006-0"
+       y="0"
+       x="0" />
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
+       x="73.852928"
+       y="801.68091"
+       id="text6504-6"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         x="73.852928"
+         y="801.68091"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         id="tspan8334"><tspan
+           dx="0 0 0 0 0 0 0 0"
+           dy="0 0 0 0 0 0 0 0"
+           id="tspan8336"
+           style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Reverse </tspan></tspan><tspan
+         sodipodi:role="line"
+         x="73.852928"
+         y="814.4809"
+         rotate="0 0 0 0 0 0 0 0 0.50000191 0 0 0 0 0 0 0 0 0 0 0 0 0"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         id="tspan8338"><tspan
+   style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+   id="tspan8340">p</tspan>ast-the-last element</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
+       d="m 163.8064,896.54942 c -14.33285,0.82074 -21.21054,1.24043 -35.04542,5.5915"
+       id="path6510-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
+       d="m 544.96267,880.23574 c -0.69333,72.15876 -6.32327,11.53867 -29.57987,49.80003"
+       id="path6510-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 1;stroke-dashoffset:0;marker-end:url(#Arrow1Mend)"
+       d="m 545.03584,879.84887 c 0.23033,25.72136 0.0371,31.19541 0.86657,52.84844"
+       id="path6510-3-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path6510-3"
+       id="use8425"
+       transform="translate(-450.2755,0.50507624)"
+       width="600"
+       height="300" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path6510-3-6"
+       id="use8427"
+       transform="translate(-450.2755,0.50507624)"
+       width="600"
+       height="300" />
+    <g
+       id="g7238-5"
+       transform="translate(-478.30358,-104.55748)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         d="m 542.14286,914.19254 -41.25001,0 0,-21.51786 41.25001,0 z"
+         id="use6288-9-7-7"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc"
+         inkscape:tile-x0="51"
+         inkscape:tile-y0="219" />
+      <text
+         sodipodi:linespacing="100%"
+         id="text7176-3-6"
+         y="908.29968"
+         x="504.82141"
+         style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         xml:space="preserve"><tspan
+           y="908.29968"
+           x="504.82141"
+           id="tspan7178-7-8"
+           sodipodi:role="line">rend</tspan></text>
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Mend)"
+       d="m 43.408034,809.72436 c 12.137552,15.88138 15.661591,19.50971 16.938763,39.92268"
+       id="path7243-8-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 556.59927,808.81253 -55.39215,0 0,-21.51786 55.39215,0 z"
+       id="use6288-9-7-7-3"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc"
+       inkscape:tile-x0="51"
+       inkscape:tile-y0="219" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text7176-3-6-1"
+       y="802.91968"
+       x="505.13568"
+       style="font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+       xml:space="preserve"><tspan
+         y="802.91968"
+         x="505.13568"
+         id="tspan7178-7-8-6"
+         sodipodi:role="line">rbegin</tspan></text>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-mid:none;marker-end:url(#Arrow1Mend)"
+       d="m 531.62233,808.90183 c 12.13755,15.88138 12.37859,19.76225 13.65576,40.17522"
+       id="path7243-8-4-1"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:55.00000119%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
+       x="431.42856"
+       y="148.57143"
+       id="text8552"
+       sodipodi:linespacing="55.000001%"
+       transform="translate(0,752.36218)"><tspan
+         sodipodi:role="line"
+         id="tspan8554"
+         x="431.42856"
+         y="148.57143"></tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;font-family:Droid Sans;-inkscape-font-specification:Droid Sans"
+       x="166.6131"
+       y="897.79846"
+       id="text6504-65"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan6506-7"
+         x="166.6131"
+         y="897.79846"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">Reverse iterator stores an iterator to the next</tspan><tspan
+         sodipodi:role="line"
+         x="166.6131"
+         y="910.59845"
+         rotate="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
+         style="font-size:12.80000019px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:100%;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans"
+         id="tspan8577">element than the one it actually refers to </tspan></text>
+    <g
+       id="g8277-1"
+       transform="matrix(0.27807958,-0.96055804,0.96055804,0.27807958,-393.24194,1017.1669)">
+      <path
+         sodipodi:nodetypes="cc"
+         transform="translate(0,752.36218)"
+         inkscape:connector-curvature="0"
+         id="path8237-1"
+         d="m 334.47276,83.700993 c 1.254,-15.536217 13.86151,-1.641404 20.59586,-14.015773"
+         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <use
+         height="300"
+         width="600"
+         transform="matrix(-1,0,0,1,710.13724,0)"
+         id="use8275-6"
+         xlink:href="#path8237-1"
+         y="0"
+         x="0" />
+    </g>
+    <use
+       x="0"
+       y="0"
+       xlink:href="#g8277-1"
+       id="use8603"
+       transform="matrix(-0.86276047,0.50561286,-0.50561286,-0.86276047,1009.4587,1433.3597)"
+       width="600"
+       height="300" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
+       d="m 114.66269,818.41709 c -27.399607,7.78826 -38.934143,16.52166 -48.526393,31.12578"
+       id="path6510-6-5"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:none"
+       d="m 490.21942,902.99203 c -7.61534,-2.36124 -14.84658,-3.70931 -26.9137,-4.66154"
+       id="path6510-6-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>
diff --git a/resources/3rdparty/modernjson/doc/index.md b/resources/3rdparty/modernjson/doc/index.md
new file mode 100755
index 000000000..5373d4f34
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/index.md
@@ -0,0 +1,271 @@
+# JSON for Modern C++
+
+These pages contain the API documentation of JSON for Modern C++, a C++11 header-only JSON class.
+
+# Contents
+
+- @link nlohmann::basic_json `basic_json` class @endlink
+- [Functions](functions_func.html)
+  - object inspection
+    - @link nlohmann::basic_json::dump dump @endlink -- value serialization
+    - @link nlohmann::basic_json::type type @endlink -- type of the value
+    - @link nlohmann::basic_json::is_primitive is_primitive @endlink,
+      @link nlohmann::basic_json::is_structured is_structured @endlink,
+      @link nlohmann::basic_json::is_null is_null @endlink,
+      @link nlohmann::basic_json::is_boolean is_boolean @endlink,
+      @link nlohmann::basic_json::is_number is_number @endlink,
+      @link nlohmann::basic_json::is_number_integer is_number_integer @endlink,
+      @link nlohmann::basic_json::is_number_unsigned is_number_unsigned @endlink,
+      @link nlohmann::basic_json::is_number_float is_number_float @endlink,
+      @link nlohmann::basic_json::is_object is_object @endlink,
+      @link nlohmann::basic_json::is_array is_array @endlink,
+      @link nlohmann::basic_json::is_string is_string @endlink,
+      @link nlohmann::basic_json::is_discarded is_discarded @endlink -- check for value type
+    - @link nlohmann::basic_json::operator value_t() const operator value_t @endlink -- type of the value (implicit conversion)
+  - value access
+    - @link nlohmann::basic_json::get get @endlink -- get a value
+    - @link nlohmann::basic_json::get_ptr get_ptr @endlink -- get a value pointer
+    - @link nlohmann::basic_json::get_ref get_ref @endlink -- get a value reference
+    - @link nlohmann::basic_json::operator ValueType() const operator ValueType @endlink -- get a value (implicit conversion)
+  - lexicographical comparison operators
+  - serialization
+  - deserialization
+- Types
+  - @link nlohmann::basic_json::array_t arrays @endlink
+  - @link nlohmann::basic_json::object_t objects @endlink
+  - @link nlohmann::basic_json::string_t strings @endlink
+  - @link nlohmann::basic_json::boolean_t booleans @endlink
+  - numbers
+    - @link nlohmann::basic_json::number_integer_t signed integers @endlink
+    - @link nlohmann::basic_json::number_unsigned_t unsigned integers @endlink
+    - @link nlohmann::basic_json::number_float_t floating-point @endlink
+
+# Container function overview
+
+The container functions known from STL have been extended to support the different value types from JSON. However, not all functions can be applied to all value types. Note that the signature of some functions differ between the types; for instance, `at` may be called with either a string to address a key in an object or with an integer to address a value in an array.
+
+<table>
+  <tr>
+    <th rowspan="2">group</td>
+    <th rowspan="2">function</td>
+    <th colspan="6">JSON value type</th>
+  </tr>
+  <tr>
+    <th>object</th>
+    <th>array</th>
+    <th>string</th>
+    <th>number</th>
+    <th>boolean</th>
+    <th>null</th>
+  </tr>
+  <tr>
+    <td rowspan="8">iterators</td>
+    <td>`begin`</td>
+    <td class="ok_green">@link nlohmann::basic_json::begin `begin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::begin `begin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::begin `begin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::begin `begin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::begin `begin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::begin `begin` @endlink (returns `end()`)</td>
+  </tr>
+  <tr>
+    <td>`cbegin`</td>
+    <td class="ok_green">@link nlohmann::basic_json::cbegin `cbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cbegin `cbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cbegin `cbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cbegin `cbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cbegin `cbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cbegin `cbegin` @endlink (returns `cend()`)</td>
+  </tr>
+  <tr>
+    <td>`end`</td>
+    <td class="ok_green">@link nlohmann::basic_json::end `end` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::end `end` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::end `end` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::end `end` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::end `end` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::end `end` @endlink</td>
+  </tr>
+  <tr>
+    <td>`cend`</td>
+    <td class="ok_green">@link nlohmann::basic_json::cend `cend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cend `cend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cend `cend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cend `cend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cend `cend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::cend `cend` @endlink</td>
+  </tr>
+  <tr>
+    <td>`rbegin`</td>
+    <td class="ok_green">@link nlohmann::basic_json::rbegin `rbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rbegin `rbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rbegin `rbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rbegin `rbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rbegin `rbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rbegin `rbegin` @endlink</td>
+  </tr>
+  <tr>
+    <td>`crbegin`</td>
+    <td class="ok_green">@link nlohmann::basic_json::crbegin `crbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crbegin `crbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crbegin `crbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crbegin `crbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crbegin `crbegin` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crbegin `crbegin` @endlink</td>
+  </tr>
+  <tr>
+    <td>`rend`</td>
+    <td class="ok_green">@link nlohmann::basic_json::rend `rend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rend `rend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rend `rend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rend `rend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rend `rend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::rend `rend` @endlink</td>
+  </tr>
+  <tr>
+    <td>`crend`</td>
+    <td class="ok_green">@link nlohmann::basic_json::crend `crend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crend `crend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crend `crend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crend `crend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crend `crend` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::crend `crend` @endlink</td>
+  </tr>
+  <tr>
+    <td rowspan="4">element<br>access</td>
+    <td>`at`</td>
+    <td class="ok_green">@link nlohmann::basic_json::at(const typename object_t::key_type & key) `at` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::at(size_type) `at` @endlink</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+  </tr>
+  <tr>
+    <td>`operator[]`</td>
+    <td class="ok_green">@link nlohmann::basic_json::operator[](const typename object_t::key_type &key) `operator[]` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::operator[](size_type) `operator[]` @endlink</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="ok_green">@link nlohmann::basic_json::operator[](const typename object_t::key_type & key) `operator[]` @endlink (creates object)<br>@link nlohmann::basic_json::operator[](size_type) `operator[]` @endlink (creates array)</td>
+  </tr>
+  <tr>
+    <td>`front`</td>
+    <td class="ok_green">@link nlohmann::basic_json::front `front` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::front `front` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::front `front` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::front `front` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::front `front` @endlink</td>
+    <td class="nok_throws">throws `std::out_of_range`</td>
+  </tr>
+  <tr>
+    <td>`back`</td>
+    <td class="ok_green">@link nlohmann::basic_json::back `back` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::back `back` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::back `back` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::back `back` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::back `back` @endlink</td>
+    <td class="nok_throws">throws `std::out_of_range`</td>
+  </tr>
+  <tr>
+    <td rowspan="3">capacity</td>
+    <td>`empty`</td>
+    <td class="ok_green">@link nlohmann::basic_json::empty `empty` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::empty `empty` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::empty `empty` @endlink (returns `false`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::empty `empty` @endlink (returns `false`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::empty `empty` @endlink (returns `false`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::empty `empty` @endlink (returns `true`)</td>
+  </tr>
+  <tr>
+    <td>`size`</td>
+    <td class="ok_green">@link nlohmann::basic_json::size `size` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::size `size` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::size `size` @endlink (returns `1`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::size `size` @endlink (returns `1`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::size `size` @endlink (returns `1`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::size `size` @endlink (returns `0`)</td>
+  </tr>
+  <tr>
+    <td>`max_size_`</td>
+    <td class="ok_green">@link nlohmann::basic_json::max_size `max_size` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::max_size `max_size` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::max_size `max_size` @endlink (returns `1`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::max_size `max_size` @endlink (returns `1`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::max_size `max_size` @endlink (returns `1`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::max_size `max_size` @endlink (returns `0`)</td>
+  </tr>
+  <tr>
+    <td rowspan="5">modifiers</td>
+    <td>`clear`</td>
+    <td class="ok_green">@link nlohmann::basic_json::clear `clear` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::clear `clear` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::clear `clear` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::clear `clear` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::clear `clear` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::clear `clear` @endlink</td>
+  </tr>
+  <tr>
+    <td>`insert`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="ok_green">@link nlohmann::basic_json::insert `insert` @endlink</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+  </tr>
+  <tr>
+    <td>`erase`</td>
+    <td class="ok_green">@link nlohmann::basic_json::erase `erase` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::erase `erase` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::erase `erase` @endlink (converts to null)</td>
+    <td class="ok_green">@link nlohmann::basic_json::erase `erase` @endlink (converts to null)</td>
+    <td class="ok_green">@link nlohmann::basic_json::erase `erase` @endlink (converts to null)</td>
+    <td class="nok_throws">throws</td>
+  </tr>
+  <tr>
+    <td>`push_back`</td>
+    <td class="ok_green">@link nlohmann::basic_json::push_back(const typename object_t::value_type & val) `push_back` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::push_back(const nlohmann::basic_json &) `push_back` @endlink</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="nok_throws">throws `std::domain_error`</td>
+    <td class="ok_green">@link nlohmann::basic_json::push_back(const typename object_t::value_type & val) `push_back` @endlink (creates object)<br>@link nlohmann::basic_json::push_back(const nlohmann::basic_json &) `push_back` @endlink (creates array)</td>
+  </tr>
+  <tr>
+    <td>`swap`</td>
+    <td class="ok_green">@link nlohmann::basic_json::swap `swap` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::swap `swap` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::swap `swap` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::swap `swap` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::swap `swap` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::swap `swap` @endlink</td>
+  </tr>
+  <tr>
+    <td rowspan="2">lookup</td>
+    <td>`find`</td>
+    <td class="ok_green">@link nlohmann::basic_json::find `find` @endlink (returns `end()`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::find `find` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::find `find` @endlink (returns `end()`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::find `find` @endlink (returns `end()`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::find `find` @endlink (returns `end()`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::find `find` @endlink (returns `end()`)</td>
+  </tr>
+  <tr>
+    <td>`count`</td>
+    <td class="ok_green">@link nlohmann::basic_json::count `count` @endlink (returns `0`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::count `count` @endlink</td>
+    <td class="ok_green">@link nlohmann::basic_json::count `count` @endlink (returns `0`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::count `count` @endlink (returns `0`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::count `count` @endlink (returns `0`)</td>
+    <td class="ok_green">@link nlohmann::basic_json::count `count` @endlink (returns `0`)</td>
+  </tr>
+</table>
+
+@copyright Copyright &copy; 2013-2016 Niels Lohmann. The code is licensed under the [MIT License](http://opensource.org/licenses/MIT).
+
+@author [Niels Lohmann](http://nlohmann.me)
+@see https://github.com/nlohmann/json to download the source code
+
+@version 2.0.0
diff --git a/resources/3rdparty/modernjson/doc/json.gif b/resources/3rdparty/modernjson/doc/json.gif
new file mode 100755
index 000000000..7cd943717
Binary files /dev/null and b/resources/3rdparty/modernjson/doc/json.gif differ
diff --git a/resources/3rdparty/modernjson/doc/scripts/git-update-ghpages b/resources/3rdparty/modernjson/doc/scripts/git-update-ghpages
new file mode 100755
index 000000000..f9760fee6
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/scripts/git-update-ghpages
@@ -0,0 +1,221 @@
+#!/usr/bin/env ruby
+# git update-ghpages user/repo -b gh-pages -p manual/ -i
+
+require 'fileutils'
+require 'tmpdir'
+
+module Params
+  def extract(what)   i = index(what) and slice!(i, 2)[1] end;
+  def first_is(what)  shift  if what.include?(self.first); end
+  def self.[](*what)  what.extend Params; end
+  def ===(argv)       argv.first_is(self); end
+end
+
+# ============================================================================
+
+ARGV.extend Params
+
+class CLI
+  # CLI options
+  attr_reader :prefix    #=> "doc/"
+  attr_reader :input     #=> "/home/me/projects/foo"
+  attr_reader :message   #=> "Updated"
+  attr_reader :repo      #=> "git@github.com:me/project.git"
+  attr_reader :url       #=> "http://me.github.com/project"
+  attr_reader :branch    #=> "gh-pages"
+
+  def verbose?() @verbose; end
+  def force?() @force; end
+  def simulate?() @simulate; end
+
+  def initialize
+    # Switches
+    @verbose  = !! (ARGV.extract('--verbose') || ARGV.delete('-v'))
+    @simulate = !! (ARGV.extract('--simulate') || ARGV.delete('-s'))
+    @force    = !! (ARGV.delete('--force') || ARGV.delete('-f'))
+
+    # Stuff
+    @prefix   = ARGV.extract('--prefix') || ARGV.extract('-p') || ''
+    @input    = File.expand_path(ARGV.extract('--input') || ARGV.extract('-i') || '.')
+    @message  = ARGV.extract('--message') || ARGV.extract('-m') || 'Update'
+
+    # Github info
+    branch = ARGV.extract('--branch') || ARGV.extract('-b') || nil
+    @repo, @url, @branch = get_github_info(ARGV.shift, branch)
+  end
+
+  def git_current_branch
+    `git rev-parse --abbrev-ref HEAD`.strip
+  end
+
+  def git_deploy
+    in_temp_path do |temppath|
+      status "Cloning repository"
+      system! "git clone #{repo} -b #{branch} #{temppath}"
+
+      if git_current_branch != branch
+        status "Warning: No #{branch} branch found in repo, creating one."
+        return git_deploy_force
+      end
+
+      copy_files input, File.join(temppath, prefix)
+
+      status "Committing files"
+      system! "git add .; git add -u; git commit -m #{message.to_s.inspect}"
+
+      unless simulate?
+        status "Updating repo"
+        system! "git push origin #{branch}"
+      end
+      true
+    end
+  end
+
+  def git_deploy_force
+    in_temp_path do |temppath|
+      status "Creating new repository"
+      system! "git init ."
+      system! "git checkout -b gh-pages"
+
+      copy_files input, File.join(temppath, prefix)
+
+      status "Committing files"
+      system! "git add . && git commit -m #{message.to_s.inspect}"
+
+      unless simulate?
+        status "Updating repo"
+        system! "git push #{repo} gh-pages:#{branch} --force"
+      end
+      true
+    end
+  end
+
+  def get_github_info(repo, branch=nil, prefix=nil)
+    if github_format?(repo)
+      user, repo_name = repo.split('/')
+      r = "git@github.com:#{repo}.git"
+
+      # User page or project page?
+      if repo_name =~ /\.github\.com/
+        [r, "http://#{repo_name}/#{prefix}", branch || 'master' ]
+      else
+        [r, "http://#{user}.github.com/#{repo_name}/#{prefix}", branch || 'gh-pages' ]
+      end
+    else
+      [repo, nil, branch]
+    end
+  end
+
+  def run!
+    unless repo
+      print_help
+      exit 128
+    end
+
+    status "Deploying to #{repo} (branch #{branch})"
+    msg "NOTE: Running in simulation mode." if simulate?
+    msg "WARNING: If the repository has gh-pages history, it with be overriden." if force? && !simulate?
+
+    result = force? ? git_deploy_force : git_deploy
+
+    if result
+      puts ""
+      status "Done."
+      msg "See: #{url}" if url && !simulate?
+    else
+      tip "Failed."
+      exit 1
+    end
+  end
+
+  def status(str)
+    puts "#{c('===>',34)} #{c(str, 32)}"
+  end
+
+  def msg(str)
+    puts "     #{c(str, 32)}"
+  end
+
+  def c(str, color)
+    "\033[#{color}m#{str}\033[0m"
+  end
+
+  def print_help
+    tip \
+    %{Usage: git update-ghpages username/repository [options]
+
+      Flags:
+        -f,        --force       Force an update (WARNING: kills the history!)
+        -s,        --simulate    Creates the repository, but doesn't push.
+        -v,        --verbose     Verbose mode
+
+      Options:
+        -p PATH,   --prefix      The prefix
+        -i PATH,   --input       Input (defaults to current directory)
+        -b BRANCH, --branch      The branch to deploy to (defaults to gh-pages)
+        -m MSG,    --message     Commit message (defaults to 'Update')
+
+      Examples:
+
+      Update the repo 'coffee' of github user 'james' with the files from the
+      current directory. The files will be in http://james.github.com/coffee.
+
+        $ git update-ghpages james/coffee
+
+      Same as above, but take the files from 'doc/'.
+
+        $ git update-ghpages james/coffee -i doc
+
+      Same as the first, but the files will instead be in
+      http://james.github.com/coffee/manual.
+
+        $ git update-ghpages james/coffee -i doc -p manual
+    }.gsub(/^ {4}/, '')
+  end
+
+private # Helpers
+
+  def tip(msg)
+    $stderr.write "#{msg}\n"
+  end
+
+  def github_format?(str)
+    str =~ /^([A-Za-z0-9\-_]+)\/([A-Za-z0-9\-_\.]+)$/
+  end
+
+  # Performs actions inside a temp path.
+  def in_temp_path(&blk)
+    require 'tmpdir'
+    Dir.mktmpdir do |dir|
+      Dir.chdir(dir) { yield dir }
+    end
+  end
+
+  def system!(str)
+    puts `#{str} 2>&1`.strip.gsub(/^/, "     ")
+    raise "Failed with exit code #{$?.to_i}" unless $?.to_i == 0
+  end
+
+  # Returns the current branch name
+  def git_branch
+    `git symbolic-ref HEAD`.strip.split('/').last
+  end
+
+  # Copy files from source folder to another
+  def copy_files(from, to)
+    status "Copying files #{from} => #{to}..."  if verbose?
+
+    Dir["#{from}/**/*"].each do |f|
+      next  unless File.file?(f)
+
+      target = File.join(to, f.gsub(/^#{Regexp.escape from}/, ''))
+
+      FileUtils.mkdir_p File.dirname(target)
+      msg "%20s => %-20s" % [f, target]  if verbose?
+      FileUtils.cp f, target
+    end
+  end
+
+end
+
+CLI.new.run!
diff --git a/resources/3rdparty/modernjson/doc/scripts/send_to_wandbox.py b/resources/3rdparty/modernjson/doc/scripts/send_to_wandbox.py
new file mode 100755
index 000000000..0158fb16a
--- /dev/null
+++ b/resources/3rdparty/modernjson/doc/scripts/send_to_wandbox.py
@@ -0,0 +1,120 @@
+#! /usr/bin/env python
+
+# This script uploads a directory to Wandbox (http://melpon.org/wandbox),
+# which is an online compiler environment, and prints a permalink to the
+# uploaded code. We use this to provide a "Try it online" version of the
+# library to make the barrier to entry as low as possible.
+#
+# This script was adapted from the script proposed in
+# https://github.com/melpon/wandbox/issues/153.
+#
+# To know how to use this script: ./wandbox.py --help
+#
+# Copyright Louis Dionne 2015
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
+import argparse
+import fnmatch
+import json
+import os
+import re
+import urllib2
+
+
+# Strips C and C++ comments from the given string.
+#
+# Copied from http://stackoverflow.com/a/241506/627587.
+def strip_comments(text):
+    def replacer(match):
+        s = match.group(0)
+        if s.startswith('/'):
+            return " " # note: a space and not an empty string
+        else:
+            return s
+    pattern = re.compile(
+        r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"',
+        re.DOTALL | re.MULTILINE
+    )
+    return re.sub(pattern, replacer, text)
+
+
+# Post the given JSON data to Wandbox's API, and return the result
+# as a JSON object.
+def upload(options):
+    request = urllib2.Request('http://melpon.org/wandbox/api/compile.json')
+    request.add_header('Content-Type', 'application/json')
+    response = urllib2.urlopen(request, json.dumps(options))
+    return json.loads(response.read())
+
+
+# Returns a list of the '.hpp' headers in the given directory and in
+# subdirectories.
+#
+# The path must be absolute, and the returned paths are all absolute too.
+def headers(path):
+    return [
+        os.path.join(dir, file)
+            for (dir, _, files) in os.walk(path)
+                for file in fnmatch.filter(files, "*.hpp")
+    ]
+
+
+def main():
+    parser = argparse.ArgumentParser(description=
+        """Upload a directory to Wandbox (http://melpon.org/wandbox).
+
+           On success, the program prints a permalink to the uploaded
+           directory on Wandbox and returns 0. On error, it prints the
+           response from the Wandbox API and returns 1.
+
+           Note that the comments are stripped from all the headers in the
+           uploaded directory.
+        """
+    )
+    parser.add_argument('directory', type=str, help=
+        """A directory to upload to Wandbox.
+
+           The path may be either absolute or relative to the current directory.
+           However, the names of the files uploaded to Wandbox will all be
+           relative to this directory. This way, one can easily specify the
+           directory to be '/some/project/include', and the uploaded files
+           will be uploaded as-if they were rooted at '/some/project/include'
+        """)
+    parser.add_argument('main', type=str, help=
+        """The main source file.
+
+           The path may be either absolute or relative to the current directory.
+        """
+    )
+    args = parser.parse_args()
+    directory = os.path.abspath(args.directory)
+    if not os.path.exists(directory):
+        raise Exception("'%s' is not a valid directory" % args.directory)
+
+    cpp = os.path.abspath(args.main)
+    if not os.path.exists(cpp):
+        raise Exception("'%s' is not a valid file name" % args.main)
+
+    response = upload({
+        'code': open(cpp).read(),
+        'codes': [{
+            'file': os.path.relpath(header, directory),
+            #'code': strip_comments(open(header).read())
+            'code': open(header).read()
+        } for header in headers(directory)],
+        'options': 'boost-nothing,c++11',
+        'compiler': 'gcc-4.9.2',
+        'save': True,
+        'compiler-option-raw': '-I.'
+    })
+
+    if 'status' in response and response['status'] == '0':
+        print response['url']
+        return 0
+    else:
+        print response
+        return 1
+
+
+exit(main())
diff --git a/resources/3rdparty/modernjson/src/json.hpp b/resources/3rdparty/modernjson/src/json.hpp
new file mode 100755
index 000000000..436467632
--- /dev/null
+++ b/resources/3rdparty/modernjson/src/json.hpp
@@ -0,0 +1,10182 @@
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++
+|  |  |__   |  |  | | | |  version 2.0.0
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
+
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+Copyright (c) 2013-2016 Niels Lohmann <http://nlohmann.me>.
+
+Permission is hereby  granted, free of charge, to any  person obtaining a copy
+of this software and associated  documentation files (the "Software"), to deal
+in the Software  without restriction, including without  limitation the rights
+to  use, copy,  modify, merge,  publish, distribute,  sublicense, and/or  sell
+copies  of  the Software,  and  to  permit persons  to  whom  the Software  is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE  IS PROVIDED "AS  IS", WITHOUT WARRANTY  OF ANY KIND,  EXPRESS OR
+IMPLIED,  INCLUDING BUT  NOT  LIMITED TO  THE  WARRANTIES OF  MERCHANTABILITY,
+FITNESS FOR  A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT  SHALL THE
+AUTHORS  OR COPYRIGHT  HOLDERS  BE  LIABLE FOR  ANY  CLAIM,  DAMAGES OR  OTHER
+LIABILITY, WHETHER IN AN ACTION OF  CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef NLOHMANN_JSON_HPP
+#define NLOHMANN_JSON_HPP
+
+#include <algorithm>
+#include <array>
+#include <cassert>
+#include <cerrno>
+#include <ciso646>
+#include <cmath>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <functional>
+#include <initializer_list>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <limits>
+#include <map>
+#include <memory>
+#include <sstream>
+#include <stdexcept>
+#include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
+// disable float-equal warnings on GCC/clang
+#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
+
+/*!
+@brief namespace for Niels Lohmann
+@see https://github.com/nlohmann
+@since version 1.0.0
+*/
+namespace nlohmann
+{
+
+
+/*!
+@brief unnamed namespace with internal helper functions
+@since version 1.0.0
+*/
+namespace
+{
+/*!
+@brief Helper to determine whether there's a key_type for T.
+@sa http://stackoverflow.com/a/7728728/266378
+*/
+template<typename T>
+struct has_mapped_type
+{
+  private:
+    template<typename C> static char test(typename C::mapped_type*);
+    template<typename C> static char (&test(...))[2];
+  public:
+    static constexpr bool value = sizeof(test<T>(0)) == 1;
+};
+
+/*!
+@brief helper class to create locales with decimal point
+@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315
+*/
+class DecimalSeparator : public std::numpunct<char>
+{
+  protected:
+    char do_decimal_point() const
+    {
+        return '.';
+    }
+};
+
+}
+
+/*!
+@brief a class to store JSON values
+
+@tparam ObjectType type for JSON objects (`std::map` by default; will be used
+in @ref object_t)
+@tparam ArrayType type for JSON arrays (`std::vector` by default; will be used
+in @ref array_t)
+@tparam StringType type for JSON strings and object keys (`std::string` by
+default; will be used in @ref string_t)
+@tparam BooleanType type for JSON booleans (`bool` by default; will be used
+in @ref boolean_t)
+@tparam NumberIntegerType type for JSON integer numbers (`int64_t` by
+default; will be used in @ref number_integer_t)
+@tparam NumberUnsignedType type for JSON unsigned integer numbers (@c
+`uint64_t` by default; will be used in @ref number_unsigned_t)
+@tparam NumberFloatType type for JSON floating-point numbers (`double` by
+default; will be used in @ref number_float_t)
+@tparam AllocatorType type of the allocator to use (`std::allocator` by
+default)
+
+@requirement The class satisfies the following concept requirements:
+- Basic
+ - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible):
+   JSON values can be default constructed. The result will be a JSON null value.
+ - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible):
+   A JSON value can be constructed from an rvalue argument.
+ - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible):
+   A JSON value can be copy-constructed from an lvalue expression.
+ - [MoveAssignable](http://en.cppreference.com/w/cpp/concept/MoveAssignable):
+   A JSON value van be assigned from an rvalue argument.
+ - [CopyAssignable](http://en.cppreference.com/w/cpp/concept/CopyAssignable):
+   A JSON value can be copy-assigned from an lvalue expression.
+ - [Destructible](http://en.cppreference.com/w/cpp/concept/Destructible):
+   JSON values can be destructed.
+- Layout
+ - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType):
+   JSON values have
+   [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
+   All non-static data members are private and standard layout types, the class
+   has no virtual functions or (virtual) base classes.
+- Library-wide
+ - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable):
+   JSON values can be compared with `==`, see @ref
+   operator==(const_reference,const_reference).
+ - [LessThanComparable](http://en.cppreference.com/w/cpp/concept/LessThanComparable):
+   JSON values can be compared with `<`, see @ref
+   operator<(const_reference,const_reference).
+ - [Swappable](http://en.cppreference.com/w/cpp/concept/Swappable):
+   Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of
+   other compatible types, using unqualified function call @ref swap().
+ - [NullablePointer](http://en.cppreference.com/w/cpp/concept/NullablePointer):
+   JSON values can be compared against `std::nullptr_t` objects which are used
+   to model the `null` value.
+- Container
+ - [Container](http://en.cppreference.com/w/cpp/concept/Container):
+   JSON values can be used like STL containers and provide iterator access.
+ - [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer);
+   JSON values can be used like STL containers and provide reverse iterator
+   access.
+
+@internal
+@note ObjectType trick from http://stackoverflow.com/a/9860911
+@endinternal
+
+@see [RFC 7159: The JavaScript Object Notation (JSON) Data Interchange
+Format](http://rfc7159.net/rfc7159)
+
+@since version 1.0.0
+
+@nosubgrouping
+*/
+template <
+    template<typename U, typename V, typename... Args> class ObjectType = std::map,
+    template<typename U, typename... Args> class ArrayType = std::vector,
+    class StringType = std::string,
+    class BooleanType = bool,
+    class NumberIntegerType = std::int64_t,
+    class NumberUnsignedType = std::uint64_t,
+    class NumberFloatType = double,
+    template<typename U> class AllocatorType = std::allocator
+    >
+class basic_json
+{
+  private:
+    /// workaround type for MSVC
+    using basic_json_t = basic_json<ObjectType,
+          ArrayType,
+          StringType,
+          BooleanType,
+          NumberIntegerType,
+          NumberUnsignedType,
+          NumberFloatType,
+          AllocatorType>;
+
+  public:
+    // forward declarations
+    template<typename Base> class json_reverse_iterator;
+    class json_pointer;
+
+    /////////////////////
+    // container types //
+    /////////////////////
+
+    /// @name container types
+    /// @{
+
+    /// the type of elements in a basic_json container
+    using value_type = basic_json;
+
+    /// the type of an element reference
+    using reference = value_type&;
+    /// the type of an element const reference
+    using const_reference = const value_type&;
+
+    /// a type to represent differences between iterators
+    using difference_type = std::ptrdiff_t;
+    /// a type to represent container sizes
+    using size_type = std::size_t;
+
+    /// the allocator type
+    using allocator_type = AllocatorType<basic_json>;
+
+    /// the type of an element pointer
+    using pointer = typename std::allocator_traits<allocator_type>::pointer;
+    /// the type of an element const pointer
+    using const_pointer = typename std::allocator_traits<allocator_type>::const_pointer;
+
+    /// an iterator for a basic_json container
+    class iterator;
+    /// a const iterator for a basic_json container
+    class const_iterator;
+    /// a reverse iterator for a basic_json container
+    using reverse_iterator = json_reverse_iterator<typename basic_json::iterator>;
+    /// a const reverse iterator for a basic_json container
+    using const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator>;
+
+    /// @}
+
+
+    /*!
+    @brief returns the allocator associated with the container
+    */
+    static allocator_type get_allocator()
+    {
+        return allocator_type();
+    }
+
+
+    ///////////////////////////
+    // JSON value data types //
+    ///////////////////////////
+
+    /// @name JSON value data types
+    /// @{
+
+    /*!
+    @brief a type for an object
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes JSON objects as follows:
+    > An object is an unordered collection of zero or more name/value pairs,
+    > where a name is a string and a value is a string, number, boolean, null,
+    > object, or array.
+
+    To store objects in C++, a type is defined by the template parameters
+    described below.
+
+    @tparam ObjectType  the container to store objects (e.g., `std::map` or
+    `std::unordered_map`)
+    @tparam StringType the type of the keys or names (e.g., `std::string`).
+    The comparison function `std::less<StringType>` is used to order elements
+    inside the container.
+    @tparam AllocatorType the allocator to use for objects (e.g.,
+    `std::allocator`)
+
+    #### Default type
+
+    With the default values for @a ObjectType (`std::map`), @a StringType
+    (`std::string`), and @a AllocatorType (`std::allocator`), the default
+    value for @a object_t is:
+
+    @code {.cpp}
+    std::map<
+      std::string, // key_type
+      basic_json, // value_type
+      std::less<std::string>, // key_compare
+      std::allocator<std::pair<const std::string, basic_json>> // allocator_type
+    >
+    @endcode
+
+    #### Behavior
+
+    The choice of @a object_t influences the behavior of the JSON class. With
+    the default type, objects have the following behavior:
+
+    - When all names are unique, objects will be interoperable in the sense
+      that all software implementations receiving that object will agree on
+      the name-value mappings.
+    - When the names within an object are not unique, later stored name/value
+      pairs overwrite previously stored name/value pairs, leaving the used
+      names unique. For instance, `{"key": 1}` and `{"key": 2, "key": 1}` will
+      be treated as equal and both stored as `{"key": 1}`.
+    - Internally, name/value pairs are stored in lexicographical order of the
+      names. Objects will also be serialized (see @ref dump) in this order.
+      For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be stored
+      and serialized as `{"a": 2, "b": 1}`.
+    - When comparing objects, the order of the name/value pairs is irrelevant.
+      This makes objects interoperable in the sense that they will not be
+      affected by these differences. For instance, `{"b": 1, "a": 2}` and
+      `{"a": 2, "b": 1}` will be treated as equal.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the maximum depth of nesting.
+
+    In this class, the object's limit of nesting is not constraint explicitly.
+    However, a maximum depth of nesting may be introduced by the compiler or
+    runtime environment. A theoretical limit can be queried by calling the
+    @ref max_size function of a JSON object.
+
+    #### Storage
+
+    Objects are stored as pointers in a @ref basic_json type. That is, for any
+    access to object values, a pointer of type `object_t*` must be
+    dereferenced.
+
+    @sa @ref array_t -- type for an array value
+
+    @since version 1.0.0
+
+    @note The order name/value pairs are added to the object is *not*
+    preserved by the library. Therefore, iterating an object may return
+    name/value pairs in a different order than they were originally stored. In
+    fact, keys will be traversed in alphabetical order as `std::map` with
+    `std::less` is used by default. Please note this behavior conforms to [RFC
+    7159](http://rfc7159.net/rfc7159), because any order implements the
+    specified "unordered" nature of JSON objects.
+    */
+    using object_t = ObjectType<StringType,
+          basic_json,
+          std::less<StringType>,
+          AllocatorType<std::pair<const StringType,
+          basic_json>>>;
+
+    /*!
+    @brief a type for an array
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes JSON arrays as follows:
+    > An array is an ordered sequence of zero or more values.
+
+    To store objects in C++, a type is defined by the template parameters
+    explained below.
+
+    @tparam ArrayType  container type to store arrays (e.g., `std::vector` or
+    `std::list`)
+    @tparam AllocatorType  allocator to use for arrays (e.g., `std::allocator`)
+
+    #### Default type
+
+    With the default values for @a ArrayType (`std::vector`) and @a
+    AllocatorType (`std::allocator`), the default value for @a array_t is:
+
+    @code {.cpp}
+    std::vector<
+      basic_json, // value_type
+      std::allocator<basic_json> // allocator_type
+    >
+    @endcode
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the maximum depth of nesting.
+
+    In this class, the array's limit of nesting is not constraint explicitly.
+    However, a maximum depth of nesting may be introduced by the compiler or
+    runtime environment. A theoretical limit can be queried by calling the
+    @ref max_size function of a JSON array.
+
+    #### Storage
+
+    Arrays are stored as pointers in a @ref basic_json type. That is, for any
+    access to array values, a pointer of type `array_t*` must be dereferenced.
+
+    @sa @ref object_t -- type for an object value
+
+    @since version 1.0.0
+    */
+    using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;
+
+    /*!
+    @brief a type for a string
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes JSON strings as follows:
+    > A string is a sequence of zero or more Unicode characters.
+
+    To store objects in C++, a type is defined by the template parameter
+    described below. Unicode values are split by the JSON class into
+    byte-sized characters during deserialization.
+
+    @tparam StringType  the container to store strings (e.g., `std::string`).
+    Note this container is used for keys/names in objects, see @ref object_t.
+
+    #### Default type
+
+    With the default values for @a StringType (`std::string`), the default
+    value for @a string_t is:
+
+    @code {.cpp}
+    std::string
+    @endcode
+
+    #### String comparison
+
+    [RFC 7159](http://rfc7159.net/rfc7159) states:
+    > Software implementations are typically required to test names of object
+    > members for equality. Implementations that transform the textual
+    > representation into sequences of Unicode code units and then perform the
+    > comparison numerically, code unit by code unit, are interoperable in the
+    > sense that implementations will agree in all cases on equality or
+    > inequality of two strings. For example, implementations that compare
+    > strings with escaped characters unconverted may incorrectly find that
+    > `"a\\b"` and `"a\u005Cb"` are not equal.
+
+    This implementation is interoperable as it does compare strings code unit
+    by code unit.
+
+    #### Storage
+
+    String values are stored as pointers in a @ref basic_json type. That is,
+    for any access to string values, a pointer of type `string_t*` must be
+    dereferenced.
+
+    @since version 1.0.0
+    */
+    using string_t = StringType;
+
+    /*!
+    @brief a type for a boolean
+
+    [RFC 7159](http://rfc7159.net/rfc7159) implicitly describes a boolean as a
+    type which differentiates the two literals `true` and `false`.
+
+    To store objects in C++, a type is defined by the template parameter @a
+    BooleanType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a BooleanType (`bool`), the default value for
+    @a boolean_t is:
+
+    @code {.cpp}
+    bool
+    @endcode
+
+    #### Storage
+
+    Boolean values are stored directly inside a @ref basic_json type.
+
+    @since version 1.0.0
+    */
+    using boolean_t = BooleanType;
+
+    /*!
+    @brief a type for a number (integer)
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows:
+    > The representation of numbers is similar to that used in most
+    > programming languages. A number is represented in base 10 using decimal
+    > digits. It contains an integer component that may be prefixed with an
+    > optional minus sign, which may be followed by a fraction part and/or an
+    > exponent part. Leading zeros are not allowed. (...) Numeric values that
+    > cannot be represented in the grammar below (such as Infinity and NaN)
+    > are not permitted.
+
+    This description includes both integer and floating-point numbers.
+    However, C++ allows more precise storage if it is known whether the number
+    is a signed integer, an unsigned integer or a floating-point number.
+    Therefore, three different types, @ref number_integer_t, @ref
+    number_unsigned_t and @ref number_float_t are used.
+
+    To store integer numbers in C++, a type is defined by the template
+    parameter @a NumberIntegerType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a NumberIntegerType (`int64_t`), the default
+    value for @a number_integer_t is:
+
+    @code {.cpp}
+    int64_t
+    @endcode
+
+    #### Default behavior
+
+    - The restrictions about leading zeros is not enforced in C++. Instead,
+      leading zeros in integer literals lead to an interpretation as octal
+      number. Internally, the value will be stored as decimal number. For
+      instance, the C++ integer literal `010` will be serialized to `8`.
+      During deserialization, leading zeros yield an error.
+    - Not-a-number (NaN) values will be serialized to `null`.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the range and precision of numbers.
+
+    When the default type is used, the maximal integer number that can be
+    stored is `9223372036854775807` (INT64_MAX) and the minimal integer number
+    that can be stored is `-9223372036854775808` (INT64_MIN). Integer numbers
+    that are out of range will yield over/underflow when used in a
+    constructor. During deserialization, too large or small integer numbers
+    will be automatically be stored as @ref number_unsigned_t or @ref
+    number_float_t.
+
+    [RFC 7159](http://rfc7159.net/rfc7159) further states:
+    > Note that when such software is used, numbers that are integers and are
+    > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense
+    > that implementations will agree exactly on their numeric values.
+
+    As this range is a subrange of the exactly supported range [INT64_MIN,
+    INT64_MAX], this class's integer type is interoperable.
+
+    #### Storage
+
+    Integer number values are stored directly inside a @ref basic_json type.
+
+    @sa @ref number_float_t -- type for number values (floating-point)
+
+    @sa @ref number_unsigned_t -- type for number values (unsigned integer)
+
+    @since version 1.0.0
+    */
+    using number_integer_t = NumberIntegerType;
+
+    /*!
+    @brief a type for a number (unsigned)
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows:
+    > The representation of numbers is similar to that used in most
+    > programming languages. A number is represented in base 10 using decimal
+    > digits. It contains an integer component that may be prefixed with an
+    > optional minus sign, which may be followed by a fraction part and/or an
+    > exponent part. Leading zeros are not allowed. (...) Numeric values that
+    > cannot be represented in the grammar below (such as Infinity and NaN)
+    > are not permitted.
+
+    This description includes both integer and floating-point numbers.
+    However, C++ allows more precise storage if it is known whether the number
+    is a signed integer, an unsigned integer or a floating-point number.
+    Therefore, three different types, @ref number_integer_t, @ref
+    number_unsigned_t and @ref number_float_t are used.
+
+    To store unsigned integer numbers in C++, a type is defined by the
+    template parameter @a NumberUnsignedType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a NumberUnsignedType (`uint64_t`), the
+    default value for @a number_unsigned_t is:
+
+    @code {.cpp}
+    uint64_t
+    @endcode
+
+    #### Default behavior
+
+    - The restrictions about leading zeros is not enforced in C++. Instead,
+      leading zeros in integer literals lead to an interpretation as octal
+      number. Internally, the value will be stored as decimal number. For
+      instance, the C++ integer literal `010` will be serialized to `8`.
+      During deserialization, leading zeros yield an error.
+    - Not-a-number (NaN) values will be serialized to `null`.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the range and precision of numbers.
+
+    When the default type is used, the maximal integer number that can be
+    stored is `18446744073709551615` (UINT64_MAX) and the minimal integer
+    number that can be stored is `0`. Integer numbers that are out of range
+    will yield over/underflow when used in a constructor. During
+    deserialization, too large or small integer numbers will be automatically
+    be stored as @ref number_integer_t or @ref number_float_t.
+
+    [RFC 7159](http://rfc7159.net/rfc7159) further states:
+    > Note that when such software is used, numbers that are integers and are
+    > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense
+    > that implementations will agree exactly on their numeric values.
+
+    As this range is a subrange (when considered in conjunction with the
+    number_integer_t type) of the exactly supported range [0, UINT64_MAX], this
+    class's integer type is interoperable.
+
+    #### Storage
+
+    Integer number values are stored directly inside a @ref basic_json type.
+
+    @sa @ref number_float_t -- type for number values (floating-point)
+
+    @sa @ref number_integer_t -- type for number values (integer)
+
+    @since version 2.0.0
+    */
+    using number_unsigned_t = NumberUnsignedType;
+
+    /*!
+    @brief a type for a number (floating-point)
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows:
+    > The representation of numbers is similar to that used in most
+    > programming languages. A number is represented in base 10 using decimal
+    > digits. It contains an integer component that may be prefixed with an
+    > optional minus sign, which may be followed by a fraction part and/or an
+    > exponent part. Leading zeros are not allowed. (...) Numeric values that
+    > cannot be represented in the grammar below (such as Infinity and NaN)
+    > are not permitted.
+
+    This description includes both integer and floating-point numbers.
+    However, C++ allows more precise storage if it is known whether the number
+    is a signed integer, an unsigned integer or a floating-point number.
+    Therefore, three different types, @ref number_integer_t, @ref
+    number_unsigned_t and @ref number_float_t are used.
+
+    To store floating-point numbers in C++, a type is defined by the template
+    parameter @a NumberFloatType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a NumberFloatType (`double`), the default
+    value for @a number_float_t is:
+
+    @code {.cpp}
+    double
+    @endcode
+
+    #### Default behavior
+
+    - The restrictions about leading zeros is not enforced in C++. Instead,
+      leading zeros in floating-point literals will be ignored. Internally,
+      the value will be stored as decimal number. For instance, the C++
+      floating-point literal `01.2` will be serialized to `1.2`. During
+      deserialization, leading zeros yield an error.
+    - Not-a-number (NaN) values will be serialized to `null`.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) states:
+    > This specification allows implementations to set limits on the range and
+    > precision of numbers accepted. Since software that implements IEEE
+    > 754-2008 binary64 (double precision) numbers is generally available and
+    > widely used, good interoperability can be achieved by implementations
+    > that expect no more precision or range than these provide, in the sense
+    > that implementations will approximate JSON numbers within the expected
+    > precision.
+
+    This implementation does exactly follow this approach, as it uses double
+    precision floating-point numbers. Note values smaller than
+    `-1.79769313486232e+308` and values greater than `1.79769313486232e+308`
+    will be stored as NaN internally and be serialized to `null`.
+
+    #### Storage
+
+    Floating-point number values are stored directly inside a @ref basic_json
+    type.
+
+    @sa @ref number_integer_t -- type for number values (integer)
+
+    @sa @ref number_unsigned_t -- type for number values (unsigned integer)
+
+    @since version 1.0.0
+    */
+    using number_float_t = NumberFloatType;
+
+    /// @}
+
+
+    ///////////////////////////
+    // JSON type enumeration //
+    ///////////////////////////
+
+    /*!
+    @brief the JSON type enumeration
+
+    This enumeration collects the different JSON types. It is internally used
+    to distinguish the stored values, and the functions @ref is_null(), @ref
+    is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
+    is_number(), and @ref is_discarded() rely on it.
+
+    @since version 1.0.0
+    */
+    enum class value_t : uint8_t
+    {
+        null,            ///< null value
+        object,          ///< object (unordered set of name/value pairs)
+        array,           ///< array (ordered collection of values)
+        string,          ///< string value
+        boolean,         ///< boolean value
+        number_integer,  ///< number value (integer)
+        number_unsigned, ///< number value (unsigned integer)
+        number_float,    ///< number value (floating-point)
+        discarded        ///< discarded by the the parser callback function
+    };
+
+
+  private:
+
+    /*!
+    @brief a type to hold JSON type information
+
+    This bitfield type holds information about JSON types. It is internally
+    used to hold the basic JSON type enumeration, as well as additional
+    information in the case of values that have been parsed from a string
+    including whether of not it was created directly or parsed, and in the
+    case of floating point numbers the number of significant figures in the
+    original representaiton and if it was in exponential form, if a '+' was
+    included in the exponent and the capitilization of the exponent marker.
+    The sole purpose of this information is to permit accurate round trips.
+
+    @since version 2.0.0
+    */
+    union type_data_t
+    {
+        struct
+        {
+            /// the type of the value (@ref value_t)
+            uint16_t type : 4;
+            /// whether the number was parsed from a string
+            uint16_t parsed : 1;
+            /// whether parsed number contained an exponent ('e'/'E')
+            uint16_t has_exp : 1;
+            /// whether parsed number contained a plus in the exponent
+            uint16_t exp_plus : 1;
+            /// whether parsed number's exponent was capitalized ('E')
+            uint16_t exp_cap : 1;
+            /// the number of figures for a parsed number
+            uint16_t precision : 8;
+        } bits;
+        uint16_t data;
+
+        /// return the type as value_t
+        operator value_t() const
+        {
+            return static_cast<value_t>(bits.type);
+        }
+
+        /// test type for equality (ignore other fields)
+        bool operator==(const value_t& rhs) const
+        {
+            return static_cast<value_t>(bits.type) == rhs;
+        }
+
+        /// assignment
+        type_data_t& operator=(value_t rhs)
+        {
+            bits.type = static_cast<uint16_t>(rhs) & 15; // avoid overflow
+            return *this;
+        }
+
+        /// construct from value_t
+        type_data_t(value_t t) noexcept
+        {
+            *reinterpret_cast<uint16_t*>(this) = 0;
+            bits.type = static_cast<uint16_t>(t) & 15; // avoid overflow
+        }
+
+        /// default constructor
+        type_data_t() noexcept
+        {
+            data = 0;
+            bits.type = reinterpret_cast<uint16_t>(value_t::null);
+        }
+    };
+
+    /// helper for exception-safe object creation
+    template<typename T, typename... Args>
+    static T* create(Args&& ... args)
+    {
+        AllocatorType<T> alloc;
+        auto deleter = [&](T * object)
+        {
+            alloc.deallocate(object, 1);
+        };
+        std::unique_ptr<T, decltype(deleter)> object(alloc.allocate(1), deleter);
+        alloc.construct(object.get(), std::forward<Args>(args)...);
+        return object.release();
+    }
+
+    ////////////////////////
+    // JSON value storage //
+    ////////////////////////
+
+    /*!
+    @brief a JSON value
+
+    The actual storage for a JSON value of the @ref basic_json class.
+
+    @since version 1.0.0
+    */
+    union json_value
+    {
+        /// object (stored with pointer to save storage)
+        object_t* object;
+        /// array (stored with pointer to save storage)
+        array_t* array;
+        /// string (stored with pointer to save storage)
+        string_t* string;
+        /// boolean
+        boolean_t boolean;
+        /// number (integer)
+        number_integer_t number_integer;
+        /// number (unsigned integer)
+        number_unsigned_t number_unsigned;
+        /// number (floating-point)
+        number_float_t number_float;
+
+        /// default constructor (for null values)
+        json_value() = default;
+        /// constructor for booleans
+        json_value(boolean_t v) noexcept : boolean(v) {}
+        /// constructor for numbers (integer)
+        json_value(number_integer_t v) noexcept : number_integer(v) {}
+        /// constructor for numbers (unsigned)
+        json_value(number_unsigned_t v) noexcept : number_unsigned(v) {}
+        /// constructor for numbers (floating-point)
+        json_value(number_float_t v) noexcept : number_float(v) {}
+        /// constructor for empty values of a given type
+        json_value(value_t t)
+        {
+            switch (t)
+            {
+                case value_t::object:
+                {
+                    object = create<object_t>();
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    array = create<array_t>();
+                    break;
+                }
+
+                case value_t::string:
+                {
+                    string = create<string_t>("");
+                    break;
+                }
+
+                case value_t::boolean:
+                {
+                    boolean = boolean_t(false);
+                    break;
+                }
+
+                case value_t::number_integer:
+                {
+                    number_integer = number_integer_t(0);
+                    break;
+                }
+
+                case value_t::number_unsigned:
+                {
+                    number_unsigned = number_unsigned_t(0);
+                    break;
+                }
+
+                case value_t::number_float:
+                {
+                    number_float = number_float_t(0.0);
+                    break;
+                }
+
+                default:
+                {
+                    break;
+                }
+            }
+        }
+
+        /// constructor for strings
+        json_value(const string_t& value)
+        {
+            string = create<string_t>(value);
+        }
+
+        /// constructor for objects
+        json_value(const object_t& value)
+        {
+            object = create<object_t>(value);
+        }
+
+        /// constructor for arrays
+        json_value(const array_t& value)
+        {
+            array = create<array_t>(value);
+        }
+    };
+
+
+  public:
+    //////////////////////////
+    // JSON parser callback //
+    //////////////////////////
+
+    /*!
+    @brief JSON callback events
+
+    This enumeration lists the parser events that can trigger calling a
+    callback function of type @ref parser_callback_t during parsing.
+
+    @since version 1.0.0
+    */
+    enum class parse_event_t : uint8_t
+    {
+        /// the parser read `{` and started to process a JSON object
+        object_start,
+        /// the parser read `}` and finished processing a JSON object
+        object_end,
+        /// the parser read `[` and started to process a JSON array
+        array_start,
+        /// the parser read `]` and finished processing a JSON array
+        array_end,
+        /// the parser read a key of a value in an object
+        key,
+        /// the parser finished reading a JSON value
+        value
+    };
+
+    /*!
+    @brief per-element parser callback type
+
+    With a parser callback function, the result of parsing a JSON text can be
+    influenced. When passed to @ref parse(std::istream&, parser_callback_t) or
+    @ref parse(const string_t&, parser_callback_t), it is called on certain
+    events (passed as @ref parse_event_t via parameter @a event) with a set
+    recursion depth @a depth and context JSON value @a parsed. The return
+    value of the callback function is a boolean indicating whether the element
+    that emitted the callback shall be kept or not.
+
+    We distinguish six scenarios (determined by the event type) in which the
+    callback function can be called. The following table describes the values
+    of the parameters @a depth, @a event, and @a parsed.
+
+    parameter @a event | description | parameter @a depth | parameter @a parsed
+    ------------------ | ----------- | ------------------ | -------------------
+    parse_event_t::object_start | the parser read `{` and started to process a JSON object | depth of the parent of the JSON object | a JSON value with type discarded
+    parse_event_t::key | the parser read a key of a value in an object | depth of the currently parsed JSON object | a JSON string containing the key
+    parse_event_t::object_end | the parser read `}` and finished processing a JSON object | depth of the parent of the JSON object | the parsed JSON object
+    parse_event_t::array_start | the parser read `[` and started to process a JSON array | depth of the parent of the JSON array | a JSON value with type discarded
+    parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array
+    parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value
+
+    Discarding a value (i.e., returning `false`) has different effects
+    depending on the context in which function was called:
+
+    - Discarded values in structured types are skipped. That is, the parser
+      will behave as if the discarded value was never read.
+    - In case a value outside a structured type is skipped, it is replaced
+      with `null`. This case happens if the top-level element is skipped.
+
+    @param[in] depth  the depth of the recursion during parsing
+
+    @param[in] event  an event of type parse_event_t indicating the context in
+    the callback function has been called
+
+    @param[in,out] parsed  the current intermediate parse result; note that
+    writing to this value has no effect for parse_event_t::key events
+
+    @return Whether the JSON value which called the function during parsing
+    should be kept (`true`) or not (`false`). In the latter case, it is either
+    skipped completely or replaced by an empty discarded object.
+
+    @sa @ref parse(std::istream&, parser_callback_t) or
+    @ref parse(const string_t&, parser_callback_t) for examples
+
+    @since version 1.0.0
+    */
+    using parser_callback_t = std::function<bool(int depth, parse_event_t event, basic_json& parsed)>;
+
+
+    //////////////////
+    // constructors //
+    //////////////////
+
+    /// @name constructors and destructors
+    /// @{
+
+    /*!
+    @brief create an empty value with a given type
+
+    Create an empty JSON value with a given type. The value will be default
+    initialized with an empty value which depends on the type:
+
+    Value type  | initial value
+    ----------- | -------------
+    null        | `null`
+    boolean     | `false`
+    string      | `""`
+    number      | `0`
+    object      | `{}`
+    array       | `[]`
+
+    @param[in] value_type  the type of the value to create
+
+    @complexity Constant.
+
+    @throw std::bad_alloc if allocation for object, array, or string value
+    fails
+
+    @liveexample{The following code shows the constructor for different @ref
+    value_t values,basic_json__value_t}
+
+    @sa @ref basic_json(std::nullptr_t) -- create a `null` value
+    @sa @ref basic_json(boolean_t value) -- create a boolean value
+    @sa @ref basic_json(const string_t&) -- create a string value
+    @sa @ref basic_json(const object_t&) -- create a object value
+    @sa @ref basic_json(const array_t&) -- create a array value
+    @sa @ref basic_json(const number_float_t) -- create a number
+    (floating-point) value
+    @sa @ref basic_json(const number_integer_t) -- create a number (integer)
+    value
+    @sa @ref basic_json(const number_unsigned_t) -- create a number (unsigned)
+    value
+
+    @since version 1.0.0
+    */
+    basic_json(const value_t value_type)
+        : m_type(value_type), m_value(value_type)
+    {}
+
+    /*!
+    @brief create a null object (implicitly)
+
+    Create a `null` JSON value. This is the implicit version of the `null`
+    value constructor as it takes no parameters.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this constructor never throws
+    exceptions.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - As postcondition, it holds: `basic_json().empty() == true`.
+
+    @liveexample{The following code shows the constructor for a `null` JSON
+    value.,basic_json}
+
+    @sa @ref basic_json(std::nullptr_t) -- create a `null` value
+
+    @since version 1.0.0
+    */
+    basic_json() = default;
+
+    /*!
+    @brief create a null object (explicitly)
+
+    Create a `null` JSON value. This is the explicitly version of the `null`
+    value constructor as it takes a null pointer as parameter. It allows to
+    create `null` values by explicitly assigning a `nullptr` to a JSON value.
+    The passed null pointer itself is not read -- it is only used to choose
+    the right constructor.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this constructor never throws
+    exceptions.
+
+    @liveexample{The following code shows the constructor with null pointer
+    parameter.,basic_json__nullptr_t}
+
+    @sa @ref basic_json() -- default constructor (implicitly creating a `null`
+    value)
+
+    @since version 1.0.0
+    */
+    basic_json(std::nullptr_t) noexcept
+        : basic_json(value_t::null)
+    {}
+
+    /*!
+    @brief create an object (explicit)
+
+    Create an object JSON value with a given content.
+
+    @param[in] val  a value for the object
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for object value fails
+
+    @liveexample{The following code shows the constructor with an @ref
+    object_t parameter.,basic_json__object_t}
+
+    @sa @ref basic_json(const CompatibleObjectType&) -- create an object value
+    from a compatible STL container
+
+    @since version 1.0.0
+    */
+    basic_json(const object_t& val)
+        : m_type(value_t::object), m_value(val)
+    {}
+
+    /*!
+    @brief create an object (implicit)
+
+    Create an object JSON value with a given content. This constructor allows
+    any type @a CompatibleObjectType that can be used to construct values of
+    type @ref object_t.
+
+    @tparam CompatibleObjectType An object type whose `key_type` and
+    `value_type` is compatible to @ref object_t. Examples include `std::map`,
+    `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with
+    a `key_type` of `std::string`, and a `value_type` from which a @ref
+    basic_json value can be constructed.
+
+    @param[in] val  a value for the object
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for object value fails
+
+    @liveexample{The following code shows the constructor with several
+    compatible object type parameters.,basic_json__CompatibleObjectType}
+
+    @sa @ref basic_json(const object_t&) -- create an object value
+
+    @since version 1.0.0
+    */
+    template <class CompatibleObjectType, typename
+              std::enable_if<
+                  std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and
+                  std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value, int>::type
+              = 0>
+    basic_json(const CompatibleObjectType& val)
+        : m_type(value_t::object)
+    {
+        using std::begin;
+        using std::end;
+        m_value.object = create<object_t>(begin(val), end(val));
+    }
+
+    /*!
+    @brief create an array (explicit)
+
+    Create an array JSON value with a given content.
+
+    @param[in] val  a value for the array
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for array value fails
+
+    @liveexample{The following code shows the constructor with an @ref array_t
+    parameter.,basic_json__array_t}
+
+    @sa @ref basic_json(const CompatibleArrayType&) -- create an array value
+    from a compatible STL containers
+
+    @since version 1.0.0
+    */
+    basic_json(const array_t& val)
+        : m_type(value_t::array), m_value(val)
+    {}
+
+    /*!
+    @brief create an array (implicit)
+
+    Create an array JSON value with a given content. This constructor allows
+    any type @a CompatibleArrayType that can be used to construct values of
+    type @ref array_t.
+
+    @tparam CompatibleArrayType An object type whose `value_type` is
+    compatible to @ref array_t. Examples include `std::vector`, `std::deque`,
+    `std::list`, `std::forward_list`, `std::array`, `std::set`,
+    `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a
+    `value_type` from which a @ref basic_json value can be constructed.
+
+    @param[in] val  a value for the array
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for array value fails
+
+    @liveexample{The following code shows the constructor with several
+    compatible array type parameters.,basic_json__CompatibleArrayType}
+
+    @sa @ref basic_json(const array_t&) -- create an array value
+
+    @since version 1.0.0
+    */
+    template <class CompatibleArrayType, typename
+              std::enable_if<
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
+                  std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type
+              = 0>
+    basic_json(const CompatibleArrayType& val)
+        : m_type(value_t::array)
+    {
+        using std::begin;
+        using std::end;
+        m_value.array = create<array_t>(begin(val), end(val));
+    }
+
+    /*!
+    @brief create a string (explicit)
+
+    Create an string JSON value with a given content.
+
+    @param[in] val  a value for the string
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for string value fails
+
+    @liveexample{The following code shows the constructor with an @ref
+    string_t parameter.,basic_json__string_t}
+
+    @sa @ref basic_json(const typename string_t::value_type*) -- create a
+    string value from a character pointer
+    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
+    from a compatible string container
+
+    @since version 1.0.0
+    */
+    basic_json(const string_t& val)
+        : m_type(value_t::string), m_value(val)
+    {}
+
+    /*!
+    @brief create a string (explicit)
+
+    Create a string JSON value with a given content.
+
+    @param[in] val  a literal value for the string
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for string value fails
+
+    @liveexample{The following code shows the constructor with string literal
+    parameter.,basic_json__string_t_value_type}
+
+    @sa @ref basic_json(const string_t&) -- create a string value
+    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
+    from a compatible string container
+
+    @since version 1.0.0
+    */
+    basic_json(const typename string_t::value_type* val)
+        : basic_json(string_t(val))
+    {}
+
+    /*!
+    @brief create a string (implicit)
+
+    Create a string JSON value with a given content.
+
+    @param[in] val  a value for the string
+
+    @tparam CompatibleStringType an string type which is compatible to @ref
+    string_t, for instance `std::string`.
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for string value fails
+
+    @liveexample{The following code shows the construction of a string value
+    from a compatible type.,basic_json__CompatibleStringType}
+
+    @sa @ref basic_json(const string_t&) -- create a string value
+    @sa @ref basic_json(const typename string_t::value_type*) -- create a
+    string value from a character pointer
+
+    @since version 1.0.0
+    */
+    template <class CompatibleStringType, typename
+              std::enable_if<
+                  std::is_constructible<string_t, CompatibleStringType>::value, int>::type
+              = 0>
+    basic_json(const CompatibleStringType& val)
+        : basic_json(string_t(val))
+    {}
+
+    /*!
+    @brief create a boolean (explicit)
+
+    Creates a JSON boolean type from a given value.
+
+    @param[in] val  a boolean value to store
+
+    @complexity Constant.
+
+    @liveexample{The example below demonstrates boolean
+    values.,basic_json__boolean_t}
+
+    @since version 1.0.0
+    */
+    basic_json(boolean_t val) noexcept
+        : m_type(value_t::boolean), m_value(val)
+    {}
+
+    /*!
+    @brief create an integer number (explicit)
+
+    Create an integer number JSON value with a given content.
+
+    @tparam T A helper type to remove this function via SFINAE in case @ref
+    number_integer_t is the same as `int`. In this case, this constructor
+    would have the same signature as @ref basic_json(const int value). Note
+    the helper type @a T is not visible in this constructor's interface.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of an integer
+    number value.,basic_json__number_integer_t}
+
+    @sa @ref basic_json(const int) -- create a number value (integer)
+    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
+    value (integer) from a compatible number type
+
+    @since version 1.0.0
+    */
+    template<typename T,
+             typename std::enable_if<
+                 not (std::is_same<T, int>::value)
+                 and std::is_same<T, number_integer_t>::value
+                 , int>::type
+             = 0>
+    basic_json(const number_integer_t val) noexcept
+        : m_type(value_t::number_integer), m_value(val)
+    {}
+
+    /*!
+    @brief create an integer number from an enum type (explicit)
+
+    Create an integer number JSON value with a given content.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @note This constructor allows to pass enums directly to a constructor. As
+    C++ has no way of specifying the type of an anonymous enum explicitly, we
+    can only rely on the fact that such values implicitly convert to int. As
+    int may already be the same type of number_integer_t, we may need to
+    switch off the constructor @ref basic_json(const number_integer_t).
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of an integer
+    number value from an anonymous enum.,basic_json__const_int}
+
+    @sa @ref basic_json(const number_integer_t) -- create a number value
+    (integer)
+    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
+    value (integer) from a compatible number type
+
+    @since version 1.0.0
+    */
+    basic_json(const int val) noexcept
+        : m_type(value_t::number_integer),
+          m_value(static_cast<number_integer_t>(val))
+    {}
+
+    /*!
+    @brief create an integer number (implicit)
+
+    Create an integer number JSON value with a given content. This constructor
+    allows any type @a CompatibleNumberIntegerType that can be used to
+    construct values of type @ref number_integer_t.
+
+    @tparam CompatibleNumberIntegerType An integer type which is compatible to
+    @ref number_integer_t. Examples include the types `int`, `int32_t`,
+    `long`, and `short`.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of several integer
+    number values from compatible
+    types.,basic_json__CompatibleIntegerNumberType}
+
+    @sa @ref basic_json(const number_integer_t) -- create a number value
+    (integer)
+    @sa @ref basic_json(const int) -- create a number value (integer)
+
+    @since version 1.0.0
+    */
+    template<typename CompatibleNumberIntegerType, typename
+             std::enable_if<
+                 std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed,
+                 CompatibleNumberIntegerType>::type
+             = 0>
+    basic_json(const CompatibleNumberIntegerType val) noexcept
+        : m_type(value_t::number_integer),
+          m_value(static_cast<number_integer_t>(val))
+    {}
+
+    /*!
+    @brief create an unsigned integer number (explicit)
+
+    Create an unsigned integer number JSON value with a given content.
+
+    @tparam T  helper type to compare number_unsigned_t and unsigned int
+    (not visible in) the interface.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @complexity Constant.
+
+    @sa @ref basic_json(const CompatibleNumberUnsignedType) -- create a number
+    value (unsigned integer) from a compatible number type
+
+    @since version 2.0.0
+    */
+    template<typename T,
+             typename std::enable_if<
+                 not (std::is_same<T, int>::value)
+                 and std::is_same<T, number_unsigned_t>::value
+                 , int>::type
+             = 0>
+    basic_json(const number_unsigned_t val) noexcept
+        : m_type(value_t::number_unsigned), m_value(val)
+    {}
+
+    /*!
+    @brief create an unsigned number (implicit)
+
+    Create an unsigned number JSON value with a given content. This
+    constructor allows any type @a CompatibleNumberUnsignedType that can be
+    used to construct values of type @ref number_unsigned_t.
+
+    @tparam CompatibleNumberUnsignedType An integer type which is compatible
+    to @ref number_unsigned_t. Examples may include the types `unsigned int`,
+    `uint32_t`, or `unsigned short`.
+
+    @param[in] val  an unsigned integer to create a JSON number from
+
+    @complexity Constant.
+
+    @sa @ref basic_json(const number_unsigned_t) -- create a number value
+    (unsigned)
+
+    @since version 2.0.0
+    */
+    template < typename CompatibleNumberUnsignedType, typename
+               std::enable_if <
+                   std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
+                   std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
+                   !std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
+                   CompatibleNumberUnsignedType >::type
+               = 0 >
+    basic_json(const CompatibleNumberUnsignedType val) noexcept
+        : m_type(value_t::number_unsigned),
+          m_value(static_cast<number_unsigned_t>(val))
+    {}
+
+    /*!
+    @brief create a floating-point number (explicit)
+
+    Create a floating-point number JSON value with a given content.
+
+    @param[in] val  a floating-point value to create a JSON number from
+
+    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
+    disallows NaN values:
+    > Numeric values that cannot be represented in the grammar below (such as
+    > Infinity and NaN) are not permitted.
+    In case the parameter @a val is not a number, a JSON null value is
+    created instead.
+
+    @complexity Constant.
+
+    @liveexample{The following example creates several floating-point
+    values.,basic_json__number_float_t}
+
+    @sa @ref basic_json(const CompatibleNumberFloatType) -- create a number
+    value (floating-point) from a compatible number type
+
+    @since version 1.0.0
+    */
+    basic_json(const number_float_t val) noexcept
+        : m_type(value_t::number_float), m_value(val)
+    {
+        // replace infinity and NAN by null
+        if (not std::isfinite(val))
+        {
+            m_type = value_t::null;
+            m_value = json_value();
+        }
+    }
+
+    /*!
+    @brief create an floating-point number (implicit)
+
+    Create an floating-point number JSON value with a given content. This
+    constructor allows any type @a CompatibleNumberFloatType that can be used
+    to construct values of type @ref number_float_t.
+
+    @tparam CompatibleNumberFloatType A floating-point type which is
+    compatible to @ref number_float_t. Examples may include the types `float`
+    or `double`.
+
+    @param[in] val  a floating-point to create a JSON number from
+
+    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
+    disallows NaN values:
+    > Numeric values that cannot be represented in the grammar below (such as
+    > Infinity and NaN) are not permitted.
+    In case the parameter @a val is not a number, a JSON null value is
+    created instead.
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of several
+    floating-point number values from compatible
+    types.,basic_json__CompatibleNumberFloatType}
+
+    @sa @ref basic_json(const number_float_t) -- create a number value
+    (floating-point)
+
+    @since version 1.0.0
+    */
+    template<typename CompatibleNumberFloatType, typename = typename
+             std::enable_if<
+                 std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and
+                 std::is_floating_point<CompatibleNumberFloatType>::value>::type
+             >
+    basic_json(const CompatibleNumberFloatType val) noexcept
+        : basic_json(number_float_t(val))
+    {}
+
+    /*!
+    @brief create a container (array or object) from an initializer list
+
+    Creates a JSON value of type array or object from the passed initializer
+    list @a init. In case @a type_deduction is `true` (default), the type of
+    the JSON value to be created is deducted from the initializer list @a init
+    according to the following rules:
+
+    1. If the list is empty, an empty JSON object value `{}` is created.
+    2. If the list consists of pairs whose first element is a string, a JSON
+    object value is created where the first elements of the pairs are treated
+    as keys and the second elements are as values.
+    3. In all other cases, an array is created.
+
+    The rules aim to create the best fit between a C++ initializer list and
+    JSON values. The rationale is as follows:
+
+    1. The empty initializer list is written as `{}` which is exactly an empty
+    JSON object.
+    2. C++ has now way of describing mapped types other than to list a list of
+    pairs. As JSON requires that keys must be of type string, rule 2 is the
+    weakest constraint one can pose on initializer lists to interpret them as
+    an object.
+    3. In all other cases, the initializer list could not be interpreted as
+    JSON object type, so interpreting it as JSON array type is safe.
+
+    With the rules described above, the following JSON values cannot be
+    expressed by an initializer list:
+
+    - the empty array (`[]`): use @ref array(std::initializer_list<basic_json>)
+      with an empty initializer list in this case
+    - arrays whose elements satisfy rule 2: use @ref
+      array(std::initializer_list<basic_json>) with the same initializer list
+      in this case
+
+    @note When used without parentheses around an empty initializer list, @ref
+    basic_json() is called instead of this function, yielding the JSON null
+    value.
+
+    @param[in] init  initializer list with JSON values
+
+    @param[in] type_deduction internal parameter; when set to `true`, the type
+    of the JSON value is deducted from the initializer list @a init; when set
+    to `false`, the type provided via @a manual_type is forced. This mode is
+    used by the functions @ref array(std::initializer_list<basic_json>) and
+    @ref object(std::initializer_list<basic_json>).
+
+    @param[in] manual_type internal parameter; when @a type_deduction is set
+    to `false`, the created JSON value will use the provided type (only @ref
+    value_t::array and @ref value_t::object are valid); when @a type_deduction
+    is set to `true`, this parameter has no effect
+
+    @throw std::domain_error if @a type_deduction is `false`, @a manual_type
+    is `value_t::object`, but @a init contains an element which is not a pair
+    whose first element is a string; example: `"cannot create object from
+    initializer list"`
+
+    @complexity Linear in the size of the initializer list @a init.
+
+    @liveexample{The example below shows how JSON values are created from
+    initializer lists.,basic_json__list_init_t}
+
+    @sa @ref array(std::initializer_list<basic_json>) -- create a JSON array
+    value from an initializer list
+    @sa @ref object(std::initializer_list<basic_json>) -- create a JSON object
+    value from an initializer list
+
+    @since version 1.0.0
+    */
+    basic_json(std::initializer_list<basic_json> init,
+               bool type_deduction = true,
+               value_t manual_type = value_t::array)
+    {
+        // the initializer list could describe an object
+        bool is_an_object = true;
+
+        // check if each element is an array with two elements whose first
+        // element is a string
+        for (const auto& element : init)
+        {
+            if (not element.is_array() or element.size() != 2
+                    or not element[0].is_string())
+            {
+                // we found an element that makes it impossible to use the
+                // initializer list as object
+                is_an_object = false;
+                break;
+            }
+        }
+
+        // adjust type if type deduction is not wanted
+        if (not type_deduction)
+        {
+            // if array is wanted, do not create an object though possible
+            if (manual_type == value_t::array)
+            {
+                is_an_object = false;
+            }
+
+            // if object is wanted but impossible, throw an exception
+            if (manual_type == value_t::object and not is_an_object)
+            {
+                throw std::domain_error("cannot create object from initializer list");
+            }
+        }
+
+        if (is_an_object)
+        {
+            // the initializer list is a list of pairs -> create object
+            m_type = value_t::object;
+            m_value = value_t::object;
+
+            assert(m_value.object != nullptr);
+
+            for (auto& element : init)
+            {
+                m_value.object->emplace(*(element[0].m_value.string), element[1]);
+            }
+        }
+        else
+        {
+            // the initializer list describes an array -> create array
+            m_type = value_t::array;
+            m_value.array = create<array_t>(init);
+        }
+    }
+
+    /*!
+    @brief explicitly create an array from an initializer list
+
+    Creates a JSON array value from a given initializer list. That is, given a
+    list of values `a, b, c`, creates the JSON value `[a, b, c]`. If the
+    initializer list is empty, the empty array `[]` is created.
+
+    @note This function is only needed to express two edge cases that cannot
+    be realized with the initializer list constructor (@ref
+    basic_json(std::initializer_list<basic_json>, bool, value_t)). These cases
+    are:
+    1. creating an array whose elements are all pairs whose first element is a
+    string -- in this case, the initializer list constructor would create an
+    object, taking the first elements as keys
+    2. creating an empty array -- passing the empty initializer list to the
+    initializer list constructor yields an empty object
+
+    @param[in] init  initializer list with JSON values to create an array from
+    (optional)
+
+    @return JSON array value
+
+    @complexity Linear in the size of @a init.
+
+    @liveexample{The following code shows an example for the `array`
+    function.,array}
+
+    @sa @ref basic_json(std::initializer_list<basic_json>, bool, value_t) --
+    create a JSON value from an initializer list
+    @sa @ref object(std::initializer_list<basic_json>) -- create a JSON object
+    value from an initializer list
+
+    @since version 1.0.0
+    */
+    static basic_json array(std::initializer_list<basic_json> init =
+                                std::initializer_list<basic_json>())
+    {
+        return basic_json(init, false, value_t::array);
+    }
+
+    /*!
+    @brief explicitly create an object from an initializer list
+
+    Creates a JSON object value from a given initializer list. The initializer
+    lists elements must be pairs, and their first elements must be strings. If
+    the initializer list is empty, the empty object `{}` is created.
+
+    @note This function is only added for symmetry reasons. In contrast to the
+    related function @ref array(std::initializer_list<basic_json>), there are
+    no cases which can only be expressed by this function. That is, any
+    initializer list @a init can also be passed to the initializer list
+    constructor @ref basic_json(std::initializer_list<basic_json>, bool,
+    value_t).
+
+    @param[in] init  initializer list to create an object from (optional)
+
+    @return JSON object value
+
+    @throw std::domain_error if @a init is not a pair whose first elements are
+    strings; thrown by
+    @ref basic_json(std::initializer_list<basic_json>, bool, value_t)
+
+    @complexity Linear in the size of @a init.
+
+    @liveexample{The following code shows an example for the `object`
+    function.,object}
+
+    @sa @ref basic_json(std::initializer_list<basic_json>, bool, value_t) --
+    create a JSON value from an initializer list
+    @sa @ref array(std::initializer_list<basic_json>) -- create a JSON array
+    value from an initializer list
+
+    @since version 1.0.0
+    */
+    static basic_json object(std::initializer_list<basic_json> init =
+                                 std::initializer_list<basic_json>())
+    {
+        return basic_json(init, false, value_t::object);
+    }
+
+    /*!
+    @brief construct an array with count copies of given value
+
+    Constructs a JSON array value by creating @a cnt copies of a passed value.
+    In case @a cnt is `0`, an empty array is created. As postcondition,
+    `std::distance(begin(),end()) == cnt` holds.
+
+    @param[in] cnt  the number of JSON copies of @a val to create
+    @param[in] val  the JSON value to copy
+
+    @complexity Linear in @a cnt.
+
+    @liveexample{The following code shows examples for the @ref
+    basic_json(size_type\, const basic_json&)
+    constructor.,basic_json__size_type_basic_json}
+
+    @since version 1.0.0
+    */
+    basic_json(size_type cnt, const basic_json& val)
+        : m_type(value_t::array)
+    {
+        m_value.array = create<array_t>(cnt, val);
+    }
+
+    /*!
+    @brief construct a JSON container given an iterator range
+
+    Constructs the JSON value with the contents of the range `[first, last)`.
+    The semantics depends on the different types a JSON value can have:
+    - In case of primitive types (number, boolean, or string), @a first must
+      be `begin()` and @a last must be `end()`. In this case, the value is
+      copied. Otherwise, std::out_of_range is thrown.
+    - In case of structured types (array, object), the constructor behaves as
+      similar versions for `std::vector`.
+    - In case of a null type, std::domain_error is thrown.
+
+    @tparam InputIT an input iterator type (@ref iterator or @ref
+    const_iterator)
+
+    @param[in] first begin of the range to copy from (included)
+    @param[in] last end of the range to copy from (excluded)
+
+    @throw std::domain_error if iterators are not compatible; that is, do not
+    belong to the same JSON value; example: `"iterators are not compatible"`
+    @throw std::out_of_range if iterators are for a primitive type (number,
+    boolean, or string) where an out of range error can be detected easily;
+    example: `"iterators out of range"`
+    @throw std::bad_alloc if allocation for object, array, or string fails
+    @throw std::domain_error if called with a null value; example: `"cannot
+    use construct with iterators from null"`
+
+    @complexity Linear in distance between @a first and @a last.
+
+    @liveexample{The example below shows several ways to create JSON values by
+    specifying a subrange with iterators.,basic_json__InputIt_InputIt}
+
+    @since version 1.0.0
+    */
+    template <class InputIT, typename
+              std::enable_if<
+                  std::is_same<InputIT, typename basic_json_t::iterator>::value or
+                  std::is_same<InputIT, typename basic_json_t::const_iterator>::value
+                  , int>::type
+              = 0>
+    basic_json(InputIT first, InputIT last) : m_type(first.m_object->m_type)
+    {
+        // make sure iterator fits the current value
+        if (first.m_object != last.m_object)
+        {
+            throw std::domain_error("iterators are not compatible");
+        }
+
+        // check if iterator range is complete for primitive values
+        switch (m_type)
+        {
+            case value_t::boolean:
+            case value_t::number_float:
+            case value_t::number_integer:
+            case value_t::number_unsigned:
+            case value_t::string:
+            {
+                if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
+                {
+                    throw std::out_of_range("iterators out of range");
+                }
+                break;
+            }
+
+            default:
+            {
+                break;
+            }
+        }
+
+        switch (m_type)
+        {
+            case value_t::number_integer:
+            {
+                assert(first.m_object != nullptr);
+                m_value.number_integer = first.m_object->m_value.number_integer;
+                break;
+            }
+
+            case value_t::number_unsigned:
+            {
+                assert(first.m_object != nullptr);
+                m_value.number_unsigned = first.m_object->m_value.number_unsigned;
+                break;
+            }
+
+            case value_t::number_float:
+            {
+                assert(first.m_object != nullptr);
+                m_value.number_float = first.m_object->m_value.number_float;
+                break;
+            }
+
+            case value_t::boolean:
+            {
+                assert(first.m_object != nullptr);
+                m_value.boolean = first.m_object->m_value.boolean;
+                break;
+            }
+
+            case value_t::string:
+            {
+                assert(first.m_object != nullptr);
+                m_value = *first.m_object->m_value.string;
+                break;
+            }
+
+            case value_t::object:
+            {
+                m_value.object = create<object_t>(first.m_it.object_iterator, last.m_it.object_iterator);
+                break;
+            }
+
+            case value_t::array:
+            {
+                m_value.array = create<array_t>(first.m_it.array_iterator, last.m_it.array_iterator);
+                break;
+            }
+
+            default:
+            {
+                assert(first.m_object != nullptr);
+                throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name());
+            }
+        }
+    }
+
+    /*!
+    @brief construct a JSON value given an input stream
+
+    @param[in,out] i  stream to read a serialized JSON value from
+    @param[in] cb a parser callback function of type @ref parser_callback_t
+    which is used to control the deserialization by filtering unwanted values
+    (optional)
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser. The complexity can be higher if the parser callback function
+    @a cb has a super-linear complexity.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below demonstrates constructing a JSON value from
+    a `std::stringstream` with and without callback
+    function.,basic_json__istream}
+
+    @since version 2.0.0
+    */
+    explicit basic_json(std::istream& i, parser_callback_t cb = nullptr)
+    {
+        *this = parser(i, cb).parse();
+    }
+
+    ///////////////////////////////////////
+    // other constructors and destructor //
+    ///////////////////////////////////////
+
+    /*!
+    @brief copy constructor
+
+    Creates a copy of a given JSON value.
+
+    @param[in] other  the JSON value to copy
+
+    @complexity Linear in the size of @a other.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+    - As postcondition, it holds: `other == basic_json(other)`.
+
+    @throw std::bad_alloc if allocation for object, array, or string fails.
+
+    @liveexample{The following code shows an example for the copy
+    constructor.,basic_json__basic_json}
+
+    @since version 1.0.0
+    */
+    basic_json(const basic_json& other)
+        : m_type(other.m_type)
+    {
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                assert(other.m_value.object != nullptr);
+                m_value = *other.m_value.object;
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(other.m_value.array != nullptr);
+                m_value = *other.m_value.array;
+                break;
+            }
+
+            case value_t::string:
+            {
+                assert(other.m_value.string != nullptr);
+                m_value = *other.m_value.string;
+                break;
+            }
+
+            case value_t::boolean:
+            {
+                m_value = other.m_value.boolean;
+                break;
+            }
+
+            case value_t::number_integer:
+            {
+                m_value = other.m_value.number_integer;
+                break;
+            }
+
+            case value_t::number_unsigned:
+            {
+                m_value = other.m_value.number_unsigned;
+                break;
+            }
+
+            case value_t::number_float:
+            {
+                m_value = other.m_value.number_float;
+                break;
+            }
+
+            default:
+            {
+                break;
+            }
+        }
+    }
+
+    /*!
+    @brief move constructor
+
+    Move constructor. Constructs a JSON value with the contents of the given
+    value @a other using move semantics. It "steals" the resources from @a
+    other and leaves it as JSON null value.
+
+    @param[in,out] other  value to move to this object
+
+    @post @a other is a JSON null value
+
+    @complexity Constant.
+
+    @liveexample{The code below shows the move constructor explicitly called
+    via std::move.,basic_json__moveconstructor}
+
+    @since version 1.0.0
+    */
+    basic_json(basic_json&& other) noexcept
+        : m_type(std::move(other.m_type)),
+          m_value(std::move(other.m_value))
+    {
+        // invalidate payload
+        other.m_type = value_t::null;
+        other.m_value = {};
+    }
+
+    /*!
+    @brief copy assignment
+
+    Copy assignment operator. Copies a JSON value via the "copy and swap"
+    strategy: It is expressed in terms of the copy constructor, destructor,
+    and the swap() member function.
+
+    @param[in] other  value to copy from
+
+    @complexity Linear.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+
+    @liveexample{The code below shows and example for the copy assignment. It
+    creates a copy of value `a` which is then swapped with `b`. Finally\, the
+    copy of `a` (which is the null value after the swap) is
+    destroyed.,basic_json__copyassignment}
+
+    @since version 1.0.0
+    */
+    reference& operator=(basic_json other) noexcept (
+        std::is_nothrow_move_constructible<value_t>::value and
+        std::is_nothrow_move_assignable<value_t>::value and
+        std::is_nothrow_move_constructible<json_value>::value and
+        std::is_nothrow_move_assignable<json_value>::value
+    )
+    {
+        using std::swap;
+        swap(m_type, other.m_type);
+        swap(m_value, other.m_value);
+        return *this;
+    }
+
+    /*!
+    @brief destructor
+
+    Destroys the JSON value and frees all allocated memory.
+
+    @complexity Linear.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+    - All stored elements are destroyed and all memory is freed.
+
+    @since version 1.0.0
+    */
+    ~basic_json()
+    {
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                AllocatorType<object_t> alloc;
+                alloc.destroy(m_value.object);
+                alloc.deallocate(m_value.object, 1);
+                break;
+            }
+
+            case value_t::array:
+            {
+                AllocatorType<array_t> alloc;
+                alloc.destroy(m_value.array);
+                alloc.deallocate(m_value.array, 1);
+                break;
+            }
+
+            case value_t::string:
+            {
+                AllocatorType<string_t> alloc;
+                alloc.destroy(m_value.string);
+                alloc.deallocate(m_value.string, 1);
+                break;
+            }
+
+            default:
+            {
+                // all other types need no specific destructor
+                break;
+            }
+        }
+    }
+
+    /// @}
+
+  public:
+    ///////////////////////
+    // object inspection //
+    ///////////////////////
+
+    /// @name object inspection
+    /// @{
+
+    /*!
+    @brief serialization
+
+    Serialization function for JSON values. The function tries to mimic
+    Python's @p json.dumps() function, and currently supports its @p indent
+    parameter.
+
+    @param[in] indent if indent is nonnegative, then array elements and object
+    members will be pretty-printed with that indent level. An indent level of
+    0 will only insert newlines. -1 (the default) selects the most compact
+    representation
+
+    @return string containing the serialization of the JSON value
+
+    @complexity Linear.
+
+    @liveexample{The following example shows the effect of different @a indent
+    parameters to the result of the serialization.,dump}
+
+    @see https://docs.python.org/2/library/json.html#json.dump
+
+    @since version 1.0.0
+    */
+    string_t dump(const int indent = -1) const
+    {
+        std::stringstream ss;
+
+        if (indent >= 0)
+        {
+            dump(ss, true, static_cast<unsigned int>(indent));
+        }
+        else
+        {
+            dump(ss, false, 0);
+        }
+
+        return ss.str();
+    }
+
+    /*!
+    @brief return the type of the JSON value (explicit)
+
+    Return the type of the JSON value as a value from the @ref value_t
+    enumeration.
+
+    @return the type of the JSON value
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `type()` for all JSON
+    types.,type}
+
+    @since version 1.0.0
+    */
+    constexpr value_t type() const noexcept
+    {
+        return m_type;
+    }
+
+    /*!
+    @brief return whether type is primitive
+
+    This function returns true iff the JSON type is primitive (string, number,
+    boolean, or null).
+
+    @return `true` if type is primitive (string, number, boolean, or null),
+    `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_primitive()` for all JSON
+    types.,is_primitive}
+
+    @sa @ref is_structured() -- returns whether JSON value is structured
+    @sa @ref is_null() -- returns whether JSON value is `null`
+    @sa @ref is_string() -- returns whether JSON value is a string
+    @sa @ref is_boolean() -- returns whether JSON value is a boolean
+    @sa @ref is_number() -- returns whether JSON value is a number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_primitive() const noexcept
+    {
+        return is_null() or is_string() or is_boolean() or is_number();
+    }
+
+    /*!
+    @brief return whether type is structured
+
+    This function returns true iff the JSON type is structured (array or
+    object).
+
+    @return `true` if type is structured (array or object), `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_structured()` for all JSON
+    types.,is_structured}
+
+    @sa @ref is_primitive() -- returns whether value is primitive
+    @sa @ref is_array() -- returns whether value is an array
+    @sa @ref is_object() -- returns whether value is an object
+
+    @since version 1.0.0
+    */
+    constexpr bool is_structured() const noexcept
+    {
+        return is_array() or is_object();
+    }
+
+    /*!
+    @brief return whether value is null
+
+    This function returns true iff the JSON value is null.
+
+    @return `true` if type is null, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_null()` for all JSON
+    types.,is_null}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_null() const noexcept
+    {
+        return m_type == value_t::null;
+    }
+
+    /*!
+    @brief return whether value is a boolean
+
+    This function returns true iff the JSON value is a boolean.
+
+    @return `true` if type is boolean, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_boolean()` for all JSON
+    types.,is_boolean}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_boolean() const noexcept
+    {
+        return m_type == value_t::boolean;
+    }
+
+    /*!
+    @brief return whether value is a number
+
+    This function returns true iff the JSON value is a number. This includes
+    both integer and floating-point values.
+
+    @return `true` if type is number (regardless whether integer, unsigned
+    integer or floating-type), `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number()` for all JSON
+    types.,is_number}
+
+    @sa @ref is_number_integer() -- check if value is an integer or unsigned
+    integer number
+    @sa @ref is_number_unsigned() -- check if value is an unsigned integer
+    number
+    @sa @ref is_number_float() -- check if value is a floating-point number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_number() const noexcept
+    {
+        return is_number_integer() or is_number_float();
+    }
+
+    /*!
+    @brief return whether value is an integer number
+
+    This function returns true iff the JSON value is an integer or unsigned
+    integer number. This excludes floating-point values.
+
+    @return `true` if type is an integer or unsigned integer number, `false`
+    otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number_integer()` for all
+    JSON types.,is_number_integer}
+
+    @sa @ref is_number() -- check if value is a number
+    @sa @ref is_number_unsigned() -- check if value is an unsigned integer
+    number
+    @sa @ref is_number_float() -- check if value is a floating-point number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_number_integer() const noexcept
+    {
+        return m_type == value_t::number_integer or m_type == value_t::number_unsigned;
+    }
+
+    /*!
+    @brief return whether value is an unsigned integer number
+
+    This function returns true iff the JSON value is an unsigned integer
+    number. This excludes floating-point and (signed) integer values.
+
+    @return `true` if type is an unsigned integer number, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number_unsigned()` for all
+    JSON types.,is_number_unsigned}
+
+    @sa @ref is_number() -- check if value is a number
+    @sa @ref is_number_integer() -- check if value is an integer or unsigned
+    integer number
+    @sa @ref is_number_float() -- check if value is a floating-point number
+
+    @since version 2.0.0
+    */
+    constexpr bool is_number_unsigned() const noexcept
+    {
+        return m_type == value_t::number_unsigned;
+    }
+
+    /*!
+    @brief return whether value is a floating-point number
+
+    This function returns true iff the JSON value is a floating-point number.
+    This excludes integer and unsigned integer values.
+
+    @return `true` if type is a floating-point number, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number_float()` for all
+    JSON types.,is_number_float}
+
+    @sa @ref is_number() -- check if value is number
+    @sa @ref is_number_integer() -- check if value is an integer number
+    @sa @ref is_number_unsigned() -- check if value is an unsigned integer
+    number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_number_float() const noexcept
+    {
+        return m_type == value_t::number_float;
+    }
+
+    /*!
+    @brief return whether value is an object
+
+    This function returns true iff the JSON value is an object.
+
+    @return `true` if type is object, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_object()` for all JSON
+    types.,is_object}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_object() const noexcept
+    {
+        return m_type == value_t::object;
+    }
+
+    /*!
+    @brief return whether value is an array
+
+    This function returns true iff the JSON value is an array.
+
+    @return `true` if type is array, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_array()` for all JSON
+    types.,is_array}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_array() const noexcept
+    {
+        return m_type == value_t::array;
+    }
+
+    /*!
+    @brief return whether value is a string
+
+    This function returns true iff the JSON value is a string.
+
+    @return `true` if type is string, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_string()` for all JSON
+    types.,is_string}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_string() const noexcept
+    {
+        return m_type == value_t::string;
+    }
+
+    /*!
+    @brief return whether value is discarded
+
+    This function returns true iff the JSON value was discarded during parsing
+    with a callback function (see @ref parser_callback_t).
+
+    @note This function will always be `false` for JSON values after parsing.
+    That is, discarded values can only occur during parsing, but will be
+    removed when inside a structured value or replaced by null in other cases.
+
+    @return `true` if type is discarded, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_discarded()` for all JSON
+    types.,is_discarded}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_discarded() const noexcept
+    {
+        return m_type == value_t::discarded;
+    }
+
+    /*!
+    @brief return the type of the JSON value (implicit)
+
+    Implicitly return the type of the JSON value as a value from the @ref
+    value_t enumeration.
+
+    @return the type of the JSON value
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies the @ref value_t operator for
+    all JSON types.,operator__value_t}
+
+    @since version 1.0.0
+    */
+    constexpr operator value_t() const noexcept
+    {
+        return m_type;
+    }
+
+    /// @}
+
+  private:
+    //////////////////
+    // value access //
+    //////////////////
+
+    /// get an object (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
+                  std::is_convertible<basic_json_t, typename T::mapped_type>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return T(m_value.object->begin(), m_value.object->end());
+        }
+        else
+        {
+            throw std::domain_error("type must be object, but is " + type_name());
+        }
+    }
+
+    /// get an object (explicit)
+    object_t get_impl(object_t*) const
+    {
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return *(m_value.object);
+        }
+        else
+        {
+            throw std::domain_error("type must be object, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_convertible<basic_json_t, typename T::value_type>::value and
+                  not std::is_same<basic_json_t, typename T::value_type>::value and
+                  not std::is_arithmetic<T>::value and
+                  not std::is_convertible<std::string, T>::value and
+                  not has_mapped_type<T>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_array())
+        {
+            T to_vector;
+            assert(m_value.array != nullptr);
+            std::transform(m_value.array->begin(), m_value.array->end(),
+                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
+            {
+                return i.get<typename T::value_type>();
+            });
+            return to_vector;
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_convertible<basic_json_t, T>::value and
+                  not std::is_same<basic_json_t, T>::value
+                  , int>::type = 0>
+    std::vector<T> get_impl(std::vector<T>*) const
+    {
+        if (is_array())
+        {
+            std::vector<T> to_vector;
+            assert(m_value.array != nullptr);
+            to_vector.reserve(m_value.array->size());
+            std::transform(m_value.array->begin(), m_value.array->end(),
+                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
+            {
+                return i.get<T>();
+            });
+            return to_vector;
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_same<basic_json, typename T::value_type>::value and
+                  not has_mapped_type<T>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            return T(m_value.array->begin(), m_value.array->end());
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    array_t get_impl(array_t*) const
+    {
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            return *(m_value.array);
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get a string (explicit)
+    template <typename T, typename
+              std::enable_if<
+                  std::is_convertible<string_t, T>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_string())
+        {
+            assert(m_value.string != nullptr);
+            return *m_value.string;
+        }
+        else
+        {
+            throw std::domain_error("type must be string, but is " + type_name());
+        }
+    }
+
+    /// get a number (explicit)
+    template<typename T, typename
+             std::enable_if<
+                 std::is_arithmetic<T>::value
+                 , int>::type = 0>
+    T get_impl(T*) const
+    {
+        switch (m_type)
+        {
+            case value_t::number_integer:
+            {
+                return static_cast<T>(m_value.number_integer);
+            }
+
+            case value_t::number_unsigned:
+            {
+                return static_cast<T>(m_value.number_unsigned);
+            }
+
+            case value_t::number_float:
+            {
+                return static_cast<T>(m_value.number_float);
+            }
+
+            default:
+            {
+                throw std::domain_error("type must be number, but is " + type_name());
+            }
+        }
+    }
+
+    /// get a boolean (explicit)
+    constexpr boolean_t get_impl(boolean_t*) const
+    {
+        return is_boolean()
+               ? m_value.boolean
+               : throw std::domain_error("type must be boolean, but is " + type_name());
+    }
+
+    /// get a pointer to the value (object)
+    object_t* get_impl_ptr(object_t*) noexcept
+    {
+        return is_object() ? m_value.object : nullptr;
+    }
+
+    /// get a pointer to the value (object)
+    constexpr const object_t* get_impl_ptr(const object_t*) const noexcept
+    {
+        return is_object() ? m_value.object : nullptr;
+    }
+
+    /// get a pointer to the value (array)
+    array_t* get_impl_ptr(array_t*) noexcept
+    {
+        return is_array() ? m_value.array : nullptr;
+    }
+
+    /// get a pointer to the value (array)
+    constexpr const array_t* get_impl_ptr(const array_t*) const noexcept
+    {
+        return is_array() ? m_value.array : nullptr;
+    }
+
+    /// get a pointer to the value (string)
+    string_t* get_impl_ptr(string_t*) noexcept
+    {
+        return is_string() ? m_value.string : nullptr;
+    }
+
+    /// get a pointer to the value (string)
+    constexpr const string_t* get_impl_ptr(const string_t*) const noexcept
+    {
+        return is_string() ? m_value.string : nullptr;
+    }
+
+    /// get a pointer to the value (boolean)
+    boolean_t* get_impl_ptr(boolean_t*) noexcept
+    {
+        return is_boolean() ? &m_value.boolean : nullptr;
+    }
+
+    /// get a pointer to the value (boolean)
+    constexpr const boolean_t* get_impl_ptr(const boolean_t*) const noexcept
+    {
+        return is_boolean() ? &m_value.boolean : nullptr;
+    }
+
+    /// get a pointer to the value (integer number)
+    number_integer_t* get_impl_ptr(number_integer_t*) noexcept
+    {
+        return is_number_integer() ? &m_value.number_integer : nullptr;
+    }
+
+    /// get a pointer to the value (integer number)
+    constexpr const number_integer_t* get_impl_ptr(const number_integer_t*) const noexcept
+    {
+        return is_number_integer() ? &m_value.number_integer : nullptr;
+    }
+
+    /// get a pointer to the value (unsigned number)
+    number_unsigned_t* get_impl_ptr(number_unsigned_t*) noexcept
+    {
+        return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
+    }
+
+    /// get a pointer to the value (unsigned number)
+    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*) const noexcept
+    {
+        return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
+    }
+
+    /// get a pointer to the value (floating-point number)
+    number_float_t* get_impl_ptr(number_float_t*) noexcept
+    {
+        return is_number_float() ? &m_value.number_float : nullptr;
+    }
+
+    /// get a pointer to the value (floating-point number)
+    constexpr const number_float_t* get_impl_ptr(const number_float_t*) const noexcept
+    {
+        return is_number_float() ? &m_value.number_float : nullptr;
+    }
+
+    /*!
+    @brief helper function to implement get_ref()
+
+    This funcion helps to implement get_ref() without code duplication for
+    const and non-const overloads
+
+    @tparam ThisType will be deduced as `basic_json` or `const basic_json`
+
+    @throw std::domain_error if ReferenceType does not match underlying value
+    type of the current JSON
+    */
+    template<typename ReferenceType, typename ThisType>
+    static ReferenceType get_ref_impl(ThisType& obj)
+    {
+        // delegate the call to get_ptr<>()
+        using PointerType = typename std::add_pointer<ReferenceType>::type;
+        auto ptr = obj.template get_ptr<PointerType>();
+
+        if (ptr != nullptr)
+        {
+            return *ptr;
+        }
+        else
+        {
+            throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " +
+                                    obj.type_name());
+        }
+    }
+
+  public:
+
+    /// @name value access
+    /// @{
+
+    /*!
+    @brief get a value (explicit)
+
+    Explicit type conversion between the JSON value and a compatible value.
+
+    @tparam ValueType non-pointer type compatible to the JSON value, for
+    instance `int` for JSON integer numbers, `bool` for JSON booleans, or
+    `std::vector` types for JSON arrays
+
+    @return copy of the JSON value, converted to type @a ValueType
+
+    @throw std::domain_error in case passed type @a ValueType is incompatible
+    to JSON; example: `"type must be object, but is null"`
+
+    @complexity Linear in the size of the JSON value.
+
+    @liveexample{The example below shows several conversions from JSON values
+    to other types. There a few things to note: (1) Floating-point numbers can
+    be converted to integers\, (2) A JSON array can be converted to a standard
+    `std::vector<short>`\, (3) A JSON object can be converted to C++
+    associative containers such as `std::unordered_map<std::string\,
+    json>`.,get__ValueType_const}
+
+    @internal
+    The idea of using a casted null pointer to choose the correct
+    implementation is from <http://stackoverflow.com/a/8315197/266378>.
+    @endinternal
+
+    @sa @ref operator ValueType() const for implicit conversion
+    @sa @ref get() for pointer-member access
+
+    @since version 1.0.0
+    */
+    template<typename ValueType, typename
+             std::enable_if<
+                 not std::is_pointer<ValueType>::value
+                 , int>::type = 0>
+    ValueType get() const
+    {
+        return get_impl(static_cast<ValueType*>(nullptr));
+    }
+
+    /*!
+    @brief get a pointer value (explicit)
+
+    Explicit pointer access to the internally stored JSON value. No copies are
+    made.
+
+    @warning The pointer becomes invalid if the underlying JSON object changes.
+
+    @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref
+    object_t, @ref string_t, @ref boolean_t, @ref number_integer_t,
+    @ref number_unsigned_t, or @ref number_float_t.
+
+    @return pointer to the internally stored JSON value if the requested
+    pointer type @a PointerType fits to the JSON value; `nullptr` otherwise
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how pointers to internal values of a
+    JSON value can be requested. Note that no type conversions are made and a
+    `nullptr` is returned if the value and the requested pointer type does not
+    match.,get__PointerType}
+
+    @sa @ref get_ptr() for explicit pointer-member access
+
+    @since version 1.0.0
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 , int>::type = 0>
+    PointerType get() noexcept
+    {
+        // delegate the call to get_ptr
+        return get_ptr<PointerType>();
+    }
+
+    /*!
+    @brief get a pointer value (explicit)
+    @copydoc get()
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 , int>::type = 0>
+    constexpr const PointerType get() const noexcept
+    {
+        // delegate the call to get_ptr
+        return get_ptr<PointerType>();
+    }
+
+    /*!
+    @brief get a pointer value (implicit)
+
+    Implicit pointer access to the internally stored JSON value. No copies are
+    made.
+
+    @warning Writing data to the pointee of the result yields an undefined
+    state.
+
+    @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref
+    object_t, @ref string_t, @ref boolean_t, @ref number_integer_t,
+    @ref number_unsigned_t, or @ref number_float_t.
+
+    @return pointer to the internally stored JSON value if the requested
+    pointer type @a PointerType fits to the JSON value; `nullptr` otherwise
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how pointers to internal values of a
+    JSON value can be requested. Note that no type conversions are made and a
+    `nullptr` is returned if the value and the requested pointer type does not
+    match.,get_ptr}
+
+    @since version 1.0.0
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 , int>::type = 0>
+    PointerType get_ptr() noexcept
+    {
+        // delegate the call to get_impl_ptr<>()
+        return get_impl_ptr(static_cast<PointerType>(nullptr));
+    }
+
+    /*!
+    @brief get a pointer value (implicit)
+    @copydoc get_ptr()
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 and std::is_const<typename std::remove_pointer<PointerType>::type>::value
+                 , int>::type = 0>
+    constexpr const PointerType get_ptr() const noexcept
+    {
+        // delegate the call to get_impl_ptr<>() const
+        return get_impl_ptr(static_cast<const PointerType>(nullptr));
+    }
+
+    /*!
+    @brief get a reference value (implicit)
+
+    Implict reference access to the internally stored JSON value. No copies
+    are made.
+
+    @warning Writing data to the referee of the result yields an undefined
+    state.
+
+    @tparam ReferenceType reference type; must be a reference to @ref array_t,
+    @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or
+    @ref number_float_t.
+
+    @return reference to the internally stored JSON value if the requested
+    reference type @a ReferenceType fits to the JSON value; throws
+    std::domain_error otherwise
+
+    @throw std::domain_error in case passed type @a ReferenceType is
+    incompatible with the stored JSON value
+
+    @complexity Constant.
+
+    @liveexample{The example shows several calls to `get_ref()`.,get_ref}
+
+    @since version 1.1.0
+    */
+    template<typename ReferenceType, typename
+             std::enable_if<
+                 std::is_reference<ReferenceType>::value
+                 , int>::type = 0>
+    ReferenceType get_ref()
+    {
+        // delegate call to get_ref_impl
+        return get_ref_impl<ReferenceType>(*this);
+    }
+
+    /*!
+    @brief get a reference value (implicit)
+    @copydoc get_ref()
+    */
+    template<typename ReferenceType, typename
+             std::enable_if<
+                 std::is_reference<ReferenceType>::value
+                 and std::is_const<typename std::remove_reference<ReferenceType>::type>::value
+                 , int>::type = 0>
+    ReferenceType get_ref() const
+    {
+        // delegate call to get_ref_impl
+        return get_ref_impl<ReferenceType>(*this);
+    }
+
+    /*!
+    @brief get a value (implicit)
+
+    Implicit type conversion between the JSON value and a compatible value.
+    The call is realized by calling @ref get() const.
+
+    @tparam ValueType non-pointer type compatible to the JSON value, for
+    instance `int` for JSON integer numbers, `bool` for JSON booleans, or
+    `std::vector` types for JSON arrays. The character type of @ref string_t
+    as well as an initializer list of this type is excluded to avoid
+    ambiguities as these types implicitly convert to `std::string`.
+
+    @return copy of the JSON value, converted to type @a ValueType
+
+    @throw std::domain_error in case passed type @a ValueType is incompatible
+    to JSON, thrown by @ref get() const
+
+    @complexity Linear in the size of the JSON value.
+
+    @liveexample{The example below shows several conversions from JSON values
+    to other types. There a few things to note: (1) Floating-point numbers can
+    be converted to integers\, (2) A JSON array can be converted to a standard
+    `std::vector<short>`\, (3) A JSON object can be converted to C++
+    associative containers such as `std::unordered_map<std::string\,
+    json>`.,operator__ValueType}
+
+    @since version 1.0.0
+    */
+    template < typename ValueType, typename
+               std::enable_if <
+                   not std::is_pointer<ValueType>::value
+                   and not std::is_same<ValueType, typename string_t::value_type>::value
+#ifndef _MSC_VER  // Fix for issue #167 operator<< abiguity under VS2015
+                   and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
+#endif
+                   , int >::type = 0 >
+    operator ValueType() const
+    {
+        // delegate the call to get<>() const
+        return get<ValueType>();
+    }
+
+    /// @}
+
+
+    ////////////////////
+    // element access //
+    ////////////////////
+
+    /// @name element access
+    /// @{
+
+    /*!
+    @brief access specified array element with bounds checking
+
+    Returns a reference to the element at specified location @a idx, with
+    bounds checking.
+
+    @param[in] idx  index of the element to access
+
+    @return reference to the element at index @a idx
+
+    @throw std::domain_error if the JSON value is not an array; example:
+    `"cannot use at() with string"`
+    @throw std::out_of_range if the index @a idx is out of range of the array;
+    that is, `idx >= size()`; example: `"array index 7 is out of range"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how array elements can be read and
+    written using `at()`.,at__size_type}
+
+    @since version 1.0.0
+    */
+    reference at(size_type idx)
+    {
+        // at only works for arrays
+        if (is_array())
+        {
+            try
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->at(idx);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified array element with bounds checking
+
+    Returns a const reference to the element at specified location @a idx,
+    with bounds checking.
+
+    @param[in] idx  index of the element to access
+
+    @return const reference to the element at index @a idx
+
+    @throw std::domain_error if the JSON value is not an array; example:
+    `"cannot use at() with string"`
+    @throw std::out_of_range if the index @a idx is out of range of the array;
+    that is, `idx >= size()`; example: `"array index 7 is out of range"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how array elements can be read using
+    `at()`.,at__size_type_const}
+
+    @since version 1.0.0
+    */
+    const_reference at(size_type idx) const
+    {
+        // at only works for arrays
+        if (is_array())
+        {
+            try
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->at(idx);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element with bounds checking
+
+    Returns a reference to the element at with specified key @a key, with
+    bounds checking.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if the JSON value is not an object; example:
+    `"cannot use at() with boolean"`
+    @throw std::out_of_range if the key @a key is is not stored in the object;
+    that is, `find(key) == end()`; example: `"key "the fast" not found"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using `at()`.,at__object_t_key_type}
+
+    @sa @ref operator[](const typename object_t::key_type&) for unchecked
+    access by reference
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    reference at(const typename object_t::key_type& key)
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            try
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->at(key);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("key '" + key + "' not found");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element with bounds checking
+
+    Returns a const reference to the element at with specified key @a key,
+    with bounds checking.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if the JSON value is not an object; example:
+    `"cannot use at() with boolean"`
+    @throw std::out_of_range if the key @a key is is not stored in the object;
+    that is, `find(key) == end()`; example: `"key "the fast" not found"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    `at()`.,at__object_t_key_type_const}
+
+    @sa @ref operator[](const typename object_t::key_type&) for unchecked
+    access by reference
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    const_reference at(const typename object_t::key_type& key) const
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            try
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->at(key);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("key '" + key + "' not found");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified array element
+
+    Returns a reference to the element at specified location @a idx.
+
+    @note If @a idx is beyond the range of the array (i.e., `idx >= size()`),
+    then the array is silently filled up with `null` values to make `idx` a
+    valid reference to the last stored element.
+
+    @param[in] idx  index of the element to access
+
+    @return reference to the element at index @a idx
+
+    @throw std::domain_error if JSON is not an array or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Constant if @a idx is in the range of the array. Otherwise
+    linear in `idx - size()`.
+
+    @liveexample{The example below shows how array elements can be read and
+    written using `[]` operator. Note the addition of `null`
+    values.,operatorarray__size_type}
+
+    @since version 1.0.0
+    */
+    reference operator[](size_type idx)
+    {
+        // implicitly convert null value to an empty array
+        if (is_null())
+        {
+            m_type = value_t::array;
+            m_value.array = create<array_t>();
+        }
+
+        // operator[] only works for arrays
+        if (is_array())
+        {
+            // fill up array with null values until given idx is reached
+            assert(m_value.array != nullptr);
+            for (size_t i = m_value.array->size(); i <= idx; ++i)
+            {
+                m_value.array->push_back(basic_json());
+            }
+
+            return m_value.array->operator[](idx);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified array element
+
+    Returns a const reference to the element at specified location @a idx.
+
+    @param[in] idx  index of the element to access
+
+    @return const reference to the element at index @a idx
+
+    @throw std::domain_error if JSON is not an array; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how array elements can be read using
+    the `[]` operator.,operatorarray__size_type_const}
+
+    @since version 1.0.0
+    */
+    const_reference operator[](size_type idx) const
+    {
+        // const operator[] only works for arrays
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            return m_value.array->operator[](idx);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element
+
+    Returns a reference to the element at with specified key @a key.
+
+    @note If @a key is not found in the object, then it is silently added to
+    the object and filled with a `null` value to make `key` a valid reference.
+    In case the value was `null` before, it is converted to an object.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using the `[]` operator.,operatorarray__key_type}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    reference operator[](const typename object_t::key_type& key)
+    {
+        // implicitly convert null value to an empty object
+        if (is_null())
+        {
+            m_type = value_t::object;
+            m_value.object = create<object_t>();
+        }
+
+        // operator[] only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return m_value.object->operator[](key);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief read-only access specified object element
+
+    Returns a const reference to the element at with specified key @a key. No
+    bounds checking is performed.
+
+    @warning If the element with key @a key does not exist, the behavior is
+    undefined.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    the `[]` operator.,operatorarray__key_type_const}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    const_reference operator[](const typename object_t::key_type& key) const
+    {
+        // const operator[] only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            assert(m_value.object->find(key) != m_value.object->end());
+            return m_value.object->find(key)->second;
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element
+
+    Returns a reference to the element at with specified key @a key.
+
+    @note If @a key is not found in the object, then it is silently added to
+    the object and filled with a `null` value to make `key` a valid reference.
+    In case the value was `null` before, it is converted to an object.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using the `[]` operator.,operatorarray__key_type}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    template<typename T, std::size_t n>
+    reference operator[](T * (&key)[n])
+    {
+        return operator[](static_cast<const T>(key));
+    }
+
+    /*!
+    @brief read-only access specified object element
+
+    Returns a const reference to the element at with specified key @a key. No
+    bounds checking is performed.
+
+    @warning If the element with key @a key does not exist, the behavior is
+    undefined.
+
+    @note This function is required for compatibility reasons with Clang.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    the `[]` operator.,operatorarray__key_type_const}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    template<typename T, std::size_t n>
+    const_reference operator[](T * (&key)[n]) const
+    {
+        return operator[](static_cast<const T>(key));
+    }
+
+    /*!
+    @brief access specified object element
+
+    Returns a reference to the element at with specified key @a key.
+
+    @note If @a key is not found in the object, then it is silently added to
+    the object and filled with a `null` value to make `key` a valid reference.
+    In case the value was `null` before, it is converted to an object.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using the `[]` operator.,operatorarray__key_type}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.1.0
+    */
+    template<typename T>
+    reference operator[](T* key)
+    {
+        // implicitly convert null to object
+        if (is_null())
+        {
+            m_type = value_t::object;
+            m_value = value_t::object;
+        }
+
+        // at only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return m_value.object->operator[](key);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief read-only access specified object element
+
+    Returns a const reference to the element at with specified key @a key. No
+    bounds checking is performed.
+
+    @warning If the element with key @a key does not exist, the behavior is
+    undefined.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    the `[]` operator.,operatorarray__key_type_const}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.1.0
+    */
+    template<typename T>
+    const_reference operator[](T* key) const
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            assert(m_value.object->find(key) != m_value.object->end());
+            return m_value.object->find(key)->second;
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element with default value
+
+    Returns either a copy of an object's element at the specified key @a key or
+    a given default value if no element with key @a key exists.
+
+    The function is basically equivalent to executing
+    @code {.cpp}
+    try {
+        return at(key);
+    } catch(std::out_of_range) {
+        return default_value;
+    }
+    @endcode
+
+    @note Unlike @ref at(const typename object_t::key_type&), this function
+    does not throw if the given key @a key was not found.
+
+    @note Unlike @ref operator[](const typename object_t::key_type& key), this
+    function does not implicitly add an element to the position defined by @a
+    key. This function is furthermore also applicable to const objects.
+
+    @param[in] key  key of the element to access
+    @param[in] default_value  the value to return if @a key is not found
+
+    @tparam ValueType type compatible to JSON values, for instance `int` for
+    JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for
+    JSON arrays. Note the type of the expected value at @a key and the default
+    value @a default_value must be compatible.
+
+    @return copy of the element at key @a key or @a default_value if @a key
+    is not found
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    value() with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be queried
+    with a default value.,basic_json__value}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref operator[](const typename object_t::key_type&) for unchecked
+    access by reference
+
+    @since version 1.0.0
+    */
+    template <class ValueType, typename
+              std::enable_if<
+                  std::is_convertible<basic_json_t, ValueType>::value
+                  , int>::type = 0>
+    ValueType value(const typename object_t::key_type& key, ValueType default_value) const
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            // if key is found, return value and given default value otherwise
+            const auto it = find(key);
+            if (it != end())
+            {
+                return *it;
+            }
+            else
+            {
+                return default_value;
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use value() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief overload for a default value of type const char*
+    @copydoc basic_json::value()
+    */
+    string_t value(const typename object_t::key_type& key, const char* default_value) const
+    {
+        return value(key, string_t(default_value));
+    }
+
+    /*!
+    @brief access the first element
+
+    Returns a reference to the first element in the container. For a JSON
+    container `c`, the expression `c.front()` is equivalent to `*c.begin()`.
+
+    @return In case of a structured type (array or object), a reference to the
+    first element is returned. In cast of number, string, or boolean values, a
+    reference to the value is returned.
+
+    @complexity Constant.
+
+    @pre The JSON value must not be `null` (would throw `std::out_of_range`)
+    or an empty array or object (undefined behavior, guarded by assertions).
+    @post The JSON value remains unchanged.
+
+    @throw std::out_of_range when called on `null` value
+
+    @liveexample{The following code shows an example for `front()`.,front}
+
+    @sa @ref back() -- access the last element
+
+    @since version 1.0.0
+    */
+    reference front()
+    {
+        return *begin();
+    }
+
+    /*!
+    @copydoc basic_json::front()
+    */
+    const_reference front() const
+    {
+        return *cbegin();
+    }
+
+    /*!
+    @brief access the last element
+
+    Returns a reference to the last element in the container. For a JSON
+    container `c`, the expression `c.back()` is equivalent to
+    @code {.cpp}
+    auto tmp = c.end();
+    --tmp;
+    return *tmp;
+    @endcode
+
+    @return In case of a structured type (array or object), a reference to the
+    last element is returned. In cast of number, string, or boolean values, a
+    reference to the value is returned.
+
+    @complexity Constant.
+
+    @pre The JSON value must not be `null` (would throw `std::out_of_range`)
+    or an empty array or object (undefined behavior, guarded by assertions).
+    @post The JSON value remains unchanged.
+
+    @throw std::out_of_range when called on `null` value.
+
+    @liveexample{The following code shows an example for `back()`.,back}
+
+    @sa @ref front() -- access the first element
+
+    @since version 1.0.0
+    */
+    reference back()
+    {
+        auto tmp = end();
+        --tmp;
+        return *tmp;
+    }
+
+    /*!
+    @copydoc basic_json::back()
+    */
+    const_reference back() const
+    {
+        auto tmp = cend();
+        --tmp;
+        return *tmp;
+    }
+
+    /*!
+    @brief remove element given an iterator
+
+    Removes the element specified by iterator @a pos. The iterator @a pos must
+    be valid and dereferenceable. Thus the `end()` iterator (which is valid,
+    but is not dereferenceable) cannot be used as a value for @a pos.
+
+    If called on a primitive type other than `null`, the resulting JSON value
+    will be `null`.
+
+    @param[in] pos iterator to the element to remove
+    @return Iterator following the last removed element. If the iterator @a
+    pos refers to the last element, the `end()` iterator is returned.
+
+    @tparam InteratorType an @ref iterator or @ref const_iterator
+
+    @post Invalidates iterators and references at or after the point of the
+    erase, including the `end()` iterator.
+
+    @throw std::domain_error if called on a `null` value; example: `"cannot
+    use erase() with null"`
+    @throw std::domain_error if called on an iterator which does not belong to
+    the current JSON value; example: `"iterator does not fit current value"`
+    @throw std::out_of_range if called on a primitive type with invalid
+    iterator (i.e., any iterator which is not `begin()`); example: `"iterator
+    out of range"`
+
+    @complexity The complexity depends on the type:
+    - objects: amortized constant
+    - arrays: linear in distance between pos and the end of the container
+    - strings: linear in the length of the string
+    - other types: constant
+
+    @liveexample{The example shows the result of `erase()` for different JSON
+    types.,erase__IteratorType}
+
+    @sa @ref erase(InteratorType, InteratorType) -- removes the elements in
+    the given range
+    @sa @ref erase(const typename object_t::key_type&) -- removes the element
+    from an object at the given key
+    @sa @ref erase(const size_type) -- removes the element from an array at
+    the given index
+
+    @since version 1.0.0
+    */
+    template <class InteratorType, typename
+              std::enable_if<
+                  std::is_same<InteratorType, typename basic_json_t::iterator>::value or
+                  std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
+                  , int>::type
+              = 0>
+    InteratorType erase(InteratorType pos)
+    {
+        // make sure iterator fits the current value
+        if (this != pos.m_object)
+        {
+            throw std::domain_error("iterator does not fit current value");
+        }
+
+        InteratorType result = end();
+
+        switch (m_type)
+        {
+            case value_t::boolean:
+            case value_t::number_float:
+            case value_t::number_integer:
+            case value_t::number_unsigned:
+            case value_t::string:
+            {
+                if (not pos.m_it.primitive_iterator.is_begin())
+                {
+                    throw std::out_of_range("iterator out of range");
+                }
+
+                if (is_string())
+                {
+                    delete m_value.string;
+                    m_value.string = nullptr;
+                }
+
+                m_type = value_t::null;
+                break;
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator);
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator);
+                break;
+            }
+
+            default:
+            {
+                throw std::domain_error("cannot use erase() with " + type_name());
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief remove elements given an iterator range
+
+    Removes the element specified by the range `[first; last)`. The iterator
+    @a first does not need to be dereferenceable if `first == last`: erasing
+    an empty range is a no-op.
+
+    If called on a primitive type other than `null`, the resulting JSON value
+    will be `null`.
+
+    @param[in] first iterator to the beginning of the range to remove
+    @param[in] last iterator past the end of the range to remove
+    @return Iterator following the last removed element. If the iterator @a
+    second refers to the last element, the `end()` iterator is returned.
+
+    @tparam InteratorType an @ref iterator or @ref const_iterator
+
+    @post Invalidates iterators and references at or after the point of the
+    erase, including the `end()` iterator.
+
+    @throw std::domain_error if called on a `null` value; example: `"cannot
+    use erase() with null"`
+    @throw std::domain_error if called on iterators which does not belong to
+    the current JSON value; example: `"iterators do not fit current value"`
+    @throw std::out_of_range if called on a primitive type with invalid
+    iterators (i.e., if `first != begin()` and `last != end()`); example:
+    `"iterators out of range"`
+
+    @complexity The complexity depends on the type:
+    - objects: `log(size()) + std::distance(first, last)`
+    - arrays: linear in the distance between @a first and @a last, plus linear
+      in the distance between @a last and end of the container
+    - strings: linear in the length of the string
+    - other types: constant
+
+    @liveexample{The example shows the result of `erase()` for different JSON
+    types.,erase__IteratorType_IteratorType}
+
+    @sa @ref erase(InteratorType) -- removes the element at a given position
+    @sa @ref erase(const typename object_t::key_type&) -- removes the element
+    from an object at the given key
+    @sa @ref erase(const size_type) -- removes the element from an array at
+    the given index
+
+    @since version 1.0.0
+    */
+    template <class InteratorType, typename
+              std::enable_if<
+                  std::is_same<InteratorType, typename basic_json_t::iterator>::value or
+                  std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
+                  , int>::type
+              = 0>
+    InteratorType erase(InteratorType first, InteratorType last)
+    {
+        // make sure iterator fits the current value
+        if (this != first.m_object or this != last.m_object)
+        {
+            throw std::domain_error("iterators do not fit current value");
+        }
+
+        InteratorType result = end();
+
+        switch (m_type)
+        {
+            case value_t::boolean:
+            case value_t::number_float:
+            case value_t::number_integer:
+            case value_t::number_unsigned:
+            case value_t::string:
+            {
+                if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
+                {
+                    throw std::out_of_range("iterators out of range");
+                }
+
+                if (is_string())
+                {
+                    delete m_value.string;
+                    m_value.string = nullptr;
+                }
+
+                m_type = value_t::null;
+                break;
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
+                                              last.m_it.object_iterator);
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
+                                             last.m_it.array_iterator);
+                break;
+            }
+
+            default:
+            {
+                throw std::domain_error("cannot use erase() with " + type_name());
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief remove element from a JSON object given a key
+
+    Removes elements from a JSON object with the key value @a key.
+
+    @param[in] key value of the elements to remove
+
+    @return Number of elements removed. If @a ObjectType is the default
+    `std::map` type, the return value will always be `0` (@a key was not
+    found) or `1` (@a key was found).
+
+    @post References and iterators to the erased elements are invalidated.
+    Other references and iterators are not affected.
+
+    @throw std::domain_error when called on a type other than JSON object;
+    example: `"cannot use erase() with null"`
+
+    @complexity `log(size()) + count(key)`
+
+    @liveexample{The example shows the effect of `erase()`.,erase__key_type}
+
+    @sa @ref erase(InteratorType) -- removes the element at a given position
+    @sa @ref erase(InteratorType, InteratorType) -- removes the elements in
+    the given range
+    @sa @ref erase(const size_type) -- removes the element from an array at
+    the given index
+
+    @since version 1.0.0
+    */
+    size_type erase(const typename object_t::key_type& key)
+    {
+        // this erase only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return m_value.object->erase(key);
+        }
+        else
+        {
+            throw std::domain_error("cannot use erase() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief remove element from a JSON array given an index
+
+    Removes element from a JSON array at the index @a idx.
+
+    @param[in] idx index of the element to remove
+
+    @throw std::domain_error when called on a type other than JSON array;
+    example: `"cannot use erase() with null"`
+    @throw std::out_of_range when `idx >= size()`; example: `"array index 17
+    is out of range"`
+
+    @complexity Linear in distance between @a idx and the end of the container.
+
+    @liveexample{The example shows the effect of `erase()`.,erase__size_type}
+
+    @sa @ref erase(InteratorType) -- removes the element at a given position
+    @sa @ref erase(InteratorType, InteratorType) -- removes the elements in
+    the given range
+    @sa @ref erase(const typename object_t::key_type&) -- removes the element
+    from an object at the given key
+
+    @since version 1.0.0
+    */
+    void erase(const size_type idx)
+    {
+        // this erase only works for arrays
+        if (is_array())
+        {
+            if (idx >= size())
+            {
+                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+            }
+
+            assert(m_value.array != nullptr);
+            m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx));
+        }
+        else
+        {
+            throw std::domain_error("cannot use erase() with " + type_name());
+        }
+    }
+
+    /// @}
+
+
+    ////////////
+    // lookup //
+    ////////////
+
+    /// @name lookup
+    /// @{
+
+    /*!
+    @brief find an element in a JSON object
+
+    Finds an element in a JSON object with key equivalent to @a key. If the
+    element is not found or the JSON value is not an object, end() is
+    returned.
+
+    @param[in] key key value of the element to search for
+
+    @return Iterator to an element with key equivalent to @a key. If no such
+    element is found, past-the-end (see end()) iterator is returned.
+
+    @complexity Logarithmic in the size of the JSON object.
+
+    @liveexample{The example shows how `find()` is used.,find__key_type}
+
+    @since version 1.0.0
+    */
+    iterator find(typename object_t::key_type key)
+    {
+        auto result = end();
+
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            result.m_it.object_iterator = m_value.object->find(key);
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief find an element in a JSON object
+    @copydoc find(typename object_t::key_type)
+    */
+    const_iterator find(typename object_t::key_type key) const
+    {
+        auto result = cend();
+
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            result.m_it.object_iterator = m_value.object->find(key);
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief returns the number of occurrences of a key in a JSON object
+
+    Returns the number of elements with key @a key. If ObjectType is the
+    default `std::map` type, the return value will always be `0` (@a key was
+    not found) or `1` (@a key was found).
+
+    @param[in] key key value of the element to count
+
+    @return Number of elements with key @a key. If the JSON value is not an
+    object, the return value will be `0`.
+
+    @complexity Logarithmic in the size of the JSON object.
+
+    @liveexample{The example shows how `count()` is used.,count}
+
+    @since version 1.0.0
+    */
+    size_type count(typename object_t::key_type key) const
+    {
+        // return 0 for all nonobject types
+        assert(not is_object() or m_value.object != nullptr);
+        return is_object() ? m_value.object->count(key) : 0;
+    }
+
+    /// @}
+
+
+    ///////////////
+    // iterators //
+    ///////////////
+
+    /// @name iterators
+    /// @{
+
+    /*!
+    @brief returns an iterator to the first element
+
+    Returns an iterator to the first element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return iterator to the first element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+
+    @liveexample{The following code shows an example for `begin()`.,begin}
+
+    @sa @ref cbegin() -- returns a const iterator to the beginning
+    @sa @ref end() -- returns an iterator to the end
+    @sa @ref cend() -- returns a const iterator to the end
+
+    @since version 1.0.0
+    */
+    iterator begin() noexcept
+    {
+        iterator result(this);
+        result.set_begin();
+        return result;
+    }
+
+    /*!
+    @copydoc basic_json::cbegin()
+    */
+    const_iterator begin() const noexcept
+    {
+        return cbegin();
+    }
+
+    /*!
+    @brief returns a const iterator to the first element
+
+    Returns a const iterator to the first element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return const iterator to the first element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).begin()`.
+
+    @liveexample{The following code shows an example for `cbegin()`.,cbegin}
+
+    @sa @ref begin() -- returns an iterator to the beginning
+    @sa @ref end() -- returns an iterator to the end
+    @sa @ref cend() -- returns a const iterator to the end
+
+    @since version 1.0.0
+    */
+    const_iterator cbegin() const noexcept
+    {
+        const_iterator result(this);
+        result.set_begin();
+        return result;
+    }
+
+    /*!
+    @brief returns an iterator to one past the last element
+
+    Returns an iterator to one past the last element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return iterator one past the last element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+
+    @liveexample{The following code shows an example for `end()`.,end}
+
+    @sa @ref cend() -- returns a const iterator to the end
+    @sa @ref begin() -- returns an iterator to the beginning
+    @sa @ref cbegin() -- returns a const iterator to the beginning
+
+    @since version 1.0.0
+    */
+    iterator end() noexcept
+    {
+        iterator result(this);
+        result.set_end();
+        return result;
+    }
+
+    /*!
+    @copydoc basic_json::cend()
+    */
+    const_iterator end() const noexcept
+    {
+        return cend();
+    }
+
+    /*!
+    @brief returns a const iterator to one past the last element
+
+    Returns a const iterator to one past the last element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return const iterator one past the last element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).end()`.
+
+    @liveexample{The following code shows an example for `cend()`.,cend}
+
+    @sa @ref end() -- returns an iterator to the end
+    @sa @ref begin() -- returns an iterator to the beginning
+    @sa @ref cbegin() -- returns a const iterator to the beginning
+
+    @since version 1.0.0
+    */
+    const_iterator cend() const noexcept
+    {
+        const_iterator result(this);
+        result.set_end();
+        return result;
+    }
+
+    /*!
+    @brief returns an iterator to the reverse-beginning
+
+    Returns an iterator to the reverse-beginning; that is, the last element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `reverse_iterator(end())`.
+
+    @liveexample{The following code shows an example for `rbegin()`.,rbegin}
+
+    @sa @ref crbegin() -- returns a const reverse iterator to the beginning
+    @sa @ref rend() -- returns a reverse iterator to the end
+    @sa @ref crend() -- returns a const reverse iterator to the end
+
+    @since version 1.0.0
+    */
+    reverse_iterator rbegin() noexcept
+    {
+        return reverse_iterator(end());
+    }
+
+    /*!
+    @copydoc basic_json::crbegin()
+    */
+    const_reverse_iterator rbegin() const noexcept
+    {
+        return crbegin();
+    }
+
+    /*!
+    @brief returns an iterator to the reverse-end
+
+    Returns an iterator to the reverse-end; that is, one before the first
+    element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `reverse_iterator(begin())`.
+
+    @liveexample{The following code shows an example for `rend()`.,rend}
+
+    @sa @ref crend() -- returns a const reverse iterator to the end
+    @sa @ref rbegin() -- returns a reverse iterator to the beginning
+    @sa @ref crbegin() -- returns a const reverse iterator to the beginning
+
+    @since version 1.0.0
+    */
+    reverse_iterator rend() noexcept
+    {
+        return reverse_iterator(begin());
+    }
+
+    /*!
+    @copydoc basic_json::crend()
+    */
+    const_reverse_iterator rend() const noexcept
+    {
+        return crend();
+    }
+
+    /*!
+    @brief returns a const reverse iterator to the last element
+
+    Returns a const iterator to the reverse-beginning; that is, the last
+    element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`.
+
+    @liveexample{The following code shows an example for `crbegin()`.,crbegin}
+
+    @sa @ref rbegin() -- returns a reverse iterator to the beginning
+    @sa @ref rend() -- returns a reverse iterator to the end
+    @sa @ref crend() -- returns a const reverse iterator to the end
+
+    @since version 1.0.0
+    */
+    const_reverse_iterator crbegin() const noexcept
+    {
+        return const_reverse_iterator(cend());
+    }
+
+    /*!
+    @brief returns a const reverse iterator to one before the first
+
+    Returns a const reverse iterator to the reverse-end; that is, one before
+    the first element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).rend()`.
+
+    @liveexample{The following code shows an example for `crend()`.,crend}
+
+    @sa @ref rend() -- returns a reverse iterator to the end
+    @sa @ref rbegin() -- returns a reverse iterator to the beginning
+    @sa @ref crbegin() -- returns a const reverse iterator to the beginning
+
+    @since version 1.0.0
+    */
+    const_reverse_iterator crend() const noexcept
+    {
+        return const_reverse_iterator(cbegin());
+    }
+
+  private:
+    // forward declaration
+    template<typename IteratorType> class iteration_proxy;
+
+  public:
+    /*!
+    @brief wrapper to access iterator member functions in range-based for
+
+    This function allows to access @ref iterator::key() and @ref
+    iterator::value() during range-based for loops. In these loops, a
+    reference to the JSON values is returned, so there is no access to the
+    underlying iterator.
+
+    @note The name of this function is not yet final and may change in the
+    future.
+    */
+    static iteration_proxy<iterator> iterator_wrapper(reference cont)
+    {
+        return iteration_proxy<iterator>(cont);
+    }
+
+    /*!
+    @copydoc iterator_wrapper(reference)
+    */
+    static iteration_proxy<const_iterator> iterator_wrapper(const_reference cont)
+    {
+        return iteration_proxy<const_iterator>(cont);
+    }
+
+    /// @}
+
+
+    //////////////
+    // capacity //
+    //////////////
+
+    /// @name capacity
+    /// @{
+
+    /*!
+    @brief checks whether the container is empty
+
+    Checks if a JSON value has no elements.
+
+    @return The return value depends on the different types and is
+            defined as follows:
+            Value type  | return value
+            ----------- | -------------
+            null        | `true`
+            boolean     | `false`
+            string      | `false`
+            number      | `false`
+            object      | result of function `object_t::empty()`
+            array       | result of function `array_t::empty()`
+
+    @complexity Constant, as long as @ref array_t and @ref object_t satisfy
+    the Container concept; that is, their `empty()` functions have constant
+    complexity.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `begin() == end()`.
+
+    @liveexample{The following code uses `empty()` to check if a JSON
+    object contains any elements.,empty}
+
+    @sa @ref size() -- returns the number of elements
+
+    @since version 1.0.0
+    */
+    bool empty() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::null:
+            {
+                // null values are empty
+                return true;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->empty();
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->empty();
+            }
+
+            default:
+            {
+                // all other types are nonempty
+                return false;
+            }
+        }
+    }
+
+    /*!
+    @brief returns the number of elements
+
+    Returns the number of elements in a JSON value.
+
+    @return The return value depends on the different types and is
+            defined as follows:
+            Value type  | return value
+            ----------- | -------------
+            null        | `0`
+            boolean     | `1`
+            string      | `1`
+            number      | `1`
+            object      | result of function object_t::size()
+            array       | result of function array_t::size()
+
+    @complexity Constant, as long as @ref array_t and @ref object_t satisfy
+    the Container concept; that is, their size() functions have constant
+    complexity.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `std::distance(begin(), end())`.
+
+    @liveexample{The following code calls `size()` on the different value
+    types.,size}
+
+    @sa @ref empty() -- checks whether the container is empty
+    @sa @ref max_size() -- returns the maximal number of elements
+
+    @since version 1.0.0
+    */
+    size_type size() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::null:
+            {
+                // null values are empty
+                return 0;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->size();
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->size();
+            }
+
+            default:
+            {
+                // all other types have size 1
+                return 1;
+            }
+        }
+    }
+
+    /*!
+    @brief returns the maximum possible number of elements
+
+    Returns the maximum number of elements a JSON value is able to hold due to
+    system or library implementation limitations, i.e. `std::distance(begin(),
+    end())` for the JSON value.
+
+    @return The return value depends on the different types and is
+            defined as follows:
+            Value type  | return value
+            ----------- | -------------
+            null        | `0` (same as `size()`)
+            boolean     | `1` (same as `size()`)
+            string      | `1` (same as `size()`)
+            number      | `1` (same as `size()`)
+            object      | result of function `object_t::max_size()`
+            array       | result of function `array_t::max_size()`
+
+    @complexity Constant, as long as @ref array_t and @ref object_t satisfy
+    the Container concept; that is, their `max_size()` functions have constant
+    complexity.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of returning `b.size()` where `b` is the largest
+      possible JSON value.
+
+    @liveexample{The following code calls `max_size()` on the different value
+    types. Note the output is implementation specific.,max_size}
+
+    @sa @ref size() -- returns the number of elements
+
+    @since version 1.0.0
+    */
+    size_type max_size() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->max_size();
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->max_size();
+            }
+
+            default:
+            {
+                // all other types have max_size() == size()
+                return size();
+            }
+        }
+    }
+
+    /// @}
+
+
+    ///////////////
+    // modifiers //
+    ///////////////
+
+    /// @name modifiers
+    /// @{
+
+    /*!
+    @brief clears the contents
+
+    Clears the content of a JSON value and resets it to the default value as
+    if @ref basic_json(value_t) would have been called:
+
+    Value type  | initial value
+    ----------- | -------------
+    null        | `null`
+    boolean     | `false`
+    string      | `""`
+    number      | `0`
+    object      | `{}`
+    array       | `[]`
+
+    @note Floating-point numbers are set to `0.0` which will be serialized to
+    `0`. The vale type remains @ref number_float_t.
+
+    @complexity Linear in the size of the JSON value.
+
+    @liveexample{The example below shows the effect of `clear()` to different
+    JSON types.,clear}
+
+    @since version 1.0.0
+    */
+    void clear() noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::number_integer:
+            {
+                m_value.number_integer = 0;
+                break;
+            }
+
+            case value_t::number_unsigned:
+            {
+                m_value.number_unsigned = 0;
+                break;
+            }
+
+            case value_t::number_float:
+            {
+                m_value.number_float = 0.0;
+                break;
+            }
+
+            case value_t::boolean:
+            {
+                m_value.boolean = false;
+                break;
+            }
+
+            case value_t::string:
+            {
+                assert(m_value.string != nullptr);
+                m_value.string->clear();
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                m_value.array->clear();
+                break;
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                m_value.object->clear();
+                break;
+            }
+
+            default:
+            {
+                break;
+            }
+        }
+    }
+
+    /*!
+    @brief add an object to an array
+
+    Appends the given element @a val to the end of the JSON value. If the
+    function is called on a JSON null value, an empty array is created before
+    appending @a val.
+
+    @param[in] val the value to add to the JSON array
+
+    @throw std::domain_error when called on a type other than JSON array or
+    null; example: `"cannot use push_back() with number"`
+
+    @complexity Amortized constant.
+
+    @liveexample{The example shows how `push_back()` and `+=` can be used to
+    add elements to a JSON array. Note how the `null` value was silently
+    converted to a JSON array.,push_back}
+
+    @since version 1.0.0
+    */
+    void push_back(basic_json&& val)
+    {
+        // push_back only works for null objects or arrays
+        if (not(is_null() or is_array()))
+        {
+            throw std::domain_error("cannot use push_back() with " + type_name());
+        }
+
+        // transform null object into an array
+        if (is_null())
+        {
+            m_type = value_t::array;
+            m_value = value_t::array;
+        }
+
+        // add element to array (move semantics)
+        assert(m_value.array != nullptr);
+        m_value.array->push_back(std::move(val));
+        // invalidate object
+        val.m_type = value_t::null;
+    }
+
+    /*!
+    @brief add an object to an array
+    @copydoc push_back(basic_json&&)
+    */
+    reference operator+=(basic_json&& val)
+    {
+        push_back(std::move(val));
+        return *this;
+    }
+
+    /*!
+    @brief add an object to an array
+    @copydoc push_back(basic_json&&)
+    */
+    void push_back(const basic_json& val)
+    {
+        // push_back only works for null objects or arrays
+        if (not(is_null() or is_array()))
+        {
+            throw std::domain_error("cannot use push_back() with " + type_name());
+        }
+
+        // transform null object into an array
+        if (is_null())
+        {
+            m_type = value_t::array;
+            m_value = value_t::array;
+        }
+
+        // add element to array
+        assert(m_value.array != nullptr);
+        m_value.array->push_back(val);
+    }
+
+    /*!
+    @brief add an object to an array
+    @copydoc push_back(basic_json&&)
+    */
+    reference operator+=(const basic_json& val)
+    {
+        push_back(val);
+        return *this;
+    }
+
+    /*!
+    @brief add an object to an object
+
+    Inserts the given element @a val to the JSON object. If the function is
+    called on a JSON null value, an empty object is created before inserting
+    @a val.
+
+    @param[in] val the value to add to the JSON object
+
+    @throw std::domain_error when called on a type other than JSON object or
+    null; example: `"cannot use push_back() with number"`
+
+    @complexity Logarithmic in the size of the container, O(log(`size()`)).
+
+    @liveexample{The example shows how `push_back()` and `+=` can be used to
+    add elements to a JSON object. Note how the `null` value was silently
+    converted to a JSON object.,push_back__object_t__value}
+
+    @since version 1.0.0
+    */
+    void push_back(const typename object_t::value_type& val)
+    {
+        // push_back only works for null objects or objects
+        if (not(is_null() or is_object()))
+        {
+            throw std::domain_error("cannot use push_back() with " + type_name());
+        }
+
+        // transform null object into an object
+        if (is_null())
+        {
+            m_type = value_t::object;
+            m_value = value_t::object;
+        }
+
+        // add element to array
+        assert(m_value.object != nullptr);
+        m_value.object->insert(val);
+    }
+
+    /*!
+    @brief add an object to an object
+    @copydoc push_back(const typename object_t::value_type&)
+    */
+    reference operator+=(const typename object_t::value_type& val)
+    {
+        push_back(val);
+        return *this;
+    }
+
+    /*!
+    @brief add an object to an object
+
+    This function allows to use `push_back` with an initializer list. In case
+
+    1. the current value is an object,
+    2. the initializer list @a init contains only two elements, and
+    3. the first element of @a init is a string,
+
+    @a init is converted into an object element and added using
+    @ref push_back(const typename object_t::value_type&). Otherwise, @a init
+    is converted to a JSON value and added using @ref push_back(basic_json&&).
+
+    @param init  an initializer list
+
+    @complexity Linear in the size of the initializer list @a init.
+
+    @note This function is required to resolve an ambiguous overload error,
+          because pairs like `{"key", "value"}` can be both interpreted as
+          `object_t::value_type` or `std::initializer_list<basic_json>`, see
+          https://github.com/nlohmann/json/issues/235 for more information.
+
+    @liveexample{The example shows how initializer lists are treated as
+    objects when possible.,push_back__initializer_list}
+    */
+    void push_back(std::initializer_list<basic_json> init)
+    {
+        if (is_object() and init.size() == 2 and init.begin()->is_string())
+        {
+            const string_t key = *init.begin();
+            push_back(typename object_t::value_type(key, *(init.begin() + 1)));
+        }
+        else
+        {
+            push_back(basic_json(init));
+        }
+    }
+
+    /*!
+    @brief add an object to an object
+    @copydoc push_back(std::initializer_list<basic_json>)
+    */
+    reference operator+=(std::initializer_list<basic_json> init)
+    {
+        push_back(init);
+        return *this;
+    }
+
+    /*!
+    @brief inserts element
+
+    Inserts element @a val before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] val element to insert
+    @return iterator pointing to the inserted @a val.
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+
+    @complexity Constant plus linear in the distance between pos and end of the
+    container.
+
+    @liveexample{The example shows how `insert()` is used.,insert}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, const basic_json& val)
+    {
+        // insert only works for arrays
+        if (is_array())
+        {
+            // check if iterator pos fits to this JSON value
+            if (pos.m_object != this)
+            {
+                throw std::domain_error("iterator does not fit current value");
+            }
+
+            // insert to array and return iterator
+            iterator result(this);
+            assert(m_value.array != nullptr);
+            result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val);
+            return result;
+        }
+        else
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief inserts element
+    @copydoc insert(const_iterator, const basic_json&)
+    */
+    iterator insert(const_iterator pos, basic_json&& val)
+    {
+        return insert(pos, val);
+    }
+
+    /*!
+    @brief inserts elements
+
+    Inserts @a cnt copies of @a val before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] cnt number of copies of @a val to insert
+    @param[in] val element to insert
+    @return iterator pointing to the first element inserted, or @a pos if
+    `cnt==0`
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+
+    @complexity Linear in @a cnt plus linear in the distance between @a pos
+    and end of the container.
+
+    @liveexample{The example shows how `insert()` is used.,insert__count}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, size_type cnt, const basic_json& val)
+    {
+        // insert only works for arrays
+        if (is_array())
+        {
+            // check if iterator pos fits to this JSON value
+            if (pos.m_object != this)
+            {
+                throw std::domain_error("iterator does not fit current value");
+            }
+
+            // insert to array and return iterator
+            iterator result(this);
+            assert(m_value.array != nullptr);
+            result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val);
+            return result;
+        }
+        else
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief inserts elements
+
+    Inserts elements from range `[first, last)` before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] first begin of the range of elements to insert
+    @param[in] last end of the range of elements to insert
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+    @throw std::domain_error if @a first and @a last do not belong to the same
+    JSON value; example: `"iterators do not fit"`
+    @throw std::domain_error if @a first or @a last are iterators into
+    container for which insert is called; example: `"passed iterators may not
+    belong to container"`
+
+    @return iterator pointing to the first element inserted, or @a pos if
+    `first==last`
+
+    @complexity Linear in `std::distance(first, last)` plus linear in the
+    distance between @a pos and end of the container.
+
+    @liveexample{The example shows how `insert()` is used.,insert__range}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, const_iterator first, const_iterator last)
+    {
+        // insert only works for arrays
+        if (not is_array())
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+
+        // check if iterator pos fits to this JSON value
+        if (pos.m_object != this)
+        {
+            throw std::domain_error("iterator does not fit current value");
+        }
+
+        if (first.m_object != last.m_object)
+        {
+            throw std::domain_error("iterators do not fit");
+        }
+
+        if (first.m_object == this or last.m_object == this)
+        {
+            throw std::domain_error("passed iterators may not belong to container");
+        }
+
+        // insert to array and return iterator
+        iterator result(this);
+        assert(m_value.array != nullptr);
+        result.m_it.array_iterator = m_value.array->insert(
+                                         pos.m_it.array_iterator,
+                                         first.m_it.array_iterator,
+                                         last.m_it.array_iterator);
+        return result;
+    }
+
+    /*!
+    @brief inserts elements
+
+    Inserts elements from initializer list @a ilist before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] ilist initializer list to insert the values from
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+
+    @return iterator pointing to the first element inserted, or @a pos if
+    `ilist` is empty
+
+    @complexity Linear in `ilist.size()` plus linear in the distance between
+    @a pos and end of the container.
+
+    @liveexample{The example shows how `insert()` is used.,insert__ilist}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, std::initializer_list<basic_json> ilist)
+    {
+        // insert only works for arrays
+        if (not is_array())
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+
+        // check if iterator pos fits to this JSON value
+        if (pos.m_object != this)
+        {
+            throw std::domain_error("iterator does not fit current value");
+        }
+
+        // insert to array and return iterator
+        iterator result(this);
+        assert(m_value.array != nullptr);
+        result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist);
+        return result;
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of the JSON value with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other JSON value to exchange the contents with
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how JSON values can be swapped with
+    `swap()`.,swap__reference}
+
+    @since version 1.0.0
+    */
+    void swap(reference other) noexcept (
+        std::is_nothrow_move_constructible<value_t>::value and
+        std::is_nothrow_move_assignable<value_t>::value and
+        std::is_nothrow_move_constructible<json_value>::value and
+        std::is_nothrow_move_assignable<json_value>::value
+    )
+    {
+        std::swap(m_type, other.m_type);
+        std::swap(m_value, other.m_value);
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of a JSON array with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other array to exchange the contents with
+
+    @throw std::domain_error when JSON value is not an array; example: `"cannot
+    use swap() with string"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how arrays can be swapped with
+    `swap()`.,swap__array_t}
+
+    @since version 1.0.0
+    */
+    void swap(array_t& other)
+    {
+        // swap only works for arrays
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            std::swap(*(m_value.array), other);
+        }
+        else
+        {
+            throw std::domain_error("cannot use swap() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of a JSON object with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other object to exchange the contents with
+
+    @throw std::domain_error when JSON value is not an object; example:
+    `"cannot use swap() with string"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how objects can be swapped with
+    `swap()`.,swap__object_t}
+
+    @since version 1.0.0
+    */
+    void swap(object_t& other)
+    {
+        // swap only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            std::swap(*(m_value.object), other);
+        }
+        else
+        {
+            throw std::domain_error("cannot use swap() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of a JSON string with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other string to exchange the contents with
+
+    @throw std::domain_error when JSON value is not a string; example: `"cannot
+    use swap() with boolean"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how strings can be swapped with
+    `swap()`.,swap__string_t}
+
+    @since version 1.0.0
+    */
+    void swap(string_t& other)
+    {
+        // swap only works for strings
+        if (is_string())
+        {
+            assert(m_value.string != nullptr);
+            std::swap(*(m_value.string), other);
+        }
+        else
+        {
+            throw std::domain_error("cannot use swap() with " + type_name());
+        }
+    }
+
+    /// @}
+
+
+    //////////////////////////////////////////
+    // lexicographical comparison operators //
+    //////////////////////////////////////////
+
+    /// @name lexicographical comparison operators
+    /// @{
+
+  private:
+    /*!
+    @brief comparison operator for JSON types
+
+    Returns an ordering that is similar to Python:
+    - order: null < boolean < number < object < array < string
+    - furthermore, each type is not smaller than itself
+
+    @since version 1.0.0
+    */
+    friend bool operator<(const value_t lhs, const value_t rhs) noexcept
+    {
+        static constexpr std::array<uint8_t, 8> order = {{
+                0, // null
+                3, // object
+                4, // array
+                5, // string
+                1, // boolean
+                2, // integer
+                2, // unsigned
+                2, // float
+            }
+        };
+
+        // discarded values are not comparable
+        if (lhs == value_t::discarded or rhs == value_t::discarded)
+        {
+            return false;
+        }
+
+        return order[static_cast<std::size_t>(lhs)] < order[static_cast<std::size_t>(rhs)];
+    }
+
+  public:
+    /*!
+    @brief comparison: equal
+
+    Compares two JSON values for equality according to the following rules:
+    - Two JSON values are equal if (1) they are from the same type and (2)
+      their stored values are the same.
+    - Integer and floating-point numbers are automatically converted before
+      comparison. Floating-point numbers are compared indirectly: two
+      floating-point numbers `f1` and `f2` are considered equal if neither
+      `f1 > f2` nor `f2 > f1` holds.
+    - Two JSON null values are equal.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether the values @a lhs and @a rhs are equal
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__equal}
+
+    @since version 1.0.0
+    */
+    friend bool operator==(const_reference lhs, const_reference rhs) noexcept
+    {
+        const auto lhs_type = lhs.type();
+        const auto rhs_type = rhs.type();
+
+        if (lhs_type == rhs_type)
+        {
+            switch (lhs_type)
+            {
+                case value_t::array:
+                {
+                    assert(lhs.m_value.array != nullptr);
+                    assert(rhs.m_value.array != nullptr);
+                    return *lhs.m_value.array == *rhs.m_value.array;
+                }
+                case value_t::object:
+                {
+                    assert(lhs.m_value.object != nullptr);
+                    assert(rhs.m_value.object != nullptr);
+                    return *lhs.m_value.object == *rhs.m_value.object;
+                }
+                case value_t::null:
+                {
+                    return true;
+                }
+                case value_t::string:
+                {
+                    assert(lhs.m_value.string != nullptr);
+                    assert(rhs.m_value.string != nullptr);
+                    return *lhs.m_value.string == *rhs.m_value.string;
+                }
+                case value_t::boolean:
+                {
+                    return lhs.m_value.boolean == rhs.m_value.boolean;
+                }
+                case value_t::number_integer:
+                {
+                    return lhs.m_value.number_integer == rhs.m_value.number_integer;
+                }
+                case value_t::number_unsigned:
+                {
+                    return lhs.m_value.number_unsigned == rhs.m_value.number_unsigned;
+                }
+                case value_t::number_float:
+                {
+                    return lhs.m_value.number_float == rhs.m_value.number_float;
+                }
+                default:
+                {
+                    return false;
+                }
+            }
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_integer) == rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer)
+        {
+            return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_integer);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_unsigned) == rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_unsigned);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer)
+        {
+            return static_cast<number_integer_t>(lhs.m_value.number_unsigned) == rhs.m_value.number_integer;
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_integer == static_cast<number_integer_t>(rhs.m_value.number_unsigned);
+        }
+
+        return false;
+    }
+
+    /*!
+    @brief comparison: equal
+
+    The functions compares the given JSON value against a null pointer. As the
+    null pointer can be used to initialize a JSON value to null, a comparison
+    of JSON value @a v with a null pointer should be equivalent to call
+    `v.is_null()`.
+
+    @param[in] v  JSON value to consider
+    @return whether @a v is null
+
+    @complexity Constant.
+
+    @liveexample{The example compares several JSON types to the null pointer.
+    ,operator__equal__nullptr_t}
+
+    @since version 1.0.0
+    */
+    friend bool operator==(const_reference v, std::nullptr_t) noexcept
+    {
+        return v.is_null();
+    }
+
+    /*!
+    @brief comparison: equal
+    @copydoc operator==(const_reference, std::nullptr_t)
+    */
+    friend bool operator==(std::nullptr_t, const_reference v) noexcept
+    {
+        return v.is_null();
+    }
+
+    /*!
+    @brief comparison: not equal
+
+    Compares two JSON values for inequality by calculating `not (lhs == rhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether the values @a lhs and @a rhs are not equal
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__notequal}
+
+    @since version 1.0.0
+    */
+    friend bool operator!=(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (lhs == rhs);
+    }
+
+    /*!
+    @brief comparison: not equal
+
+    The functions compares the given JSON value against a null pointer. As the
+    null pointer can be used to initialize a JSON value to null, a comparison
+    of JSON value @a v with a null pointer should be equivalent to call
+    `not v.is_null()`.
+
+    @param[in] v  JSON value to consider
+    @return whether @a v is not null
+
+    @complexity Constant.
+
+    @liveexample{The example compares several JSON types to the null pointer.
+    ,operator__notequal__nullptr_t}
+
+    @since version 1.0.0
+    */
+    friend bool operator!=(const_reference v, std::nullptr_t) noexcept
+    {
+        return not v.is_null();
+    }
+
+    /*!
+    @brief comparison: not equal
+    @copydoc operator!=(const_reference, std::nullptr_t)
+    */
+    friend bool operator!=(std::nullptr_t, const_reference v) noexcept
+    {
+        return not v.is_null();
+    }
+
+    /*!
+    @brief comparison: less than
+
+    Compares whether one JSON value @a lhs is less than another JSON value @a
+    rhs according to the following rules:
+    - If @a lhs and @a rhs have the same type, the values are compared using
+      the default `<` operator.
+    - Integer and floating-point numbers are automatically converted before
+      comparison
+    - In case @a lhs and @a rhs have different types, the values are ignored
+      and the order of the types is considered, see
+      @ref operator<(const value_t, const value_t).
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is less than @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__less}
+
+    @since version 1.0.0
+    */
+    friend bool operator<(const_reference lhs, const_reference rhs) noexcept
+    {
+        const auto lhs_type = lhs.type();
+        const auto rhs_type = rhs.type();
+
+        if (lhs_type == rhs_type)
+        {
+            switch (lhs_type)
+            {
+                case value_t::array:
+                {
+                    assert(lhs.m_value.array != nullptr);
+                    assert(rhs.m_value.array != nullptr);
+                    return *lhs.m_value.array < *rhs.m_value.array;
+                }
+                case value_t::object:
+                {
+                    assert(lhs.m_value.object != nullptr);
+                    assert(rhs.m_value.object != nullptr);
+                    return *lhs.m_value.object < *rhs.m_value.object;
+                }
+                case value_t::null:
+                {
+                    return false;
+                }
+                case value_t::string:
+                {
+                    assert(lhs.m_value.string != nullptr);
+                    assert(rhs.m_value.string != nullptr);
+                    return *lhs.m_value.string < *rhs.m_value.string;
+                }
+                case value_t::boolean:
+                {
+                    return lhs.m_value.boolean < rhs.m_value.boolean;
+                }
+                case value_t::number_integer:
+                {
+                    return lhs.m_value.number_integer < rhs.m_value.number_integer;
+                }
+                case value_t::number_unsigned:
+                {
+                    return lhs.m_value.number_unsigned < rhs.m_value.number_unsigned;
+                }
+                case value_t::number_float:
+                {
+                    return lhs.m_value.number_float < rhs.m_value.number_float;
+                }
+                default:
+                {
+                    return false;
+                }
+            }
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_integer) < rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer)
+        {
+            return lhs.m_value.number_float < static_cast<number_float_t>(rhs.m_value.number_integer);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_float < static_cast<number_float_t>(rhs.m_value.number_unsigned);
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_integer < static_cast<number_integer_t>(rhs.m_value.number_unsigned);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer)
+        {
+            return static_cast<number_integer_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_integer;
+        }
+
+        // We only reach this line if we cannot compare values. In that case,
+        // we compare types. Note we have to call the operator explicitly,
+        // because MSVC has problems otherwise.
+        return operator<(lhs_type, rhs_type);
+    }
+
+    /*!
+    @brief comparison: less than or equal
+
+    Compares whether one JSON value @a lhs is less than or equal to another
+    JSON value by calculating `not (rhs < lhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is less than or equal to @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__greater}
+
+    @since version 1.0.0
+    */
+    friend bool operator<=(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (rhs < lhs);
+    }
+
+    /*!
+    @brief comparison: greater than
+
+    Compares whether one JSON value @a lhs is greater than another
+    JSON value by calculating `not (lhs <= rhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is greater than to @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__lessequal}
+
+    @since version 1.0.0
+    */
+    friend bool operator>(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (lhs <= rhs);
+    }
+
+    /*!
+    @brief comparison: greater than or equal
+
+    Compares whether one JSON value @a lhs is greater than or equal to another
+    JSON value by calculating `not (lhs < rhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is greater than or equal to @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__greaterequal}
+
+    @since version 1.0.0
+    */
+    friend bool operator>=(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (lhs < rhs);
+    }
+
+    /// @}
+
+
+    ///////////////////
+    // serialization //
+    ///////////////////
+
+    /// @name serialization
+    /// @{
+
+    /*!
+    @brief serialize to stream
+
+    Serialize the given JSON value @a j to the output stream @a o. The JSON
+    value will be serialized using the @ref dump member function. The
+    indentation of the output can be controlled with the member variable
+    `width` of the output stream @a o. For instance, using the manipulator
+    `std::setw(4)` on @a o sets the indentation level to `4` and the
+    serialization result is the same as calling `dump(4)`.
+
+    @param[in,out] o  stream to serialize to
+    @param[in] j  JSON value to serialize
+
+    @return the stream @a o
+
+    @complexity Linear.
+
+    @liveexample{The example below shows the serialization with different
+    parameters to `width` to adjust the indentation level.,operator_serialize}
+
+    @since version 1.0.0
+    */
+    friend std::ostream& operator<<(std::ostream& o, const basic_json& j)
+    {
+        // read width member and use it as indentation parameter if nonzero
+        const bool pretty_print = (o.width() > 0);
+        const auto indentation = (pretty_print ? o.width() : 0);
+
+        // reset width to 0 for subsequent calls to this stream
+        o.width(0);
+
+        // do the actual serialization
+        j.dump(o, pretty_print, static_cast<unsigned int>(indentation));
+        return o;
+    }
+
+    /*!
+    @brief serialize to stream
+    @copydoc operator<<(std::ostream&, const basic_json&)
+    */
+    friend std::ostream& operator>>(const basic_json& j, std::ostream& o)
+    {
+        return o << j;
+    }
+
+    /// @}
+
+
+    /////////////////////
+    // deserialization //
+    /////////////////////
+
+    /// @name deserialization
+    /// @{
+
+    /*!
+    @brief deserialize from string
+
+    @param[in] s  string to read a serialized JSON value from
+    @param[in] cb a parser callback function of type @ref parser_callback_t
+    which is used to control the deserialization by filtering unwanted values
+    (optional)
+
+    @return result of the deserialization
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser. The complexity can be higher if the parser callback function
+    @a cb has a super-linear complexity.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below demonstrates the `parse()` function with
+    and without callback function.,parse__string__parser_callback_t}
+
+    @sa @ref parse(std::istream&, parser_callback_t) for a version that reads
+    from an input stream
+
+    @since version 1.0.0
+    */
+    static basic_json parse(const string_t& s, parser_callback_t cb = nullptr)
+    {
+        return parser(s, cb).parse();
+    }
+
+    /*!
+    @brief deserialize from stream
+
+    @param[in,out] i  stream to read a serialized JSON value from
+    @param[in] cb a parser callback function of type @ref parser_callback_t
+    which is used to control the deserialization by filtering unwanted values
+    (optional)
+
+    @return result of the deserialization
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser. The complexity can be higher if the parser callback function
+    @a cb has a super-linear complexity.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below demonstrates the `parse()` function with
+    and without callback function.,parse__istream__parser_callback_t}
+
+    @sa @ref parse(const string_t&, parser_callback_t) for a version that
+    reads from a string
+
+    @since version 1.0.0
+    */
+    static basic_json parse(std::istream& i, parser_callback_t cb = nullptr)
+    {
+        return parser(i, cb).parse();
+    }
+
+    /*!
+    @copydoc parse(std::istream&, parser_callback_t)
+    */
+    static basic_json parse(std::istream&& i, parser_callback_t cb = nullptr)
+    {
+        return parser(i, cb).parse();
+    }
+
+    /*!
+    @brief deserialize from stream
+
+    Deserializes an input stream to a JSON value.
+
+    @param[in,out] i  input stream to read a serialized JSON value from
+    @param[in,out] j  JSON value to write the deserialized input to
+
+    @throw std::invalid_argument in case of parse errors
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below shows how a JSON value is constructed by
+    reading a serialization from a stream.,operator_deserialize}
+
+    @sa parse(std::istream&, parser_callback_t) for a variant with a parser
+    callback function to filter values while parsing
+
+    @since version 1.0.0
+    */
+    friend std::istream& operator<<(basic_json& j, std::istream& i)
+    {
+        j = parser(i).parse();
+        return i;
+    }
+
+    /*!
+    @brief deserialize from stream
+    @copydoc operator<<(basic_json&, std::istream&)
+    */
+    friend std::istream& operator>>(std::istream& i, basic_json& j)
+    {
+        j = parser(i).parse();
+        return i;
+    }
+
+    /// @}
+
+
+  private:
+    ///////////////////////////
+    // convenience functions //
+    ///////////////////////////
+
+    /// return the type as string
+    string_t type_name() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::null:
+                return "null";
+            case value_t::object:
+                return "object";
+            case value_t::array:
+                return "array";
+            case value_t::string:
+                return "string";
+            case value_t::boolean:
+                return "boolean";
+            case value_t::discarded:
+                return "discarded";
+            default:
+                return "number";
+        }
+    }
+
+    /*!
+    @brief calculates the extra space to escape a JSON string
+
+    @param[in] s  the string to escape
+    @return the number of characters required to escape string @a s
+
+    @complexity Linear in the length of string @a s.
+    */
+    static std::size_t extra_space(const string_t& s) noexcept
+    {
+        std::size_t result = 0;
+
+        for (const auto& c : s)
+        {
+            switch (c)
+            {
+                case '"':
+                case '\\':
+                case '\b':
+                case '\f':
+                case '\n':
+                case '\r':
+                case '\t':
+                {
+                    // from c (1 byte) to \x (2 bytes)
+                    result += 1;
+                    break;
+                }
+
+                default:
+                {
+                    if (c >= 0x00 and c <= 0x1f)
+                    {
+                        // from c (1 byte) to \uxxxx (6 bytes)
+                        result += 5;
+                    }
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief escape a string
+
+    Escape a string by replacing certain special characters by a sequence of
+    an escape character (backslash) and another character and other control
+    characters by a sequence of "\u" followed by a four-digit hex
+    representation.
+
+    @param[in] s  the string to escape
+    @return  the escaped string
+
+    @complexity Linear in the length of string @a s.
+    */
+    static string_t escape_string(const string_t& s)
+    {
+        const auto space = extra_space(s);
+        if (space == 0)
+        {
+            return s;
+        }
+
+        // create a result string of necessary size
+        string_t result(s.size() + space, '\\');
+        std::size_t pos = 0;
+
+        for (const auto& c : s)
+        {
+            switch (c)
+            {
+                // quotation mark (0x22)
+                case '"':
+                {
+                    result[pos + 1] = '"';
+                    pos += 2;
+                    break;
+                }
+
+                // reverse solidus (0x5c)
+                case '\\':
+                {
+                    // nothing to change
+                    pos += 2;
+                    break;
+                }
+
+                // backspace (0x08)
+                case '\b':
+                {
+                    result[pos + 1] = 'b';
+                    pos += 2;
+                    break;
+                }
+
+                // formfeed (0x0c)
+                case '\f':
+                {
+                    result[pos + 1] = 'f';
+                    pos += 2;
+                    break;
+                }
+
+                // newline (0x0a)
+                case '\n':
+                {
+                    result[pos + 1] = 'n';
+                    pos += 2;
+                    break;
+                }
+
+                // carriage return (0x0d)
+                case '\r':
+                {
+                    result[pos + 1] = 'r';
+                    pos += 2;
+                    break;
+                }
+
+                // horizontal tab (0x09)
+                case '\t':
+                {
+                    result[pos + 1] = 't';
+                    pos += 2;
+                    break;
+                }
+
+                default:
+                {
+                    if (c >= 0x00 and c <= 0x1f)
+                    {
+                        // convert a number 0..15 to its hex representation
+                        // (0..f)
+                        const auto hexify = [](const int v) -> char
+                        {
+                            return (v < 10)
+                            ? ('0' + static_cast<char>(v))
+                            : ('a' + static_cast<char>((v - 10) & 0x1f));
+                        };
+
+                        // print character c as \uxxxx
+                        for (const char m :
+                    { 'u', '0', '0', hexify(c >> 4), hexify(c & 0x0f)
+                        })
+                        {
+                            result[++pos] = m;
+                        }
+
+                        ++pos;
+                    }
+                    else
+                    {
+                        // all other characters are added as-is
+                        result[pos++] = c;
+                    }
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief internal implementation of the serialization function
+
+    This function is called by the public member function dump and organizes
+    the serialization internally. The indentation level is propagated as
+    additional parameter. In case of arrays and objects, the function is
+    called recursively. Note that
+
+    - strings and object keys are escaped using `escape_string()`
+    - integer numbers are converted implicitly via `operator<<`
+    - floating-point numbers are converted to a string using `"%g"` format
+
+    @param[out] o              stream to write to
+    @param[in] pretty_print    whether the output shall be pretty-printed
+    @param[in] indent_step     the indent level
+    @param[in] current_indent  the current indent level (only used internally)
+    */
+    void dump(std::ostream& o,
+              const bool pretty_print,
+              const unsigned int indent_step,
+              const unsigned int current_indent = 0) const
+    {
+        // variable to hold indentation for recursive calls
+        unsigned int new_indent = current_indent;
+
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+
+                if (m_value.object->empty())
+                {
+                    o << "{}";
+                    return;
+                }
+
+                o << "{";
+
+                // increase indentation
+                if (pretty_print)
+                {
+                    new_indent += indent_step;
+                    o << "\n";
+                }
+
+                for (auto i = m_value.object->cbegin(); i != m_value.object->cend(); ++i)
+                {
+                    if (i != m_value.object->cbegin())
+                    {
+                        o << (pretty_print ? ",\n" : ",");
+                    }
+                    o << string_t(new_indent, ' ') << "\""
+                      << escape_string(i->first) << "\":"
+                      << (pretty_print ? " " : "");
+                    i->second.dump(o, pretty_print, indent_step, new_indent);
+                }
+
+                // decrease indentation
+                if (pretty_print)
+                {
+                    new_indent -= indent_step;
+                    o << "\n";
+                }
+
+                o << string_t(new_indent, ' ') + "}";
+                return;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+
+                if (m_value.array->empty())
+                {
+                    o << "[]";
+                    return;
+                }
+
+                o << "[";
+
+                // increase indentation
+                if (pretty_print)
+                {
+                    new_indent += indent_step;
+                    o << "\n";
+                }
+
+                for (auto i = m_value.array->cbegin(); i != m_value.array->cend(); ++i)
+                {
+                    if (i != m_value.array->cbegin())
+                    {
+                        o << (pretty_print ? ",\n" : ",");
+                    }
+                    o << string_t(new_indent, ' ');
+                    i->dump(o, pretty_print, indent_step, new_indent);
+                }
+
+                // decrease indentation
+                if (pretty_print)
+                {
+                    new_indent -= indent_step;
+                    o << "\n";
+                }
+
+                o << string_t(new_indent, ' ') << "]";
+                return;
+            }
+
+            case value_t::string:
+            {
+                assert(m_value.string != nullptr);
+                o << string_t("\"") << escape_string(*m_value.string) << "\"";
+                return;
+            }
+
+            case value_t::boolean:
+            {
+                o << (m_value.boolean ? "true" : "false");
+                return;
+            }
+
+            case value_t::number_integer:
+            {
+                o << m_value.number_integer;
+                return;
+            }
+
+            case value_t::number_unsigned:
+            {
+                o << m_value.number_unsigned;
+                return;
+            }
+
+            case value_t::number_float:
+            {
+                // check if number was parsed from a string
+                if (m_type.bits.parsed)
+                {
+                    // check if parsed number had an exponent given
+                    if (m_type.bits.has_exp)
+                    {
+                        // buffer size: precision (2^8-1 = 255) + other ('-.e-xxx' = 7) + null (1)
+                        char buf[263];
+                        int len;
+
+                        // handle capitalization of the exponent
+                        if (m_type.bits.exp_cap)
+                        {
+                            len = snprintf(buf, sizeof(buf), "%.*E",
+                                           m_type.bits.precision, m_value.number_float) + 1;
+                        }
+                        else
+                        {
+                            len = snprintf(buf, sizeof(buf), "%.*e",
+                                           m_type.bits.precision, m_value.number_float) + 1;
+                        }
+
+                        // remove '+' sign from the exponent if necessary
+                        if (not m_type.bits.exp_plus)
+                        {
+                            if (len > static_cast<int>(sizeof(buf)))
+                            {
+                                len = sizeof(buf);
+                            }
+                            for (int i = 0; i < len; i++)
+                            {
+                                if (buf[i] == '+')
+                                {
+                                    for (; i + 1 < len; i++)
+                                    {
+                                        buf[i] = buf[i + 1];
+                                    }
+                                }
+                            }
+                        }
+
+                        o << buf;
+                    }
+                    else
+                    {
+                        // no exponent - output as a decimal
+                        std::stringstream ss;
+                        ss.imbue(std::locale(std::locale(), new DecimalSeparator));  // fix locale problems
+                        ss << std::setprecision(m_type.bits.precision)
+                           << std::fixed << m_value.number_float;
+                        o << ss.str();
+                    }
+                }
+                else
+                {
+                    if (m_value.number_float == 0)
+                    {
+                        // special case for zero to get "0.0"/"-0.0"
+                        o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0");
+                    }
+                    else
+                    {
+                        // Otherwise 6, 15 or 16 digits of precision allows
+                        // round-trip IEEE 754 string->float->string,
+                        // string->double->string or string->long
+                        // double->string; to be safe, we read this value from
+                        // std::numeric_limits<number_float_t>::digits10
+                        std::stringstream ss;
+                        ss.imbue(std::locale(std::locale(), new DecimalSeparator));  // fix locale problems
+                        ss << std::setprecision(std::numeric_limits<double>::digits10)
+                           << m_value.number_float;
+                        o << ss.str();
+                    }
+                }
+                return;
+            }
+
+            case value_t::discarded:
+            {
+                o << "<discarded>";
+                return;
+            }
+
+            case value_t::null:
+            {
+                o << "null";
+                return;
+            }
+        }
+    }
+
+  private:
+    //////////////////////
+    // member variables //
+    //////////////////////
+
+    /// the type of the current element
+    type_data_t m_type = value_t::null;
+
+    /// the value of the current element
+    json_value m_value = {};
+
+
+  private:
+    ///////////////
+    // iterators //
+    ///////////////
+
+    /*!
+    @brief an iterator for primitive JSON types
+
+    This class models an iterator for primitive JSON types (boolean, number,
+    string). It's only purpose is to allow the iterator/const_iterator classes
+    to "iterate" over primitive values. Internally, the iterator is modeled by
+    a `difference_type` variable. Value begin_value (`0`) models the begin,
+    end_value (`1`) models past the end.
+    */
+    class primitive_iterator_t
+    {
+      public:
+        /// set iterator to a defined beginning
+        void set_begin() noexcept
+        {
+            m_it = begin_value;
+        }
+
+        /// set iterator to a defined past the end
+        void set_end() noexcept
+        {
+            m_it = end_value;
+        }
+
+        /// return whether the iterator can be dereferenced
+        constexpr bool is_begin() const noexcept
+        {
+            return (m_it == begin_value);
+        }
+
+        /// return whether the iterator is at end
+        constexpr bool is_end() const noexcept
+        {
+            return (m_it == end_value);
+        }
+
+        /// return reference to the value to change and compare
+        operator difference_type& () noexcept
+        {
+            return m_it;
+        }
+
+        /// return value to compare
+        constexpr operator difference_type () const noexcept
+        {
+            return m_it;
+        }
+
+      private:
+        static constexpr difference_type begin_value = 0;
+        static constexpr difference_type end_value = begin_value + 1;
+
+        /// iterator as signed integer type
+        difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+    };
+
+    /*!
+    @brief an iterator value
+
+    @note This structure could easily be a union, but MSVC currently does not
+    allow unions members with complex constructors, see
+    https://github.com/nlohmann/json/pull/105.
+    */
+    struct internal_iterator
+    {
+        /// iterator for JSON objects
+        typename object_t::iterator object_iterator;
+        /// iterator for JSON arrays
+        typename array_t::iterator array_iterator;
+        /// generic iterator for all other types
+        primitive_iterator_t primitive_iterator;
+
+        /// create an uninitialized internal_iterator
+        internal_iterator() noexcept
+            : object_iterator(), array_iterator(), primitive_iterator()
+        {}
+    };
+
+    /// proxy class for the iterator_wrapper functions
+    template<typename IteratorType>
+    class iteration_proxy
+    {
+      private:
+        /// helper class for iteration
+        class iteration_proxy_internal
+        {
+          private:
+            /// the iterator
+            IteratorType anchor;
+            /// an index for arrays (used to create key names)
+            size_t array_index = 0;
+
+          public:
+            explicit iteration_proxy_internal(IteratorType it) noexcept
+                : anchor(it)
+            {}
+
+            /// dereference operator (needed for range-based for)
+            iteration_proxy_internal& operator*()
+            {
+                return *this;
+            }
+
+            /// increment operator (needed for range-based for)
+            iteration_proxy_internal& operator++()
+            {
+                ++anchor;
+                ++array_index;
+
+                return *this;
+            }
+
+            /// inequality operator (needed for range-based for)
+            bool operator!= (const iteration_proxy_internal& o) const
+            {
+                return anchor != o.anchor;
+            }
+
+            /// return key of the iterator
+            typename basic_json::string_t key() const
+            {
+                assert(anchor.m_object != nullptr);
+
+                switch (anchor.m_object->type())
+                {
+                    // use integer array index as key
+                    case value_t::array:
+                    {
+                        return std::to_string(array_index);
+                    }
+
+                    // use key from the object
+                    case value_t::object:
+                    {
+                        return anchor.key();
+                    }
+
+                    // use an empty key for all primitive types
+                    default:
+                    {
+                        return "";
+                    }
+                }
+            }
+
+            /// return value of the iterator
+            typename IteratorType::reference value() const
+            {
+                return anchor.value();
+            }
+        };
+
+        /// the container to iterate
+        typename IteratorType::reference container;
+
+      public:
+        /// construct iteration proxy from a container
+        explicit iteration_proxy(typename IteratorType::reference cont)
+            : container(cont)
+        {}
+
+        /// return iterator begin (needed for range-based for)
+        iteration_proxy_internal begin() noexcept
+        {
+            return iteration_proxy_internal(container.begin());
+        }
+
+        /// return iterator end (needed for range-based for)
+        iteration_proxy_internal end() noexcept
+        {
+            return iteration_proxy_internal(container.end());
+        }
+    };
+
+  public:
+    /*!
+    @brief a const random access iterator for the @ref basic_json class
+
+    This class implements a const iterator for the @ref basic_json class. From
+    this class, the @ref iterator class is derived.
+
+    @requirement The class satisfies the following concept requirements:
+    - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator):
+      The iterator that can be moved to point (forward and backward) to any
+      element in constant time.
+
+    @since version 1.0.0
+    */
+    class const_iterator : public std::iterator<std::random_access_iterator_tag, const basic_json>
+    {
+        /// allow basic_json to access private members
+        friend class basic_json;
+
+      public:
+        /// the type of the values when the iterator is dereferenced
+        using value_type = typename basic_json::value_type;
+        /// a type to represent differences between iterators
+        using difference_type = typename basic_json::difference_type;
+        /// defines a pointer to the type iterated over (value_type)
+        using pointer = typename basic_json::const_pointer;
+        /// defines a reference to the type iterated over (value_type)
+        using reference = typename basic_json::const_reference;
+        /// the category of the iterator
+        using iterator_category = std::bidirectional_iterator_tag;
+
+        /// default constructor
+        const_iterator() = default;
+
+        /// constructor for a given JSON instance
+        explicit const_iterator(pointer object) noexcept
+            : m_object(object)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = typename object_t::iterator();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = typename array_t::iterator();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator = primitive_iterator_t();
+                    break;
+                }
+            }
+        }
+
+        /// copy constructor given a nonconst iterator
+        explicit const_iterator(const iterator& other) noexcept
+            : m_object(other.m_object)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = other.m_it.object_iterator;
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = other.m_it.array_iterator;
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator = other.m_it.primitive_iterator;
+                    break;
+                }
+            }
+        }
+
+        /// copy constructor
+        const_iterator(const const_iterator& other) noexcept
+            : m_object(other.m_object), m_it(other.m_it)
+        {}
+
+        /// copy assignment
+        const_iterator& operator=(const_iterator other) noexcept(
+            std::is_nothrow_move_constructible<pointer>::value and
+            std::is_nothrow_move_assignable<pointer>::value and
+            std::is_nothrow_move_constructible<internal_iterator>::value and
+            std::is_nothrow_move_assignable<internal_iterator>::value
+        )
+        {
+            std::swap(m_object, other.m_object);
+            std::swap(m_it, other.m_it);
+            return *this;
+        }
+
+      private:
+        /// set the iterator to the first value
+        void set_begin() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object != nullptr);
+                    m_it.object_iterator = m_object->m_value.object->begin();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array != nullptr);
+                    m_it.array_iterator = m_object->m_value.array->begin();
+                    break;
+                }
+
+                case basic_json::value_t::null:
+                {
+                    // set to end so begin()==end() is true: null is empty
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_begin();
+                    break;
+                }
+            }
+        }
+
+        /// set the iterator past the last value
+        void set_end() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object != nullptr);
+                    m_it.object_iterator = m_object->m_value.object->end();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array != nullptr);
+                    m_it.array_iterator = m_object->m_value.array->end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+            }
+        }
+
+      public:
+        /// return a reference to the value pointed to by the iterator
+        reference operator*() const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object);
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return m_it.object_iterator->second;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array);
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return *m_it.array_iterator;
+                }
+
+                case basic_json::value_t::null:
+                {
+                    throw std::out_of_range("cannot get value");
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return *m_object;
+                    }
+                    else
+                    {
+                        throw std::out_of_range("cannot get value");
+                    }
+                }
+            }
+        }
+
+        /// dereference the iterator
+        pointer operator->() const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object);
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return &(m_it.object_iterator->second);
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array);
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return &*m_it.array_iterator;
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return m_object;
+                    }
+                    else
+                    {
+                        throw std::out_of_range("cannot get value");
+                    }
+                }
+            }
+        }
+
+        /// post-increment (it++)
+        const_iterator operator++(int)
+        {
+            auto result = *this;
+            ++(*this);
+            return result;
+        }
+
+        /// pre-increment (++it)
+        const_iterator& operator++()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    ++m_it.object_iterator;
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    ++m_it.array_iterator;
+                    break;
+                }
+
+                default:
+                {
+                    ++m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /// post-decrement (it--)
+        const_iterator operator--(int)
+        {
+            auto result = *this;
+            --(*this);
+            return result;
+        }
+
+        /// pre-decrement (--it)
+        const_iterator& operator--()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    --m_it.object_iterator;
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    --m_it.array_iterator;
+                    break;
+                }
+
+                default:
+                {
+                    --m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /// comparison: equal
+        bool operator==(const const_iterator& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
+                throw std::domain_error("cannot compare iterators of different containers");
+            }
+
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    return (m_it.object_iterator == other.m_it.object_iterator);
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator == other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+                }
+            }
+        }
+
+        /// comparison: not equal
+        bool operator!=(const const_iterator& other) const
+        {
+            return not operator==(other);
+        }
+
+        /// comparison: smaller
+        bool operator<(const const_iterator& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
+                throw std::domain_error("cannot compare iterators of different containers");
+            }
+
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot compare order of object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator < other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator < other.m_it.primitive_iterator);
+                }
+            }
+        }
+
+        /// comparison: less than or equal
+        bool operator<=(const const_iterator& other) const
+        {
+            return not other.operator < (*this);
+        }
+
+        /// comparison: greater than
+        bool operator>(const const_iterator& other) const
+        {
+            return not operator<=(other);
+        }
+
+        /// comparison: greater than or equal
+        bool operator>=(const const_iterator& other) const
+        {
+            return not operator<(other);
+        }
+
+        /// add to iterator
+        const_iterator& operator+=(difference_type i)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot use offsets with object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator += i;
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator += i;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /// subtract from iterator
+        const_iterator& operator-=(difference_type i)
+        {
+            return operator+=(-i);
+        }
+
+        /// add to iterator
+        const_iterator operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /// subtract from iterator
+        const_iterator operator-(difference_type i)
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /// return difference
+        difference_type operator-(const const_iterator& other) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot use offsets with object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return m_it.array_iterator - other.m_it.array_iterator;
+                }
+
+                default:
+                {
+                    return m_it.primitive_iterator - other.m_it.primitive_iterator;
+                }
+            }
+        }
+
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot use operator[] for object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return *(m_it.array_iterator + n);
+                }
+
+                case basic_json::value_t::null:
+                {
+                    throw std::out_of_range("cannot get value");
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator == -n)
+                    {
+                        return *m_object;
+                    }
+                    else
+                    {
+                        throw std::out_of_range("cannot get value");
+                    }
+                }
+            }
+        }
+
+        /// return the key of an object iterator
+        typename object_t::key_type key() const
+        {
+            assert(m_object != nullptr);
+
+            if (m_object->is_object())
+            {
+                return m_it.object_iterator->first;
+            }
+            else
+            {
+                throw std::domain_error("cannot use key() for non-object iterators");
+            }
+        }
+
+        /// return the value of an iterator
+        reference value() const
+        {
+            return operator*();
+        }
+
+      private:
+        /// associated JSON instance
+        pointer m_object = nullptr;
+        /// the actual iterator of the associated instance
+        internal_iterator m_it = internal_iterator();
+    };
+
+    /*!
+    @brief a mutable random access iterator for the @ref basic_json class
+
+    @requirement The class satisfies the following concept requirements:
+    - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator):
+      The iterator that can be moved to point (forward and backward) to any
+      element in constant time.
+    - [OutputIterator](http://en.cppreference.com/w/cpp/concept/OutputIterator):
+      It is possible to write to the pointed-to element.
+
+    @since version 1.0.0
+    */
+    class iterator : public const_iterator
+    {
+      public:
+        using base_iterator = const_iterator;
+        using pointer = typename basic_json::pointer;
+        using reference = typename basic_json::reference;
+
+        /// default constructor
+        iterator() = default;
+
+        /// constructor for a given JSON instance
+        explicit iterator(pointer object) noexcept
+            : base_iterator(object)
+        {}
+
+        /// copy constructor
+        iterator(const iterator& other) noexcept
+            : base_iterator(other)
+        {}
+
+        /// copy assignment
+        iterator& operator=(iterator other) noexcept(
+            std::is_nothrow_move_constructible<pointer>::value and
+            std::is_nothrow_move_assignable<pointer>::value and
+            std::is_nothrow_move_constructible<internal_iterator>::value and
+            std::is_nothrow_move_assignable<internal_iterator>::value
+        )
+        {
+            base_iterator::operator=(other);
+            return *this;
+        }
+
+        /// return a reference to the value pointed to by the iterator
+        reference operator*() const
+        {
+            return const_cast<reference>(base_iterator::operator*());
+        }
+
+        /// dereference the iterator
+        pointer operator->() const
+        {
+            return const_cast<pointer>(base_iterator::operator->());
+        }
+
+        /// post-increment (it++)
+        iterator operator++(int)
+        {
+            iterator result = *this;
+            base_iterator::operator++();
+            return result;
+        }
+
+        /// pre-increment (++it)
+        iterator& operator++()
+        {
+            base_iterator::operator++();
+            return *this;
+        }
+
+        /// post-decrement (it--)
+        iterator operator--(int)
+        {
+            iterator result = *this;
+            base_iterator::operator--();
+            return result;
+        }
+
+        /// pre-decrement (--it)
+        iterator& operator--()
+        {
+            base_iterator::operator--();
+            return *this;
+        }
+
+        /// add to iterator
+        iterator& operator+=(difference_type i)
+        {
+            base_iterator::operator+=(i);
+            return *this;
+        }
+
+        /// subtract from iterator
+        iterator& operator-=(difference_type i)
+        {
+            base_iterator::operator-=(i);
+            return *this;
+        }
+
+        /// add to iterator
+        iterator operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /// subtract from iterator
+        iterator operator-(difference_type i)
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /// return difference
+        difference_type operator-(const iterator& other) const
+        {
+            return base_iterator::operator-(other);
+        }
+
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            return const_cast<reference>(base_iterator::operator[](n));
+        }
+
+        /// return the value of an iterator
+        reference value() const
+        {
+            return const_cast<reference>(base_iterator::value());
+        }
+    };
+
+    /*!
+    @brief a template for a reverse iterator class
+
+    @tparam Base the base iterator type to reverse. Valid types are @ref
+    iterator (to create @ref reverse_iterator) and @ref const_iterator (to
+    create @ref const_reverse_iterator).
+
+    @requirement The class satisfies the following concept requirements:
+    - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator):
+      The iterator that can be moved to point (forward and backward) to any
+      element in constant time.
+    - [OutputIterator](http://en.cppreference.com/w/cpp/concept/OutputIterator):
+      It is possible to write to the pointed-to element (only if @a Base is
+      @ref iterator).
+
+    @since version 1.0.0
+    */
+    template<typename Base>
+    class json_reverse_iterator : public std::reverse_iterator<Base>
+    {
+      public:
+        /// shortcut to the reverse iterator adaptor
+        using base_iterator = std::reverse_iterator<Base>;
+        /// the reference type for the pointed-to element
+        using reference = typename Base::reference;
+
+        /// create reverse iterator from iterator
+        json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
+            : base_iterator(it)
+        {}
+
+        /// create reverse iterator from base class
+        json_reverse_iterator(const base_iterator& it) noexcept
+            : base_iterator(it)
+        {}
+
+        /// post-increment (it++)
+        json_reverse_iterator operator++(int)
+        {
+            return base_iterator::operator++(1);
+        }
+
+        /// pre-increment (++it)
+        json_reverse_iterator& operator++()
+        {
+            base_iterator::operator++();
+            return *this;
+        }
+
+        /// post-decrement (it--)
+        json_reverse_iterator operator--(int)
+        {
+            return base_iterator::operator--(1);
+        }
+
+        /// pre-decrement (--it)
+        json_reverse_iterator& operator--()
+        {
+            base_iterator::operator--();
+            return *this;
+        }
+
+        /// add to iterator
+        json_reverse_iterator& operator+=(difference_type i)
+        {
+            base_iterator::operator+=(i);
+            return *this;
+        }
+
+        /// add to iterator
+        json_reverse_iterator operator+(difference_type i) const
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /// subtract from iterator
+        json_reverse_iterator operator-(difference_type i) const
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /// return difference
+        difference_type operator-(const json_reverse_iterator& other) const
+        {
+            return this->base() - other.base();
+        }
+
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            return *(this->operator+(n));
+        }
+
+        /// return the key of an object iterator
+        typename object_t::key_type key() const
+        {
+            auto it = --this->base();
+            return it.key();
+        }
+
+        /// return the value of an iterator
+        reference value() const
+        {
+            auto it = --this->base();
+            return it.operator * ();
+        }
+    };
+
+
+  private:
+    //////////////////////
+    // lexer and parser //
+    //////////////////////
+
+    /*!
+    @brief lexical analysis
+
+    This class organizes the lexical analysis during JSON deserialization. The
+    core of it is a scanner generated by [re2c](http://re2c.org) that
+    processes a buffer and recognizes tokens according to RFC 7159.
+    */
+    class lexer
+    {
+      public:
+        /// token types for the parser
+        enum class token_type
+        {
+            uninitialized,   ///< indicating the scanner is uninitialized
+            literal_true,    ///< the "true" literal
+            literal_false,   ///< the "false" literal
+            literal_null,    ///< the "null" literal
+            value_string,    ///< a string -- use get_string() for actual value
+            value_number,    ///< a number -- use get_number() for actual value
+            begin_array,     ///< the character for array begin "["
+            begin_object,    ///< the character for object begin "{"
+            end_array,       ///< the character for array end "]"
+            end_object,      ///< the character for object end "}"
+            name_separator,  ///< the name separator ":"
+            value_separator, ///< the value separator ","
+            parse_error,     ///< indicating a parse error
+            end_of_input     ///< indicating the end of the input buffer
+        };
+
+        /// the char type to use in the lexer
+        using lexer_char_t = unsigned char;
+
+        /// constructor with a given buffer
+        explicit lexer(const string_t& s) noexcept
+            : m_stream(nullptr), m_buffer(s)
+        {
+            m_content = reinterpret_cast<const lexer_char_t*>(s.c_str());
+            assert(m_content != nullptr);
+            m_start = m_cursor = m_content;
+            m_limit = m_content + s.size();
+        }
+
+        /// constructor with a given stream
+        explicit lexer(std::istream* s) noexcept
+            : m_stream(s), m_buffer()
+        {
+            assert(m_stream != nullptr);
+            getline(*m_stream, m_buffer);
+            m_content = reinterpret_cast<const lexer_char_t*>(m_buffer.c_str());
+            assert(m_content != nullptr);
+            m_start = m_cursor = m_content;
+            m_limit = m_content + m_buffer.size();
+        }
+
+        /// default constructor
+        lexer() = default;
+
+        // switch off unwanted functions
+        lexer(const lexer&) = delete;
+        lexer operator=(const lexer&) = delete;
+
+        /*!
+        @brief create a string from a Unicode code point
+
+        @param[in] codepoint1  the code point (can be high surrogate)
+        @param[in] codepoint2  the code point (can be low surrogate or 0)
+
+        @return string representation of the code point
+
+        @throw std::out_of_range if code point is >0x10ffff; example: `"code
+        points above 0x10FFFF are invalid"`
+        @throw std::invalid_argument if the low surrogate is invalid; example:
+        `""missing or wrong low surrogate""`
+
+        @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
+        */
+        static string_t to_unicode(const std::size_t codepoint1,
+                                   const std::size_t codepoint2 = 0)
+        {
+            // calculate the codepoint from the given code points
+            std::size_t codepoint = codepoint1;
+
+            // check if codepoint1 is a high surrogate
+            if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
+            {
+                // check if codepoint2 is a low surrogate
+                if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
+                {
+                    codepoint =
+                        // high surrogate occupies the most significant 22 bits
+                        (codepoint1 << 10)
+                        // low surrogate occupies the least significant 15 bits
+                        + codepoint2
+                        // there is still the 0xD800, 0xDC00 and 0x10000 noise
+                        // in the result so we have to subtract with:
+                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
+                        - 0x35FDC00;
+                }
+                else
+                {
+                    throw std::invalid_argument("missing or wrong low surrogate");
+                }
+            }
+
+            string_t result;
+
+            if (codepoint < 0x80)
+            {
+                // 1-byte characters: 0xxxxxxx (ASCII)
+                result.append(1, static_cast<typename string_t::value_type>(codepoint));
+            }
+            else if (codepoint <= 0x7ff)
+            {
+                // 2-byte characters: 110xxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0xffff)
+            {
+                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0x10ffff)
+            {
+                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else
+            {
+                throw std::out_of_range("code points above 0x10FFFF are invalid");
+            }
+
+            return result;
+        }
+
+        /// return name of values of type token_type (only used for errors)
+        static std::string token_type_name(token_type t)
+        {
+            switch (t)
+            {
+                case token_type::uninitialized:
+                    return "<uninitialized>";
+                case token_type::literal_true:
+                    return "true literal";
+                case token_type::literal_false:
+                    return "false literal";
+                case token_type::literal_null:
+                    return "null literal";
+                case token_type::value_string:
+                    return "string literal";
+                case token_type::value_number:
+                    return "number literal";
+                case token_type::begin_array:
+                    return "'['";
+                case token_type::begin_object:
+                    return "'{'";
+                case token_type::end_array:
+                    return "']'";
+                case token_type::end_object:
+                    return "'}'";
+                case token_type::name_separator:
+                    return "':'";
+                case token_type::value_separator:
+                    return "','";
+                case token_type::parse_error:
+                    return "<parse error>";
+                case token_type::end_of_input:
+                    return "end of input";
+                default:
+                {
+                    // catch non-enum values
+                    return "unknown token"; // LCOV_EXCL_LINE
+                }
+            }
+        }
+
+        /*!
+        This function implements a scanner for JSON. It is specified using
+        regular expressions that try to follow RFC 7159 as close as possible.
+        These regular expressions are then translated into a minimized
+        deterministic finite automaton (DFA) by the tool
+        [re2c](http://re2c.org). As a result, the translated code for this
+        function consists of a large block of code with `goto` jumps.
+
+        @return the class of the next token read from the buffer
+        */
+        token_type scan() noexcept
+        {
+            // pointer for backtracking information
+            m_marker = nullptr;
+
+            // remember the begin of the token
+            m_start = m_cursor;
+            assert(m_start != nullptr);
+
+
+            {
+                lexer_char_t yych;
+                unsigned int yyaccept = 0;
+                static const unsigned char yybm[] =
+                {
+                    0,   0,   0,   0,   0,   0,   0,   0,
+                    0,  32,  32,   0,   0,  32,   0,   0,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    160, 128,   0, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    192, 192, 192, 192, 192, 192, 192, 192,
+                    192, 192, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128,   0, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                    128, 128, 128, 128, 128, 128, 128, 128,
+                };
+                if ((m_limit - m_cursor) < 5)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yybm[0 + yych] & 32)
+                {
+                    goto basic_json_parser_6;
+                }
+                if (yych <= '\\')
+                {
+                    if (yych <= '-')
+                    {
+                        if (yych <= '"')
+                        {
+                            if (yych <= 0x00)
+                            {
+                                goto basic_json_parser_2;
+                            }
+                            if (yych <= '!')
+                            {
+                                goto basic_json_parser_4;
+                            }
+                            goto basic_json_parser_9;
+                        }
+                        else
+                        {
+                            if (yych <= '+')
+                            {
+                                goto basic_json_parser_4;
+                            }
+                            if (yych <= ',')
+                            {
+                                goto basic_json_parser_10;
+                            }
+                            goto basic_json_parser_12;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= '9')
+                        {
+                            if (yych <= '/')
+                            {
+                                goto basic_json_parser_4;
+                            }
+                            if (yych <= '0')
+                            {
+                                goto basic_json_parser_13;
+                            }
+                            goto basic_json_parser_15;
+                        }
+                        else
+                        {
+                            if (yych <= ':')
+                            {
+                                goto basic_json_parser_17;
+                            }
+                            if (yych == '[')
+                            {
+                                goto basic_json_parser_19;
+                            }
+                            goto basic_json_parser_4;
+                        }
+                    }
+                }
+                else
+                {
+                    if (yych <= 't')
+                    {
+                        if (yych <= 'f')
+                        {
+                            if (yych <= ']')
+                            {
+                                goto basic_json_parser_21;
+                            }
+                            if (yych <= 'e')
+                            {
+                                goto basic_json_parser_4;
+                            }
+                            goto basic_json_parser_23;
+                        }
+                        else
+                        {
+                            if (yych == 'n')
+                            {
+                                goto basic_json_parser_24;
+                            }
+                            if (yych <= 's')
+                            {
+                                goto basic_json_parser_4;
+                            }
+                            goto basic_json_parser_25;
+                        }
+                    }
+                    else
+                    {
+                        if (yych <= '|')
+                        {
+                            if (yych == '{')
+                            {
+                                goto basic_json_parser_26;
+                            }
+                            goto basic_json_parser_4;
+                        }
+                        else
+                        {
+                            if (yych <= '}')
+                            {
+                                goto basic_json_parser_28;
+                            }
+                            if (yych == 0xEF)
+                            {
+                                goto basic_json_parser_30;
+                            }
+                            goto basic_json_parser_4;
+                        }
+                    }
+                }
+basic_json_parser_2:
+                ++m_cursor;
+                {
+                    return token_type::end_of_input;
+                }
+basic_json_parser_4:
+                ++m_cursor;
+basic_json_parser_5:
+                {
+                    return token_type::parse_error;
+                }
+basic_json_parser_6:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yybm[0 + yych] & 32)
+                {
+                    goto basic_json_parser_6;
+                }
+                {
+                    return scan();
+                }
+basic_json_parser_9:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych <= 0x0F)
+                {
+                    goto basic_json_parser_5;
+                }
+                goto basic_json_parser_32;
+basic_json_parser_10:
+                ++m_cursor;
+                {
+                    return token_type::value_separator;
+                }
+basic_json_parser_12:
+                yych = *++m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_5;
+                }
+                if (yych <= '0')
+                {
+                    goto basic_json_parser_13;
+                }
+                if (yych <= '9')
+                {
+                    goto basic_json_parser_15;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_13:
+                yyaccept = 1;
+                yych = *(m_marker = ++m_cursor);
+                if (yych <= 'D')
+                {
+                    if (yych == '.')
+                    {
+                        goto basic_json_parser_37;
+                    }
+                }
+                else
+                {
+                    if (yych <= 'E')
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_38;
+                    }
+                }
+basic_json_parser_14:
+                {
+                    return token_type::value_number;
+                }
+basic_json_parser_15:
+                yyaccept = 1;
+                m_marker = ++m_cursor;
+                if ((m_limit - m_cursor) < 3)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yybm[0 + yych] & 64)
+                {
+                    goto basic_json_parser_15;
+                }
+                if (yych <= 'D')
+                {
+                    if (yych == '.')
+                    {
+                        goto basic_json_parser_37;
+                    }
+                    goto basic_json_parser_14;
+                }
+                else
+                {
+                    if (yych <= 'E')
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_14;
+                }
+basic_json_parser_17:
+                ++m_cursor;
+                {
+                    return token_type::name_separator;
+                }
+basic_json_parser_19:
+                ++m_cursor;
+                {
+                    return token_type::begin_array;
+                }
+basic_json_parser_21:
+                ++m_cursor;
+                {
+                    return token_type::end_array;
+                }
+basic_json_parser_23:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 'a')
+                {
+                    goto basic_json_parser_39;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_24:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 'u')
+                {
+                    goto basic_json_parser_40;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_25:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 'r')
+                {
+                    goto basic_json_parser_41;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_26:
+                ++m_cursor;
+                {
+                    return token_type::begin_object;
+                }
+basic_json_parser_28:
+                ++m_cursor;
+                {
+                    return token_type::end_object;
+                }
+basic_json_parser_30:
+                yyaccept = 0;
+                yych = *(m_marker = ++m_cursor);
+                if (yych == 0xBB)
+                {
+                    goto basic_json_parser_42;
+                }
+                goto basic_json_parser_5;
+basic_json_parser_31:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+basic_json_parser_32:
+                if (yybm[0 + yych] & 128)
+                {
+                    goto basic_json_parser_31;
+                }
+                if (yych <= 0x0F)
+                {
+                    goto basic_json_parser_33;
+                }
+                if (yych <= '"')
+                {
+                    goto basic_json_parser_34;
+                }
+                goto basic_json_parser_36;
+basic_json_parser_33:
+                m_cursor = m_marker;
+                if (yyaccept == 0)
+                {
+                    goto basic_json_parser_5;
+                }
+                else
+                {
+                    goto basic_json_parser_14;
+                }
+basic_json_parser_34:
+                ++m_cursor;
+                {
+                    return token_type::value_string;
+                }
+basic_json_parser_36:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= 'e')
+                {
+                    if (yych <= '/')
+                    {
+                        if (yych == '"')
+                        {
+                            goto basic_json_parser_31;
+                        }
+                        if (yych <= '.')
+                        {
+                            goto basic_json_parser_33;
+                        }
+                        goto basic_json_parser_31;
+                    }
+                    else
+                    {
+                        if (yych <= '\\')
+                        {
+                            if (yych <= '[')
+                            {
+                                goto basic_json_parser_33;
+                            }
+                            goto basic_json_parser_31;
+                        }
+                        else
+                        {
+                            if (yych == 'b')
+                            {
+                                goto basic_json_parser_31;
+                            }
+                            goto basic_json_parser_33;
+                        }
+                    }
+                }
+                else
+                {
+                    if (yych <= 'q')
+                    {
+                        if (yych <= 'f')
+                        {
+                            goto basic_json_parser_31;
+                        }
+                        if (yych == 'n')
+                        {
+                            goto basic_json_parser_31;
+                        }
+                        goto basic_json_parser_33;
+                    }
+                    else
+                    {
+                        if (yych <= 's')
+                        {
+                            if (yych <= 'r')
+                            {
+                                goto basic_json_parser_31;
+                            }
+                            goto basic_json_parser_33;
+                        }
+                        else
+                        {
+                            if (yych <= 't')
+                            {
+                                goto basic_json_parser_31;
+                            }
+                            if (yych <= 'u')
+                            {
+                                goto basic_json_parser_43;
+                            }
+                            goto basic_json_parser_33;
+                        }
+                    }
+                }
+basic_json_parser_37:
+                yych = *++m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_33;
+                }
+                if (yych <= '9')
+                {
+                    goto basic_json_parser_44;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_38:
+                yych = *++m_cursor;
+                if (yych <= ',')
+                {
+                    if (yych == '+')
+                    {
+                        goto basic_json_parser_46;
+                    }
+                    goto basic_json_parser_33;
+                }
+                else
+                {
+                    if (yych <= '-')
+                    {
+                        goto basic_json_parser_46;
+                    }
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_47;
+                    }
+                    goto basic_json_parser_33;
+                }
+basic_json_parser_39:
+                yych = *++m_cursor;
+                if (yych == 'l')
+                {
+                    goto basic_json_parser_49;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_40:
+                yych = *++m_cursor;
+                if (yych == 'l')
+                {
+                    goto basic_json_parser_50;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_41:
+                yych = *++m_cursor;
+                if (yych == 'u')
+                {
+                    goto basic_json_parser_51;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_42:
+                yych = *++m_cursor;
+                if (yych == 0xBF)
+                {
+                    goto basic_json_parser_52;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_43:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_54;
+                    }
+                    goto basic_json_parser_33;
+                }
+                else
+                {
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_54;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_54;
+                    }
+                    goto basic_json_parser_33;
+                }
+basic_json_parser_44:
+                yyaccept = 1;
+                m_marker = ++m_cursor;
+                if ((m_limit - m_cursor) < 3)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= 'D')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_14;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_44;
+                    }
+                    goto basic_json_parser_14;
+                }
+                else
+                {
+                    if (yych <= 'E')
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    if (yych == 'e')
+                    {
+                        goto basic_json_parser_38;
+                    }
+                    goto basic_json_parser_14;
+                }
+basic_json_parser_46:
+                yych = *++m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_33;
+                }
+                if (yych >= ':')
+                {
+                    goto basic_json_parser_33;
+                }
+basic_json_parser_47:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= '/')
+                {
+                    goto basic_json_parser_14;
+                }
+                if (yych <= '9')
+                {
+                    goto basic_json_parser_47;
+                }
+                goto basic_json_parser_14;
+basic_json_parser_49:
+                yych = *++m_cursor;
+                if (yych == 's')
+                {
+                    goto basic_json_parser_55;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_50:
+                yych = *++m_cursor;
+                if (yych == 'l')
+                {
+                    goto basic_json_parser_56;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_51:
+                yych = *++m_cursor;
+                if (yych == 'e')
+                {
+                    goto basic_json_parser_58;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_52:
+                ++m_cursor;
+                {
+                    return scan();
+                }
+basic_json_parser_54:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_60;
+                    }
+                    goto basic_json_parser_33;
+                }
+                else
+                {
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_60;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_60;
+                    }
+                    goto basic_json_parser_33;
+                }
+basic_json_parser_55:
+                yych = *++m_cursor;
+                if (yych == 'e')
+                {
+                    goto basic_json_parser_61;
+                }
+                goto basic_json_parser_33;
+basic_json_parser_56:
+                ++m_cursor;
+                {
+                    return token_type::literal_null;
+                }
+basic_json_parser_58:
+                ++m_cursor;
+                {
+                    return token_type::literal_true;
+                }
+basic_json_parser_60:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_63;
+                    }
+                    goto basic_json_parser_33;
+                }
+                else
+                {
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_63;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_63;
+                    }
+                    goto basic_json_parser_33;
+                }
+basic_json_parser_61:
+                ++m_cursor;
+                {
+                    return token_type::literal_false;
+                }
+basic_json_parser_63:
+                ++m_cursor;
+                if (m_limit <= m_cursor)
+                {
+                    yyfill();    // LCOV_EXCL_LINE;
+                }
+                yych = *m_cursor;
+                if (yych <= '@')
+                {
+                    if (yych <= '/')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= '9')
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    goto basic_json_parser_33;
+                }
+                else
+                {
+                    if (yych <= 'F')
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    if (yych <= '`')
+                    {
+                        goto basic_json_parser_33;
+                    }
+                    if (yych <= 'f')
+                    {
+                        goto basic_json_parser_31;
+                    }
+                    goto basic_json_parser_33;
+                }
+            }
+
+        }
+
+        /// append data from the stream to the internal buffer
+        void yyfill() noexcept
+        {
+            if (m_stream == nullptr or not * m_stream)
+            {
+                return;
+            }
+
+            const auto offset_start = m_start - m_content;
+            const auto offset_marker = m_marker - m_start;
+            const auto offset_cursor = m_cursor - m_start;
+
+            m_buffer.erase(0, static_cast<size_t>(offset_start));
+            std::string line;
+            assert(m_stream != nullptr);
+            std::getline(*m_stream, line);
+            m_buffer += "\n" + line; // add line with newline symbol
+
+            m_content = reinterpret_cast<const lexer_char_t*>(m_buffer.c_str());
+            assert(m_content != nullptr);
+            m_start  = m_content;
+            m_marker = m_start + offset_marker;
+            m_cursor = m_start + offset_cursor;
+            m_limit  = m_start + m_buffer.size() - 1;
+        }
+
+        /// return string representation of last read token
+        string_t get_token() const
+        {
+            assert(m_start != nullptr);
+            return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+                            static_cast<size_t>(m_cursor - m_start));
+        }
+
+        /*!
+        @brief return string value for string tokens
+
+        The function iterates the characters between the opening and closing
+        quotes of the string value. The complete string is the range
+        [m_start,m_cursor). Consequently, we iterate from m_start+1 to
+        m_cursor-1.
+
+        We differentiate two cases:
+
+        1. Escaped characters. In this case, a new character is constructed
+           according to the nature of the escape. Some escapes create new
+           characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
+           as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
+           `"\\uxxxx"` need special care. In this case, to_unicode takes care
+           of the construction of the values.
+        2. Unescaped characters are copied as is.
+
+        @return string value of current token without opening and closing
+        quotes
+        @throw std::out_of_range if to_unicode fails
+        */
+        string_t get_string() const
+        {
+            string_t result;
+            result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+            // iterate the result between the quotes
+            for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+            {
+                // process escaped characters
+                if (*i == '\\')
+                {
+                    // read next character
+                    ++i;
+
+                    switch (*i)
+                    {
+                        // the default escapes
+                        case 't':
+                        {
+                            result += "\t";
+                            break;
+                        }
+                        case 'b':
+                        {
+                            result += "\b";
+                            break;
+                        }
+                        case 'f':
+                        {
+                            result += "\f";
+                            break;
+                        }
+                        case 'n':
+                        {
+                            result += "\n";
+                            break;
+                        }
+                        case 'r':
+                        {
+                            result += "\r";
+                            break;
+                        }
+                        case '\\':
+                        {
+                            result += "\\";
+                            break;
+                        }
+                        case '/':
+                        {
+                            result += "/";
+                            break;
+                        }
+                        case '"':
+                        {
+                            result += "\"";
+                            break;
+                        }
+
+                        // unicode
+                        case 'u':
+                        {
+                            // get code xxxx from uxxxx
+                            auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+                                                          4).c_str(), nullptr, 16);
+
+                            // check if codepoint is a high surrogate
+                            if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                            {
+                                // make sure there is a subsequent unicode
+                                if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
+                                {
+                                    throw std::invalid_argument("missing low surrogate");
+                                }
+
+                                // get code yyyy from uxxxx\uyyyy
+                                auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+                                                               (i + 7), 4).c_str(), nullptr, 16);
+                                result += to_unicode(codepoint, codepoint2);
+                                // skip the next 10 characters (xxxx\uyyyy)
+                                i += 10;
+                            }
+                            else
+                            {
+                                // add unicode character(s)
+                                result += to_unicode(codepoint);
+                                // skip the next four characters (xxxx)
+                                i += 4;
+                            }
+                            break;
+                        }
+                    }
+                }
+                else
+                {
+                    // all other characters are just copied to the end of the
+                    // string
+                    result.append(1, static_cast<typename string_t::value_type>(*i));
+                }
+            }
+
+            return result;
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in] type  the @ref number_float_t in use
+
+        @param[in,out] endptr recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+
+        @bug This function uses `std::strtof`, `std::strtod`, or `std::strtold`
+        which use the current C locale to determine which character is used as
+        decimal point character. This may yield to parse errors if the locale
+        does not used `.`.
+        */
+        long double str_to_float_t(long double* /* type */, char** endptr) const
+        {
+            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in] type  the @ref number_float_t in use
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        double str_to_float_t(double* /* type */, char** endptr) const
+        {
+            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in] type  the @ref number_float_t in use
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        float str_to_float_t(float* /* type */, char** endptr) const
+        {
+            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief return number value for number tokens
+
+        This function translates the last token into the most appropriate
+        number type (either integer, unsigned integer or floating point),
+        which is passed back to the caller via the result parameter.
+
+        This function parses the integer component up to the radix point or
+        exponent while collecting information about the 'floating point
+        representation', which it stores in the result parameter. If there is
+        no radix point or exponent, and the number can fit into a @ref
+        number_integer_t or @ref number_unsigned_t then it sets the result
+        parameter accordingly.
+
+        The 'floating point representation' includes the number of significant
+        figures after the radix point, whether the number is in exponential or
+        decimal form, the capitalization of the exponent marker, and if the
+        optional '+' is present in the exponent. This information is necessary
+        to perform accurate round trips of floating point numbers.
+
+        If the number is a floating point number the number is then parsed
+        using @a std:strtod (or @a std:strtof or @a std::strtold).
+
+        @param[out] result  @ref basic_json object to receive the number, or
+          NAN if the conversion read past the current token. The latter case
+          needs to be treated by the caller function.
+        */
+        void get_number(basic_json& result) const
+        {
+            assert(m_start != nullptr);
+
+            const lexer::lexer_char_t* curptr = m_start;
+
+            // remember this number was parsed (for later serialization)
+            result.m_type.bits.parsed = true;
+
+            // 'found_radix_point' will be set to 0xFF upon finding a radix
+            // point and later used to mask in/out the precision depending
+            // whether a radix is found i.e. 'precision &= found_radix_point'
+            uint8_t found_radix_point = 0;
+            uint8_t precision = 0;
+
+            // accumulate the integer conversion result (unsigned for now)
+            number_unsigned_t value = 0;
+
+            // maximum absolute value of the relevant integer type
+            number_unsigned_t max;
+
+            // temporarily store the type to avoid unecessary bitfield access
+            value_t type;
+
+            // look for sign
+            if (*curptr == '-')
+            {
+                type = value_t::number_integer;
+                max = static_cast<uint64_t>(std::numeric_limits<number_integer_t>::max()) + 1;
+                curptr++;
+            }
+            else
+            {
+                type = value_t::number_unsigned;
+                max = static_cast<uint64_t>(std::numeric_limits<number_unsigned_t>::max());
+            }
+
+            // count the significant figures
+            for (; curptr < m_cursor; curptr++)
+            {
+                // quickly skip tests if a digit
+                if (*curptr < '0' || *curptr > '9')
+                {
+                    if (*curptr == '.')
+                    {
+                        // don't count '.' but change to float
+                        type = value_t::number_float;
+
+                        // reset precision count
+                        precision = 0;
+                        found_radix_point = 0xFF;
+                        continue;
+                    }
+                    // assume exponent (if not then will fail parse): change to
+                    // float, stop counting and record exponent details
+                    type = value_t::number_float;
+                    result.m_type.bits.has_exp = true;
+
+                    // exponent capitalization
+                    result.m_type.bits.exp_cap = (*curptr == 'E');
+
+                    // exponent '+' sign
+                    result.m_type.bits.exp_plus = (*(++curptr) == '+');
+                    break;
+                }
+
+                // skip if definitely not an integer
+                if (type != value_t::number_float)
+                {
+                    // multiply last value by ten and add the new digit
+                    auto temp = value * 10 + *curptr - 0x30;
+
+                    // test for overflow
+                    if (temp < value || temp > max)
+                    {
+                        // overflow
+                        type = value_t::number_float;
+                    }
+                    else
+                    {
+                        // no overflow - save it
+                        value = temp;
+                    }
+                }
+                ++precision;
+            }
+
+            // If no radix point was found then precision would now be set to
+            // the number of digits, which is wrong - clear it.
+            result.m_type.bits.precision = precision & found_radix_point;
+
+            // save the value (if not a float)
+            if (type == value_t::number_unsigned)
+            {
+                result.m_value.number_unsigned = value;
+            }
+            else if (type == value_t::number_integer)
+            {
+                result.m_value.number_integer = -static_cast<number_integer_t>(value);
+            }
+            else
+            {
+                // parse with strtod
+                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
+            }
+
+            // save the type
+            result.m_type = type;
+        }
+
+      private:
+        /// optional input stream
+        std::istream* m_stream = nullptr;
+        /// the buffer
+        string_t m_buffer;
+        /// the buffer pointer
+        const lexer_char_t* m_content = nullptr;
+        /// pointer to the beginning of the current symbol
+        const lexer_char_t* m_start = nullptr;
+        /// pointer for backtracking information
+        const lexer_char_t* m_marker = nullptr;
+        /// pointer to the current symbol
+        const lexer_char_t* m_cursor = nullptr;
+        /// pointer to the end of the buffer
+        const lexer_char_t* m_limit = nullptr;
+    };
+
+    /*!
+    @brief syntax analysis
+
+    This class implements a recursive decent parser.
+    */
+    class parser
+    {
+      public:
+        /// constructor for strings
+        parser(const string_t& s, parser_callback_t cb = nullptr) noexcept
+            : callback(cb), m_lexer(s)
+        {
+            // read first token
+            get_token();
+        }
+
+        /// a parser reading from an input stream
+        parser(std::istream& _is, parser_callback_t cb = nullptr) noexcept
+            : callback(cb), m_lexer(&_is)
+        {
+            // read first token
+            get_token();
+        }
+
+        /// public parser interface
+        basic_json parse()
+        {
+            basic_json result = parse_internal(true);
+
+            expect(lexer::token_type::end_of_input);
+
+            // return parser result and replace it with null in case the
+            // top-level value was discarded by the callback function
+            return result.is_discarded() ? basic_json() : result;
+        }
+
+      private:
+        /// the actual parser
+        basic_json parse_internal(bool keep)
+        {
+            auto result = basic_json(value_t::discarded);
+
+            switch (last_token)
+            {
+                case lexer::token_type::begin_object:
+                {
+                    if (keep and (not callback or (keep = callback(depth++, parse_event_t::object_start, result))))
+                    {
+                        // explicitly set result to object to cope with {}
+                        result.m_type = value_t::object;
+                        result.m_value = json_value(value_t::object);
+                    }
+
+                    // read next token
+                    get_token();
+
+                    // closing } -> we are done
+                    if (last_token == lexer::token_type::end_object)
+                    {
+                        get_token();
+                        if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
+                    }
+
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
+
+                    // otherwise: parse key-value pairs
+                    do
+                    {
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
+                        {
+                            get_token();
+                        }
+
+                        // store key
+                        expect(lexer::token_type::value_string);
+                        const auto key = m_lexer.get_string();
+
+                        bool keep_tag = false;
+                        if (keep)
+                        {
+                            if (callback)
+                            {
+                                basic_json k(key);
+                                keep_tag = callback(depth, parse_event_t::key, k);
+                            }
+                            else
+                            {
+                                keep_tag = true;
+                            }
+                        }
+
+                        // parse separator (:)
+                        get_token();
+                        expect(lexer::token_type::name_separator);
+
+                        // parse and add value
+                        get_token();
+                        auto value = parse_internal(keep);
+                        if (keep and keep_tag and not value.is_discarded())
+                        {
+                            result[key] = std::move(value);
+                        }
+                    }
+                    while (last_token == lexer::token_type::value_separator);
+
+                    // closing }
+                    expect(lexer::token_type::end_object);
+                    get_token();
+                    if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                    {
+                        result = basic_json(value_t::discarded);
+                    }
+
+                    return result;
+                }
+
+                case lexer::token_type::begin_array:
+                {
+                    if (keep and (not callback or (keep = callback(depth++, parse_event_t::array_start, result))))
+                    {
+                        // explicitly set result to object to cope with []
+                        result.m_type = value_t::array;
+                        result.m_value = json_value(value_t::array);
+                    }
+
+                    // read next token
+                    get_token();
+
+                    // closing ] -> we are done
+                    if (last_token == lexer::token_type::end_array)
+                    {
+                        get_token();
+                        if (callback and not callback(--depth, parse_event_t::array_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
+                    }
+
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
+
+                    // otherwise: parse values
+                    do
+                    {
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
+                        {
+                            get_token();
+                        }
+
+                        // parse value
+                        auto value = parse_internal(keep);
+                        if (keep and not value.is_discarded())
+                        {
+                            result.push_back(std::move(value));
+                        }
+                    }
+                    while (last_token == lexer::token_type::value_separator);
+
+                    // closing ]
+                    expect(lexer::token_type::end_array);
+                    get_token();
+                    if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
+                    {
+                        result = basic_json(value_t::discarded);
+                    }
+
+                    return result;
+                }
+
+                case lexer::token_type::literal_null:
+                {
+                    get_token();
+                    result.m_type = value_t::null;
+                    break;
+                }
+
+                case lexer::token_type::value_string:
+                {
+                    const auto s = m_lexer.get_string();
+                    get_token();
+                    result = basic_json(s);
+                    break;
+                }
+
+                case lexer::token_type::literal_true:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = true;
+                    break;
+                }
+
+                case lexer::token_type::literal_false:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = false;
+                    break;
+                }
+
+                case lexer::token_type::value_number:
+                {
+                    m_lexer.get_number(result);
+                    get_token();
+                    break;
+                }
+
+                default:
+                {
+                    // the last token was unexpected
+                    unexpect(last_token);
+                }
+            }
+
+            if (keep and callback and not callback(depth, parse_event_t::value, result))
+            {
+                result = basic_json(value_t::discarded);
+            }
+            return result;
+        }
+
+        /// get next token from lexer
+        typename lexer::token_type get_token() noexcept
+        {
+            last_token = m_lexer.scan();
+            return last_token;
+        }
+
+        void expect(typename lexer::token_type t) const
+        {
+            if (t != last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token() + "'") :
+                              lexer::token_type_name(last_token));
+                error_msg += "; expected " + lexer::token_type_name(t);
+                throw std::invalid_argument(error_msg);
+            }
+        }
+
+        void unexpect(typename lexer::token_type t) const
+        {
+            if (t == last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token() + "'") :
+                              lexer::token_type_name(last_token));
+                throw std::invalid_argument(error_msg);
+            }
+        }
+
+      private:
+        /// current level of recursion
+        int depth = 0;
+        /// callback function
+        parser_callback_t callback;
+        /// the type of the last read token
+        typename lexer::token_type last_token = lexer::token_type::uninitialized;
+        /// the lexer
+        lexer m_lexer;
+    };
+
+  public:
+    /*!
+    @brief JSON Pointer
+
+    A JSON pointer defines a string syntax for identifying a specific value
+    within a JSON document. It can be used with functions `at` and
+    `operator[]`. Furthermore, JSON pointers are the base for JSON patches.
+
+    @sa [RFC 6901](https://tools.ietf.org/html/rfc6901)
+
+    @since version 2.0.0
+    */
+    class json_pointer
+    {
+        /// allow basic_json to access private members
+        friend class basic_json;
+
+      public:
+        /*!
+        @brief create JSON pointer
+
+        Create a JSON pointer according to the syntax described in
+        [Section 3 of RFC6901](https://tools.ietf.org/html/rfc6901#section-3).
+
+        @param[in] s  string representing the JSON pointer; if omitted, the
+                      empty string is assumed which references the whole JSON
+                      value
+
+        @throw std::domain_error if reference token is nonempty and does not
+        begin with a slash (`/`); example: `"JSON pointer must be empty or
+        begin with /"`
+        @throw std::domain_error if a tilde (`~`) is not followed by `0`
+        (representing `~`) or `1` (representing `/`); example: `"escape error:
+        ~ must be followed with 0 or 1"`
+
+        @liveexample{The example shows the construction several valid JSON
+        pointers as well as the exceptional behavior.,json_pointer}
+
+        @since version 2.0.0
+        */
+        explicit json_pointer(const std::string& s = "")
+            : reference_tokens(split(s))
+        {}
+
+        /*!
+        @brief return a string representation of the JSON pointer
+
+        @invariant For each JSON pointer `ptr`, it holds:
+        @code {.cpp}
+        ptr == json_pointer(ptr.to_string());
+        @endcode
+
+        @return a string representation of the JSON pointer
+
+        @liveexample{The example shows the result of `to_string`.,
+        json_pointer__to_string}
+
+        @since version 2.0.0
+        */
+        std::string to_string() const noexcept
+        {
+            std::string result;
+
+            for (const auto& reference_token : reference_tokens)
+            {
+                result += "/" + escape(reference_token);
+            }
+
+            return result;
+        }
+
+        /// @copydoc to_string()
+        operator std::string() const
+        {
+            return to_string();
+        }
+
+      private:
+        /// remove and return last reference pointer
+        std::string pop_back()
+        {
+            if (is_root())
+            {
+                throw std::domain_error("JSON pointer has no parent");
+            }
+
+            auto last = reference_tokens.back();
+            reference_tokens.pop_back();
+            return last;
+        }
+
+        /// return whether pointer points to the root document
+        bool is_root() const
+        {
+            return reference_tokens.empty();
+        }
+
+        json_pointer top() const
+        {
+            if (is_root())
+            {
+                throw std::domain_error("JSON pointer has no parent");
+            }
+
+            json_pointer result = *this;
+            result.reference_tokens = {reference_tokens[0]};
+            return result;
+        }
+
+        /*!
+        @brief create and return a reference to the pointed to value
+        */
+        reference get_and_create(reference j) const
+        {
+            pointer result = &j;
+
+            // in case no reference tokens exist, return a reference to the
+            // JSON value j which will be overwritten by a primitive value
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (result->m_type)
+                {
+                    case value_t::null:
+                    {
+                        if (reference_token == "0")
+                        {
+                            // start a new array if reference token is 0
+                            result = &result->operator[](0);
+                        }
+                        else
+                        {
+                            // start a new object otherwise
+                            result = &result->operator[](reference_token);
+                        }
+                        break;
+                    }
+
+                    case value_t::object:
+                    {
+                        // create an entry in the object
+                        result = &result->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // create an entry in the array
+                        result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    /*
+                    The following code is only reached if there exists a
+                    reference token _and_ the current value is primitive. In
+                    this case, we have an error situation, because primitive
+                    values may only occur as single value; that is, with an
+                    empty list of reference tokens.
+                    */
+                    default:
+                    {
+                        throw std::domain_error("invalid value to unflatten");
+                    }
+                }
+            }
+
+            return *result;
+        }
+
+        /*!
+        @brief return a reference to the pointed to value
+
+        @param[in] ptr  a JSON value
+
+        @return reference to the JSON value pointed to by the JSON pointer
+
+        @complexity Linear in the length of the JSON pointer.
+
+        @throw std::out_of_range      if the JSON pointer can not be resolved
+        @throw std::domain_error      if an array index begins with '0'
+        @throw std::invalid_argument  if an array index was not a number
+        */
+        reference get_unchecked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        if (reference_token == "-")
+                        {
+                            // explicityly treat "-" as index beyond the end
+                            ptr = &ptr->operator[](ptr->m_value.array->size());
+                        }
+                        else
+                        {
+                            // convert array index to number; unchecked access
+                            ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        }
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        reference get_checked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /*!
+        @brief return a const reference to the pointed to value
+
+        @param[in] ptr  a JSON value
+
+        @return const reference to the JSON value pointed to by the JSON
+                pointer
+        */
+        const_reference get_unchecked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" cannot be used for const access
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        // use unchecked array access
+                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        const_reference get_checked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /// split the string input to reference tokens
+        static std::vector<std::string> split(std::string reference_string)
+        {
+            std::vector<std::string> result;
+
+            // special case: empty reference string -> no reference tokens
+            if (reference_string.empty())
+            {
+                return result;
+            }
+
+            // check if nonempty reference string begins with slash
+            if (reference_string[0] != '/')
+            {
+                throw std::domain_error("JSON pointer must be empty or begin with '/'");
+            }
+
+            // extract the reference tokens:
+            // - slash: position of the last read slash (or end of string)
+            // - start: position after the previous slash
+            for (
+                // search for the first slash after the first character
+                size_t slash = reference_string.find_first_of("/", 1),
+                // set the beginning of the first reference token
+                start = 1;
+                // we can stop if start == string::npos+1 = 0
+                start != 0;
+                // set the beginning of the next reference token
+                // (will eventually be 0 if slash == std::string::npos)
+                start = slash + 1,
+                // find next slash
+                slash = reference_string.find_first_of("/", start))
+            {
+                // use the text between the beginning of the reference token
+                // (start) and the last slash (slash).
+                auto reference_token = reference_string.substr(start, slash - start);
+
+                // check reference tokens are properly escaped
+                for (size_t pos = reference_token.find_first_of("~");
+                        pos != std::string::npos;
+                        pos = reference_token.find_first_of("~", pos + 1))
+                {
+                    assert(reference_token[pos] == '~');
+
+                    // ~ must be followed by 0 or 1
+                    if (pos == reference_token.size() - 1 or
+                            (reference_token[pos + 1] != '0' and
+                             reference_token[pos + 1] != '1'))
+                    {
+                        throw std::domain_error("escape error: '~' must be followed with '0' or '1'");
+                    }
+                }
+
+                // finally, store the reference token
+                unescape(reference_token);
+                result.push_back(reference_token);
+            }
+
+            return result;
+        }
+
+      private:
+        /*!
+        @brief replace all occurrences of a substring by another string
+
+        @param[in,out] s  the string to manipulate
+        @param[in]     f  the substring to replace with @a t
+        @param[out]    t  the string to replace @a f
+
+        @return The string @a s where all occurrences of @a f are replaced
+                with @a t.
+
+        @pre The search string @a f must not be empty.
+
+        @since version 2.0.0
+        */
+        static void replace_substring(std::string& s,
+                                      const std::string& f,
+                                      const std::string& t)
+        {
+            assert(not f.empty());
+
+            for (
+                size_t pos = s.find(f);         // find first occurrence of f
+                pos != std::string::npos;       // make sure f was found
+                s.replace(pos, f.size(), t),    // replace with t
+                pos = s.find(f, pos + t.size()) // find next occurrence of f
+            );
+        }
+
+        /// escape tilde and slash
+        static std::string escape(std::string s)
+        {
+            // escape "~"" to "~0" and "/" to "~1"
+            replace_substring(s, "~", "~0");
+            replace_substring(s, "/", "~1");
+            return s;
+        }
+
+        /// unescape tilde and slash
+        static void unescape(std::string& s)
+        {
+            // first transform any occurrence of the sequence '~1' to '/'
+            replace_substring(s, "~1", "/");
+            // then transform any occurrence of the sequence '~0' to '~'
+            replace_substring(s, "~0", "~");
+        }
+
+        /*!
+        @param[in] reference_string  the reference string to the current value
+        @param[in] value             the value to consider
+        @param[in,out] result        the result object to insert values to
+
+        @note Empty objects or arrays are flattened to `null`.
+        */
+        static void flatten(const std::string& reference_string,
+                            const basic_json& value,
+                            basic_json& result)
+        {
+            switch (value.m_type)
+            {
+                case value_t::array:
+                {
+                    if (value.m_value.array->empty())
+                    {
+                        // flatten empty array as null
+                        result[reference_string] = nullptr;
+                    }
+                    else
+                    {
+                        // iterate array and use index as reference string
+                        for (size_t i = 0; i < value.m_value.array->size(); ++i)
+                        {
+                            flatten(reference_string + "/" + std::to_string(i),
+                                    value.m_value.array->operator[](i), result);
+                        }
+                    }
+                    break;
+                }
+
+                case value_t::object:
+                {
+                    if (value.m_value.object->empty())
+                    {
+                        // flatten empty object as null
+                        result[reference_string] = nullptr;
+                    }
+                    else
+                    {
+                        // iterate object and use keys as reference string
+                        for (const auto& element : *value.m_value.object)
+                        {
+                            flatten(reference_string + "/" + escape(element.first),
+                                    element.second, result);
+                        }
+                    }
+                    break;
+                }
+
+                default:
+                {
+                    // add primitive value with its reference string
+                    result[reference_string] = value;
+                    break;
+                }
+            }
+        }
+
+        /*!
+        @param[in] value  flattened JSON
+
+        @return unflattened JSON
+        */
+        static basic_json unflatten(const basic_json& value)
+        {
+            if (not value.is_object())
+            {
+                throw std::domain_error("only objects can be unflattened");
+            }
+
+            basic_json result;
+
+            // iterate the JSON object values
+            for (const auto& element : *value.m_value.object)
+            {
+                if (not element.second.is_primitive())
+                {
+                    throw std::domain_error("values in object must be primitive");
+                }
+
+                // assign value to reference pointed to by JSON pointer; Note
+                // that if the JSON pointer is "" (i.e., points to the whole
+                // value), function get_and_create returns a reference to
+                // result itself. An assignment will then create a primitive
+                // value.
+                json_pointer(element.first).get_and_create(result) = element.second;
+            }
+
+            return result;
+        }
+
+      private:
+        /// the reference tokens
+        std::vector<std::string> reference_tokens {};
+    };
+
+    //////////////////////////
+    // JSON Pointer support //
+    //////////////////////////
+
+    /// @name JSON Pointer functions
+    /// @{
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Uses a JSON pointer to retrieve a reference to the respective JSON value.
+    No bound checking is performed. Similar to @ref operator[](const typename
+    object_t::key_type&), `null` values are created in arrays and objects if
+    necessary.
+
+    In particular:
+    - If the JSON pointer points to an object key that does not exist, it
+      is created an filled with a `null` value before a reference to it
+      is returned.
+    - If the JSON pointer points to an array index that does not exist, it
+      is created an filled with a `null` value before a reference to it
+      is returned. All indices between the current maximum and the given
+      index are also filled with `null`.
+    - The special value `-` is treated as a synonym for the index past the
+      end.
+
+    @param[in] ptr  a JSON pointer
+
+    @return reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,operatorjson_pointer}
+
+    @since version 2.0.0
+    */
+    reference operator[](const json_pointer& ptr)
+    {
+        return ptr.get_unchecked(this);
+    }
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Uses a JSON pointer to retrieve a reference to the respective JSON value.
+    No bound checking is performed. The function does not change the JSON
+    value; no `null` values are created. In particular, the the special value
+    `-` yields an exception.
+
+    @param[in] ptr  JSON pointer to the desired element
+
+    @return const reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,operatorjson_pointer_const}
+
+    @since version 2.0.0
+    */
+    const_reference operator[](const json_pointer& ptr) const
+    {
+        return ptr.get_unchecked(this);
+    }
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Returns a reference to the element at with specified JSON pointer @a ptr,
+    with bounds checking.
+
+    @param[in] ptr  JSON pointer to the desired element
+
+    @return reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,at_json_pointer}
+
+    @since version 2.0.0
+    */
+    reference at(const json_pointer& ptr)
+    {
+        return ptr.get_checked(this);
+    }
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Returns a const reference to the element at with specified JSON pointer @a
+    ptr, with bounds checking.
+
+    @param[in] ptr  JSON pointer to the desired element
+
+    @return reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,at_json_pointer_const}
+
+    @since version 2.0.0
+    */
+    const_reference at(const json_pointer& ptr) const
+    {
+        return ptr.get_checked(this);
+    }
+
+    /*!
+    @brief return flattened JSON value
+
+    The function creates a JSON object whose keys are JSON pointers (see [RFC
+    6901](https://tools.ietf.org/html/rfc6901)) and whose values are all
+    primitive. The original JSON value can be restored using the @ref
+    unflatten() function.
+
+    @return an object that maps JSON pointers to primitve values
+
+    @note Empty objects and arrays are flattened to `null` and will not be
+          reconstructed correctly by the @ref unflatten() function.
+
+    @complexity Linear in the size the JSON value.
+
+    @liveexample{The following code shows how a JSON object is flattened to an
+    object whose keys consist of JSON pointers.,flatten}
+
+    @sa @ref unflatten() for the reverse function
+
+    @since version 2.0.0
+    */
+    basic_json flatten() const
+    {
+        basic_json result(value_t::object);
+        json_pointer::flatten("", *this, result);
+        return result;
+    }
+
+    /*!
+    @brief unflatten a previously flattened JSON value
+
+    The function restores the arbitrary nesting of a JSON value that has been
+    flattened before using the @ref flatten() function. The JSON value must
+    meet certain constraints:
+    1. The value must be an object.
+    2. The keys must be JSON pointers (see
+       [RFC 6901](https://tools.ietf.org/html/rfc6901))
+    3. The mapped values must be primitive JSON types.
+
+    @return the original JSON from a flattened version
+
+    @note Empty objects and arrays are flattened by @ref flatten() to `null`
+          values and can not unflattened to their original type. Apart from
+          this example, for a JSON value `j`, the following is always true:
+          `j == j.flatten().unflatten()`.
+
+    @complexity Linear in the size the JSON value.
+
+    @liveexample{The following code shows how a flattened JSON object is
+    unflattened into the original nested JSON object.,unflatten}
+
+    @sa @ref flatten() for the reverse function
+
+    @since version 2.0.0
+    */
+    basic_json unflatten() const
+    {
+        return json_pointer::unflatten(*this);
+    }
+
+    /// @}
+
+    //////////////////////////
+    // JSON Patch functions //
+    //////////////////////////
+
+    /// @name JSON Patch functions
+    /// @{
+
+    /*!
+    @brief applies a JSON patch
+
+    [JSON Patch](http://jsonpatch.com) defines a JSON document structure for
+    expressing a sequence of operations to apply to a JSON) document. With
+    this funcion, a JSON Patch is applied to the current JSON value by
+    executing all operations from the patch.
+
+    @param[in] json_patch  JSON patch document
+    @return patched document
+
+    @note The application of a patch is atomic: Either all operations succeed
+          and the patched document is returned or an exception is thrown. In
+          any case, the original value is not changed: the patch is applied
+          to a copy of the value.
+
+    @throw std::out_of_range if a JSON pointer inside the patch could not
+    be resolved successfully in the current JSON value; example: `"key baz
+    not found"`
+    @throw invalid_argument if the JSON patch is malformed (e.g., mandatory
+    attributes are missing); example: `"operation add must have member path"`
+
+    @complexity Linear in the size of the JSON value and the length of the
+    JSON patch. As usually only a fraction of the JSON value is affected by
+    the patch, the complexity can usually be neglected.
+
+    @liveexample{The following code shows how a JSON patch is applied to a
+    value.,patch}
+
+    @sa @ref diff -- create a JSON patch by comparing two JSON values
+
+    @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
+    @sa [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901)
+
+    @since version 2.0.0
+    */
+    basic_json patch(const basic_json& json_patch) const
+    {
+        // make a working copy to apply the patch to
+        basic_json result = *this;
+
+        // the valid JSON Patch operations
+        enum class patch_operations {add, remove, replace, move, copy, test, invalid};
+
+        const auto get_op = [](const std::string op)
+        {
+            if (op == "add")
+            {
+                return patch_operations::add;
+            }
+            if (op == "remove")
+            {
+                return patch_operations::remove;
+            }
+            if (op == "replace")
+            {
+                return patch_operations::replace;
+            }
+            if (op == "move")
+            {
+                return patch_operations::move;
+            }
+            if (op == "copy")
+            {
+                return patch_operations::copy;
+            }
+            if (op == "test")
+            {
+                return patch_operations::test;
+            }
+
+            return patch_operations::invalid;
+        };
+
+        // wrapper for "add" operation; add value at ptr
+        const auto operation_add = [&result](json_pointer & ptr, basic_json val)
+        {
+            // adding to the root of the target document means replacing it
+            if (ptr.is_root())
+            {
+                result = val;
+            }
+            else
+            {
+                // make sure the top element of the pointer exists
+                json_pointer top_pointer = ptr.top();
+                if (top_pointer != ptr)
+                {
+                    basic_json& x = result.at(top_pointer);
+                }
+
+                // get reference to parent of JSON pointer ptr
+                const auto last_path = ptr.pop_back();
+                basic_json& parent = result[ptr];
+
+                switch (parent.m_type)
+                {
+                    case value_t::null:
+                    case value_t::object:
+                    {
+                        // use operator[] to add value
+                        parent[last_path] = val;
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (last_path == "-")
+                        {
+                            // special case: append to back
+                            parent.push_back(val);
+                        }
+                        else
+                        {
+                            const auto idx = std::stoi(last_path);
+                            if (static_cast<size_type>(idx) > parent.size())
+                            {
+                                // avoid undefined behavior
+                                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                            }
+                            else
+                            {
+                                // default case: insert add offset
+                                parent.insert(parent.begin() + static_cast<difference_type>(idx), val);
+                            }
+                        }
+                        break;
+                    }
+
+                    default:
+                    {
+                        // if there exists a parent it cannot be primitive
+                        assert(false);  // LCOV_EXCL_LINE
+                    }
+                }
+            }
+        };
+
+        // wrapper for "remove" operation; remove value at ptr
+        const auto operation_remove = [&result](json_pointer & ptr)
+        {
+            // get reference to parent of JSON pointer ptr
+            const auto last_path = ptr.pop_back();
+            basic_json& parent = result.at(ptr);
+
+            // remove child
+            if (parent.is_object())
+            {
+                // perform range check
+                auto it = parent.find(last_path);
+                if (it != parent.end())
+                {
+                    parent.erase(it);
+                }
+                else
+                {
+                    throw std::out_of_range("key '" + last_path + "' not found");
+                }
+            }
+            else if (parent.is_array())
+            {
+                // note erase performs range check
+                parent.erase(static_cast<size_type>(std::stoi(last_path)));
+            }
+        };
+
+        // type check
+        if (not json_patch.is_array())
+        {
+            // a JSON patch must be an array of objects
+            throw std::invalid_argument("JSON patch must be an array of objects");
+        }
+
+        // iterate and apply th eoperations
+        for (const auto& val : json_patch)
+        {
+            // wrapper to get a value for an operation
+            const auto get_value = [&val](const std::string & op,
+                                          const std::string & member,
+                                          bool string_type) -> basic_json&
+            {
+                // find value
+                auto it = val.m_value.object->find(member);
+
+                // context-sensitive error message
+                const auto error_msg = (op == "op") ? "operation" : "operation '" + op + "'";
+
+                // check if desired value is present
+                if (it == val.m_value.object->end())
+                {
+                    throw std::invalid_argument(error_msg + " must have member '" + member + "'");
+                }
+
+                // check if result is of type string
+                if (string_type and not it->second.is_string())
+                {
+                    throw std::invalid_argument(error_msg + " must have string member '" + member + "'");
+                }
+
+                // no error: return value
+                return it->second;
+            };
+
+            // type check
+            if (not val.is_object())
+            {
+                throw std::invalid_argument("JSON patch must be an array of objects");
+            }
+
+            // collect mandatory members
+            const std::string op = get_value("op", "op", true);
+            const std::string path = get_value(op, "path", true);
+            json_pointer ptr(path);
+
+            switch (get_op(op))
+            {
+                case patch_operations::add:
+                {
+                    operation_add(ptr, get_value("add", "value", false));
+                    break;
+                }
+
+                case patch_operations::remove:
+                {
+                    operation_remove(ptr);
+                    break;
+                }
+
+                case patch_operations::replace:
+                {
+                    // the "path" location must exist - use at()
+                    result.at(ptr) = get_value("replace", "value", false);
+                    break;
+                }
+
+                case patch_operations::move:
+                {
+                    const std::string from_path = get_value("move", "from", true);
+                    json_pointer from_ptr(from_path);
+
+                    // the "from" location must exist - use at()
+                    basic_json v = result.at(from_ptr);
+
+                    // The move operation is functionally identical to a
+                    // "remove" operation on the "from" location, followed
+                    // immediately by an "add" operation at the target
+                    // location with the value that was just removed.
+                    operation_remove(from_ptr);
+                    operation_add(ptr, v);
+                    break;
+                }
+
+                case patch_operations::copy:
+                {
+                    const std::string from_path = get_value("copy", "from", true);;
+                    const json_pointer from_ptr(from_path);
+
+                    // the "from" location must exist - use at()
+                    result[ptr] = result.at(from_ptr);
+                    break;
+                }
+
+                case patch_operations::test:
+                {
+                    bool success = false;
+                    try
+                    {
+                        // check if "value" matches the one at "path"
+                        // the "path" location must exist - use at()
+                        success = (result.at(ptr) == get_value("test", "value", false));
+                    }
+                    catch (std::out_of_range&)
+                    {
+                        // ignore out of range errors: success remains false
+                    }
+
+                    // throw an exception if test fails
+                    if (not success)
+                    {
+                        throw std::domain_error("unsuccessful: " + val.dump());
+                    }
+
+                    break;
+                }
+
+                case patch_operations::invalid:
+                {
+                    // op must be "add", "remove", "replace", "move", "copy", or
+                    // "test"
+                    throw std::invalid_argument("operation value '" + op + "' is invalid");
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief creates a diff as a JSON patch
+
+    Creates a [JSON Patch](http://jsonpatch.com) so that value @a source can
+    be changed into the value @a target by calling @ref patch function.
+
+    @invariant For two JSON values @a source and @a target, the following code
+    yields always `true`:
+    @code {.cpp}
+    source.patch(diff(source, target)) == target;
+    @endcode
+
+    @note Currently, only `remove`, `add`, and `replace` operations are
+          generated.
+
+    @param[in] source  JSON value to copare from
+    @param[in] target  JSON value to copare against
+    @param[in] path    helper value to create JSON pointers
+
+    @return a JSON patch to convert the @a source to @a target
+
+    @complexity Linear in the lengths of @a source and @a target.
+
+    @liveexample{The following code shows how a JSON patch is created as a
+    diff for two JSON values.,diff}
+
+    @sa @ref patch -- apply a JSON patch
+
+    @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
+
+    @since version 2.0.0
+    */
+    static basic_json diff(const basic_json& source,
+                           const basic_json& target,
+                           std::string path = "")
+    {
+        // the patch
+        basic_json result(value_t::array);
+
+        // if the values are the same, return empty patch
+        if (source == target)
+        {
+            return result;
+        }
+
+        if (source.type() != target.type())
+        {
+            // different types: replace value
+            result.push_back(
+            {
+                {"op", "replace"},
+                {"path", path},
+                {"value", target}
+            });
+        }
+        else
+        {
+            switch (source.type())
+            {
+                case value_t::array:
+                {
+                    // first pass: traverse common elements
+                    size_t i = 0;
+                    while (i < source.size() and i < target.size())
+                    {
+                        // recursive call to compare array values at index i
+                        auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i));
+                        result.insert(result.end(), temp_diff.begin(), temp_diff.end());
+                        ++i;
+                    }
+
+                    // i now reached the end of at least one array
+                    // in a second pass, traverse the remaining elements
+
+                    // remove my remaining elements
+                    while (i < source.size())
+                    {
+                        result.push_back(object(
+                        {
+                            {"op", "remove"},
+                            {"path", path + "/" + std::to_string(i)}
+                        }));
+                        ++i;
+                    }
+
+                    // add other remaining elements
+                    while (i < target.size())
+                    {
+                        result.push_back(
+                        {
+                            {"op", "add"},
+                            {"path", path + "/" + std::to_string(i)},
+                            {"value", target[i]}
+                        });
+                        ++i;
+                    }
+
+                    break;
+                }
+
+                case value_t::object:
+                {
+                    // first pass: traverse this object's elements
+                    for (auto it = source.begin(); it != source.end(); ++it)
+                    {
+                        // escape the key name to be used in a JSON patch
+                        const auto key = json_pointer::escape(it.key());
+
+                        if (target.find(it.key()) != target.end())
+                        {
+                            // recursive call to compare object values at key it
+                            auto temp_diff = diff(it.value(), target[it.key()], path + "/" + key);
+                            result.insert(result.end(), temp_diff.begin(), temp_diff.end());
+                        }
+                        else
+                        {
+                            // found a key that is not in o -> remove it
+                            result.push_back(object(
+                            {
+                                {"op", "remove"},
+                                {"path", path + "/" + key}
+                            }));
+                        }
+                    }
+
+                    // second pass: traverse other object's elements
+                    for (auto it = target.begin(); it != target.end(); ++it)
+                    {
+                        if (source.find(it.key()) == source.end())
+                        {
+                            // found a key that is not in this -> add it
+                            const auto key = json_pointer::escape(it.key());
+                            result.push_back(
+                            {
+                                {"op", "add"},
+                                {"path", path + "/" + key},
+                                {"value", it.value()}
+                            });
+                        }
+                    }
+
+                    break;
+                }
+
+                default:
+                {
+                    // both primitive type: replace value
+                    result.push_back(
+                    {
+                        {"op", "replace"},
+                        {"path", path},
+                        {"value", target}
+                    });
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /// @}
+};
+
+
+/////////////
+// presets //
+/////////////
+
+/*!
+@brief default JSON class
+
+This type is the default specialization of the @ref basic_json class which
+uses the standard template types.
+
+@since version 1.0.0
+*/
+using json = basic_json<>;
+}
+
+
+///////////////////////
+// nonmember support //
+///////////////////////
+
+// specialization of std::swap, and std::hash
+namespace std
+{
+/*!
+@brief exchanges the values of two JSON objects
+
+@since version 1.0.0
+*/
+template <>
+inline void swap(nlohmann::json& j1,
+                 nlohmann::json& j2) noexcept(
+                     is_nothrow_move_constructible<nlohmann::json>::value and
+                     is_nothrow_move_assignable<nlohmann::json>::value
+                 )
+{
+    j1.swap(j2);
+}
+
+/// hash value for JSON objects
+template <>
+struct hash<nlohmann::json>
+{
+    /*!
+    @brief return a hash value for a JSON object
+
+    @since version 1.0.0
+    */
+    std::size_t operator()(const nlohmann::json& j) const
+    {
+        // a naive hashing via the string representation
+        const auto& h = hash<nlohmann::json::string_t>();
+        return h(j.dump());
+    }
+};
+}
+
+/*!
+@brief user-defined string literal for JSON values
+
+This operator implements a user-defined string literal for JSON objects. It
+can be used by adding \p "_json" to a string literal and returns a JSON object
+if no parse error occurred.
+
+@param[in] s  a string representation of a JSON object
+@return a JSON object
+
+@since version 1.0.0
+*/
+inline nlohmann::json operator "" _json(const char* s, std::size_t)
+{
+    return nlohmann::json::parse(reinterpret_cast<const nlohmann::json::string_t::value_type*>(s));
+}
+
+/*!
+@brief user-defined string literal for JSON pointer
+
+@since version 2.0.0
+*/
+inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t)
+{
+    return nlohmann::json::json_pointer(s);
+}
+
+// restore GCC/clang diagnostic settings
+#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
+    #pragma GCC diagnostic pop
+#endif
+
+#endif
diff --git a/resources/3rdparty/modernjson/src/json.hpp.re2c b/resources/3rdparty/modernjson/src/json.hpp.re2c
new file mode 100755
index 000000000..ba4fc007b
--- /dev/null
+++ b/resources/3rdparty/modernjson/src/json.hpp.re2c
@@ -0,0 +1,9492 @@
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++
+|  |  |__   |  |  | | | |  version 2.0.0
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
+
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+Copyright (c) 2013-2016 Niels Lohmann <http://nlohmann.me>.
+
+Permission is hereby  granted, free of charge, to any  person obtaining a copy
+of this software and associated  documentation files (the "Software"), to deal
+in the Software  without restriction, including without  limitation the rights
+to  use, copy,  modify, merge,  publish, distribute,  sublicense, and/or  sell
+copies  of  the Software,  and  to  permit persons  to  whom  the Software  is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE  IS PROVIDED "AS  IS", WITHOUT WARRANTY  OF ANY KIND,  EXPRESS OR
+IMPLIED,  INCLUDING BUT  NOT  LIMITED TO  THE  WARRANTIES OF  MERCHANTABILITY,
+FITNESS FOR  A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT  SHALL THE
+AUTHORS  OR COPYRIGHT  HOLDERS  BE  LIABLE FOR  ANY  CLAIM,  DAMAGES OR  OTHER
+LIABILITY, WHETHER IN AN ACTION OF  CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#ifndef NLOHMANN_JSON_HPP
+#define NLOHMANN_JSON_HPP
+
+#include <algorithm>
+#include <array>
+#include <cassert>
+#include <cerrno>
+#include <ciso646>
+#include <cmath>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <functional>
+#include <initializer_list>
+#include <iomanip>
+#include <iostream>
+#include <iterator>
+#include <limits>
+#include <map>
+#include <memory>
+#include <sstream>
+#include <stdexcept>
+#include <string>
+#include <type_traits>
+#include <utility>
+#include <vector>
+
+// disable float-equal warnings on GCC/clang
+#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
+
+/*!
+@brief namespace for Niels Lohmann
+@see https://github.com/nlohmann
+@since version 1.0.0
+*/
+namespace nlohmann
+{
+
+
+/*!
+@brief unnamed namespace with internal helper functions
+@since version 1.0.0
+*/
+namespace
+{
+/*!
+@brief Helper to determine whether there's a key_type for T.
+@sa http://stackoverflow.com/a/7728728/266378
+*/
+template<typename T>
+struct has_mapped_type
+{
+  private:
+    template<typename C> static char test(typename C::mapped_type*);
+    template<typename C> static char (&test(...))[2];
+  public:
+    static constexpr bool value = sizeof(test<T>(0)) == 1;
+};
+
+/*!
+@brief helper class to create locales with decimal point
+@sa https://github.com/nlohmann/json/issues/51#issuecomment-86869315
+*/
+class DecimalSeparator : public std::numpunct<char>
+{
+  protected:
+    char do_decimal_point() const
+    {
+        return '.';
+    }
+};
+
+}
+
+/*!
+@brief a class to store JSON values
+
+@tparam ObjectType type for JSON objects (`std::map` by default; will be used
+in @ref object_t)
+@tparam ArrayType type for JSON arrays (`std::vector` by default; will be used
+in @ref array_t)
+@tparam StringType type for JSON strings and object keys (`std::string` by
+default; will be used in @ref string_t)
+@tparam BooleanType type for JSON booleans (`bool` by default; will be used
+in @ref boolean_t)
+@tparam NumberIntegerType type for JSON integer numbers (`int64_t` by
+default; will be used in @ref number_integer_t)
+@tparam NumberUnsignedType type for JSON unsigned integer numbers (@c
+`uint64_t` by default; will be used in @ref number_unsigned_t)
+@tparam NumberFloatType type for JSON floating-point numbers (`double` by
+default; will be used in @ref number_float_t)
+@tparam AllocatorType type of the allocator to use (`std::allocator` by
+default)
+
+@requirement The class satisfies the following concept requirements:
+- Basic
+ - [DefaultConstructible](http://en.cppreference.com/w/cpp/concept/DefaultConstructible):
+   JSON values can be default constructed. The result will be a JSON null value.
+ - [MoveConstructible](http://en.cppreference.com/w/cpp/concept/MoveConstructible):
+   A JSON value can be constructed from an rvalue argument.
+ - [CopyConstructible](http://en.cppreference.com/w/cpp/concept/CopyConstructible):
+   A JSON value can be copy-constructed from an lvalue expression.
+ - [MoveAssignable](http://en.cppreference.com/w/cpp/concept/MoveAssignable):
+   A JSON value van be assigned from an rvalue argument.
+ - [CopyAssignable](http://en.cppreference.com/w/cpp/concept/CopyAssignable):
+   A JSON value can be copy-assigned from an lvalue expression.
+ - [Destructible](http://en.cppreference.com/w/cpp/concept/Destructible):
+   JSON values can be destructed.
+- Layout
+ - [StandardLayoutType](http://en.cppreference.com/w/cpp/concept/StandardLayoutType):
+   JSON values have
+   [standard layout](http://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
+   All non-static data members are private and standard layout types, the class
+   has no virtual functions or (virtual) base classes.
+- Library-wide
+ - [EqualityComparable](http://en.cppreference.com/w/cpp/concept/EqualityComparable):
+   JSON values can be compared with `==`, see @ref
+   operator==(const_reference,const_reference).
+ - [LessThanComparable](http://en.cppreference.com/w/cpp/concept/LessThanComparable):
+   JSON values can be compared with `<`, see @ref
+   operator<(const_reference,const_reference).
+ - [Swappable](http://en.cppreference.com/w/cpp/concept/Swappable):
+   Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of
+   other compatible types, using unqualified function call @ref swap().
+ - [NullablePointer](http://en.cppreference.com/w/cpp/concept/NullablePointer):
+   JSON values can be compared against `std::nullptr_t` objects which are used
+   to model the `null` value.
+- Container
+ - [Container](http://en.cppreference.com/w/cpp/concept/Container):
+   JSON values can be used like STL containers and provide iterator access.
+ - [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer);
+   JSON values can be used like STL containers and provide reverse iterator
+   access.
+
+@internal
+@note ObjectType trick from http://stackoverflow.com/a/9860911
+@endinternal
+
+@see [RFC 7159: The JavaScript Object Notation (JSON) Data Interchange
+Format](http://rfc7159.net/rfc7159)
+
+@since version 1.0.0
+
+@nosubgrouping
+*/
+template <
+    template<typename U, typename V, typename... Args> class ObjectType = std::map,
+    template<typename U, typename... Args> class ArrayType = std::vector,
+    class StringType = std::string,
+    class BooleanType = bool,
+    class NumberIntegerType = std::int64_t,
+    class NumberUnsignedType = std::uint64_t,
+    class NumberFloatType = double,
+    template<typename U> class AllocatorType = std::allocator
+    >
+class basic_json
+{
+  private:
+    /// workaround type for MSVC
+    using basic_json_t = basic_json<ObjectType,
+          ArrayType,
+          StringType,
+          BooleanType,
+          NumberIntegerType,
+          NumberUnsignedType,
+          NumberFloatType,
+          AllocatorType>;
+
+  public:
+    // forward declarations
+    template<typename Base> class json_reverse_iterator;
+    class json_pointer;
+
+    /////////////////////
+    // container types //
+    /////////////////////
+
+    /// @name container types
+    /// @{
+
+    /// the type of elements in a basic_json container
+    using value_type = basic_json;
+
+    /// the type of an element reference
+    using reference = value_type&;
+    /// the type of an element const reference
+    using const_reference = const value_type&;
+
+    /// a type to represent differences between iterators
+    using difference_type = std::ptrdiff_t;
+    /// a type to represent container sizes
+    using size_type = std::size_t;
+
+    /// the allocator type
+    using allocator_type = AllocatorType<basic_json>;
+
+    /// the type of an element pointer
+    using pointer = typename std::allocator_traits<allocator_type>::pointer;
+    /// the type of an element const pointer
+    using const_pointer = typename std::allocator_traits<allocator_type>::const_pointer;
+
+    /// an iterator for a basic_json container
+    class iterator;
+    /// a const iterator for a basic_json container
+    class const_iterator;
+    /// a reverse iterator for a basic_json container
+    using reverse_iterator = json_reverse_iterator<typename basic_json::iterator>;
+    /// a const reverse iterator for a basic_json container
+    using const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator>;
+
+    /// @}
+
+
+    /*!
+    @brief returns the allocator associated with the container
+    */
+    static allocator_type get_allocator()
+    {
+        return allocator_type();
+    }
+
+
+    ///////////////////////////
+    // JSON value data types //
+    ///////////////////////////
+
+    /// @name JSON value data types
+    /// @{
+
+    /*!
+    @brief a type for an object
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes JSON objects as follows:
+    > An object is an unordered collection of zero or more name/value pairs,
+    > where a name is a string and a value is a string, number, boolean, null,
+    > object, or array.
+
+    To store objects in C++, a type is defined by the template parameters
+    described below.
+
+    @tparam ObjectType  the container to store objects (e.g., `std::map` or
+    `std::unordered_map`)
+    @tparam StringType the type of the keys or names (e.g., `std::string`).
+    The comparison function `std::less<StringType>` is used to order elements
+    inside the container.
+    @tparam AllocatorType the allocator to use for objects (e.g.,
+    `std::allocator`)
+
+    #### Default type
+
+    With the default values for @a ObjectType (`std::map`), @a StringType
+    (`std::string`), and @a AllocatorType (`std::allocator`), the default
+    value for @a object_t is:
+
+    @code {.cpp}
+    std::map<
+      std::string, // key_type
+      basic_json, // value_type
+      std::less<std::string>, // key_compare
+      std::allocator<std::pair<const std::string, basic_json>> // allocator_type
+    >
+    @endcode
+
+    #### Behavior
+
+    The choice of @a object_t influences the behavior of the JSON class. With
+    the default type, objects have the following behavior:
+
+    - When all names are unique, objects will be interoperable in the sense
+      that all software implementations receiving that object will agree on
+      the name-value mappings.
+    - When the names within an object are not unique, later stored name/value
+      pairs overwrite previously stored name/value pairs, leaving the used
+      names unique. For instance, `{"key": 1}` and `{"key": 2, "key": 1}` will
+      be treated as equal and both stored as `{"key": 1}`.
+    - Internally, name/value pairs are stored in lexicographical order of the
+      names. Objects will also be serialized (see @ref dump) in this order.
+      For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be stored
+      and serialized as `{"a": 2, "b": 1}`.
+    - When comparing objects, the order of the name/value pairs is irrelevant.
+      This makes objects interoperable in the sense that they will not be
+      affected by these differences. For instance, `{"b": 1, "a": 2}` and
+      `{"a": 2, "b": 1}` will be treated as equal.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the maximum depth of nesting.
+
+    In this class, the object's limit of nesting is not constraint explicitly.
+    However, a maximum depth of nesting may be introduced by the compiler or
+    runtime environment. A theoretical limit can be queried by calling the
+    @ref max_size function of a JSON object.
+
+    #### Storage
+
+    Objects are stored as pointers in a @ref basic_json type. That is, for any
+    access to object values, a pointer of type `object_t*` must be
+    dereferenced.
+
+    @sa @ref array_t -- type for an array value
+
+    @since version 1.0.0
+
+    @note The order name/value pairs are added to the object is *not*
+    preserved by the library. Therefore, iterating an object may return
+    name/value pairs in a different order than they were originally stored. In
+    fact, keys will be traversed in alphabetical order as `std::map` with
+    `std::less` is used by default. Please note this behavior conforms to [RFC
+    7159](http://rfc7159.net/rfc7159), because any order implements the
+    specified "unordered" nature of JSON objects.
+    */
+    using object_t = ObjectType<StringType,
+          basic_json,
+          std::less<StringType>,
+          AllocatorType<std::pair<const StringType,
+          basic_json>>>;
+
+    /*!
+    @brief a type for an array
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes JSON arrays as follows:
+    > An array is an ordered sequence of zero or more values.
+
+    To store objects in C++, a type is defined by the template parameters
+    explained below.
+
+    @tparam ArrayType  container type to store arrays (e.g., `std::vector` or
+    `std::list`)
+    @tparam AllocatorType  allocator to use for arrays (e.g., `std::allocator`)
+
+    #### Default type
+
+    With the default values for @a ArrayType (`std::vector`) and @a
+    AllocatorType (`std::allocator`), the default value for @a array_t is:
+
+    @code {.cpp}
+    std::vector<
+      basic_json, // value_type
+      std::allocator<basic_json> // allocator_type
+    >
+    @endcode
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the maximum depth of nesting.
+
+    In this class, the array's limit of nesting is not constraint explicitly.
+    However, a maximum depth of nesting may be introduced by the compiler or
+    runtime environment. A theoretical limit can be queried by calling the
+    @ref max_size function of a JSON array.
+
+    #### Storage
+
+    Arrays are stored as pointers in a @ref basic_json type. That is, for any
+    access to array values, a pointer of type `array_t*` must be dereferenced.
+
+    @sa @ref object_t -- type for an object value
+
+    @since version 1.0.0
+    */
+    using array_t = ArrayType<basic_json, AllocatorType<basic_json>>;
+
+    /*!
+    @brief a type for a string
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes JSON strings as follows:
+    > A string is a sequence of zero or more Unicode characters.
+
+    To store objects in C++, a type is defined by the template parameter
+    described below. Unicode values are split by the JSON class into
+    byte-sized characters during deserialization.
+
+    @tparam StringType  the container to store strings (e.g., `std::string`).
+    Note this container is used for keys/names in objects, see @ref object_t.
+
+    #### Default type
+
+    With the default values for @a StringType (`std::string`), the default
+    value for @a string_t is:
+
+    @code {.cpp}
+    std::string
+    @endcode
+
+    #### String comparison
+
+    [RFC 7159](http://rfc7159.net/rfc7159) states:
+    > Software implementations are typically required to test names of object
+    > members for equality. Implementations that transform the textual
+    > representation into sequences of Unicode code units and then perform the
+    > comparison numerically, code unit by code unit, are interoperable in the
+    > sense that implementations will agree in all cases on equality or
+    > inequality of two strings. For example, implementations that compare
+    > strings with escaped characters unconverted may incorrectly find that
+    > `"a\\b"` and `"a\u005Cb"` are not equal.
+
+    This implementation is interoperable as it does compare strings code unit
+    by code unit.
+
+    #### Storage
+
+    String values are stored as pointers in a @ref basic_json type. That is,
+    for any access to string values, a pointer of type `string_t*` must be
+    dereferenced.
+
+    @since version 1.0.0
+    */
+    using string_t = StringType;
+
+    /*!
+    @brief a type for a boolean
+
+    [RFC 7159](http://rfc7159.net/rfc7159) implicitly describes a boolean as a
+    type which differentiates the two literals `true` and `false`.
+
+    To store objects in C++, a type is defined by the template parameter @a
+    BooleanType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a BooleanType (`bool`), the default value for
+    @a boolean_t is:
+
+    @code {.cpp}
+    bool
+    @endcode
+
+    #### Storage
+
+    Boolean values are stored directly inside a @ref basic_json type.
+
+    @since version 1.0.0
+    */
+    using boolean_t = BooleanType;
+
+    /*!
+    @brief a type for a number (integer)
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows:
+    > The representation of numbers is similar to that used in most
+    > programming languages. A number is represented in base 10 using decimal
+    > digits. It contains an integer component that may be prefixed with an
+    > optional minus sign, which may be followed by a fraction part and/or an
+    > exponent part. Leading zeros are not allowed. (...) Numeric values that
+    > cannot be represented in the grammar below (such as Infinity and NaN)
+    > are not permitted.
+
+    This description includes both integer and floating-point numbers.
+    However, C++ allows more precise storage if it is known whether the number
+    is a signed integer, an unsigned integer or a floating-point number.
+    Therefore, three different types, @ref number_integer_t, @ref
+    number_unsigned_t and @ref number_float_t are used.
+
+    To store integer numbers in C++, a type is defined by the template
+    parameter @a NumberIntegerType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a NumberIntegerType (`int64_t`), the default
+    value for @a number_integer_t is:
+
+    @code {.cpp}
+    int64_t
+    @endcode
+
+    #### Default behavior
+
+    - The restrictions about leading zeros is not enforced in C++. Instead,
+      leading zeros in integer literals lead to an interpretation as octal
+      number. Internally, the value will be stored as decimal number. For
+      instance, the C++ integer literal `010` will be serialized to `8`.
+      During deserialization, leading zeros yield an error.
+    - Not-a-number (NaN) values will be serialized to `null`.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the range and precision of numbers.
+
+    When the default type is used, the maximal integer number that can be
+    stored is `9223372036854775807` (INT64_MAX) and the minimal integer number
+    that can be stored is `-9223372036854775808` (INT64_MIN). Integer numbers
+    that are out of range will yield over/underflow when used in a
+    constructor. During deserialization, too large or small integer numbers
+    will be automatically be stored as @ref number_unsigned_t or @ref
+    number_float_t.
+
+    [RFC 7159](http://rfc7159.net/rfc7159) further states:
+    > Note that when such software is used, numbers that are integers and are
+    > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense
+    > that implementations will agree exactly on their numeric values.
+
+    As this range is a subrange of the exactly supported range [INT64_MIN,
+    INT64_MAX], this class's integer type is interoperable.
+
+    #### Storage
+
+    Integer number values are stored directly inside a @ref basic_json type.
+
+    @sa @ref number_float_t -- type for number values (floating-point)
+
+    @sa @ref number_unsigned_t -- type for number values (unsigned integer)
+
+    @since version 1.0.0
+    */
+    using number_integer_t = NumberIntegerType;
+
+    /*!
+    @brief a type for a number (unsigned)
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows:
+    > The representation of numbers is similar to that used in most
+    > programming languages. A number is represented in base 10 using decimal
+    > digits. It contains an integer component that may be prefixed with an
+    > optional minus sign, which may be followed by a fraction part and/or an
+    > exponent part. Leading zeros are not allowed. (...) Numeric values that
+    > cannot be represented in the grammar below (such as Infinity and NaN)
+    > are not permitted.
+
+    This description includes both integer and floating-point numbers.
+    However, C++ allows more precise storage if it is known whether the number
+    is a signed integer, an unsigned integer or a floating-point number.
+    Therefore, three different types, @ref number_integer_t, @ref
+    number_unsigned_t and @ref number_float_t are used.
+
+    To store unsigned integer numbers in C++, a type is defined by the
+    template parameter @a NumberUnsignedType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a NumberUnsignedType (`uint64_t`), the
+    default value for @a number_unsigned_t is:
+
+    @code {.cpp}
+    uint64_t
+    @endcode
+
+    #### Default behavior
+
+    - The restrictions about leading zeros is not enforced in C++. Instead,
+      leading zeros in integer literals lead to an interpretation as octal
+      number. Internally, the value will be stored as decimal number. For
+      instance, the C++ integer literal `010` will be serialized to `8`.
+      During deserialization, leading zeros yield an error.
+    - Not-a-number (NaN) values will be serialized to `null`.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) specifies:
+    > An implementation may set limits on the range and precision of numbers.
+
+    When the default type is used, the maximal integer number that can be
+    stored is `18446744073709551615` (UINT64_MAX) and the minimal integer
+    number that can be stored is `0`. Integer numbers that are out of range
+    will yield over/underflow when used in a constructor. During
+    deserialization, too large or small integer numbers will be automatically
+    be stored as @ref number_integer_t or @ref number_float_t.
+
+    [RFC 7159](http://rfc7159.net/rfc7159) further states:
+    > Note that when such software is used, numbers that are integers and are
+    > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense
+    > that implementations will agree exactly on their numeric values.
+
+    As this range is a subrange (when considered in conjunction with the
+    number_integer_t type) of the exactly supported range [0, UINT64_MAX], this
+    class's integer type is interoperable.
+
+    #### Storage
+
+    Integer number values are stored directly inside a @ref basic_json type.
+
+    @sa @ref number_float_t -- type for number values (floating-point)
+
+    @sa @ref number_integer_t -- type for number values (integer)
+
+    @since version 2.0.0
+    */
+    using number_unsigned_t = NumberUnsignedType;
+
+    /*!
+    @brief a type for a number (floating-point)
+
+    [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows:
+    > The representation of numbers is similar to that used in most
+    > programming languages. A number is represented in base 10 using decimal
+    > digits. It contains an integer component that may be prefixed with an
+    > optional minus sign, which may be followed by a fraction part and/or an
+    > exponent part. Leading zeros are not allowed. (...) Numeric values that
+    > cannot be represented in the grammar below (such as Infinity and NaN)
+    > are not permitted.
+
+    This description includes both integer and floating-point numbers.
+    However, C++ allows more precise storage if it is known whether the number
+    is a signed integer, an unsigned integer or a floating-point number.
+    Therefore, three different types, @ref number_integer_t, @ref
+    number_unsigned_t and @ref number_float_t are used.
+
+    To store floating-point numbers in C++, a type is defined by the template
+    parameter @a NumberFloatType which chooses the type to use.
+
+    #### Default type
+
+    With the default values for @a NumberFloatType (`double`), the default
+    value for @a number_float_t is:
+
+    @code {.cpp}
+    double
+    @endcode
+
+    #### Default behavior
+
+    - The restrictions about leading zeros is not enforced in C++. Instead,
+      leading zeros in floating-point literals will be ignored. Internally,
+      the value will be stored as decimal number. For instance, the C++
+      floating-point literal `01.2` will be serialized to `1.2`. During
+      deserialization, leading zeros yield an error.
+    - Not-a-number (NaN) values will be serialized to `null`.
+
+    #### Limits
+
+    [RFC 7159](http://rfc7159.net/rfc7159) states:
+    > This specification allows implementations to set limits on the range and
+    > precision of numbers accepted. Since software that implements IEEE
+    > 754-2008 binary64 (double precision) numbers is generally available and
+    > widely used, good interoperability can be achieved by implementations
+    > that expect no more precision or range than these provide, in the sense
+    > that implementations will approximate JSON numbers within the expected
+    > precision.
+
+    This implementation does exactly follow this approach, as it uses double
+    precision floating-point numbers. Note values smaller than
+    `-1.79769313486232e+308` and values greater than `1.79769313486232e+308`
+    will be stored as NaN internally and be serialized to `null`.
+
+    #### Storage
+
+    Floating-point number values are stored directly inside a @ref basic_json
+    type.
+
+    @sa @ref number_integer_t -- type for number values (integer)
+
+    @sa @ref number_unsigned_t -- type for number values (unsigned integer)
+
+    @since version 1.0.0
+    */
+    using number_float_t = NumberFloatType;
+
+    /// @}
+
+
+    ///////////////////////////
+    // JSON type enumeration //
+    ///////////////////////////
+
+    /*!
+    @brief the JSON type enumeration
+
+    This enumeration collects the different JSON types. It is internally used
+    to distinguish the stored values, and the functions @ref is_null(), @ref
+    is_object(), @ref is_array(), @ref is_string(), @ref is_boolean(), @ref
+    is_number(), and @ref is_discarded() rely on it.
+
+    @since version 1.0.0
+    */
+    enum class value_t : uint8_t
+    {
+        null,            ///< null value
+        object,          ///< object (unordered set of name/value pairs)
+        array,           ///< array (ordered collection of values)
+        string,          ///< string value
+        boolean,         ///< boolean value
+        number_integer,  ///< number value (integer)
+        number_unsigned, ///< number value (unsigned integer)
+        number_float,    ///< number value (floating-point)
+        discarded        ///< discarded by the the parser callback function
+    };
+
+
+  private:
+
+    /*!
+    @brief a type to hold JSON type information
+
+    This bitfield type holds information about JSON types. It is internally
+    used to hold the basic JSON type enumeration, as well as additional
+    information in the case of values that have been parsed from a string
+    including whether of not it was created directly or parsed, and in the
+    case of floating point numbers the number of significant figures in the
+    original representaiton and if it was in exponential form, if a '+' was
+    included in the exponent and the capitilization of the exponent marker.
+    The sole purpose of this information is to permit accurate round trips.
+
+    @since version 2.0.0
+    */
+    union type_data_t
+    {
+        struct
+        {
+            /// the type of the value (@ref value_t)
+            uint16_t type : 4;
+            /// whether the number was parsed from a string
+            uint16_t parsed : 1;
+            /// whether parsed number contained an exponent ('e'/'E')
+            uint16_t has_exp : 1;
+            /// whether parsed number contained a plus in the exponent
+            uint16_t exp_plus : 1;
+            /// whether parsed number's exponent was capitalized ('E')
+            uint16_t exp_cap : 1;
+            /// the number of figures for a parsed number
+            uint16_t precision : 8;
+        } bits;
+        uint16_t data;
+
+        /// return the type as value_t
+        operator value_t() const
+        {
+            return static_cast<value_t>(bits.type);
+        }
+
+        /// test type for equality (ignore other fields)
+        bool operator==(const value_t& rhs) const
+        {
+            return static_cast<value_t>(bits.type) == rhs;
+        }
+
+        /// assignment
+        type_data_t& operator=(value_t rhs)
+        {
+            bits.type = static_cast<uint16_t>(rhs) & 15; // avoid overflow
+            return *this;
+        }
+
+        /// construct from value_t
+        type_data_t(value_t t) noexcept
+        {
+            *reinterpret_cast<uint16_t*>(this) = 0;
+            bits.type = static_cast<uint16_t>(t) & 15; // avoid overflow
+        }
+
+        /// default constructor
+        type_data_t() noexcept
+        {
+            data = 0;
+            bits.type = reinterpret_cast<uint16_t>(value_t::null);
+        }
+    };
+
+    /// helper for exception-safe object creation
+    template<typename T, typename... Args>
+    static T* create(Args&& ... args)
+    {
+        AllocatorType<T> alloc;
+        auto deleter = [&](T * object)
+        {
+            alloc.deallocate(object, 1);
+        };
+        std::unique_ptr<T, decltype(deleter)> object(alloc.allocate(1), deleter);
+        alloc.construct(object.get(), std::forward<Args>(args)...);
+        return object.release();
+    }
+
+    ////////////////////////
+    // JSON value storage //
+    ////////////////////////
+
+    /*!
+    @brief a JSON value
+
+    The actual storage for a JSON value of the @ref basic_json class.
+
+    @since version 1.0.0
+    */
+    union json_value
+    {
+        /// object (stored with pointer to save storage)
+        object_t* object;
+        /// array (stored with pointer to save storage)
+        array_t* array;
+        /// string (stored with pointer to save storage)
+        string_t* string;
+        /// boolean
+        boolean_t boolean;
+        /// number (integer)
+        number_integer_t number_integer;
+        /// number (unsigned integer)
+        number_unsigned_t number_unsigned;
+        /// number (floating-point)
+        number_float_t number_float;
+
+        /// default constructor (for null values)
+        json_value() = default;
+        /// constructor for booleans
+        json_value(boolean_t v) noexcept : boolean(v) {}
+        /// constructor for numbers (integer)
+        json_value(number_integer_t v) noexcept : number_integer(v) {}
+        /// constructor for numbers (unsigned)
+        json_value(number_unsigned_t v) noexcept : number_unsigned(v) {}
+        /// constructor for numbers (floating-point)
+        json_value(number_float_t v) noexcept : number_float(v) {}
+        /// constructor for empty values of a given type
+        json_value(value_t t)
+        {
+            switch (t)
+            {
+                case value_t::object:
+                {
+                    object = create<object_t>();
+                    break;
+                }
+
+                case value_t::array:
+                {
+                    array = create<array_t>();
+                    break;
+                }
+
+                case value_t::string:
+                {
+                    string = create<string_t>("");
+                    break;
+                }
+
+                case value_t::boolean:
+                {
+                    boolean = boolean_t(false);
+                    break;
+                }
+
+                case value_t::number_integer:
+                {
+                    number_integer = number_integer_t(0);
+                    break;
+                }
+
+                case value_t::number_unsigned:
+                {
+                    number_unsigned = number_unsigned_t(0);
+                    break;
+                }
+
+                case value_t::number_float:
+                {
+                    number_float = number_float_t(0.0);
+                    break;
+                }
+
+                default:
+                {
+                    break;
+                }
+            }
+        }
+
+        /// constructor for strings
+        json_value(const string_t& value)
+        {
+            string = create<string_t>(value);
+        }
+
+        /// constructor for objects
+        json_value(const object_t& value)
+        {
+            object = create<object_t>(value);
+        }
+
+        /// constructor for arrays
+        json_value(const array_t& value)
+        {
+            array = create<array_t>(value);
+        }
+    };
+
+
+  public:
+    //////////////////////////
+    // JSON parser callback //
+    //////////////////////////
+
+    /*!
+    @brief JSON callback events
+
+    This enumeration lists the parser events that can trigger calling a
+    callback function of type @ref parser_callback_t during parsing.
+
+    @since version 1.0.0
+    */
+    enum class parse_event_t : uint8_t
+    {
+        /// the parser read `{` and started to process a JSON object
+        object_start,
+        /// the parser read `}` and finished processing a JSON object
+        object_end,
+        /// the parser read `[` and started to process a JSON array
+        array_start,
+        /// the parser read `]` and finished processing a JSON array
+        array_end,
+        /// the parser read a key of a value in an object
+        key,
+        /// the parser finished reading a JSON value
+        value
+    };
+
+    /*!
+    @brief per-element parser callback type
+
+    With a parser callback function, the result of parsing a JSON text can be
+    influenced. When passed to @ref parse(std::istream&, parser_callback_t) or
+    @ref parse(const string_t&, parser_callback_t), it is called on certain
+    events (passed as @ref parse_event_t via parameter @a event) with a set
+    recursion depth @a depth and context JSON value @a parsed. The return
+    value of the callback function is a boolean indicating whether the element
+    that emitted the callback shall be kept or not.
+
+    We distinguish six scenarios (determined by the event type) in which the
+    callback function can be called. The following table describes the values
+    of the parameters @a depth, @a event, and @a parsed.
+
+    parameter @a event | description | parameter @a depth | parameter @a parsed
+    ------------------ | ----------- | ------------------ | -------------------
+    parse_event_t::object_start | the parser read `{` and started to process a JSON object | depth of the parent of the JSON object | a JSON value with type discarded
+    parse_event_t::key | the parser read a key of a value in an object | depth of the currently parsed JSON object | a JSON string containing the key
+    parse_event_t::object_end | the parser read `}` and finished processing a JSON object | depth of the parent of the JSON object | the parsed JSON object
+    parse_event_t::array_start | the parser read `[` and started to process a JSON array | depth of the parent of the JSON array | a JSON value with type discarded
+    parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array
+    parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value
+
+    Discarding a value (i.e., returning `false`) has different effects
+    depending on the context in which function was called:
+
+    - Discarded values in structured types are skipped. That is, the parser
+      will behave as if the discarded value was never read.
+    - In case a value outside a structured type is skipped, it is replaced
+      with `null`. This case happens if the top-level element is skipped.
+
+    @param[in] depth  the depth of the recursion during parsing
+
+    @param[in] event  an event of type parse_event_t indicating the context in
+    the callback function has been called
+
+    @param[in,out] parsed  the current intermediate parse result; note that
+    writing to this value has no effect for parse_event_t::key events
+
+    @return Whether the JSON value which called the function during parsing
+    should be kept (`true`) or not (`false`). In the latter case, it is either
+    skipped completely or replaced by an empty discarded object.
+
+    @sa @ref parse(std::istream&, parser_callback_t) or
+    @ref parse(const string_t&, parser_callback_t) for examples
+
+    @since version 1.0.0
+    */
+    using parser_callback_t = std::function<bool(int depth, parse_event_t event, basic_json& parsed)>;
+
+
+    //////////////////
+    // constructors //
+    //////////////////
+
+    /// @name constructors and destructors
+    /// @{
+
+    /*!
+    @brief create an empty value with a given type
+
+    Create an empty JSON value with a given type. The value will be default
+    initialized with an empty value which depends on the type:
+
+    Value type  | initial value
+    ----------- | -------------
+    null        | `null`
+    boolean     | `false`
+    string      | `""`
+    number      | `0`
+    object      | `{}`
+    array       | `[]`
+
+    @param[in] value_type  the type of the value to create
+
+    @complexity Constant.
+
+    @throw std::bad_alloc if allocation for object, array, or string value
+    fails
+
+    @liveexample{The following code shows the constructor for different @ref
+    value_t values,basic_json__value_t}
+
+    @sa @ref basic_json(std::nullptr_t) -- create a `null` value
+    @sa @ref basic_json(boolean_t value) -- create a boolean value
+    @sa @ref basic_json(const string_t&) -- create a string value
+    @sa @ref basic_json(const object_t&) -- create a object value
+    @sa @ref basic_json(const array_t&) -- create a array value
+    @sa @ref basic_json(const number_float_t) -- create a number
+    (floating-point) value
+    @sa @ref basic_json(const number_integer_t) -- create a number (integer)
+    value
+    @sa @ref basic_json(const number_unsigned_t) -- create a number (unsigned)
+    value
+
+    @since version 1.0.0
+    */
+    basic_json(const value_t value_type)
+        : m_type(value_type), m_value(value_type)
+    {}
+
+    /*!
+    @brief create a null object (implicitly)
+
+    Create a `null` JSON value. This is the implicit version of the `null`
+    value constructor as it takes no parameters.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this constructor never throws
+    exceptions.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - As postcondition, it holds: `basic_json().empty() == true`.
+
+    @liveexample{The following code shows the constructor for a `null` JSON
+    value.,basic_json}
+
+    @sa @ref basic_json(std::nullptr_t) -- create a `null` value
+
+    @since version 1.0.0
+    */
+    basic_json() = default;
+
+    /*!
+    @brief create a null object (explicitly)
+
+    Create a `null` JSON value. This is the explicitly version of the `null`
+    value constructor as it takes a null pointer as parameter. It allows to
+    create `null` values by explicitly assigning a `nullptr` to a JSON value.
+    The passed null pointer itself is not read -- it is only used to choose
+    the right constructor.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this constructor never throws
+    exceptions.
+
+    @liveexample{The following code shows the constructor with null pointer
+    parameter.,basic_json__nullptr_t}
+
+    @sa @ref basic_json() -- default constructor (implicitly creating a `null`
+    value)
+
+    @since version 1.0.0
+    */
+    basic_json(std::nullptr_t) noexcept
+        : basic_json(value_t::null)
+    {}
+
+    /*!
+    @brief create an object (explicit)
+
+    Create an object JSON value with a given content.
+
+    @param[in] val  a value for the object
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for object value fails
+
+    @liveexample{The following code shows the constructor with an @ref
+    object_t parameter.,basic_json__object_t}
+
+    @sa @ref basic_json(const CompatibleObjectType&) -- create an object value
+    from a compatible STL container
+
+    @since version 1.0.0
+    */
+    basic_json(const object_t& val)
+        : m_type(value_t::object), m_value(val)
+    {}
+
+    /*!
+    @brief create an object (implicit)
+
+    Create an object JSON value with a given content. This constructor allows
+    any type @a CompatibleObjectType that can be used to construct values of
+    type @ref object_t.
+
+    @tparam CompatibleObjectType An object type whose `key_type` and
+    `value_type` is compatible to @ref object_t. Examples include `std::map`,
+    `std::unordered_map`, `std::multimap`, and `std::unordered_multimap` with
+    a `key_type` of `std::string`, and a `value_type` from which a @ref
+    basic_json value can be constructed.
+
+    @param[in] val  a value for the object
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for object value fails
+
+    @liveexample{The following code shows the constructor with several
+    compatible object type parameters.,basic_json__CompatibleObjectType}
+
+    @sa @ref basic_json(const object_t&) -- create an object value
+
+    @since version 1.0.0
+    */
+    template <class CompatibleObjectType, typename
+              std::enable_if<
+                  std::is_constructible<typename object_t::key_type, typename CompatibleObjectType::key_type>::value and
+                  std::is_constructible<basic_json, typename CompatibleObjectType::mapped_type>::value, int>::type
+              = 0>
+    basic_json(const CompatibleObjectType& val)
+        : m_type(value_t::object)
+    {
+        using std::begin;
+        using std::end;
+        m_value.object = create<object_t>(begin(val), end(val));
+    }
+
+    /*!
+    @brief create an array (explicit)
+
+    Create an array JSON value with a given content.
+
+    @param[in] val  a value for the array
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for array value fails
+
+    @liveexample{The following code shows the constructor with an @ref array_t
+    parameter.,basic_json__array_t}
+
+    @sa @ref basic_json(const CompatibleArrayType&) -- create an array value
+    from a compatible STL containers
+
+    @since version 1.0.0
+    */
+    basic_json(const array_t& val)
+        : m_type(value_t::array), m_value(val)
+    {}
+
+    /*!
+    @brief create an array (implicit)
+
+    Create an array JSON value with a given content. This constructor allows
+    any type @a CompatibleArrayType that can be used to construct values of
+    type @ref array_t.
+
+    @tparam CompatibleArrayType An object type whose `value_type` is
+    compatible to @ref array_t. Examples include `std::vector`, `std::deque`,
+    `std::list`, `std::forward_list`, `std::array`, `std::set`,
+    `std::unordered_set`, `std::multiset`, and `unordered_multiset` with a
+    `value_type` from which a @ref basic_json value can be constructed.
+
+    @param[in] val  a value for the array
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for array value fails
+
+    @liveexample{The following code shows the constructor with several
+    compatible array type parameters.,basic_json__CompatibleArrayType}
+
+    @sa @ref basic_json(const array_t&) -- create an array value
+
+    @since version 1.0.0
+    */
+    template <class CompatibleArrayType, typename
+              std::enable_if<
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::const_iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::reverse_iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename basic_json_t::const_reverse_iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename array_t::iterator>::value and
+                  not std::is_same<CompatibleArrayType, typename array_t::const_iterator>::value and
+                  std::is_constructible<basic_json, typename CompatibleArrayType::value_type>::value, int>::type
+              = 0>
+    basic_json(const CompatibleArrayType& val)
+        : m_type(value_t::array)
+    {
+        using std::begin;
+        using std::end;
+        m_value.array = create<array_t>(begin(val), end(val));
+    }
+
+    /*!
+    @brief create a string (explicit)
+
+    Create an string JSON value with a given content.
+
+    @param[in] val  a value for the string
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for string value fails
+
+    @liveexample{The following code shows the constructor with an @ref
+    string_t parameter.,basic_json__string_t}
+
+    @sa @ref basic_json(const typename string_t::value_type*) -- create a
+    string value from a character pointer
+    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
+    from a compatible string container
+
+    @since version 1.0.0
+    */
+    basic_json(const string_t& val)
+        : m_type(value_t::string), m_value(val)
+    {}
+
+    /*!
+    @brief create a string (explicit)
+
+    Create a string JSON value with a given content.
+
+    @param[in] val  a literal value for the string
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for string value fails
+
+    @liveexample{The following code shows the constructor with string literal
+    parameter.,basic_json__string_t_value_type}
+
+    @sa @ref basic_json(const string_t&) -- create a string value
+    @sa @ref basic_json(const CompatibleStringType&) -- create a string value
+    from a compatible string container
+
+    @since version 1.0.0
+    */
+    basic_json(const typename string_t::value_type* val)
+        : basic_json(string_t(val))
+    {}
+
+    /*!
+    @brief create a string (implicit)
+
+    Create a string JSON value with a given content.
+
+    @param[in] val  a value for the string
+
+    @tparam CompatibleStringType an string type which is compatible to @ref
+    string_t, for instance `std::string`.
+
+    @complexity Linear in the size of the passed @a val.
+
+    @throw std::bad_alloc if allocation for string value fails
+
+    @liveexample{The following code shows the construction of a string value
+    from a compatible type.,basic_json__CompatibleStringType}
+
+    @sa @ref basic_json(const string_t&) -- create a string value
+    @sa @ref basic_json(const typename string_t::value_type*) -- create a
+    string value from a character pointer
+
+    @since version 1.0.0
+    */
+    template <class CompatibleStringType, typename
+              std::enable_if<
+                  std::is_constructible<string_t, CompatibleStringType>::value, int>::type
+              = 0>
+    basic_json(const CompatibleStringType& val)
+        : basic_json(string_t(val))
+    {}
+
+    /*!
+    @brief create a boolean (explicit)
+
+    Creates a JSON boolean type from a given value.
+
+    @param[in] val  a boolean value to store
+
+    @complexity Constant.
+
+    @liveexample{The example below demonstrates boolean
+    values.,basic_json__boolean_t}
+
+    @since version 1.0.0
+    */
+    basic_json(boolean_t val) noexcept
+        : m_type(value_t::boolean), m_value(val)
+    {}
+
+    /*!
+    @brief create an integer number (explicit)
+
+    Create an integer number JSON value with a given content.
+
+    @tparam T A helper type to remove this function via SFINAE in case @ref
+    number_integer_t is the same as `int`. In this case, this constructor
+    would have the same signature as @ref basic_json(const int value). Note
+    the helper type @a T is not visible in this constructor's interface.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of an integer
+    number value.,basic_json__number_integer_t}
+
+    @sa @ref basic_json(const int) -- create a number value (integer)
+    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
+    value (integer) from a compatible number type
+
+    @since version 1.0.0
+    */
+    template<typename T,
+             typename std::enable_if<
+                 not (std::is_same<T, int>::value)
+                 and std::is_same<T, number_integer_t>::value
+                 , int>::type
+             = 0>
+    basic_json(const number_integer_t val) noexcept
+        : m_type(value_t::number_integer), m_value(val)
+    {}
+
+    /*!
+    @brief create an integer number from an enum type (explicit)
+
+    Create an integer number JSON value with a given content.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @note This constructor allows to pass enums directly to a constructor. As
+    C++ has no way of specifying the type of an anonymous enum explicitly, we
+    can only rely on the fact that such values implicitly convert to int. As
+    int may already be the same type of number_integer_t, we may need to
+    switch off the constructor @ref basic_json(const number_integer_t).
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of an integer
+    number value from an anonymous enum.,basic_json__const_int}
+
+    @sa @ref basic_json(const number_integer_t) -- create a number value
+    (integer)
+    @sa @ref basic_json(const CompatibleNumberIntegerType) -- create a number
+    value (integer) from a compatible number type
+
+    @since version 1.0.0
+    */
+    basic_json(const int val) noexcept
+        : m_type(value_t::number_integer),
+          m_value(static_cast<number_integer_t>(val))
+    {}
+
+    /*!
+    @brief create an integer number (implicit)
+
+    Create an integer number JSON value with a given content. This constructor
+    allows any type @a CompatibleNumberIntegerType that can be used to
+    construct values of type @ref number_integer_t.
+
+    @tparam CompatibleNumberIntegerType An integer type which is compatible to
+    @ref number_integer_t. Examples include the types `int`, `int32_t`,
+    `long`, and `short`.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of several integer
+    number values from compatible
+    types.,basic_json__CompatibleIntegerNumberType}
+
+    @sa @ref basic_json(const number_integer_t) -- create a number value
+    (integer)
+    @sa @ref basic_json(const int) -- create a number value (integer)
+
+    @since version 1.0.0
+    */
+    template<typename CompatibleNumberIntegerType, typename
+             std::enable_if<
+                 std::is_constructible<number_integer_t, CompatibleNumberIntegerType>::value and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_integer and
+                 std::numeric_limits<CompatibleNumberIntegerType>::is_signed,
+                 CompatibleNumberIntegerType>::type
+             = 0>
+    basic_json(const CompatibleNumberIntegerType val) noexcept
+        : m_type(value_t::number_integer),
+          m_value(static_cast<number_integer_t>(val))
+    {}
+
+    /*!
+    @brief create an unsigned integer number (explicit)
+
+    Create an unsigned integer number JSON value with a given content.
+
+    @tparam T  helper type to compare number_unsigned_t and unsigned int
+    (not visible in) the interface.
+
+    @param[in] val  an integer to create a JSON number from
+
+    @complexity Constant.
+
+    @sa @ref basic_json(const CompatibleNumberUnsignedType) -- create a number
+    value (unsigned integer) from a compatible number type
+
+    @since version 2.0.0
+    */
+    template<typename T,
+             typename std::enable_if<
+                 not (std::is_same<T, int>::value)
+                 and std::is_same<T, number_unsigned_t>::value
+                 , int>::type
+             = 0>
+    basic_json(const number_unsigned_t val) noexcept
+        : m_type(value_t::number_unsigned), m_value(val)
+    {}
+
+    /*!
+    @brief create an unsigned number (implicit)
+
+    Create an unsigned number JSON value with a given content. This
+    constructor allows any type @a CompatibleNumberUnsignedType that can be
+    used to construct values of type @ref number_unsigned_t.
+
+    @tparam CompatibleNumberUnsignedType An integer type which is compatible
+    to @ref number_unsigned_t. Examples may include the types `unsigned int`,
+    `uint32_t`, or `unsigned short`.
+
+    @param[in] val  an unsigned integer to create a JSON number from
+
+    @complexity Constant.
+
+    @sa @ref basic_json(const number_unsigned_t) -- create a number value
+    (unsigned)
+
+    @since version 2.0.0
+    */
+    template < typename CompatibleNumberUnsignedType, typename
+               std::enable_if <
+                   std::is_constructible<number_unsigned_t, CompatibleNumberUnsignedType>::value and
+                   std::numeric_limits<CompatibleNumberUnsignedType>::is_integer and
+                   !std::numeric_limits<CompatibleNumberUnsignedType>::is_signed,
+                   CompatibleNumberUnsignedType >::type
+               = 0 >
+    basic_json(const CompatibleNumberUnsignedType val) noexcept
+        : m_type(value_t::number_unsigned),
+          m_value(static_cast<number_unsigned_t>(val))
+    {}
+
+    /*!
+    @brief create a floating-point number (explicit)
+
+    Create a floating-point number JSON value with a given content.
+
+    @param[in] val  a floating-point value to create a JSON number from
+
+    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
+    disallows NaN values:
+    > Numeric values that cannot be represented in the grammar below (such as
+    > Infinity and NaN) are not permitted.
+    In case the parameter @a val is not a number, a JSON null value is
+    created instead.
+
+    @complexity Constant.
+
+    @liveexample{The following example creates several floating-point
+    values.,basic_json__number_float_t}
+
+    @sa @ref basic_json(const CompatibleNumberFloatType) -- create a number
+    value (floating-point) from a compatible number type
+
+    @since version 1.0.0
+    */
+    basic_json(const number_float_t val) noexcept
+        : m_type(value_t::number_float), m_value(val)
+    {
+        // replace infinity and NAN by null
+        if (not std::isfinite(val))
+        {
+            m_type = value_t::null;
+            m_value = json_value();
+        }
+    }
+
+    /*!
+    @brief create an floating-point number (implicit)
+
+    Create an floating-point number JSON value with a given content. This
+    constructor allows any type @a CompatibleNumberFloatType that can be used
+    to construct values of type @ref number_float_t.
+
+    @tparam CompatibleNumberFloatType A floating-point type which is
+    compatible to @ref number_float_t. Examples may include the types `float`
+    or `double`.
+
+    @param[in] val  a floating-point to create a JSON number from
+
+    @note [RFC 7159](http://www.rfc-editor.org/rfc/rfc7159.txt), section 6
+    disallows NaN values:
+    > Numeric values that cannot be represented in the grammar below (such as
+    > Infinity and NaN) are not permitted.
+    In case the parameter @a val is not a number, a JSON null value is
+    created instead.
+
+    @complexity Constant.
+
+    @liveexample{The example below shows the construction of several
+    floating-point number values from compatible
+    types.,basic_json__CompatibleNumberFloatType}
+
+    @sa @ref basic_json(const number_float_t) -- create a number value
+    (floating-point)
+
+    @since version 1.0.0
+    */
+    template<typename CompatibleNumberFloatType, typename = typename
+             std::enable_if<
+                 std::is_constructible<number_float_t, CompatibleNumberFloatType>::value and
+                 std::is_floating_point<CompatibleNumberFloatType>::value>::type
+             >
+    basic_json(const CompatibleNumberFloatType val) noexcept
+        : basic_json(number_float_t(val))
+    {}
+
+    /*!
+    @brief create a container (array or object) from an initializer list
+
+    Creates a JSON value of type array or object from the passed initializer
+    list @a init. In case @a type_deduction is `true` (default), the type of
+    the JSON value to be created is deducted from the initializer list @a init
+    according to the following rules:
+
+    1. If the list is empty, an empty JSON object value `{}` is created.
+    2. If the list consists of pairs whose first element is a string, a JSON
+    object value is created where the first elements of the pairs are treated
+    as keys and the second elements are as values.
+    3. In all other cases, an array is created.
+
+    The rules aim to create the best fit between a C++ initializer list and
+    JSON values. The rationale is as follows:
+
+    1. The empty initializer list is written as `{}` which is exactly an empty
+    JSON object.
+    2. C++ has now way of describing mapped types other than to list a list of
+    pairs. As JSON requires that keys must be of type string, rule 2 is the
+    weakest constraint one can pose on initializer lists to interpret them as
+    an object.
+    3. In all other cases, the initializer list could not be interpreted as
+    JSON object type, so interpreting it as JSON array type is safe.
+
+    With the rules described above, the following JSON values cannot be
+    expressed by an initializer list:
+
+    - the empty array (`[]`): use @ref array(std::initializer_list<basic_json>)
+      with an empty initializer list in this case
+    - arrays whose elements satisfy rule 2: use @ref
+      array(std::initializer_list<basic_json>) with the same initializer list
+      in this case
+
+    @note When used without parentheses around an empty initializer list, @ref
+    basic_json() is called instead of this function, yielding the JSON null
+    value.
+
+    @param[in] init  initializer list with JSON values
+
+    @param[in] type_deduction internal parameter; when set to `true`, the type
+    of the JSON value is deducted from the initializer list @a init; when set
+    to `false`, the type provided via @a manual_type is forced. This mode is
+    used by the functions @ref array(std::initializer_list<basic_json>) and
+    @ref object(std::initializer_list<basic_json>).
+
+    @param[in] manual_type internal parameter; when @a type_deduction is set
+    to `false`, the created JSON value will use the provided type (only @ref
+    value_t::array and @ref value_t::object are valid); when @a type_deduction
+    is set to `true`, this parameter has no effect
+
+    @throw std::domain_error if @a type_deduction is `false`, @a manual_type
+    is `value_t::object`, but @a init contains an element which is not a pair
+    whose first element is a string; example: `"cannot create object from
+    initializer list"`
+
+    @complexity Linear in the size of the initializer list @a init.
+
+    @liveexample{The example below shows how JSON values are created from
+    initializer lists.,basic_json__list_init_t}
+
+    @sa @ref array(std::initializer_list<basic_json>) -- create a JSON array
+    value from an initializer list
+    @sa @ref object(std::initializer_list<basic_json>) -- create a JSON object
+    value from an initializer list
+
+    @since version 1.0.0
+    */
+    basic_json(std::initializer_list<basic_json> init,
+               bool type_deduction = true,
+               value_t manual_type = value_t::array)
+    {
+        // the initializer list could describe an object
+        bool is_an_object = true;
+
+        // check if each element is an array with two elements whose first
+        // element is a string
+        for (const auto& element : init)
+        {
+            if (not element.is_array() or element.size() != 2
+                    or not element[0].is_string())
+            {
+                // we found an element that makes it impossible to use the
+                // initializer list as object
+                is_an_object = false;
+                break;
+            }
+        }
+
+        // adjust type if type deduction is not wanted
+        if (not type_deduction)
+        {
+            // if array is wanted, do not create an object though possible
+            if (manual_type == value_t::array)
+            {
+                is_an_object = false;
+            }
+
+            // if object is wanted but impossible, throw an exception
+            if (manual_type == value_t::object and not is_an_object)
+            {
+                throw std::domain_error("cannot create object from initializer list");
+            }
+        }
+
+        if (is_an_object)
+        {
+            // the initializer list is a list of pairs -> create object
+            m_type = value_t::object;
+            m_value = value_t::object;
+
+            assert(m_value.object != nullptr);
+
+            for (auto& element : init)
+            {
+                m_value.object->emplace(*(element[0].m_value.string), element[1]);
+            }
+        }
+        else
+        {
+            // the initializer list describes an array -> create array
+            m_type = value_t::array;
+            m_value.array = create<array_t>(init);
+        }
+    }
+
+    /*!
+    @brief explicitly create an array from an initializer list
+
+    Creates a JSON array value from a given initializer list. That is, given a
+    list of values `a, b, c`, creates the JSON value `[a, b, c]`. If the
+    initializer list is empty, the empty array `[]` is created.
+
+    @note This function is only needed to express two edge cases that cannot
+    be realized with the initializer list constructor (@ref
+    basic_json(std::initializer_list<basic_json>, bool, value_t)). These cases
+    are:
+    1. creating an array whose elements are all pairs whose first element is a
+    string -- in this case, the initializer list constructor would create an
+    object, taking the first elements as keys
+    2. creating an empty array -- passing the empty initializer list to the
+    initializer list constructor yields an empty object
+
+    @param[in] init  initializer list with JSON values to create an array from
+    (optional)
+
+    @return JSON array value
+
+    @complexity Linear in the size of @a init.
+
+    @liveexample{The following code shows an example for the `array`
+    function.,array}
+
+    @sa @ref basic_json(std::initializer_list<basic_json>, bool, value_t) --
+    create a JSON value from an initializer list
+    @sa @ref object(std::initializer_list<basic_json>) -- create a JSON object
+    value from an initializer list
+
+    @since version 1.0.0
+    */
+    static basic_json array(std::initializer_list<basic_json> init =
+                                std::initializer_list<basic_json>())
+    {
+        return basic_json(init, false, value_t::array);
+    }
+
+    /*!
+    @brief explicitly create an object from an initializer list
+
+    Creates a JSON object value from a given initializer list. The initializer
+    lists elements must be pairs, and their first elements must be strings. If
+    the initializer list is empty, the empty object `{}` is created.
+
+    @note This function is only added for symmetry reasons. In contrast to the
+    related function @ref array(std::initializer_list<basic_json>), there are
+    no cases which can only be expressed by this function. That is, any
+    initializer list @a init can also be passed to the initializer list
+    constructor @ref basic_json(std::initializer_list<basic_json>, bool,
+    value_t).
+
+    @param[in] init  initializer list to create an object from (optional)
+
+    @return JSON object value
+
+    @throw std::domain_error if @a init is not a pair whose first elements are
+    strings; thrown by
+    @ref basic_json(std::initializer_list<basic_json>, bool, value_t)
+
+    @complexity Linear in the size of @a init.
+
+    @liveexample{The following code shows an example for the `object`
+    function.,object}
+
+    @sa @ref basic_json(std::initializer_list<basic_json>, bool, value_t) --
+    create a JSON value from an initializer list
+    @sa @ref array(std::initializer_list<basic_json>) -- create a JSON array
+    value from an initializer list
+
+    @since version 1.0.0
+    */
+    static basic_json object(std::initializer_list<basic_json> init =
+                                 std::initializer_list<basic_json>())
+    {
+        return basic_json(init, false, value_t::object);
+    }
+
+    /*!
+    @brief construct an array with count copies of given value
+
+    Constructs a JSON array value by creating @a cnt copies of a passed value.
+    In case @a cnt is `0`, an empty array is created. As postcondition,
+    `std::distance(begin(),end()) == cnt` holds.
+
+    @param[in] cnt  the number of JSON copies of @a val to create
+    @param[in] val  the JSON value to copy
+
+    @complexity Linear in @a cnt.
+
+    @liveexample{The following code shows examples for the @ref
+    basic_json(size_type\, const basic_json&)
+    constructor.,basic_json__size_type_basic_json}
+
+    @since version 1.0.0
+    */
+    basic_json(size_type cnt, const basic_json& val)
+        : m_type(value_t::array)
+    {
+        m_value.array = create<array_t>(cnt, val);
+    }
+
+    /*!
+    @brief construct a JSON container given an iterator range
+
+    Constructs the JSON value with the contents of the range `[first, last)`.
+    The semantics depends on the different types a JSON value can have:
+    - In case of primitive types (number, boolean, or string), @a first must
+      be `begin()` and @a last must be `end()`. In this case, the value is
+      copied. Otherwise, std::out_of_range is thrown.
+    - In case of structured types (array, object), the constructor behaves as
+      similar versions for `std::vector`.
+    - In case of a null type, std::domain_error is thrown.
+
+    @tparam InputIT an input iterator type (@ref iterator or @ref
+    const_iterator)
+
+    @param[in] first begin of the range to copy from (included)
+    @param[in] last end of the range to copy from (excluded)
+
+    @throw std::domain_error if iterators are not compatible; that is, do not
+    belong to the same JSON value; example: `"iterators are not compatible"`
+    @throw std::out_of_range if iterators are for a primitive type (number,
+    boolean, or string) where an out of range error can be detected easily;
+    example: `"iterators out of range"`
+    @throw std::bad_alloc if allocation for object, array, or string fails
+    @throw std::domain_error if called with a null value; example: `"cannot
+    use construct with iterators from null"`
+
+    @complexity Linear in distance between @a first and @a last.
+
+    @liveexample{The example below shows several ways to create JSON values by
+    specifying a subrange with iterators.,basic_json__InputIt_InputIt}
+
+    @since version 1.0.0
+    */
+    template <class InputIT, typename
+              std::enable_if<
+                  std::is_same<InputIT, typename basic_json_t::iterator>::value or
+                  std::is_same<InputIT, typename basic_json_t::const_iterator>::value
+                  , int>::type
+              = 0>
+    basic_json(InputIT first, InputIT last) : m_type(first.m_object->m_type)
+    {
+        // make sure iterator fits the current value
+        if (first.m_object != last.m_object)
+        {
+            throw std::domain_error("iterators are not compatible");
+        }
+
+        // check if iterator range is complete for primitive values
+        switch (m_type)
+        {
+            case value_t::boolean:
+            case value_t::number_float:
+            case value_t::number_integer:
+            case value_t::number_unsigned:
+            case value_t::string:
+            {
+                if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
+                {
+                    throw std::out_of_range("iterators out of range");
+                }
+                break;
+            }
+
+            default:
+            {
+                break;
+            }
+        }
+
+        switch (m_type)
+        {
+            case value_t::number_integer:
+            {
+                assert(first.m_object != nullptr);
+                m_value.number_integer = first.m_object->m_value.number_integer;
+                break;
+            }
+
+            case value_t::number_unsigned:
+            {
+                assert(first.m_object != nullptr);
+                m_value.number_unsigned = first.m_object->m_value.number_unsigned;
+                break;
+            }
+
+            case value_t::number_float:
+            {
+                assert(first.m_object != nullptr);
+                m_value.number_float = first.m_object->m_value.number_float;
+                break;
+            }
+
+            case value_t::boolean:
+            {
+                assert(first.m_object != nullptr);
+                m_value.boolean = first.m_object->m_value.boolean;
+                break;
+            }
+
+            case value_t::string:
+            {
+                assert(first.m_object != nullptr);
+                m_value = *first.m_object->m_value.string;
+                break;
+            }
+
+            case value_t::object:
+            {
+                m_value.object = create<object_t>(first.m_it.object_iterator, last.m_it.object_iterator);
+                break;
+            }
+
+            case value_t::array:
+            {
+                m_value.array = create<array_t>(first.m_it.array_iterator, last.m_it.array_iterator);
+                break;
+            }
+
+            default:
+            {
+                assert(first.m_object != nullptr);
+                throw std::domain_error("cannot use construct with iterators from " + first.m_object->type_name());
+            }
+        }
+    }
+
+    /*!
+    @brief construct a JSON value given an input stream
+
+    @param[in,out] i  stream to read a serialized JSON value from
+    @param[in] cb a parser callback function of type @ref parser_callback_t
+    which is used to control the deserialization by filtering unwanted values
+    (optional)
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser. The complexity can be higher if the parser callback function
+    @a cb has a super-linear complexity.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below demonstrates constructing a JSON value from
+    a `std::stringstream` with and without callback
+    function.,basic_json__istream}
+
+    @since version 2.0.0
+    */
+    explicit basic_json(std::istream& i, parser_callback_t cb = nullptr)
+    {
+        *this = parser(i, cb).parse();
+    }
+
+    ///////////////////////////////////////
+    // other constructors and destructor //
+    ///////////////////////////////////////
+
+    /*!
+    @brief copy constructor
+
+    Creates a copy of a given JSON value.
+
+    @param[in] other  the JSON value to copy
+
+    @complexity Linear in the size of @a other.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+    - As postcondition, it holds: `other == basic_json(other)`.
+
+    @throw std::bad_alloc if allocation for object, array, or string fails.
+
+    @liveexample{The following code shows an example for the copy
+    constructor.,basic_json__basic_json}
+
+    @since version 1.0.0
+    */
+    basic_json(const basic_json& other)
+        : m_type(other.m_type)
+    {
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                assert(other.m_value.object != nullptr);
+                m_value = *other.m_value.object;
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(other.m_value.array != nullptr);
+                m_value = *other.m_value.array;
+                break;
+            }
+
+            case value_t::string:
+            {
+                assert(other.m_value.string != nullptr);
+                m_value = *other.m_value.string;
+                break;
+            }
+
+            case value_t::boolean:
+            {
+                m_value = other.m_value.boolean;
+                break;
+            }
+
+            case value_t::number_integer:
+            {
+                m_value = other.m_value.number_integer;
+                break;
+            }
+
+            case value_t::number_unsigned:
+            {
+                m_value = other.m_value.number_unsigned;
+                break;
+            }
+
+            case value_t::number_float:
+            {
+                m_value = other.m_value.number_float;
+                break;
+            }
+
+            default:
+            {
+                break;
+            }
+        }
+    }
+
+    /*!
+    @brief move constructor
+
+    Move constructor. Constructs a JSON value with the contents of the given
+    value @a other using move semantics. It "steals" the resources from @a
+    other and leaves it as JSON null value.
+
+    @param[in,out] other  value to move to this object
+
+    @post @a other is a JSON null value
+
+    @complexity Constant.
+
+    @liveexample{The code below shows the move constructor explicitly called
+    via std::move.,basic_json__moveconstructor}
+
+    @since version 1.0.0
+    */
+    basic_json(basic_json&& other) noexcept
+        : m_type(std::move(other.m_type)),
+          m_value(std::move(other.m_value))
+    {
+        // invalidate payload
+        other.m_type = value_t::null;
+        other.m_value = {};
+    }
+
+    /*!
+    @brief copy assignment
+
+    Copy assignment operator. Copies a JSON value via the "copy and swap"
+    strategy: It is expressed in terms of the copy constructor, destructor,
+    and the swap() member function.
+
+    @param[in] other  value to copy from
+
+    @complexity Linear.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+
+    @liveexample{The code below shows and example for the copy assignment. It
+    creates a copy of value `a` which is then swapped with `b`. Finally\, the
+    copy of `a` (which is the null value after the swap) is
+    destroyed.,basic_json__copyassignment}
+
+    @since version 1.0.0
+    */
+    reference& operator=(basic_json other) noexcept (
+        std::is_nothrow_move_constructible<value_t>::value and
+        std::is_nothrow_move_assignable<value_t>::value and
+        std::is_nothrow_move_constructible<json_value>::value and
+        std::is_nothrow_move_assignable<json_value>::value
+    )
+    {
+        using std::swap;
+        swap(m_type, other.m_type);
+        swap(m_value, other.m_value);
+        return *this;
+    }
+
+    /*!
+    @brief destructor
+
+    Destroys the JSON value and frees all allocated memory.
+
+    @complexity Linear.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is linear.
+    - All stored elements are destroyed and all memory is freed.
+
+    @since version 1.0.0
+    */
+    ~basic_json()
+    {
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                AllocatorType<object_t> alloc;
+                alloc.destroy(m_value.object);
+                alloc.deallocate(m_value.object, 1);
+                break;
+            }
+
+            case value_t::array:
+            {
+                AllocatorType<array_t> alloc;
+                alloc.destroy(m_value.array);
+                alloc.deallocate(m_value.array, 1);
+                break;
+            }
+
+            case value_t::string:
+            {
+                AllocatorType<string_t> alloc;
+                alloc.destroy(m_value.string);
+                alloc.deallocate(m_value.string, 1);
+                break;
+            }
+
+            default:
+            {
+                // all other types need no specific destructor
+                break;
+            }
+        }
+    }
+
+    /// @}
+
+  public:
+    ///////////////////////
+    // object inspection //
+    ///////////////////////
+
+    /// @name object inspection
+    /// @{
+
+    /*!
+    @brief serialization
+
+    Serialization function for JSON values. The function tries to mimic
+    Python's @p json.dumps() function, and currently supports its @p indent
+    parameter.
+
+    @param[in] indent if indent is nonnegative, then array elements and object
+    members will be pretty-printed with that indent level. An indent level of
+    0 will only insert newlines. -1 (the default) selects the most compact
+    representation
+
+    @return string containing the serialization of the JSON value
+
+    @complexity Linear.
+
+    @liveexample{The following example shows the effect of different @a indent
+    parameters to the result of the serialization.,dump}
+
+    @see https://docs.python.org/2/library/json.html#json.dump
+
+    @since version 1.0.0
+    */
+    string_t dump(const int indent = -1) const
+    {
+        std::stringstream ss;
+
+        if (indent >= 0)
+        {
+            dump(ss, true, static_cast<unsigned int>(indent));
+        }
+        else
+        {
+            dump(ss, false, 0);
+        }
+
+        return ss.str();
+    }
+
+    /*!
+    @brief return the type of the JSON value (explicit)
+
+    Return the type of the JSON value as a value from the @ref value_t
+    enumeration.
+
+    @return the type of the JSON value
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `type()` for all JSON
+    types.,type}
+
+    @since version 1.0.0
+    */
+    constexpr value_t type() const noexcept
+    {
+        return m_type;
+    }
+
+    /*!
+    @brief return whether type is primitive
+
+    This function returns true iff the JSON type is primitive (string, number,
+    boolean, or null).
+
+    @return `true` if type is primitive (string, number, boolean, or null),
+    `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_primitive()` for all JSON
+    types.,is_primitive}
+
+    @sa @ref is_structured() -- returns whether JSON value is structured
+    @sa @ref is_null() -- returns whether JSON value is `null`
+    @sa @ref is_string() -- returns whether JSON value is a string
+    @sa @ref is_boolean() -- returns whether JSON value is a boolean
+    @sa @ref is_number() -- returns whether JSON value is a number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_primitive() const noexcept
+    {
+        return is_null() or is_string() or is_boolean() or is_number();
+    }
+
+    /*!
+    @brief return whether type is structured
+
+    This function returns true iff the JSON type is structured (array or
+    object).
+
+    @return `true` if type is structured (array or object), `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_structured()` for all JSON
+    types.,is_structured}
+
+    @sa @ref is_primitive() -- returns whether value is primitive
+    @sa @ref is_array() -- returns whether value is an array
+    @sa @ref is_object() -- returns whether value is an object
+
+    @since version 1.0.0
+    */
+    constexpr bool is_structured() const noexcept
+    {
+        return is_array() or is_object();
+    }
+
+    /*!
+    @brief return whether value is null
+
+    This function returns true iff the JSON value is null.
+
+    @return `true` if type is null, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_null()` for all JSON
+    types.,is_null}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_null() const noexcept
+    {
+        return m_type == value_t::null;
+    }
+
+    /*!
+    @brief return whether value is a boolean
+
+    This function returns true iff the JSON value is a boolean.
+
+    @return `true` if type is boolean, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_boolean()` for all JSON
+    types.,is_boolean}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_boolean() const noexcept
+    {
+        return m_type == value_t::boolean;
+    }
+
+    /*!
+    @brief return whether value is a number
+
+    This function returns true iff the JSON value is a number. This includes
+    both integer and floating-point values.
+
+    @return `true` if type is number (regardless whether integer, unsigned
+    integer or floating-type), `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number()` for all JSON
+    types.,is_number}
+
+    @sa @ref is_number_integer() -- check if value is an integer or unsigned
+    integer number
+    @sa @ref is_number_unsigned() -- check if value is an unsigned integer
+    number
+    @sa @ref is_number_float() -- check if value is a floating-point number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_number() const noexcept
+    {
+        return is_number_integer() or is_number_float();
+    }
+
+    /*!
+    @brief return whether value is an integer number
+
+    This function returns true iff the JSON value is an integer or unsigned
+    integer number. This excludes floating-point values.
+
+    @return `true` if type is an integer or unsigned integer number, `false`
+    otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number_integer()` for all
+    JSON types.,is_number_integer}
+
+    @sa @ref is_number() -- check if value is a number
+    @sa @ref is_number_unsigned() -- check if value is an unsigned integer
+    number
+    @sa @ref is_number_float() -- check if value is a floating-point number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_number_integer() const noexcept
+    {
+        return m_type == value_t::number_integer or m_type == value_t::number_unsigned;
+    }
+
+    /*!
+    @brief return whether value is an unsigned integer number
+
+    This function returns true iff the JSON value is an unsigned integer
+    number. This excludes floating-point and (signed) integer values.
+
+    @return `true` if type is an unsigned integer number, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number_unsigned()` for all
+    JSON types.,is_number_unsigned}
+
+    @sa @ref is_number() -- check if value is a number
+    @sa @ref is_number_integer() -- check if value is an integer or unsigned
+    integer number
+    @sa @ref is_number_float() -- check if value is a floating-point number
+
+    @since version 2.0.0
+    */
+    constexpr bool is_number_unsigned() const noexcept
+    {
+        return m_type == value_t::number_unsigned;
+    }
+
+    /*!
+    @brief return whether value is a floating-point number
+
+    This function returns true iff the JSON value is a floating-point number.
+    This excludes integer and unsigned integer values.
+
+    @return `true` if type is a floating-point number, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_number_float()` for all
+    JSON types.,is_number_float}
+
+    @sa @ref is_number() -- check if value is number
+    @sa @ref is_number_integer() -- check if value is an integer number
+    @sa @ref is_number_unsigned() -- check if value is an unsigned integer
+    number
+
+    @since version 1.0.0
+    */
+    constexpr bool is_number_float() const noexcept
+    {
+        return m_type == value_t::number_float;
+    }
+
+    /*!
+    @brief return whether value is an object
+
+    This function returns true iff the JSON value is an object.
+
+    @return `true` if type is object, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_object()` for all JSON
+    types.,is_object}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_object() const noexcept
+    {
+        return m_type == value_t::object;
+    }
+
+    /*!
+    @brief return whether value is an array
+
+    This function returns true iff the JSON value is an array.
+
+    @return `true` if type is array, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_array()` for all JSON
+    types.,is_array}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_array() const noexcept
+    {
+        return m_type == value_t::array;
+    }
+
+    /*!
+    @brief return whether value is a string
+
+    This function returns true iff the JSON value is a string.
+
+    @return `true` if type is string, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_string()` for all JSON
+    types.,is_string}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_string() const noexcept
+    {
+        return m_type == value_t::string;
+    }
+
+    /*!
+    @brief return whether value is discarded
+
+    This function returns true iff the JSON value was discarded during parsing
+    with a callback function (see @ref parser_callback_t).
+
+    @note This function will always be `false` for JSON values after parsing.
+    That is, discarded values can only occur during parsing, but will be
+    removed when inside a structured value or replaced by null in other cases.
+
+    @return `true` if type is discarded, `false` otherwise.
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies `is_discarded()` for all JSON
+    types.,is_discarded}
+
+    @since version 1.0.0
+    */
+    constexpr bool is_discarded() const noexcept
+    {
+        return m_type == value_t::discarded;
+    }
+
+    /*!
+    @brief return the type of the JSON value (implicit)
+
+    Implicitly return the type of the JSON value as a value from the @ref
+    value_t enumeration.
+
+    @return the type of the JSON value
+
+    @complexity Constant.
+
+    @exceptionsafety No-throw guarantee: this member function never throws
+    exceptions.
+
+    @liveexample{The following code exemplifies the @ref value_t operator for
+    all JSON types.,operator__value_t}
+
+    @since version 1.0.0
+    */
+    constexpr operator value_t() const noexcept
+    {
+        return m_type;
+    }
+
+    /// @}
+
+  private:
+    //////////////////
+    // value access //
+    //////////////////
+
+    /// get an object (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_convertible<typename object_t::key_type, typename T::key_type>::value and
+                  std::is_convertible<basic_json_t, typename T::mapped_type>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return T(m_value.object->begin(), m_value.object->end());
+        }
+        else
+        {
+            throw std::domain_error("type must be object, but is " + type_name());
+        }
+    }
+
+    /// get an object (explicit)
+    object_t get_impl(object_t*) const
+    {
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return *(m_value.object);
+        }
+        else
+        {
+            throw std::domain_error("type must be object, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_convertible<basic_json_t, typename T::value_type>::value and
+                  not std::is_same<basic_json_t, typename T::value_type>::value and
+                  not std::is_arithmetic<T>::value and
+                  not std::is_convertible<std::string, T>::value and
+                  not has_mapped_type<T>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_array())
+        {
+            T to_vector;
+            assert(m_value.array != nullptr);
+            std::transform(m_value.array->begin(), m_value.array->end(),
+                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
+            {
+                return i.get<typename T::value_type>();
+            });
+            return to_vector;
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_convertible<basic_json_t, T>::value and
+                  not std::is_same<basic_json_t, T>::value
+                  , int>::type = 0>
+    std::vector<T> get_impl(std::vector<T>*) const
+    {
+        if (is_array())
+        {
+            std::vector<T> to_vector;
+            assert(m_value.array != nullptr);
+            to_vector.reserve(m_value.array->size());
+            std::transform(m_value.array->begin(), m_value.array->end(),
+                           std::inserter(to_vector, to_vector.end()), [](basic_json i)
+            {
+                return i.get<T>();
+            });
+            return to_vector;
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    template <class T, typename
+              std::enable_if<
+                  std::is_same<basic_json, typename T::value_type>::value and
+                  not has_mapped_type<T>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            return T(m_value.array->begin(), m_value.array->end());
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get an array (explicit)
+    array_t get_impl(array_t*) const
+    {
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            return *(m_value.array);
+        }
+        else
+        {
+            throw std::domain_error("type must be array, but is " + type_name());
+        }
+    }
+
+    /// get a string (explicit)
+    template <typename T, typename
+              std::enable_if<
+                  std::is_convertible<string_t, T>::value
+                  , int>::type = 0>
+    T get_impl(T*) const
+    {
+        if (is_string())
+        {
+            assert(m_value.string != nullptr);
+            return *m_value.string;
+        }
+        else
+        {
+            throw std::domain_error("type must be string, but is " + type_name());
+        }
+    }
+
+    /// get a number (explicit)
+    template<typename T, typename
+             std::enable_if<
+                 std::is_arithmetic<T>::value
+                 , int>::type = 0>
+    T get_impl(T*) const
+    {
+        switch (m_type)
+        {
+            case value_t::number_integer:
+            {
+                return static_cast<T>(m_value.number_integer);
+            }
+
+            case value_t::number_unsigned:
+            {
+                return static_cast<T>(m_value.number_unsigned);
+            }
+
+            case value_t::number_float:
+            {
+                return static_cast<T>(m_value.number_float);
+            }
+
+            default:
+            {
+                throw std::domain_error("type must be number, but is " + type_name());
+            }
+        }
+    }
+
+    /// get a boolean (explicit)
+    constexpr boolean_t get_impl(boolean_t*) const
+    {
+        return is_boolean()
+               ? m_value.boolean
+               : throw std::domain_error("type must be boolean, but is " + type_name());
+    }
+
+    /// get a pointer to the value (object)
+    object_t* get_impl_ptr(object_t*) noexcept
+    {
+        return is_object() ? m_value.object : nullptr;
+    }
+
+    /// get a pointer to the value (object)
+    constexpr const object_t* get_impl_ptr(const object_t*) const noexcept
+    {
+        return is_object() ? m_value.object : nullptr;
+    }
+
+    /// get a pointer to the value (array)
+    array_t* get_impl_ptr(array_t*) noexcept
+    {
+        return is_array() ? m_value.array : nullptr;
+    }
+
+    /// get a pointer to the value (array)
+    constexpr const array_t* get_impl_ptr(const array_t*) const noexcept
+    {
+        return is_array() ? m_value.array : nullptr;
+    }
+
+    /// get a pointer to the value (string)
+    string_t* get_impl_ptr(string_t*) noexcept
+    {
+        return is_string() ? m_value.string : nullptr;
+    }
+
+    /// get a pointer to the value (string)
+    constexpr const string_t* get_impl_ptr(const string_t*) const noexcept
+    {
+        return is_string() ? m_value.string : nullptr;
+    }
+
+    /// get a pointer to the value (boolean)
+    boolean_t* get_impl_ptr(boolean_t*) noexcept
+    {
+        return is_boolean() ? &m_value.boolean : nullptr;
+    }
+
+    /// get a pointer to the value (boolean)
+    constexpr const boolean_t* get_impl_ptr(const boolean_t*) const noexcept
+    {
+        return is_boolean() ? &m_value.boolean : nullptr;
+    }
+
+    /// get a pointer to the value (integer number)
+    number_integer_t* get_impl_ptr(number_integer_t*) noexcept
+    {
+        return is_number_integer() ? &m_value.number_integer : nullptr;
+    }
+
+    /// get a pointer to the value (integer number)
+    constexpr const number_integer_t* get_impl_ptr(const number_integer_t*) const noexcept
+    {
+        return is_number_integer() ? &m_value.number_integer : nullptr;
+    }
+
+    /// get a pointer to the value (unsigned number)
+    number_unsigned_t* get_impl_ptr(number_unsigned_t*) noexcept
+    {
+        return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
+    }
+
+    /// get a pointer to the value (unsigned number)
+    constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*) const noexcept
+    {
+        return is_number_unsigned() ? &m_value.number_unsigned : nullptr;
+    }
+
+    /// get a pointer to the value (floating-point number)
+    number_float_t* get_impl_ptr(number_float_t*) noexcept
+    {
+        return is_number_float() ? &m_value.number_float : nullptr;
+    }
+
+    /// get a pointer to the value (floating-point number)
+    constexpr const number_float_t* get_impl_ptr(const number_float_t*) const noexcept
+    {
+        return is_number_float() ? &m_value.number_float : nullptr;
+    }
+
+    /*!
+    @brief helper function to implement get_ref()
+
+    This funcion helps to implement get_ref() without code duplication for
+    const and non-const overloads
+
+    @tparam ThisType will be deduced as `basic_json` or `const basic_json`
+
+    @throw std::domain_error if ReferenceType does not match underlying value
+    type of the current JSON
+    */
+    template<typename ReferenceType, typename ThisType>
+    static ReferenceType get_ref_impl(ThisType& obj)
+    {
+        // delegate the call to get_ptr<>()
+        using PointerType = typename std::add_pointer<ReferenceType>::type;
+        auto ptr = obj.template get_ptr<PointerType>();
+
+        if (ptr != nullptr)
+        {
+            return *ptr;
+        }
+        else
+        {
+            throw std::domain_error("incompatible ReferenceType for get_ref, actual type is " +
+                                    obj.type_name());
+        }
+    }
+
+  public:
+
+    /// @name value access
+    /// @{
+
+    /*!
+    @brief get a value (explicit)
+
+    Explicit type conversion between the JSON value and a compatible value.
+
+    @tparam ValueType non-pointer type compatible to the JSON value, for
+    instance `int` for JSON integer numbers, `bool` for JSON booleans, or
+    `std::vector` types for JSON arrays
+
+    @return copy of the JSON value, converted to type @a ValueType
+
+    @throw std::domain_error in case passed type @a ValueType is incompatible
+    to JSON; example: `"type must be object, but is null"`
+
+    @complexity Linear in the size of the JSON value.
+
+    @liveexample{The example below shows several conversions from JSON values
+    to other types. There a few things to note: (1) Floating-point numbers can
+    be converted to integers\, (2) A JSON array can be converted to a standard
+    `std::vector<short>`\, (3) A JSON object can be converted to C++
+    associative containers such as `std::unordered_map<std::string\,
+    json>`.,get__ValueType_const}
+
+    @internal
+    The idea of using a casted null pointer to choose the correct
+    implementation is from <http://stackoverflow.com/a/8315197/266378>.
+    @endinternal
+
+    @sa @ref operator ValueType() const for implicit conversion
+    @sa @ref get() for pointer-member access
+
+    @since version 1.0.0
+    */
+    template<typename ValueType, typename
+             std::enable_if<
+                 not std::is_pointer<ValueType>::value
+                 , int>::type = 0>
+    ValueType get() const
+    {
+        return get_impl(static_cast<ValueType*>(nullptr));
+    }
+
+    /*!
+    @brief get a pointer value (explicit)
+
+    Explicit pointer access to the internally stored JSON value. No copies are
+    made.
+
+    @warning The pointer becomes invalid if the underlying JSON object changes.
+
+    @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref
+    object_t, @ref string_t, @ref boolean_t, @ref number_integer_t,
+    @ref number_unsigned_t, or @ref number_float_t.
+
+    @return pointer to the internally stored JSON value if the requested
+    pointer type @a PointerType fits to the JSON value; `nullptr` otherwise
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how pointers to internal values of a
+    JSON value can be requested. Note that no type conversions are made and a
+    `nullptr` is returned if the value and the requested pointer type does not
+    match.,get__PointerType}
+
+    @sa @ref get_ptr() for explicit pointer-member access
+
+    @since version 1.0.0
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 , int>::type = 0>
+    PointerType get() noexcept
+    {
+        // delegate the call to get_ptr
+        return get_ptr<PointerType>();
+    }
+
+    /*!
+    @brief get a pointer value (explicit)
+    @copydoc get()
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 , int>::type = 0>
+    constexpr const PointerType get() const noexcept
+    {
+        // delegate the call to get_ptr
+        return get_ptr<PointerType>();
+    }
+
+    /*!
+    @brief get a pointer value (implicit)
+
+    Implicit pointer access to the internally stored JSON value. No copies are
+    made.
+
+    @warning Writing data to the pointee of the result yields an undefined
+    state.
+
+    @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref
+    object_t, @ref string_t, @ref boolean_t, @ref number_integer_t,
+    @ref number_unsigned_t, or @ref number_float_t.
+
+    @return pointer to the internally stored JSON value if the requested
+    pointer type @a PointerType fits to the JSON value; `nullptr` otherwise
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how pointers to internal values of a
+    JSON value can be requested. Note that no type conversions are made and a
+    `nullptr` is returned if the value and the requested pointer type does not
+    match.,get_ptr}
+
+    @since version 1.0.0
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 , int>::type = 0>
+    PointerType get_ptr() noexcept
+    {
+        // delegate the call to get_impl_ptr<>()
+        return get_impl_ptr(static_cast<PointerType>(nullptr));
+    }
+
+    /*!
+    @brief get a pointer value (implicit)
+    @copydoc get_ptr()
+    */
+    template<typename PointerType, typename
+             std::enable_if<
+                 std::is_pointer<PointerType>::value
+                 and std::is_const<typename std::remove_pointer<PointerType>::type>::value
+                 , int>::type = 0>
+    constexpr const PointerType get_ptr() const noexcept
+    {
+        // delegate the call to get_impl_ptr<>() const
+        return get_impl_ptr(static_cast<const PointerType>(nullptr));
+    }
+
+    /*!
+    @brief get a reference value (implicit)
+
+    Implict reference access to the internally stored JSON value. No copies
+    are made.
+
+    @warning Writing data to the referee of the result yields an undefined
+    state.
+
+    @tparam ReferenceType reference type; must be a reference to @ref array_t,
+    @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or
+    @ref number_float_t.
+
+    @return reference to the internally stored JSON value if the requested
+    reference type @a ReferenceType fits to the JSON value; throws
+    std::domain_error otherwise
+
+    @throw std::domain_error in case passed type @a ReferenceType is
+    incompatible with the stored JSON value
+
+    @complexity Constant.
+
+    @liveexample{The example shows several calls to `get_ref()`.,get_ref}
+
+    @since version 1.1.0
+    */
+    template<typename ReferenceType, typename
+             std::enable_if<
+                 std::is_reference<ReferenceType>::value
+                 , int>::type = 0>
+    ReferenceType get_ref()
+    {
+        // delegate call to get_ref_impl
+        return get_ref_impl<ReferenceType>(*this);
+    }
+
+    /*!
+    @brief get a reference value (implicit)
+    @copydoc get_ref()
+    */
+    template<typename ReferenceType, typename
+             std::enable_if<
+                 std::is_reference<ReferenceType>::value
+                 and std::is_const<typename std::remove_reference<ReferenceType>::type>::value
+                 , int>::type = 0>
+    ReferenceType get_ref() const
+    {
+        // delegate call to get_ref_impl
+        return get_ref_impl<ReferenceType>(*this);
+    }
+
+    /*!
+    @brief get a value (implicit)
+
+    Implicit type conversion between the JSON value and a compatible value.
+    The call is realized by calling @ref get() const.
+
+    @tparam ValueType non-pointer type compatible to the JSON value, for
+    instance `int` for JSON integer numbers, `bool` for JSON booleans, or
+    `std::vector` types for JSON arrays. The character type of @ref string_t
+    as well as an initializer list of this type is excluded to avoid
+    ambiguities as these types implicitly convert to `std::string`.
+
+    @return copy of the JSON value, converted to type @a ValueType
+
+    @throw std::domain_error in case passed type @a ValueType is incompatible
+    to JSON, thrown by @ref get() const
+
+    @complexity Linear in the size of the JSON value.
+
+    @liveexample{The example below shows several conversions from JSON values
+    to other types. There a few things to note: (1) Floating-point numbers can
+    be converted to integers\, (2) A JSON array can be converted to a standard
+    `std::vector<short>`\, (3) A JSON object can be converted to C++
+    associative containers such as `std::unordered_map<std::string\,
+    json>`.,operator__ValueType}
+
+    @since version 1.0.0
+    */
+    template < typename ValueType, typename
+               std::enable_if <
+                   not std::is_pointer<ValueType>::value
+                   and not std::is_same<ValueType, typename string_t::value_type>::value
+#ifndef _MSC_VER  // Fix for issue #167 operator<< abiguity under VS2015
+                   and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value
+#endif
+                   , int >::type = 0 >
+    operator ValueType() const
+    {
+        // delegate the call to get<>() const
+        return get<ValueType>();
+    }
+
+    /// @}
+
+
+    ////////////////////
+    // element access //
+    ////////////////////
+
+    /// @name element access
+    /// @{
+
+    /*!
+    @brief access specified array element with bounds checking
+
+    Returns a reference to the element at specified location @a idx, with
+    bounds checking.
+
+    @param[in] idx  index of the element to access
+
+    @return reference to the element at index @a idx
+
+    @throw std::domain_error if the JSON value is not an array; example:
+    `"cannot use at() with string"`
+    @throw std::out_of_range if the index @a idx is out of range of the array;
+    that is, `idx >= size()`; example: `"array index 7 is out of range"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how array elements can be read and
+    written using `at()`.,at__size_type}
+
+    @since version 1.0.0
+    */
+    reference at(size_type idx)
+    {
+        // at only works for arrays
+        if (is_array())
+        {
+            try
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->at(idx);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified array element with bounds checking
+
+    Returns a const reference to the element at specified location @a idx,
+    with bounds checking.
+
+    @param[in] idx  index of the element to access
+
+    @return const reference to the element at index @a idx
+
+    @throw std::domain_error if the JSON value is not an array; example:
+    `"cannot use at() with string"`
+    @throw std::out_of_range if the index @a idx is out of range of the array;
+    that is, `idx >= size()`; example: `"array index 7 is out of range"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how array elements can be read using
+    `at()`.,at__size_type_const}
+
+    @since version 1.0.0
+    */
+    const_reference at(size_type idx) const
+    {
+        // at only works for arrays
+        if (is_array())
+        {
+            try
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->at(idx);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element with bounds checking
+
+    Returns a reference to the element at with specified key @a key, with
+    bounds checking.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if the JSON value is not an object; example:
+    `"cannot use at() with boolean"`
+    @throw std::out_of_range if the key @a key is is not stored in the object;
+    that is, `find(key) == end()`; example: `"key "the fast" not found"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using `at()`.,at__object_t_key_type}
+
+    @sa @ref operator[](const typename object_t::key_type&) for unchecked
+    access by reference
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    reference at(const typename object_t::key_type& key)
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            try
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->at(key);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("key '" + key + "' not found");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element with bounds checking
+
+    Returns a const reference to the element at with specified key @a key,
+    with bounds checking.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if the JSON value is not an object; example:
+    `"cannot use at() with boolean"`
+    @throw std::out_of_range if the key @a key is is not stored in the object;
+    that is, `find(key) == end()`; example: `"key "the fast" not found"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    `at()`.,at__object_t_key_type_const}
+
+    @sa @ref operator[](const typename object_t::key_type&) for unchecked
+    access by reference
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    const_reference at(const typename object_t::key_type& key) const
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            try
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->at(key);
+            }
+            catch (std::out_of_range&)
+            {
+                // create better exception explanation
+                throw std::out_of_range("key '" + key + "' not found");
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use at() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified array element
+
+    Returns a reference to the element at specified location @a idx.
+
+    @note If @a idx is beyond the range of the array (i.e., `idx >= size()`),
+    then the array is silently filled up with `null` values to make `idx` a
+    valid reference to the last stored element.
+
+    @param[in] idx  index of the element to access
+
+    @return reference to the element at index @a idx
+
+    @throw std::domain_error if JSON is not an array or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Constant if @a idx is in the range of the array. Otherwise
+    linear in `idx - size()`.
+
+    @liveexample{The example below shows how array elements can be read and
+    written using `[]` operator. Note the addition of `null`
+    values.,operatorarray__size_type}
+
+    @since version 1.0.0
+    */
+    reference operator[](size_type idx)
+    {
+        // implicitly convert null value to an empty array
+        if (is_null())
+        {
+            m_type = value_t::array;
+            m_value.array = create<array_t>();
+        }
+
+        // operator[] only works for arrays
+        if (is_array())
+        {
+            // fill up array with null values until given idx is reached
+            assert(m_value.array != nullptr);
+            for (size_t i = m_value.array->size(); i <= idx; ++i)
+            {
+                m_value.array->push_back(basic_json());
+            }
+
+            return m_value.array->operator[](idx);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified array element
+
+    Returns a const reference to the element at specified location @a idx.
+
+    @param[in] idx  index of the element to access
+
+    @return const reference to the element at index @a idx
+
+    @throw std::domain_error if JSON is not an array; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how array elements can be read using
+    the `[]` operator.,operatorarray__size_type_const}
+
+    @since version 1.0.0
+    */
+    const_reference operator[](size_type idx) const
+    {
+        // const operator[] only works for arrays
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            return m_value.array->operator[](idx);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element
+
+    Returns a reference to the element at with specified key @a key.
+
+    @note If @a key is not found in the object, then it is silently added to
+    the object and filled with a `null` value to make `key` a valid reference.
+    In case the value was `null` before, it is converted to an object.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using the `[]` operator.,operatorarray__key_type}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    reference operator[](const typename object_t::key_type& key)
+    {
+        // implicitly convert null value to an empty object
+        if (is_null())
+        {
+            m_type = value_t::object;
+            m_value.object = create<object_t>();
+        }
+
+        // operator[] only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return m_value.object->operator[](key);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief read-only access specified object element
+
+    Returns a const reference to the element at with specified key @a key. No
+    bounds checking is performed.
+
+    @warning If the element with key @a key does not exist, the behavior is
+    undefined.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    the `[]` operator.,operatorarray__key_type_const}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    const_reference operator[](const typename object_t::key_type& key) const
+    {
+        // const operator[] only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            assert(m_value.object->find(key) != m_value.object->end());
+            return m_value.object->find(key)->second;
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element
+
+    Returns a reference to the element at with specified key @a key.
+
+    @note If @a key is not found in the object, then it is silently added to
+    the object and filled with a `null` value to make `key` a valid reference.
+    In case the value was `null` before, it is converted to an object.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using the `[]` operator.,operatorarray__key_type}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    template<typename T, std::size_t n>
+    reference operator[](T * (&key)[n])
+    {
+        return operator[](static_cast<const T>(key));
+    }
+
+    /*!
+    @brief read-only access specified object element
+
+    Returns a const reference to the element at with specified key @a key. No
+    bounds checking is performed.
+
+    @warning If the element with key @a key does not exist, the behavior is
+    undefined.
+
+    @note This function is required for compatibility reasons with Clang.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    the `[]` operator.,operatorarray__key_type_const}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.0.0
+    */
+    template<typename T, std::size_t n>
+    const_reference operator[](T * (&key)[n]) const
+    {
+        return operator[](static_cast<const T>(key));
+    }
+
+    /*!
+    @brief access specified object element
+
+    Returns a reference to the element at with specified key @a key.
+
+    @note If @a key is not found in the object, then it is silently added to
+    the object and filled with a `null` value to make `key` a valid reference.
+    In case the value was `null` before, it is converted to an object.
+
+    @param[in] key  key of the element to access
+
+    @return reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object or null; example:
+    `"cannot use operator[] with string"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read and
+    written using the `[]` operator.,operatorarray__key_type}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.1.0
+    */
+    template<typename T>
+    reference operator[](T* key)
+    {
+        // implicitly convert null to object
+        if (is_null())
+        {
+            m_type = value_t::object;
+            m_value = value_t::object;
+        }
+
+        // at only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return m_value.object->operator[](key);
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief read-only access specified object element
+
+    Returns a const reference to the element at with specified key @a key. No
+    bounds checking is performed.
+
+    @warning If the element with key @a key does not exist, the behavior is
+    undefined.
+
+    @param[in] key  key of the element to access
+
+    @return const reference to the element at key @a key
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    operator[] with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be read using
+    the `[]` operator.,operatorarray__key_type_const}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref value() for access by value with a default value
+
+    @since version 1.1.0
+    */
+    template<typename T>
+    const_reference operator[](T* key) const
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            assert(m_value.object->find(key) != m_value.object->end());
+            return m_value.object->find(key)->second;
+        }
+        else
+        {
+            throw std::domain_error("cannot use operator[] with " + type_name());
+        }
+    }
+
+    /*!
+    @brief access specified object element with default value
+
+    Returns either a copy of an object's element at the specified key @a key or
+    a given default value if no element with key @a key exists.
+
+    The function is basically equivalent to executing
+    @code {.cpp}
+    try {
+        return at(key);
+    } catch(std::out_of_range) {
+        return default_value;
+    }
+    @endcode
+
+    @note Unlike @ref at(const typename object_t::key_type&), this function
+    does not throw if the given key @a key was not found.
+
+    @note Unlike @ref operator[](const typename object_t::key_type& key), this
+    function does not implicitly add an element to the position defined by @a
+    key. This function is furthermore also applicable to const objects.
+
+    @param[in] key  key of the element to access
+    @param[in] default_value  the value to return if @a key is not found
+
+    @tparam ValueType type compatible to JSON values, for instance `int` for
+    JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for
+    JSON arrays. Note the type of the expected value at @a key and the default
+    value @a default_value must be compatible.
+
+    @return copy of the element at key @a key or @a default_value if @a key
+    is not found
+
+    @throw std::domain_error if JSON is not an object; example: `"cannot use
+    value() with null"`
+
+    @complexity Logarithmic in the size of the container.
+
+    @liveexample{The example below shows how object elements can be queried
+    with a default value.,basic_json__value}
+
+    @sa @ref at(const typename object_t::key_type&) for access by reference
+    with range checking
+    @sa @ref operator[](const typename object_t::key_type&) for unchecked
+    access by reference
+
+    @since version 1.0.0
+    */
+    template <class ValueType, typename
+              std::enable_if<
+                  std::is_convertible<basic_json_t, ValueType>::value
+                  , int>::type = 0>
+    ValueType value(const typename object_t::key_type& key, ValueType default_value) const
+    {
+        // at only works for objects
+        if (is_object())
+        {
+            // if key is found, return value and given default value otherwise
+            const auto it = find(key);
+            if (it != end())
+            {
+                return *it;
+            }
+            else
+            {
+                return default_value;
+            }
+        }
+        else
+        {
+            throw std::domain_error("cannot use value() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief overload for a default value of type const char*
+    @copydoc basic_json::value()
+    */
+    string_t value(const typename object_t::key_type& key, const char* default_value) const
+    {
+        return value(key, string_t(default_value));
+    }
+
+    /*!
+    @brief access the first element
+
+    Returns a reference to the first element in the container. For a JSON
+    container `c`, the expression `c.front()` is equivalent to `*c.begin()`.
+
+    @return In case of a structured type (array or object), a reference to the
+    first element is returned. In cast of number, string, or boolean values, a
+    reference to the value is returned.
+
+    @complexity Constant.
+
+    @pre The JSON value must not be `null` (would throw `std::out_of_range`)
+    or an empty array or object (undefined behavior, guarded by assertions).
+    @post The JSON value remains unchanged.
+
+    @throw std::out_of_range when called on `null` value
+
+    @liveexample{The following code shows an example for `front()`.,front}
+
+    @sa @ref back() -- access the last element
+
+    @since version 1.0.0
+    */
+    reference front()
+    {
+        return *begin();
+    }
+
+    /*!
+    @copydoc basic_json::front()
+    */
+    const_reference front() const
+    {
+        return *cbegin();
+    }
+
+    /*!
+    @brief access the last element
+
+    Returns a reference to the last element in the container. For a JSON
+    container `c`, the expression `c.back()` is equivalent to
+    @code {.cpp}
+    auto tmp = c.end();
+    --tmp;
+    return *tmp;
+    @endcode
+
+    @return In case of a structured type (array or object), a reference to the
+    last element is returned. In cast of number, string, or boolean values, a
+    reference to the value is returned.
+
+    @complexity Constant.
+
+    @pre The JSON value must not be `null` (would throw `std::out_of_range`)
+    or an empty array or object (undefined behavior, guarded by assertions).
+    @post The JSON value remains unchanged.
+
+    @throw std::out_of_range when called on `null` value.
+
+    @liveexample{The following code shows an example for `back()`.,back}
+
+    @sa @ref front() -- access the first element
+
+    @since version 1.0.0
+    */
+    reference back()
+    {
+        auto tmp = end();
+        --tmp;
+        return *tmp;
+    }
+
+    /*!
+    @copydoc basic_json::back()
+    */
+    const_reference back() const
+    {
+        auto tmp = cend();
+        --tmp;
+        return *tmp;
+    }
+
+    /*!
+    @brief remove element given an iterator
+
+    Removes the element specified by iterator @a pos. The iterator @a pos must
+    be valid and dereferenceable. Thus the `end()` iterator (which is valid,
+    but is not dereferenceable) cannot be used as a value for @a pos.
+
+    If called on a primitive type other than `null`, the resulting JSON value
+    will be `null`.
+
+    @param[in] pos iterator to the element to remove
+    @return Iterator following the last removed element. If the iterator @a
+    pos refers to the last element, the `end()` iterator is returned.
+
+    @tparam InteratorType an @ref iterator or @ref const_iterator
+
+    @post Invalidates iterators and references at or after the point of the
+    erase, including the `end()` iterator.
+
+    @throw std::domain_error if called on a `null` value; example: `"cannot
+    use erase() with null"`
+    @throw std::domain_error if called on an iterator which does not belong to
+    the current JSON value; example: `"iterator does not fit current value"`
+    @throw std::out_of_range if called on a primitive type with invalid
+    iterator (i.e., any iterator which is not `begin()`); example: `"iterator
+    out of range"`
+
+    @complexity The complexity depends on the type:
+    - objects: amortized constant
+    - arrays: linear in distance between pos and the end of the container
+    - strings: linear in the length of the string
+    - other types: constant
+
+    @liveexample{The example shows the result of `erase()` for different JSON
+    types.,erase__IteratorType}
+
+    @sa @ref erase(InteratorType, InteratorType) -- removes the elements in
+    the given range
+    @sa @ref erase(const typename object_t::key_type&) -- removes the element
+    from an object at the given key
+    @sa @ref erase(const size_type) -- removes the element from an array at
+    the given index
+
+    @since version 1.0.0
+    */
+    template <class InteratorType, typename
+              std::enable_if<
+                  std::is_same<InteratorType, typename basic_json_t::iterator>::value or
+                  std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
+                  , int>::type
+              = 0>
+    InteratorType erase(InteratorType pos)
+    {
+        // make sure iterator fits the current value
+        if (this != pos.m_object)
+        {
+            throw std::domain_error("iterator does not fit current value");
+        }
+
+        InteratorType result = end();
+
+        switch (m_type)
+        {
+            case value_t::boolean:
+            case value_t::number_float:
+            case value_t::number_integer:
+            case value_t::number_unsigned:
+            case value_t::string:
+            {
+                if (not pos.m_it.primitive_iterator.is_begin())
+                {
+                    throw std::out_of_range("iterator out of range");
+                }
+
+                if (is_string())
+                {
+                    delete m_value.string;
+                    m_value.string = nullptr;
+                }
+
+                m_type = value_t::null;
+                break;
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator);
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator);
+                break;
+            }
+
+            default:
+            {
+                throw std::domain_error("cannot use erase() with " + type_name());
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief remove elements given an iterator range
+
+    Removes the element specified by the range `[first; last)`. The iterator
+    @a first does not need to be dereferenceable if `first == last`: erasing
+    an empty range is a no-op.
+
+    If called on a primitive type other than `null`, the resulting JSON value
+    will be `null`.
+
+    @param[in] first iterator to the beginning of the range to remove
+    @param[in] last iterator past the end of the range to remove
+    @return Iterator following the last removed element. If the iterator @a
+    second refers to the last element, the `end()` iterator is returned.
+
+    @tparam InteratorType an @ref iterator or @ref const_iterator
+
+    @post Invalidates iterators and references at or after the point of the
+    erase, including the `end()` iterator.
+
+    @throw std::domain_error if called on a `null` value; example: `"cannot
+    use erase() with null"`
+    @throw std::domain_error if called on iterators which does not belong to
+    the current JSON value; example: `"iterators do not fit current value"`
+    @throw std::out_of_range if called on a primitive type with invalid
+    iterators (i.e., if `first != begin()` and `last != end()`); example:
+    `"iterators out of range"`
+
+    @complexity The complexity depends on the type:
+    - objects: `log(size()) + std::distance(first, last)`
+    - arrays: linear in the distance between @a first and @a last, plus linear
+      in the distance between @a last and end of the container
+    - strings: linear in the length of the string
+    - other types: constant
+
+    @liveexample{The example shows the result of `erase()` for different JSON
+    types.,erase__IteratorType_IteratorType}
+
+    @sa @ref erase(InteratorType) -- removes the element at a given position
+    @sa @ref erase(const typename object_t::key_type&) -- removes the element
+    from an object at the given key
+    @sa @ref erase(const size_type) -- removes the element from an array at
+    the given index
+
+    @since version 1.0.0
+    */
+    template <class InteratorType, typename
+              std::enable_if<
+                  std::is_same<InteratorType, typename basic_json_t::iterator>::value or
+                  std::is_same<InteratorType, typename basic_json_t::const_iterator>::value
+                  , int>::type
+              = 0>
+    InteratorType erase(InteratorType first, InteratorType last)
+    {
+        // make sure iterator fits the current value
+        if (this != first.m_object or this != last.m_object)
+        {
+            throw std::domain_error("iterators do not fit current value");
+        }
+
+        InteratorType result = end();
+
+        switch (m_type)
+        {
+            case value_t::boolean:
+            case value_t::number_float:
+            case value_t::number_integer:
+            case value_t::number_unsigned:
+            case value_t::string:
+            {
+                if (not first.m_it.primitive_iterator.is_begin() or not last.m_it.primitive_iterator.is_end())
+                {
+                    throw std::out_of_range("iterators out of range");
+                }
+
+                if (is_string())
+                {
+                    delete m_value.string;
+                    m_value.string = nullptr;
+                }
+
+                m_type = value_t::null;
+                break;
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator,
+                                              last.m_it.object_iterator);
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator,
+                                             last.m_it.array_iterator);
+                break;
+            }
+
+            default:
+            {
+                throw std::domain_error("cannot use erase() with " + type_name());
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief remove element from a JSON object given a key
+
+    Removes elements from a JSON object with the key value @a key.
+
+    @param[in] key value of the elements to remove
+
+    @return Number of elements removed. If @a ObjectType is the default
+    `std::map` type, the return value will always be `0` (@a key was not
+    found) or `1` (@a key was found).
+
+    @post References and iterators to the erased elements are invalidated.
+    Other references and iterators are not affected.
+
+    @throw std::domain_error when called on a type other than JSON object;
+    example: `"cannot use erase() with null"`
+
+    @complexity `log(size()) + count(key)`
+
+    @liveexample{The example shows the effect of `erase()`.,erase__key_type}
+
+    @sa @ref erase(InteratorType) -- removes the element at a given position
+    @sa @ref erase(InteratorType, InteratorType) -- removes the elements in
+    the given range
+    @sa @ref erase(const size_type) -- removes the element from an array at
+    the given index
+
+    @since version 1.0.0
+    */
+    size_type erase(const typename object_t::key_type& key)
+    {
+        // this erase only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            return m_value.object->erase(key);
+        }
+        else
+        {
+            throw std::domain_error("cannot use erase() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief remove element from a JSON array given an index
+
+    Removes element from a JSON array at the index @a idx.
+
+    @param[in] idx index of the element to remove
+
+    @throw std::domain_error when called on a type other than JSON array;
+    example: `"cannot use erase() with null"`
+    @throw std::out_of_range when `idx >= size()`; example: `"array index 17
+    is out of range"`
+
+    @complexity Linear in distance between @a idx and the end of the container.
+
+    @liveexample{The example shows the effect of `erase()`.,erase__size_type}
+
+    @sa @ref erase(InteratorType) -- removes the element at a given position
+    @sa @ref erase(InteratorType, InteratorType) -- removes the elements in
+    the given range
+    @sa @ref erase(const typename object_t::key_type&) -- removes the element
+    from an object at the given key
+
+    @since version 1.0.0
+    */
+    void erase(const size_type idx)
+    {
+        // this erase only works for arrays
+        if (is_array())
+        {
+            if (idx >= size())
+            {
+                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+            }
+
+            assert(m_value.array != nullptr);
+            m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx));
+        }
+        else
+        {
+            throw std::domain_error("cannot use erase() with " + type_name());
+        }
+    }
+
+    /// @}
+
+
+    ////////////
+    // lookup //
+    ////////////
+
+    /// @name lookup
+    /// @{
+
+    /*!
+    @brief find an element in a JSON object
+
+    Finds an element in a JSON object with key equivalent to @a key. If the
+    element is not found or the JSON value is not an object, end() is
+    returned.
+
+    @param[in] key key value of the element to search for
+
+    @return Iterator to an element with key equivalent to @a key. If no such
+    element is found, past-the-end (see end()) iterator is returned.
+
+    @complexity Logarithmic in the size of the JSON object.
+
+    @liveexample{The example shows how `find()` is used.,find__key_type}
+
+    @since version 1.0.0
+    */
+    iterator find(typename object_t::key_type key)
+    {
+        auto result = end();
+
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            result.m_it.object_iterator = m_value.object->find(key);
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief find an element in a JSON object
+    @copydoc find(typename object_t::key_type)
+    */
+    const_iterator find(typename object_t::key_type key) const
+    {
+        auto result = cend();
+
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            result.m_it.object_iterator = m_value.object->find(key);
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief returns the number of occurrences of a key in a JSON object
+
+    Returns the number of elements with key @a key. If ObjectType is the
+    default `std::map` type, the return value will always be `0` (@a key was
+    not found) or `1` (@a key was found).
+
+    @param[in] key key value of the element to count
+
+    @return Number of elements with key @a key. If the JSON value is not an
+    object, the return value will be `0`.
+
+    @complexity Logarithmic in the size of the JSON object.
+
+    @liveexample{The example shows how `count()` is used.,count}
+
+    @since version 1.0.0
+    */
+    size_type count(typename object_t::key_type key) const
+    {
+        // return 0 for all nonobject types
+        assert(not is_object() or m_value.object != nullptr);
+        return is_object() ? m_value.object->count(key) : 0;
+    }
+
+    /// @}
+
+
+    ///////////////
+    // iterators //
+    ///////////////
+
+    /// @name iterators
+    /// @{
+
+    /*!
+    @brief returns an iterator to the first element
+
+    Returns an iterator to the first element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return iterator to the first element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+
+    @liveexample{The following code shows an example for `begin()`.,begin}
+
+    @sa @ref cbegin() -- returns a const iterator to the beginning
+    @sa @ref end() -- returns an iterator to the end
+    @sa @ref cend() -- returns a const iterator to the end
+
+    @since version 1.0.0
+    */
+    iterator begin() noexcept
+    {
+        iterator result(this);
+        result.set_begin();
+        return result;
+    }
+
+    /*!
+    @copydoc basic_json::cbegin()
+    */
+    const_iterator begin() const noexcept
+    {
+        return cbegin();
+    }
+
+    /*!
+    @brief returns a const iterator to the first element
+
+    Returns a const iterator to the first element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return const iterator to the first element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).begin()`.
+
+    @liveexample{The following code shows an example for `cbegin()`.,cbegin}
+
+    @sa @ref begin() -- returns an iterator to the beginning
+    @sa @ref end() -- returns an iterator to the end
+    @sa @ref cend() -- returns a const iterator to the end
+
+    @since version 1.0.0
+    */
+    const_iterator cbegin() const noexcept
+    {
+        const_iterator result(this);
+        result.set_begin();
+        return result;
+    }
+
+    /*!
+    @brief returns an iterator to one past the last element
+
+    Returns an iterator to one past the last element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return iterator one past the last element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+
+    @liveexample{The following code shows an example for `end()`.,end}
+
+    @sa @ref cend() -- returns a const iterator to the end
+    @sa @ref begin() -- returns an iterator to the beginning
+    @sa @ref cbegin() -- returns a const iterator to the beginning
+
+    @since version 1.0.0
+    */
+    iterator end() noexcept
+    {
+        iterator result(this);
+        result.set_end();
+        return result;
+    }
+
+    /*!
+    @copydoc basic_json::cend()
+    */
+    const_iterator end() const noexcept
+    {
+        return cend();
+    }
+
+    /*!
+    @brief returns a const iterator to one past the last element
+
+    Returns a const iterator to one past the last element.
+
+    @image html range-begin-end.svg "Illustration from cppreference.com"
+
+    @return const iterator one past the last element
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).end()`.
+
+    @liveexample{The following code shows an example for `cend()`.,cend}
+
+    @sa @ref end() -- returns an iterator to the end
+    @sa @ref begin() -- returns an iterator to the beginning
+    @sa @ref cbegin() -- returns a const iterator to the beginning
+
+    @since version 1.0.0
+    */
+    const_iterator cend() const noexcept
+    {
+        const_iterator result(this);
+        result.set_end();
+        return result;
+    }
+
+    /*!
+    @brief returns an iterator to the reverse-beginning
+
+    Returns an iterator to the reverse-beginning; that is, the last element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `reverse_iterator(end())`.
+
+    @liveexample{The following code shows an example for `rbegin()`.,rbegin}
+
+    @sa @ref crbegin() -- returns a const reverse iterator to the beginning
+    @sa @ref rend() -- returns a reverse iterator to the end
+    @sa @ref crend() -- returns a const reverse iterator to the end
+
+    @since version 1.0.0
+    */
+    reverse_iterator rbegin() noexcept
+    {
+        return reverse_iterator(end());
+    }
+
+    /*!
+    @copydoc basic_json::crbegin()
+    */
+    const_reverse_iterator rbegin() const noexcept
+    {
+        return crbegin();
+    }
+
+    /*!
+    @brief returns an iterator to the reverse-end
+
+    Returns an iterator to the reverse-end; that is, one before the first
+    element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `reverse_iterator(begin())`.
+
+    @liveexample{The following code shows an example for `rend()`.,rend}
+
+    @sa @ref crend() -- returns a const reverse iterator to the end
+    @sa @ref rbegin() -- returns a reverse iterator to the beginning
+    @sa @ref crbegin() -- returns a const reverse iterator to the beginning
+
+    @since version 1.0.0
+    */
+    reverse_iterator rend() noexcept
+    {
+        return reverse_iterator(begin());
+    }
+
+    /*!
+    @copydoc basic_json::crend()
+    */
+    const_reverse_iterator rend() const noexcept
+    {
+        return crend();
+    }
+
+    /*!
+    @brief returns a const reverse iterator to the last element
+
+    Returns a const iterator to the reverse-beginning; that is, the last
+    element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`.
+
+    @liveexample{The following code shows an example for `crbegin()`.,crbegin}
+
+    @sa @ref rbegin() -- returns a reverse iterator to the beginning
+    @sa @ref rend() -- returns a reverse iterator to the end
+    @sa @ref crend() -- returns a const reverse iterator to the end
+
+    @since version 1.0.0
+    */
+    const_reverse_iterator crbegin() const noexcept
+    {
+        return const_reverse_iterator(cend());
+    }
+
+    /*!
+    @brief returns a const reverse iterator to one before the first
+
+    Returns a const reverse iterator to the reverse-end; that is, one before
+    the first element.
+
+    @image html range-rbegin-rend.svg "Illustration from cppreference.com"
+
+    @complexity Constant.
+
+    @requirement This function helps `basic_json` satisfying the
+    [ReversibleContainer](http://en.cppreference.com/w/cpp/concept/ReversibleContainer)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `const_cast<const basic_json&>(*this).rend()`.
+
+    @liveexample{The following code shows an example for `crend()`.,crend}
+
+    @sa @ref rend() -- returns a reverse iterator to the end
+    @sa @ref rbegin() -- returns a reverse iterator to the beginning
+    @sa @ref crbegin() -- returns a const reverse iterator to the beginning
+
+    @since version 1.0.0
+    */
+    const_reverse_iterator crend() const noexcept
+    {
+        return const_reverse_iterator(cbegin());
+    }
+
+  private:
+    // forward declaration
+    template<typename IteratorType> class iteration_proxy;
+
+  public:
+    /*!
+    @brief wrapper to access iterator member functions in range-based for
+
+    This function allows to access @ref iterator::key() and @ref
+    iterator::value() during range-based for loops. In these loops, a
+    reference to the JSON values is returned, so there is no access to the
+    underlying iterator.
+
+    @note The name of this function is not yet final and may change in the
+    future.
+    */
+    static iteration_proxy<iterator> iterator_wrapper(reference cont)
+    {
+        return iteration_proxy<iterator>(cont);
+    }
+
+    /*!
+    @copydoc iterator_wrapper(reference)
+    */
+    static iteration_proxy<const_iterator> iterator_wrapper(const_reference cont)
+    {
+        return iteration_proxy<const_iterator>(cont);
+    }
+
+    /// @}
+
+
+    //////////////
+    // capacity //
+    //////////////
+
+    /// @name capacity
+    /// @{
+
+    /*!
+    @brief checks whether the container is empty
+
+    Checks if a JSON value has no elements.
+
+    @return The return value depends on the different types and is
+            defined as follows:
+            Value type  | return value
+            ----------- | -------------
+            null        | `true`
+            boolean     | `false`
+            string      | `false`
+            number      | `false`
+            object      | result of function `object_t::empty()`
+            array       | result of function `array_t::empty()`
+
+    @complexity Constant, as long as @ref array_t and @ref object_t satisfy
+    the Container concept; that is, their `empty()` functions have constant
+    complexity.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `begin() == end()`.
+
+    @liveexample{The following code uses `empty()` to check if a JSON
+    object contains any elements.,empty}
+
+    @sa @ref size() -- returns the number of elements
+
+    @since version 1.0.0
+    */
+    bool empty() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::null:
+            {
+                // null values are empty
+                return true;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->empty();
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->empty();
+            }
+
+            default:
+            {
+                // all other types are nonempty
+                return false;
+            }
+        }
+    }
+
+    /*!
+    @brief returns the number of elements
+
+    Returns the number of elements in a JSON value.
+
+    @return The return value depends on the different types and is
+            defined as follows:
+            Value type  | return value
+            ----------- | -------------
+            null        | `0`
+            boolean     | `1`
+            string      | `1`
+            number      | `1`
+            object      | result of function object_t::size()
+            array       | result of function array_t::size()
+
+    @complexity Constant, as long as @ref array_t and @ref object_t satisfy
+    the Container concept; that is, their size() functions have constant
+    complexity.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of `std::distance(begin(), end())`.
+
+    @liveexample{The following code calls `size()` on the different value
+    types.,size}
+
+    @sa @ref empty() -- checks whether the container is empty
+    @sa @ref max_size() -- returns the maximal number of elements
+
+    @since version 1.0.0
+    */
+    size_type size() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::null:
+            {
+                // null values are empty
+                return 0;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->size();
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->size();
+            }
+
+            default:
+            {
+                // all other types have size 1
+                return 1;
+            }
+        }
+    }
+
+    /*!
+    @brief returns the maximum possible number of elements
+
+    Returns the maximum number of elements a JSON value is able to hold due to
+    system or library implementation limitations, i.e. `std::distance(begin(),
+    end())` for the JSON value.
+
+    @return The return value depends on the different types and is
+            defined as follows:
+            Value type  | return value
+            ----------- | -------------
+            null        | `0` (same as `size()`)
+            boolean     | `1` (same as `size()`)
+            string      | `1` (same as `size()`)
+            number      | `1` (same as `size()`)
+            object      | result of function `object_t::max_size()`
+            array       | result of function `array_t::max_size()`
+
+    @complexity Constant, as long as @ref array_t and @ref object_t satisfy
+    the Container concept; that is, their `max_size()` functions have constant
+    complexity.
+
+    @requirement This function helps `basic_json` satisfying the
+    [Container](http://en.cppreference.com/w/cpp/concept/Container)
+    requirements:
+    - The complexity is constant.
+    - Has the semantics of returning `b.size()` where `b` is the largest
+      possible JSON value.
+
+    @liveexample{The following code calls `max_size()` on the different value
+    types. Note the output is implementation specific.,max_size}
+
+    @sa @ref size() -- returns the number of elements
+
+    @since version 1.0.0
+    */
+    size_type max_size() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                return m_value.array->max_size();
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                return m_value.object->max_size();
+            }
+
+            default:
+            {
+                // all other types have max_size() == size()
+                return size();
+            }
+        }
+    }
+
+    /// @}
+
+
+    ///////////////
+    // modifiers //
+    ///////////////
+
+    /// @name modifiers
+    /// @{
+
+    /*!
+    @brief clears the contents
+
+    Clears the content of a JSON value and resets it to the default value as
+    if @ref basic_json(value_t) would have been called:
+
+    Value type  | initial value
+    ----------- | -------------
+    null        | `null`
+    boolean     | `false`
+    string      | `""`
+    number      | `0`
+    object      | `{}`
+    array       | `[]`
+
+    @note Floating-point numbers are set to `0.0` which will be serialized to
+    `0`. The vale type remains @ref number_float_t.
+
+    @complexity Linear in the size of the JSON value.
+
+    @liveexample{The example below shows the effect of `clear()` to different
+    JSON types.,clear}
+
+    @since version 1.0.0
+    */
+    void clear() noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::number_integer:
+            {
+                m_value.number_integer = 0;
+                break;
+            }
+
+            case value_t::number_unsigned:
+            {
+                m_value.number_unsigned = 0;
+                break;
+            }
+
+            case value_t::number_float:
+            {
+                m_value.number_float = 0.0;
+                break;
+            }
+
+            case value_t::boolean:
+            {
+                m_value.boolean = false;
+                break;
+            }
+
+            case value_t::string:
+            {
+                assert(m_value.string != nullptr);
+                m_value.string->clear();
+                break;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+                m_value.array->clear();
+                break;
+            }
+
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+                m_value.object->clear();
+                break;
+            }
+
+            default:
+            {
+                break;
+            }
+        }
+    }
+
+    /*!
+    @brief add an object to an array
+
+    Appends the given element @a val to the end of the JSON value. If the
+    function is called on a JSON null value, an empty array is created before
+    appending @a val.
+
+    @param[in] val the value to add to the JSON array
+
+    @throw std::domain_error when called on a type other than JSON array or
+    null; example: `"cannot use push_back() with number"`
+
+    @complexity Amortized constant.
+
+    @liveexample{The example shows how `push_back()` and `+=` can be used to
+    add elements to a JSON array. Note how the `null` value was silently
+    converted to a JSON array.,push_back}
+
+    @since version 1.0.0
+    */
+    void push_back(basic_json&& val)
+    {
+        // push_back only works for null objects or arrays
+        if (not(is_null() or is_array()))
+        {
+            throw std::domain_error("cannot use push_back() with " + type_name());
+        }
+
+        // transform null object into an array
+        if (is_null())
+        {
+            m_type = value_t::array;
+            m_value = value_t::array;
+        }
+
+        // add element to array (move semantics)
+        assert(m_value.array != nullptr);
+        m_value.array->push_back(std::move(val));
+        // invalidate object
+        val.m_type = value_t::null;
+    }
+
+    /*!
+    @brief add an object to an array
+    @copydoc push_back(basic_json&&)
+    */
+    reference operator+=(basic_json&& val)
+    {
+        push_back(std::move(val));
+        return *this;
+    }
+
+    /*!
+    @brief add an object to an array
+    @copydoc push_back(basic_json&&)
+    */
+    void push_back(const basic_json& val)
+    {
+        // push_back only works for null objects or arrays
+        if (not(is_null() or is_array()))
+        {
+            throw std::domain_error("cannot use push_back() with " + type_name());
+        }
+
+        // transform null object into an array
+        if (is_null())
+        {
+            m_type = value_t::array;
+            m_value = value_t::array;
+        }
+
+        // add element to array
+        assert(m_value.array != nullptr);
+        m_value.array->push_back(val);
+    }
+
+    /*!
+    @brief add an object to an array
+    @copydoc push_back(basic_json&&)
+    */
+    reference operator+=(const basic_json& val)
+    {
+        push_back(val);
+        return *this;
+    }
+
+    /*!
+    @brief add an object to an object
+
+    Inserts the given element @a val to the JSON object. If the function is
+    called on a JSON null value, an empty object is created before inserting
+    @a val.
+
+    @param[in] val the value to add to the JSON object
+
+    @throw std::domain_error when called on a type other than JSON object or
+    null; example: `"cannot use push_back() with number"`
+
+    @complexity Logarithmic in the size of the container, O(log(`size()`)).
+
+    @liveexample{The example shows how `push_back()` and `+=` can be used to
+    add elements to a JSON object. Note how the `null` value was silently
+    converted to a JSON object.,push_back__object_t__value}
+
+    @since version 1.0.0
+    */
+    void push_back(const typename object_t::value_type& val)
+    {
+        // push_back only works for null objects or objects
+        if (not(is_null() or is_object()))
+        {
+            throw std::domain_error("cannot use push_back() with " + type_name());
+        }
+
+        // transform null object into an object
+        if (is_null())
+        {
+            m_type = value_t::object;
+            m_value = value_t::object;
+        }
+
+        // add element to array
+        assert(m_value.object != nullptr);
+        m_value.object->insert(val);
+    }
+
+    /*!
+    @brief add an object to an object
+    @copydoc push_back(const typename object_t::value_type&)
+    */
+    reference operator+=(const typename object_t::value_type& val)
+    {
+        push_back(val);
+        return *this;
+    }
+
+    /*!
+    @brief add an object to an object
+
+    This function allows to use `push_back` with an initializer list. In case
+
+    1. the current value is an object,
+    2. the initializer list @a init contains only two elements, and
+    3. the first element of @a init is a string,
+
+    @a init is converted into an object element and added using
+    @ref push_back(const typename object_t::value_type&). Otherwise, @a init
+    is converted to a JSON value and added using @ref push_back(basic_json&&).
+
+    @param init  an initializer list
+
+    @complexity Linear in the size of the initializer list @a init.
+
+    @note This function is required to resolve an ambiguous overload error,
+          because pairs like `{"key", "value"}` can be both interpreted as
+          `object_t::value_type` or `std::initializer_list<basic_json>`, see
+          https://github.com/nlohmann/json/issues/235 for more information.
+
+    @liveexample{The example shows how initializer lists are treated as
+    objects when possible.,push_back__initializer_list}
+    */
+    void push_back(std::initializer_list<basic_json> init)
+    {
+        if (is_object() and init.size() == 2 and init.begin()->is_string())
+        {
+            const string_t key = *init.begin();
+            push_back(typename object_t::value_type(key, *(init.begin() + 1)));
+        }
+        else
+        {
+            push_back(basic_json(init));
+        }
+    }
+
+    /*!
+    @brief add an object to an object
+    @copydoc push_back(std::initializer_list<basic_json>)
+    */
+    reference operator+=(std::initializer_list<basic_json> init)
+    {
+        push_back(init);
+        return *this;
+    }
+
+    /*!
+    @brief inserts element
+
+    Inserts element @a val before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] val element to insert
+    @return iterator pointing to the inserted @a val.
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+
+    @complexity Constant plus linear in the distance between pos and end of the
+    container.
+
+    @liveexample{The example shows how `insert()` is used.,insert}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, const basic_json& val)
+    {
+        // insert only works for arrays
+        if (is_array())
+        {
+            // check if iterator pos fits to this JSON value
+            if (pos.m_object != this)
+            {
+                throw std::domain_error("iterator does not fit current value");
+            }
+
+            // insert to array and return iterator
+            iterator result(this);
+            assert(m_value.array != nullptr);
+            result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, val);
+            return result;
+        }
+        else
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief inserts element
+    @copydoc insert(const_iterator, const basic_json&)
+    */
+    iterator insert(const_iterator pos, basic_json&& val)
+    {
+        return insert(pos, val);
+    }
+
+    /*!
+    @brief inserts elements
+
+    Inserts @a cnt copies of @a val before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] cnt number of copies of @a val to insert
+    @param[in] val element to insert
+    @return iterator pointing to the first element inserted, or @a pos if
+    `cnt==0`
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+
+    @complexity Linear in @a cnt plus linear in the distance between @a pos
+    and end of the container.
+
+    @liveexample{The example shows how `insert()` is used.,insert__count}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, size_type cnt, const basic_json& val)
+    {
+        // insert only works for arrays
+        if (is_array())
+        {
+            // check if iterator pos fits to this JSON value
+            if (pos.m_object != this)
+            {
+                throw std::domain_error("iterator does not fit current value");
+            }
+
+            // insert to array and return iterator
+            iterator result(this);
+            assert(m_value.array != nullptr);
+            result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val);
+            return result;
+        }
+        else
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief inserts elements
+
+    Inserts elements from range `[first, last)` before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] first begin of the range of elements to insert
+    @param[in] last end of the range of elements to insert
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+    @throw std::domain_error if @a first and @a last do not belong to the same
+    JSON value; example: `"iterators do not fit"`
+    @throw std::domain_error if @a first or @a last are iterators into
+    container for which insert is called; example: `"passed iterators may not
+    belong to container"`
+
+    @return iterator pointing to the first element inserted, or @a pos if
+    `first==last`
+
+    @complexity Linear in `std::distance(first, last)` plus linear in the
+    distance between @a pos and end of the container.
+
+    @liveexample{The example shows how `insert()` is used.,insert__range}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, const_iterator first, const_iterator last)
+    {
+        // insert only works for arrays
+        if (not is_array())
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+
+        // check if iterator pos fits to this JSON value
+        if (pos.m_object != this)
+        {
+            throw std::domain_error("iterator does not fit current value");
+        }
+
+        if (first.m_object != last.m_object)
+        {
+            throw std::domain_error("iterators do not fit");
+        }
+
+        if (first.m_object == this or last.m_object == this)
+        {
+            throw std::domain_error("passed iterators may not belong to container");
+        }
+
+        // insert to array and return iterator
+        iterator result(this);
+        assert(m_value.array != nullptr);
+        result.m_it.array_iterator = m_value.array->insert(
+                                         pos.m_it.array_iterator,
+                                         first.m_it.array_iterator,
+                                         last.m_it.array_iterator);
+        return result;
+    }
+
+    /*!
+    @brief inserts elements
+
+    Inserts elements from initializer list @a ilist before iterator @a pos.
+
+    @param[in] pos iterator before which the content will be inserted; may be
+    the end() iterator
+    @param[in] ilist initializer list to insert the values from
+
+    @throw std::domain_error if called on JSON values other than arrays;
+    example: `"cannot use insert() with string"`
+    @throw std::domain_error if @a pos is not an iterator of *this; example:
+    `"iterator does not fit current value"`
+
+    @return iterator pointing to the first element inserted, or @a pos if
+    `ilist` is empty
+
+    @complexity Linear in `ilist.size()` plus linear in the distance between
+    @a pos and end of the container.
+
+    @liveexample{The example shows how `insert()` is used.,insert__ilist}
+
+    @since version 1.0.0
+    */
+    iterator insert(const_iterator pos, std::initializer_list<basic_json> ilist)
+    {
+        // insert only works for arrays
+        if (not is_array())
+        {
+            throw std::domain_error("cannot use insert() with " + type_name());
+        }
+
+        // check if iterator pos fits to this JSON value
+        if (pos.m_object != this)
+        {
+            throw std::domain_error("iterator does not fit current value");
+        }
+
+        // insert to array and return iterator
+        iterator result(this);
+        assert(m_value.array != nullptr);
+        result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, ilist);
+        return result;
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of the JSON value with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other JSON value to exchange the contents with
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how JSON values can be swapped with
+    `swap()`.,swap__reference}
+
+    @since version 1.0.0
+    */
+    void swap(reference other) noexcept (
+        std::is_nothrow_move_constructible<value_t>::value and
+        std::is_nothrow_move_assignable<value_t>::value and
+        std::is_nothrow_move_constructible<json_value>::value and
+        std::is_nothrow_move_assignable<json_value>::value
+    )
+    {
+        std::swap(m_type, other.m_type);
+        std::swap(m_value, other.m_value);
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of a JSON array with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other array to exchange the contents with
+
+    @throw std::domain_error when JSON value is not an array; example: `"cannot
+    use swap() with string"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how arrays can be swapped with
+    `swap()`.,swap__array_t}
+
+    @since version 1.0.0
+    */
+    void swap(array_t& other)
+    {
+        // swap only works for arrays
+        if (is_array())
+        {
+            assert(m_value.array != nullptr);
+            std::swap(*(m_value.array), other);
+        }
+        else
+        {
+            throw std::domain_error("cannot use swap() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of a JSON object with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other object to exchange the contents with
+
+    @throw std::domain_error when JSON value is not an object; example:
+    `"cannot use swap() with string"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how objects can be swapped with
+    `swap()`.,swap__object_t}
+
+    @since version 1.0.0
+    */
+    void swap(object_t& other)
+    {
+        // swap only works for objects
+        if (is_object())
+        {
+            assert(m_value.object != nullptr);
+            std::swap(*(m_value.object), other);
+        }
+        else
+        {
+            throw std::domain_error("cannot use swap() with " + type_name());
+        }
+    }
+
+    /*!
+    @brief exchanges the values
+
+    Exchanges the contents of a JSON string with those of @a other. Does not
+    invoke any move, copy, or swap operations on individual elements. All
+    iterators and references remain valid. The past-the-end iterator is
+    invalidated.
+
+    @param[in,out] other string to exchange the contents with
+
+    @throw std::domain_error when JSON value is not a string; example: `"cannot
+    use swap() with boolean"`
+
+    @complexity Constant.
+
+    @liveexample{The example below shows how strings can be swapped with
+    `swap()`.,swap__string_t}
+
+    @since version 1.0.0
+    */
+    void swap(string_t& other)
+    {
+        // swap only works for strings
+        if (is_string())
+        {
+            assert(m_value.string != nullptr);
+            std::swap(*(m_value.string), other);
+        }
+        else
+        {
+            throw std::domain_error("cannot use swap() with " + type_name());
+        }
+    }
+
+    /// @}
+
+
+    //////////////////////////////////////////
+    // lexicographical comparison operators //
+    //////////////////////////////////////////
+
+    /// @name lexicographical comparison operators
+    /// @{
+
+  private:
+    /*!
+    @brief comparison operator for JSON types
+
+    Returns an ordering that is similar to Python:
+    - order: null < boolean < number < object < array < string
+    - furthermore, each type is not smaller than itself
+
+    @since version 1.0.0
+    */
+    friend bool operator<(const value_t lhs, const value_t rhs) noexcept
+    {
+        static constexpr std::array<uint8_t, 8> order = {{
+                0, // null
+                3, // object
+                4, // array
+                5, // string
+                1, // boolean
+                2, // integer
+                2, // unsigned
+                2, // float
+            }
+        };
+
+        // discarded values are not comparable
+        if (lhs == value_t::discarded or rhs == value_t::discarded)
+        {
+            return false;
+        }
+
+        return order[static_cast<std::size_t>(lhs)] < order[static_cast<std::size_t>(rhs)];
+    }
+
+  public:
+    /*!
+    @brief comparison: equal
+
+    Compares two JSON values for equality according to the following rules:
+    - Two JSON values are equal if (1) they are from the same type and (2)
+      their stored values are the same.
+    - Integer and floating-point numbers are automatically converted before
+      comparison. Floating-point numbers are compared indirectly: two
+      floating-point numbers `f1` and `f2` are considered equal if neither
+      `f1 > f2` nor `f2 > f1` holds.
+    - Two JSON null values are equal.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether the values @a lhs and @a rhs are equal
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__equal}
+
+    @since version 1.0.0
+    */
+    friend bool operator==(const_reference lhs, const_reference rhs) noexcept
+    {
+        const auto lhs_type = lhs.type();
+        const auto rhs_type = rhs.type();
+
+        if (lhs_type == rhs_type)
+        {
+            switch (lhs_type)
+            {
+                case value_t::array:
+                {
+                    assert(lhs.m_value.array != nullptr);
+                    assert(rhs.m_value.array != nullptr);
+                    return *lhs.m_value.array == *rhs.m_value.array;
+                }
+                case value_t::object:
+                {
+                    assert(lhs.m_value.object != nullptr);
+                    assert(rhs.m_value.object != nullptr);
+                    return *lhs.m_value.object == *rhs.m_value.object;
+                }
+                case value_t::null:
+                {
+                    return true;
+                }
+                case value_t::string:
+                {
+                    assert(lhs.m_value.string != nullptr);
+                    assert(rhs.m_value.string != nullptr);
+                    return *lhs.m_value.string == *rhs.m_value.string;
+                }
+                case value_t::boolean:
+                {
+                    return lhs.m_value.boolean == rhs.m_value.boolean;
+                }
+                case value_t::number_integer:
+                {
+                    return lhs.m_value.number_integer == rhs.m_value.number_integer;
+                }
+                case value_t::number_unsigned:
+                {
+                    return lhs.m_value.number_unsigned == rhs.m_value.number_unsigned;
+                }
+                case value_t::number_float:
+                {
+                    return lhs.m_value.number_float == rhs.m_value.number_float;
+                }
+                default:
+                {
+                    return false;
+                }
+            }
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_integer) == rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer)
+        {
+            return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_integer);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_unsigned) == rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_unsigned);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer)
+        {
+            return static_cast<number_integer_t>(lhs.m_value.number_unsigned) == rhs.m_value.number_integer;
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_integer == static_cast<number_integer_t>(rhs.m_value.number_unsigned);
+        }
+
+        return false;
+    }
+
+    /*!
+    @brief comparison: equal
+
+    The functions compares the given JSON value against a null pointer. As the
+    null pointer can be used to initialize a JSON value to null, a comparison
+    of JSON value @a v with a null pointer should be equivalent to call
+    `v.is_null()`.
+
+    @param[in] v  JSON value to consider
+    @return whether @a v is null
+
+    @complexity Constant.
+
+    @liveexample{The example compares several JSON types to the null pointer.
+    ,operator__equal__nullptr_t}
+
+    @since version 1.0.0
+    */
+    friend bool operator==(const_reference v, std::nullptr_t) noexcept
+    {
+        return v.is_null();
+    }
+
+    /*!
+    @brief comparison: equal
+    @copydoc operator==(const_reference, std::nullptr_t)
+    */
+    friend bool operator==(std::nullptr_t, const_reference v) noexcept
+    {
+        return v.is_null();
+    }
+
+    /*!
+    @brief comparison: not equal
+
+    Compares two JSON values for inequality by calculating `not (lhs == rhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether the values @a lhs and @a rhs are not equal
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__notequal}
+
+    @since version 1.0.0
+    */
+    friend bool operator!=(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (lhs == rhs);
+    }
+
+    /*!
+    @brief comparison: not equal
+
+    The functions compares the given JSON value against a null pointer. As the
+    null pointer can be used to initialize a JSON value to null, a comparison
+    of JSON value @a v with a null pointer should be equivalent to call
+    `not v.is_null()`.
+
+    @param[in] v  JSON value to consider
+    @return whether @a v is not null
+
+    @complexity Constant.
+
+    @liveexample{The example compares several JSON types to the null pointer.
+    ,operator__notequal__nullptr_t}
+
+    @since version 1.0.0
+    */
+    friend bool operator!=(const_reference v, std::nullptr_t) noexcept
+    {
+        return not v.is_null();
+    }
+
+    /*!
+    @brief comparison: not equal
+    @copydoc operator!=(const_reference, std::nullptr_t)
+    */
+    friend bool operator!=(std::nullptr_t, const_reference v) noexcept
+    {
+        return not v.is_null();
+    }
+
+    /*!
+    @brief comparison: less than
+
+    Compares whether one JSON value @a lhs is less than another JSON value @a
+    rhs according to the following rules:
+    - If @a lhs and @a rhs have the same type, the values are compared using
+      the default `<` operator.
+    - Integer and floating-point numbers are automatically converted before
+      comparison
+    - In case @a lhs and @a rhs have different types, the values are ignored
+      and the order of the types is considered, see
+      @ref operator<(const value_t, const value_t).
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is less than @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__less}
+
+    @since version 1.0.0
+    */
+    friend bool operator<(const_reference lhs, const_reference rhs) noexcept
+    {
+        const auto lhs_type = lhs.type();
+        const auto rhs_type = rhs.type();
+
+        if (lhs_type == rhs_type)
+        {
+            switch (lhs_type)
+            {
+                case value_t::array:
+                {
+                    assert(lhs.m_value.array != nullptr);
+                    assert(rhs.m_value.array != nullptr);
+                    return *lhs.m_value.array < *rhs.m_value.array;
+                }
+                case value_t::object:
+                {
+                    assert(lhs.m_value.object != nullptr);
+                    assert(rhs.m_value.object != nullptr);
+                    return *lhs.m_value.object < *rhs.m_value.object;
+                }
+                case value_t::null:
+                {
+                    return false;
+                }
+                case value_t::string:
+                {
+                    assert(lhs.m_value.string != nullptr);
+                    assert(rhs.m_value.string != nullptr);
+                    return *lhs.m_value.string < *rhs.m_value.string;
+                }
+                case value_t::boolean:
+                {
+                    return lhs.m_value.boolean < rhs.m_value.boolean;
+                }
+                case value_t::number_integer:
+                {
+                    return lhs.m_value.number_integer < rhs.m_value.number_integer;
+                }
+                case value_t::number_unsigned:
+                {
+                    return lhs.m_value.number_unsigned < rhs.m_value.number_unsigned;
+                }
+                case value_t::number_float:
+                {
+                    return lhs.m_value.number_float < rhs.m_value.number_float;
+                }
+                default:
+                {
+                    return false;
+                }
+            }
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_integer) < rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer)
+        {
+            return lhs.m_value.number_float < static_cast<number_float_t>(rhs.m_value.number_integer);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float)
+        {
+            return static_cast<number_float_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_float;
+        }
+        else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_float < static_cast<number_float_t>(rhs.m_value.number_unsigned);
+        }
+        else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned)
+        {
+            return lhs.m_value.number_integer < static_cast<number_integer_t>(rhs.m_value.number_unsigned);
+        }
+        else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer)
+        {
+            return static_cast<number_integer_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_integer;
+        }
+
+        // We only reach this line if we cannot compare values. In that case,
+        // we compare types. Note we have to call the operator explicitly,
+        // because MSVC has problems otherwise.
+        return operator<(lhs_type, rhs_type);
+    }
+
+    /*!
+    @brief comparison: less than or equal
+
+    Compares whether one JSON value @a lhs is less than or equal to another
+    JSON value by calculating `not (rhs < lhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is less than or equal to @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__greater}
+
+    @since version 1.0.0
+    */
+    friend bool operator<=(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (rhs < lhs);
+    }
+
+    /*!
+    @brief comparison: greater than
+
+    Compares whether one JSON value @a lhs is greater than another
+    JSON value by calculating `not (lhs <= rhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is greater than to @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__lessequal}
+
+    @since version 1.0.0
+    */
+    friend bool operator>(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (lhs <= rhs);
+    }
+
+    /*!
+    @brief comparison: greater than or equal
+
+    Compares whether one JSON value @a lhs is greater than or equal to another
+    JSON value by calculating `not (lhs < rhs)`.
+
+    @param[in] lhs  first JSON value to consider
+    @param[in] rhs  second JSON value to consider
+    @return whether @a lhs is greater than or equal to @a rhs
+
+    @complexity Linear.
+
+    @liveexample{The example demonstrates comparing several JSON
+    types.,operator__greaterequal}
+
+    @since version 1.0.0
+    */
+    friend bool operator>=(const_reference lhs, const_reference rhs) noexcept
+    {
+        return not (lhs < rhs);
+    }
+
+    /// @}
+
+
+    ///////////////////
+    // serialization //
+    ///////////////////
+
+    /// @name serialization
+    /// @{
+
+    /*!
+    @brief serialize to stream
+
+    Serialize the given JSON value @a j to the output stream @a o. The JSON
+    value will be serialized using the @ref dump member function. The
+    indentation of the output can be controlled with the member variable
+    `width` of the output stream @a o. For instance, using the manipulator
+    `std::setw(4)` on @a o sets the indentation level to `4` and the
+    serialization result is the same as calling `dump(4)`.
+
+    @param[in,out] o  stream to serialize to
+    @param[in] j  JSON value to serialize
+
+    @return the stream @a o
+
+    @complexity Linear.
+
+    @liveexample{The example below shows the serialization with different
+    parameters to `width` to adjust the indentation level.,operator_serialize}
+
+    @since version 1.0.0
+    */
+    friend std::ostream& operator<<(std::ostream& o, const basic_json& j)
+    {
+        // read width member and use it as indentation parameter if nonzero
+        const bool pretty_print = (o.width() > 0);
+        const auto indentation = (pretty_print ? o.width() : 0);
+
+        // reset width to 0 for subsequent calls to this stream
+        o.width(0);
+
+        // do the actual serialization
+        j.dump(o, pretty_print, static_cast<unsigned int>(indentation));
+        return o;
+    }
+
+    /*!
+    @brief serialize to stream
+    @copydoc operator<<(std::ostream&, const basic_json&)
+    */
+    friend std::ostream& operator>>(const basic_json& j, std::ostream& o)
+    {
+        return o << j;
+    }
+
+    /// @}
+
+
+    /////////////////////
+    // deserialization //
+    /////////////////////
+
+    /// @name deserialization
+    /// @{
+
+    /*!
+    @brief deserialize from string
+
+    @param[in] s  string to read a serialized JSON value from
+    @param[in] cb a parser callback function of type @ref parser_callback_t
+    which is used to control the deserialization by filtering unwanted values
+    (optional)
+
+    @return result of the deserialization
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser. The complexity can be higher if the parser callback function
+    @a cb has a super-linear complexity.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below demonstrates the `parse()` function with
+    and without callback function.,parse__string__parser_callback_t}
+
+    @sa @ref parse(std::istream&, parser_callback_t) for a version that reads
+    from an input stream
+
+    @since version 1.0.0
+    */
+    static basic_json parse(const string_t& s, parser_callback_t cb = nullptr)
+    {
+        return parser(s, cb).parse();
+    }
+
+    /*!
+    @brief deserialize from stream
+
+    @param[in,out] i  stream to read a serialized JSON value from
+    @param[in] cb a parser callback function of type @ref parser_callback_t
+    which is used to control the deserialization by filtering unwanted values
+    (optional)
+
+    @return result of the deserialization
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser. The complexity can be higher if the parser callback function
+    @a cb has a super-linear complexity.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below demonstrates the `parse()` function with
+    and without callback function.,parse__istream__parser_callback_t}
+
+    @sa @ref parse(const string_t&, parser_callback_t) for a version that
+    reads from a string
+
+    @since version 1.0.0
+    */
+    static basic_json parse(std::istream& i, parser_callback_t cb = nullptr)
+    {
+        return parser(i, cb).parse();
+    }
+
+    /*!
+    @copydoc parse(std::istream&, parser_callback_t)
+    */
+    static basic_json parse(std::istream&& i, parser_callback_t cb = nullptr)
+    {
+        return parser(i, cb).parse();
+    }
+
+    /*!
+    @brief deserialize from stream
+
+    Deserializes an input stream to a JSON value.
+
+    @param[in,out] i  input stream to read a serialized JSON value from
+    @param[in,out] j  JSON value to write the deserialized input to
+
+    @throw std::invalid_argument in case of parse errors
+
+    @complexity Linear in the length of the input. The parser is a predictive
+    LL(1) parser.
+
+    @note A UTF-8 byte order mark is silently ignored.
+
+    @liveexample{The example below shows how a JSON value is constructed by
+    reading a serialization from a stream.,operator_deserialize}
+
+    @sa parse(std::istream&, parser_callback_t) for a variant with a parser
+    callback function to filter values while parsing
+
+    @since version 1.0.0
+    */
+    friend std::istream& operator<<(basic_json& j, std::istream& i)
+    {
+        j = parser(i).parse();
+        return i;
+    }
+
+    /*!
+    @brief deserialize from stream
+    @copydoc operator<<(basic_json&, std::istream&)
+    */
+    friend std::istream& operator>>(std::istream& i, basic_json& j)
+    {
+        j = parser(i).parse();
+        return i;
+    }
+
+    /// @}
+
+
+  private:
+    ///////////////////////////
+    // convenience functions //
+    ///////////////////////////
+
+    /// return the type as string
+    string_t type_name() const noexcept
+    {
+        switch (m_type)
+        {
+            case value_t::null:
+                return "null";
+            case value_t::object:
+                return "object";
+            case value_t::array:
+                return "array";
+            case value_t::string:
+                return "string";
+            case value_t::boolean:
+                return "boolean";
+            case value_t::discarded:
+                return "discarded";
+            default:
+                return "number";
+        }
+    }
+
+    /*!
+    @brief calculates the extra space to escape a JSON string
+
+    @param[in] s  the string to escape
+    @return the number of characters required to escape string @a s
+
+    @complexity Linear in the length of string @a s.
+    */
+    static std::size_t extra_space(const string_t& s) noexcept
+    {
+        std::size_t result = 0;
+
+        for (const auto& c : s)
+        {
+            switch (c)
+            {
+                case '"':
+                case '\\':
+                case '\b':
+                case '\f':
+                case '\n':
+                case '\r':
+                case '\t':
+                {
+                    // from c (1 byte) to \x (2 bytes)
+                    result += 1;
+                    break;
+                }
+
+                default:
+                {
+                    if (c >= 0x00 and c <= 0x1f)
+                    {
+                        // from c (1 byte) to \uxxxx (6 bytes)
+                        result += 5;
+                    }
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief escape a string
+
+    Escape a string by replacing certain special characters by a sequence of
+    an escape character (backslash) and another character and other control
+    characters by a sequence of "\u" followed by a four-digit hex
+    representation.
+
+    @param[in] s  the string to escape
+    @return  the escaped string
+
+    @complexity Linear in the length of string @a s.
+    */
+    static string_t escape_string(const string_t& s)
+    {
+        const auto space = extra_space(s);
+        if (space == 0)
+        {
+            return s;
+        }
+
+        // create a result string of necessary size
+        string_t result(s.size() + space, '\\');
+        std::size_t pos = 0;
+
+        for (const auto& c : s)
+        {
+            switch (c)
+            {
+                // quotation mark (0x22)
+                case '"':
+                {
+                    result[pos + 1] = '"';
+                    pos += 2;
+                    break;
+                }
+
+                // reverse solidus (0x5c)
+                case '\\':
+                {
+                    // nothing to change
+                    pos += 2;
+                    break;
+                }
+
+                // backspace (0x08)
+                case '\b':
+                {
+                    result[pos + 1] = 'b';
+                    pos += 2;
+                    break;
+                }
+
+                // formfeed (0x0c)
+                case '\f':
+                {
+                    result[pos + 1] = 'f';
+                    pos += 2;
+                    break;
+                }
+
+                // newline (0x0a)
+                case '\n':
+                {
+                    result[pos + 1] = 'n';
+                    pos += 2;
+                    break;
+                }
+
+                // carriage return (0x0d)
+                case '\r':
+                {
+                    result[pos + 1] = 'r';
+                    pos += 2;
+                    break;
+                }
+
+                // horizontal tab (0x09)
+                case '\t':
+                {
+                    result[pos + 1] = 't';
+                    pos += 2;
+                    break;
+                }
+
+                default:
+                {
+                    if (c >= 0x00 and c <= 0x1f)
+                    {
+                        // convert a number 0..15 to its hex representation
+                        // (0..f)
+                        const auto hexify = [](const int v) -> char
+                        {
+                            return (v < 10)
+                            ? ('0' + static_cast<char>(v))
+                            : ('a' + static_cast<char>((v - 10) & 0x1f));
+                        };
+
+                        // print character c as \uxxxx
+                        for (const char m :
+                    { 'u', '0', '0', hexify(c >> 4), hexify(c & 0x0f)
+                        })
+                        {
+                            result[++pos] = m;
+                        }
+
+                        ++pos;
+                    }
+                    else
+                    {
+                        // all other characters are added as-is
+                        result[pos++] = c;
+                    }
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief internal implementation of the serialization function
+
+    This function is called by the public member function dump and organizes
+    the serialization internally. The indentation level is propagated as
+    additional parameter. In case of arrays and objects, the function is
+    called recursively. Note that
+
+    - strings and object keys are escaped using `escape_string()`
+    - integer numbers are converted implicitly via `operator<<`
+    - floating-point numbers are converted to a string using `"%g"` format
+
+    @param[out] o              stream to write to
+    @param[in] pretty_print    whether the output shall be pretty-printed
+    @param[in] indent_step     the indent level
+    @param[in] current_indent  the current indent level (only used internally)
+    */
+    void dump(std::ostream& o,
+              const bool pretty_print,
+              const unsigned int indent_step,
+              const unsigned int current_indent = 0) const
+    {
+        // variable to hold indentation for recursive calls
+        unsigned int new_indent = current_indent;
+
+        switch (m_type)
+        {
+            case value_t::object:
+            {
+                assert(m_value.object != nullptr);
+
+                if (m_value.object->empty())
+                {
+                    o << "{}";
+                    return;
+                }
+
+                o << "{";
+
+                // increase indentation
+                if (pretty_print)
+                {
+                    new_indent += indent_step;
+                    o << "\n";
+                }
+
+                for (auto i = m_value.object->cbegin(); i != m_value.object->cend(); ++i)
+                {
+                    if (i != m_value.object->cbegin())
+                    {
+                        o << (pretty_print ? ",\n" : ",");
+                    }
+                    o << string_t(new_indent, ' ') << "\""
+                      << escape_string(i->first) << "\":"
+                      << (pretty_print ? " " : "");
+                    i->second.dump(o, pretty_print, indent_step, new_indent);
+                }
+
+                // decrease indentation
+                if (pretty_print)
+                {
+                    new_indent -= indent_step;
+                    o << "\n";
+                }
+
+                o << string_t(new_indent, ' ') + "}";
+                return;
+            }
+
+            case value_t::array:
+            {
+                assert(m_value.array != nullptr);
+
+                if (m_value.array->empty())
+                {
+                    o << "[]";
+                    return;
+                }
+
+                o << "[";
+
+                // increase indentation
+                if (pretty_print)
+                {
+                    new_indent += indent_step;
+                    o << "\n";
+                }
+
+                for (auto i = m_value.array->cbegin(); i != m_value.array->cend(); ++i)
+                {
+                    if (i != m_value.array->cbegin())
+                    {
+                        o << (pretty_print ? ",\n" : ",");
+                    }
+                    o << string_t(new_indent, ' ');
+                    i->dump(o, pretty_print, indent_step, new_indent);
+                }
+
+                // decrease indentation
+                if (pretty_print)
+                {
+                    new_indent -= indent_step;
+                    o << "\n";
+                }
+
+                o << string_t(new_indent, ' ') << "]";
+                return;
+            }
+
+            case value_t::string:
+            {
+                assert(m_value.string != nullptr);
+                o << string_t("\"") << escape_string(*m_value.string) << "\"";
+                return;
+            }
+
+            case value_t::boolean:
+            {
+                o << (m_value.boolean ? "true" : "false");
+                return;
+            }
+
+            case value_t::number_integer:
+            {
+                o << m_value.number_integer;
+                return;
+            }
+
+            case value_t::number_unsigned:
+            {
+                o << m_value.number_unsigned;
+                return;
+            }
+
+            case value_t::number_float:
+            {
+                // check if number was parsed from a string
+                if (m_type.bits.parsed)
+                {
+                    // check if parsed number had an exponent given
+                    if (m_type.bits.has_exp)
+                    {
+                        // buffer size: precision (2^8-1 = 255) + other ('-.e-xxx' = 7) + null (1)
+                        char buf[263];
+                        int len;
+
+                        // handle capitalization of the exponent
+                        if (m_type.bits.exp_cap)
+                        {
+                            len = snprintf(buf, sizeof(buf), "%.*E",
+                                           m_type.bits.precision, m_value.number_float) + 1;
+                        }
+                        else
+                        {
+                            len = snprintf(buf, sizeof(buf), "%.*e",
+                                           m_type.bits.precision, m_value.number_float) + 1;
+                        }
+
+                        // remove '+' sign from the exponent if necessary
+                        if (not m_type.bits.exp_plus)
+                        {
+                            if (len > static_cast<int>(sizeof(buf)))
+                            {
+                                len = sizeof(buf);
+                            }
+                            for (int i = 0; i < len; i++)
+                            {
+                                if (buf[i] == '+')
+                                {
+                                    for (; i + 1 < len; i++)
+                                    {
+                                        buf[i] = buf[i + 1];
+                                    }
+                                }
+                            }
+                        }
+
+                        o << buf;
+                    }
+                    else
+                    {
+                        // no exponent - output as a decimal
+                        std::stringstream ss;
+                        ss.imbue(std::locale(std::locale(), new DecimalSeparator));  // fix locale problems
+                        ss << std::setprecision(m_type.bits.precision)
+                           << std::fixed << m_value.number_float;
+                        o << ss.str();
+                    }
+                }
+                else
+                {
+                    if (m_value.number_float == 0)
+                    {
+                        // special case for zero to get "0.0"/"-0.0"
+                        o << (std::signbit(m_value.number_float) ? "-0.0" : "0.0");
+                    }
+                    else
+                    {
+                        // Otherwise 6, 15 or 16 digits of precision allows
+                        // round-trip IEEE 754 string->float->string,
+                        // string->double->string or string->long
+                        // double->string; to be safe, we read this value from
+                        // std::numeric_limits<number_float_t>::digits10
+                        std::stringstream ss;
+                        ss.imbue(std::locale(std::locale(), new DecimalSeparator));  // fix locale problems
+                        ss << std::setprecision(std::numeric_limits<double>::digits10)
+                           << m_value.number_float;
+                        o << ss.str();
+                    }
+                }
+                return;
+            }
+
+            case value_t::discarded:
+            {
+                o << "<discarded>";
+                return;
+            }
+
+            case value_t::null:
+            {
+                o << "null";
+                return;
+            }
+        }
+    }
+
+  private:
+    //////////////////////
+    // member variables //
+    //////////////////////
+
+    /// the type of the current element
+    type_data_t m_type = value_t::null;
+
+    /// the value of the current element
+    json_value m_value = {};
+
+
+  private:
+    ///////////////
+    // iterators //
+    ///////////////
+
+    /*!
+    @brief an iterator for primitive JSON types
+
+    This class models an iterator for primitive JSON types (boolean, number,
+    string). It's only purpose is to allow the iterator/const_iterator classes
+    to "iterate" over primitive values. Internally, the iterator is modeled by
+    a `difference_type` variable. Value begin_value (`0`) models the begin,
+    end_value (`1`) models past the end.
+    */
+    class primitive_iterator_t
+    {
+      public:
+        /// set iterator to a defined beginning
+        void set_begin() noexcept
+        {
+            m_it = begin_value;
+        }
+
+        /// set iterator to a defined past the end
+        void set_end() noexcept
+        {
+            m_it = end_value;
+        }
+
+        /// return whether the iterator can be dereferenced
+        constexpr bool is_begin() const noexcept
+        {
+            return (m_it == begin_value);
+        }
+
+        /// return whether the iterator is at end
+        constexpr bool is_end() const noexcept
+        {
+            return (m_it == end_value);
+        }
+
+        /// return reference to the value to change and compare
+        operator difference_type& () noexcept
+        {
+            return m_it;
+        }
+
+        /// return value to compare
+        constexpr operator difference_type () const noexcept
+        {
+            return m_it;
+        }
+
+      private:
+        static constexpr difference_type begin_value = 0;
+        static constexpr difference_type end_value = begin_value + 1;
+
+        /// iterator as signed integer type
+        difference_type m_it = std::numeric_limits<std::ptrdiff_t>::denorm_min();
+    };
+
+    /*!
+    @brief an iterator value
+
+    @note This structure could easily be a union, but MSVC currently does not
+    allow unions members with complex constructors, see
+    https://github.com/nlohmann/json/pull/105.
+    */
+    struct internal_iterator
+    {
+        /// iterator for JSON objects
+        typename object_t::iterator object_iterator;
+        /// iterator for JSON arrays
+        typename array_t::iterator array_iterator;
+        /// generic iterator for all other types
+        primitive_iterator_t primitive_iterator;
+
+        /// create an uninitialized internal_iterator
+        internal_iterator() noexcept
+            : object_iterator(), array_iterator(), primitive_iterator()
+        {}
+    };
+
+    /// proxy class for the iterator_wrapper functions
+    template<typename IteratorType>
+    class iteration_proxy
+    {
+      private:
+        /// helper class for iteration
+        class iteration_proxy_internal
+        {
+          private:
+            /// the iterator
+            IteratorType anchor;
+            /// an index for arrays (used to create key names)
+            size_t array_index = 0;
+
+          public:
+            explicit iteration_proxy_internal(IteratorType it) noexcept
+                : anchor(it)
+            {}
+
+            /// dereference operator (needed for range-based for)
+            iteration_proxy_internal& operator*()
+            {
+                return *this;
+            }
+
+            /// increment operator (needed for range-based for)
+            iteration_proxy_internal& operator++()
+            {
+                ++anchor;
+                ++array_index;
+
+                return *this;
+            }
+
+            /// inequality operator (needed for range-based for)
+            bool operator!= (const iteration_proxy_internal& o) const
+            {
+                return anchor != o.anchor;
+            }
+
+            /// return key of the iterator
+            typename basic_json::string_t key() const
+            {
+                assert(anchor.m_object != nullptr);
+
+                switch (anchor.m_object->type())
+                {
+                    // use integer array index as key
+                    case value_t::array:
+                    {
+                        return std::to_string(array_index);
+                    }
+
+                    // use key from the object
+                    case value_t::object:
+                    {
+                        return anchor.key();
+                    }
+
+                    // use an empty key for all primitive types
+                    default:
+                    {
+                        return "";
+                    }
+                }
+            }
+
+            /// return value of the iterator
+            typename IteratorType::reference value() const
+            {
+                return anchor.value();
+            }
+        };
+
+        /// the container to iterate
+        typename IteratorType::reference container;
+
+      public:
+        /// construct iteration proxy from a container
+        explicit iteration_proxy(typename IteratorType::reference cont)
+            : container(cont)
+        {}
+
+        /// return iterator begin (needed for range-based for)
+        iteration_proxy_internal begin() noexcept
+        {
+            return iteration_proxy_internal(container.begin());
+        }
+
+        /// return iterator end (needed for range-based for)
+        iteration_proxy_internal end() noexcept
+        {
+            return iteration_proxy_internal(container.end());
+        }
+    };
+
+  public:
+    /*!
+    @brief a const random access iterator for the @ref basic_json class
+
+    This class implements a const iterator for the @ref basic_json class. From
+    this class, the @ref iterator class is derived.
+
+    @requirement The class satisfies the following concept requirements:
+    - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator):
+      The iterator that can be moved to point (forward and backward) to any
+      element in constant time.
+
+    @since version 1.0.0
+    */
+    class const_iterator : public std::iterator<std::random_access_iterator_tag, const basic_json>
+    {
+        /// allow basic_json to access private members
+        friend class basic_json;
+
+      public:
+        /// the type of the values when the iterator is dereferenced
+        using value_type = typename basic_json::value_type;
+        /// a type to represent differences between iterators
+        using difference_type = typename basic_json::difference_type;
+        /// defines a pointer to the type iterated over (value_type)
+        using pointer = typename basic_json::const_pointer;
+        /// defines a reference to the type iterated over (value_type)
+        using reference = typename basic_json::const_reference;
+        /// the category of the iterator
+        using iterator_category = std::bidirectional_iterator_tag;
+
+        /// default constructor
+        const_iterator() = default;
+
+        /// constructor for a given JSON instance
+        explicit const_iterator(pointer object) noexcept
+            : m_object(object)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = typename object_t::iterator();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = typename array_t::iterator();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator = primitive_iterator_t();
+                    break;
+                }
+            }
+        }
+
+        /// copy constructor given a nonconst iterator
+        explicit const_iterator(const iterator& other) noexcept
+            : m_object(other.m_object)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    m_it.object_iterator = other.m_it.object_iterator;
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator = other.m_it.array_iterator;
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator = other.m_it.primitive_iterator;
+                    break;
+                }
+            }
+        }
+
+        /// copy constructor
+        const_iterator(const const_iterator& other) noexcept
+            : m_object(other.m_object), m_it(other.m_it)
+        {}
+
+        /// copy assignment
+        const_iterator& operator=(const_iterator other) noexcept(
+            std::is_nothrow_move_constructible<pointer>::value and
+            std::is_nothrow_move_assignable<pointer>::value and
+            std::is_nothrow_move_constructible<internal_iterator>::value and
+            std::is_nothrow_move_assignable<internal_iterator>::value
+        )
+        {
+            std::swap(m_object, other.m_object);
+            std::swap(m_it, other.m_it);
+            return *this;
+        }
+
+      private:
+        /// set the iterator to the first value
+        void set_begin() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object != nullptr);
+                    m_it.object_iterator = m_object->m_value.object->begin();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array != nullptr);
+                    m_it.array_iterator = m_object->m_value.array->begin();
+                    break;
+                }
+
+                case basic_json::value_t::null:
+                {
+                    // set to end so begin()==end() is true: null is empty
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_begin();
+                    break;
+                }
+            }
+        }
+
+        /// set the iterator past the last value
+        void set_end() noexcept
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object != nullptr);
+                    m_it.object_iterator = m_object->m_value.object->end();
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array != nullptr);
+                    m_it.array_iterator = m_object->m_value.array->end();
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator.set_end();
+                    break;
+                }
+            }
+        }
+
+      public:
+        /// return a reference to the value pointed to by the iterator
+        reference operator*() const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object);
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return m_it.object_iterator->second;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array);
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return *m_it.array_iterator;
+                }
+
+                case basic_json::value_t::null:
+                {
+                    throw std::out_of_range("cannot get value");
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return *m_object;
+                    }
+                    else
+                    {
+                        throw std::out_of_range("cannot get value");
+                    }
+                }
+            }
+        }
+
+        /// dereference the iterator
+        pointer operator->() const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    assert(m_object->m_value.object);
+                    assert(m_it.object_iterator != m_object->m_value.object->end());
+                    return &(m_it.object_iterator->second);
+                }
+
+                case basic_json::value_t::array:
+                {
+                    assert(m_object->m_value.array);
+                    assert(m_it.array_iterator != m_object->m_value.array->end());
+                    return &*m_it.array_iterator;
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator.is_begin())
+                    {
+                        return m_object;
+                    }
+                    else
+                    {
+                        throw std::out_of_range("cannot get value");
+                    }
+                }
+            }
+        }
+
+        /// post-increment (it++)
+        const_iterator operator++(int)
+        {
+            auto result = *this;
+            ++(*this);
+            return result;
+        }
+
+        /// pre-increment (++it)
+        const_iterator& operator++()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    ++m_it.object_iterator;
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    ++m_it.array_iterator;
+                    break;
+                }
+
+                default:
+                {
+                    ++m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /// post-decrement (it--)
+        const_iterator operator--(int)
+        {
+            auto result = *this;
+            --(*this);
+            return result;
+        }
+
+        /// pre-decrement (--it)
+        const_iterator& operator--()
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    --m_it.object_iterator;
+                    break;
+                }
+
+                case basic_json::value_t::array:
+                {
+                    --m_it.array_iterator;
+                    break;
+                }
+
+                default:
+                {
+                    --m_it.primitive_iterator;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /// comparison: equal
+        bool operator==(const const_iterator& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
+                throw std::domain_error("cannot compare iterators of different containers");
+            }
+
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    return (m_it.object_iterator == other.m_it.object_iterator);
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator == other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator == other.m_it.primitive_iterator);
+                }
+            }
+        }
+
+        /// comparison: not equal
+        bool operator!=(const const_iterator& other) const
+        {
+            return not operator==(other);
+        }
+
+        /// comparison: smaller
+        bool operator<(const const_iterator& other) const
+        {
+            // if objects are not the same, the comparison is undefined
+            if (m_object != other.m_object)
+            {
+                throw std::domain_error("cannot compare iterators of different containers");
+            }
+
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot compare order of object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return (m_it.array_iterator < other.m_it.array_iterator);
+                }
+
+                default:
+                {
+                    return (m_it.primitive_iterator < other.m_it.primitive_iterator);
+                }
+            }
+        }
+
+        /// comparison: less than or equal
+        bool operator<=(const const_iterator& other) const
+        {
+            return not other.operator < (*this);
+        }
+
+        /// comparison: greater than
+        bool operator>(const const_iterator& other) const
+        {
+            return not operator<=(other);
+        }
+
+        /// comparison: greater than or equal
+        bool operator>=(const const_iterator& other) const
+        {
+            return not operator<(other);
+        }
+
+        /// add to iterator
+        const_iterator& operator+=(difference_type i)
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot use offsets with object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    m_it.array_iterator += i;
+                    break;
+                }
+
+                default:
+                {
+                    m_it.primitive_iterator += i;
+                    break;
+                }
+            }
+
+            return *this;
+        }
+
+        /// subtract from iterator
+        const_iterator& operator-=(difference_type i)
+        {
+            return operator+=(-i);
+        }
+
+        /// add to iterator
+        const_iterator operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /// subtract from iterator
+        const_iterator operator-(difference_type i)
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /// return difference
+        difference_type operator-(const const_iterator& other) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot use offsets with object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return m_it.array_iterator - other.m_it.array_iterator;
+                }
+
+                default:
+                {
+                    return m_it.primitive_iterator - other.m_it.primitive_iterator;
+                }
+            }
+        }
+
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            assert(m_object != nullptr);
+
+            switch (m_object->m_type)
+            {
+                case basic_json::value_t::object:
+                {
+                    throw std::domain_error("cannot use operator[] for object iterators");
+                }
+
+                case basic_json::value_t::array:
+                {
+                    return *(m_it.array_iterator + n);
+                }
+
+                case basic_json::value_t::null:
+                {
+                    throw std::out_of_range("cannot get value");
+                }
+
+                default:
+                {
+                    if (m_it.primitive_iterator == -n)
+                    {
+                        return *m_object;
+                    }
+                    else
+                    {
+                        throw std::out_of_range("cannot get value");
+                    }
+                }
+            }
+        }
+
+        /// return the key of an object iterator
+        typename object_t::key_type key() const
+        {
+            assert(m_object != nullptr);
+
+            if (m_object->is_object())
+            {
+                return m_it.object_iterator->first;
+            }
+            else
+            {
+                throw std::domain_error("cannot use key() for non-object iterators");
+            }
+        }
+
+        /// return the value of an iterator
+        reference value() const
+        {
+            return operator*();
+        }
+
+      private:
+        /// associated JSON instance
+        pointer m_object = nullptr;
+        /// the actual iterator of the associated instance
+        internal_iterator m_it = internal_iterator();
+    };
+
+    /*!
+    @brief a mutable random access iterator for the @ref basic_json class
+
+    @requirement The class satisfies the following concept requirements:
+    - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator):
+      The iterator that can be moved to point (forward and backward) to any
+      element in constant time.
+    - [OutputIterator](http://en.cppreference.com/w/cpp/concept/OutputIterator):
+      It is possible to write to the pointed-to element.
+
+    @since version 1.0.0
+    */
+    class iterator : public const_iterator
+    {
+      public:
+        using base_iterator = const_iterator;
+        using pointer = typename basic_json::pointer;
+        using reference = typename basic_json::reference;
+
+        /// default constructor
+        iterator() = default;
+
+        /// constructor for a given JSON instance
+        explicit iterator(pointer object) noexcept
+            : base_iterator(object)
+        {}
+
+        /// copy constructor
+        iterator(const iterator& other) noexcept
+            : base_iterator(other)
+        {}
+
+        /// copy assignment
+        iterator& operator=(iterator other) noexcept(
+            std::is_nothrow_move_constructible<pointer>::value and
+            std::is_nothrow_move_assignable<pointer>::value and
+            std::is_nothrow_move_constructible<internal_iterator>::value and
+            std::is_nothrow_move_assignable<internal_iterator>::value
+        )
+        {
+            base_iterator::operator=(other);
+            return *this;
+        }
+
+        /// return a reference to the value pointed to by the iterator
+        reference operator*() const
+        {
+            return const_cast<reference>(base_iterator::operator*());
+        }
+
+        /// dereference the iterator
+        pointer operator->() const
+        {
+            return const_cast<pointer>(base_iterator::operator->());
+        }
+
+        /// post-increment (it++)
+        iterator operator++(int)
+        {
+            iterator result = *this;
+            base_iterator::operator++();
+            return result;
+        }
+
+        /// pre-increment (++it)
+        iterator& operator++()
+        {
+            base_iterator::operator++();
+            return *this;
+        }
+
+        /// post-decrement (it--)
+        iterator operator--(int)
+        {
+            iterator result = *this;
+            base_iterator::operator--();
+            return result;
+        }
+
+        /// pre-decrement (--it)
+        iterator& operator--()
+        {
+            base_iterator::operator--();
+            return *this;
+        }
+
+        /// add to iterator
+        iterator& operator+=(difference_type i)
+        {
+            base_iterator::operator+=(i);
+            return *this;
+        }
+
+        /// subtract from iterator
+        iterator& operator-=(difference_type i)
+        {
+            base_iterator::operator-=(i);
+            return *this;
+        }
+
+        /// add to iterator
+        iterator operator+(difference_type i)
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /// subtract from iterator
+        iterator operator-(difference_type i)
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /// return difference
+        difference_type operator-(const iterator& other) const
+        {
+            return base_iterator::operator-(other);
+        }
+
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            return const_cast<reference>(base_iterator::operator[](n));
+        }
+
+        /// return the value of an iterator
+        reference value() const
+        {
+            return const_cast<reference>(base_iterator::value());
+        }
+    };
+
+    /*!
+    @brief a template for a reverse iterator class
+
+    @tparam Base the base iterator type to reverse. Valid types are @ref
+    iterator (to create @ref reverse_iterator) and @ref const_iterator (to
+    create @ref const_reverse_iterator).
+
+    @requirement The class satisfies the following concept requirements:
+    - [RandomAccessIterator](http://en.cppreference.com/w/cpp/concept/RandomAccessIterator):
+      The iterator that can be moved to point (forward and backward) to any
+      element in constant time.
+    - [OutputIterator](http://en.cppreference.com/w/cpp/concept/OutputIterator):
+      It is possible to write to the pointed-to element (only if @a Base is
+      @ref iterator).
+
+    @since version 1.0.0
+    */
+    template<typename Base>
+    class json_reverse_iterator : public std::reverse_iterator<Base>
+    {
+      public:
+        /// shortcut to the reverse iterator adaptor
+        using base_iterator = std::reverse_iterator<Base>;
+        /// the reference type for the pointed-to element
+        using reference = typename Base::reference;
+
+        /// create reverse iterator from iterator
+        json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept
+            : base_iterator(it)
+        {}
+
+        /// create reverse iterator from base class
+        json_reverse_iterator(const base_iterator& it) noexcept
+            : base_iterator(it)
+        {}
+
+        /// post-increment (it++)
+        json_reverse_iterator operator++(int)
+        {
+            return base_iterator::operator++(1);
+        }
+
+        /// pre-increment (++it)
+        json_reverse_iterator& operator++()
+        {
+            base_iterator::operator++();
+            return *this;
+        }
+
+        /// post-decrement (it--)
+        json_reverse_iterator operator--(int)
+        {
+            return base_iterator::operator--(1);
+        }
+
+        /// pre-decrement (--it)
+        json_reverse_iterator& operator--()
+        {
+            base_iterator::operator--();
+            return *this;
+        }
+
+        /// add to iterator
+        json_reverse_iterator& operator+=(difference_type i)
+        {
+            base_iterator::operator+=(i);
+            return *this;
+        }
+
+        /// add to iterator
+        json_reverse_iterator operator+(difference_type i) const
+        {
+            auto result = *this;
+            result += i;
+            return result;
+        }
+
+        /// subtract from iterator
+        json_reverse_iterator operator-(difference_type i) const
+        {
+            auto result = *this;
+            result -= i;
+            return result;
+        }
+
+        /// return difference
+        difference_type operator-(const json_reverse_iterator& other) const
+        {
+            return this->base() - other.base();
+        }
+
+        /// access to successor
+        reference operator[](difference_type n) const
+        {
+            return *(this->operator+(n));
+        }
+
+        /// return the key of an object iterator
+        typename object_t::key_type key() const
+        {
+            auto it = --this->base();
+            return it.key();
+        }
+
+        /// return the value of an iterator
+        reference value() const
+        {
+            auto it = --this->base();
+            return it.operator * ();
+        }
+    };
+
+
+  private:
+    //////////////////////
+    // lexer and parser //
+    //////////////////////
+
+    /*!
+    @brief lexical analysis
+
+    This class organizes the lexical analysis during JSON deserialization. The
+    core of it is a scanner generated by [re2c](http://re2c.org) that
+    processes a buffer and recognizes tokens according to RFC 7159.
+    */
+    class lexer
+    {
+      public:
+        /// token types for the parser
+        enum class token_type
+        {
+            uninitialized,   ///< indicating the scanner is uninitialized
+            literal_true,    ///< the "true" literal
+            literal_false,   ///< the "false" literal
+            literal_null,    ///< the "null" literal
+            value_string,    ///< a string -- use get_string() for actual value
+            value_number,    ///< a number -- use get_number() for actual value
+            begin_array,     ///< the character for array begin "["
+            begin_object,    ///< the character for object begin "{"
+            end_array,       ///< the character for array end "]"
+            end_object,      ///< the character for object end "}"
+            name_separator,  ///< the name separator ":"
+            value_separator, ///< the value separator ","
+            parse_error,     ///< indicating a parse error
+            end_of_input     ///< indicating the end of the input buffer
+        };
+
+        /// the char type to use in the lexer
+        using lexer_char_t = unsigned char;
+
+        /// constructor with a given buffer
+        explicit lexer(const string_t& s) noexcept
+            : m_stream(nullptr), m_buffer(s)
+        {
+            m_content = reinterpret_cast<const lexer_char_t*>(s.c_str());
+            assert(m_content != nullptr);
+            m_start = m_cursor = m_content;
+            m_limit = m_content + s.size();
+        }
+
+        /// constructor with a given stream
+        explicit lexer(std::istream* s) noexcept
+            : m_stream(s), m_buffer()
+        {
+            assert(m_stream != nullptr);
+            getline(*m_stream, m_buffer);
+            m_content = reinterpret_cast<const lexer_char_t*>(m_buffer.c_str());
+            assert(m_content != nullptr);
+            m_start = m_cursor = m_content;
+            m_limit = m_content + m_buffer.size();
+        }
+
+        /// default constructor
+        lexer() = default;
+
+        // switch off unwanted functions
+        lexer(const lexer&) = delete;
+        lexer operator=(const lexer&) = delete;
+
+        /*!
+        @brief create a string from a Unicode code point
+
+        @param[in] codepoint1  the code point (can be high surrogate)
+        @param[in] codepoint2  the code point (can be low surrogate or 0)
+
+        @return string representation of the code point
+
+        @throw std::out_of_range if code point is >0x10ffff; example: `"code
+        points above 0x10FFFF are invalid"`
+        @throw std::invalid_argument if the low surrogate is invalid; example:
+        `""missing or wrong low surrogate""`
+
+        @see <http://en.wikipedia.org/wiki/UTF-8#Sample_code>
+        */
+        static string_t to_unicode(const std::size_t codepoint1,
+                                   const std::size_t codepoint2 = 0)
+        {
+            // calculate the codepoint from the given code points
+            std::size_t codepoint = codepoint1;
+
+            // check if codepoint1 is a high surrogate
+            if (codepoint1 >= 0xD800 and codepoint1 <= 0xDBFF)
+            {
+                // check if codepoint2 is a low surrogate
+                if (codepoint2 >= 0xDC00 and codepoint2 <= 0xDFFF)
+                {
+                    codepoint =
+                        // high surrogate occupies the most significant 22 bits
+                        (codepoint1 << 10)
+                        // low surrogate occupies the least significant 15 bits
+                        + codepoint2
+                        // there is still the 0xD800, 0xDC00 and 0x10000 noise
+                        // in the result so we have to subtract with:
+                        // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00
+                        - 0x35FDC00;
+                }
+                else
+                {
+                    throw std::invalid_argument("missing or wrong low surrogate");
+                }
+            }
+
+            string_t result;
+
+            if (codepoint < 0x80)
+            {
+                // 1-byte characters: 0xxxxxxx (ASCII)
+                result.append(1, static_cast<typename string_t::value_type>(codepoint));
+            }
+            else if (codepoint <= 0x7ff)
+            {
+                // 2-byte characters: 110xxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xC0 | ((codepoint >> 6) & 0x1F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0xffff)
+            {
+                // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xE0 | ((codepoint >> 12) & 0x0F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else if (codepoint <= 0x10ffff)
+            {
+                // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+                result.append(1, static_cast<typename string_t::value_type>(0xF0 | ((codepoint >> 18) & 0x07)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 12) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | ((codepoint >> 6) & 0x3F)));
+                result.append(1, static_cast<typename string_t::value_type>(0x80 | (codepoint & 0x3F)));
+            }
+            else
+            {
+                throw std::out_of_range("code points above 0x10FFFF are invalid");
+            }
+
+            return result;
+        }
+
+        /// return name of values of type token_type (only used for errors)
+        static std::string token_type_name(token_type t)
+        {
+            switch (t)
+            {
+                case token_type::uninitialized:
+                    return "<uninitialized>";
+                case token_type::literal_true:
+                    return "true literal";
+                case token_type::literal_false:
+                    return "false literal";
+                case token_type::literal_null:
+                    return "null literal";
+                case token_type::value_string:
+                    return "string literal";
+                case token_type::value_number:
+                    return "number literal";
+                case token_type::begin_array:
+                    return "'['";
+                case token_type::begin_object:
+                    return "'{'";
+                case token_type::end_array:
+                    return "']'";
+                case token_type::end_object:
+                    return "'}'";
+                case token_type::name_separator:
+                    return "':'";
+                case token_type::value_separator:
+                    return "','";
+                case token_type::parse_error:
+                    return "<parse error>";
+                case token_type::end_of_input:
+                    return "end of input";
+                default:
+                {
+                    // catch non-enum values
+                    return "unknown token"; // LCOV_EXCL_LINE
+                }
+            }
+        }
+
+        /*!
+        This function implements a scanner for JSON. It is specified using
+        regular expressions that try to follow RFC 7159 as close as possible.
+        These regular expressions are then translated into a minimized
+        deterministic finite automaton (DFA) by the tool
+        [re2c](http://re2c.org). As a result, the translated code for this
+        function consists of a large block of code with `goto` jumps.
+
+        @return the class of the next token read from the buffer
+        */
+        token_type scan() noexcept
+        {
+            // pointer for backtracking information
+            m_marker = nullptr;
+
+            // remember the begin of the token
+            m_start = m_cursor;
+            assert(m_start != nullptr);
+
+            /*!re2c
+                re2c:define:YYCTYPE   = lexer_char_t;
+                re2c:define:YYCURSOR  = m_cursor;
+                re2c:define:YYLIMIT   = m_limit;
+                re2c:define:YYMARKER  = m_marker;
+                re2c:define:YYFILL    = "yyfill(); // LCOV_EXCL_LINE";
+                re2c:yyfill:parameter = 0;
+                re2c:indent:string    = "    ";
+                re2c:indent:top       = 1;
+                re2c:labelprefix      = "basic_json_parser_";
+
+                // ignore whitespace
+                ws = [ \t\n\r]+;
+                ws   { return scan(); }
+
+                // ignore byte-order-mark
+                bom = "\xEF\xBB\xBF";
+                bom   { return scan(); }
+
+                // structural characters
+                "[" { return token_type::begin_array; }
+                "]" { return token_type::end_array; }
+                "{" { return token_type::begin_object; }
+                "}" { return token_type::end_object; }
+                "," { return token_type::value_separator; }
+                ":" { return token_type::name_separator; }
+
+                // literal names
+                "null"  { return token_type::literal_null; }
+                "true"  { return token_type::literal_true; }
+                "false" { return token_type::literal_false; }
+
+                // number
+                decimal_point = [.];
+                digit         = [0-9];
+                digit_1_9     = [1-9];
+                e             = [eE];
+                minus         = [-];
+                plus          = [+];
+                zero          = [0];
+                exp           = e (minus|plus)? digit+;
+                frac          = decimal_point digit+;
+                int           = (zero|digit_1_9 digit*);
+                number        = minus? int frac? exp?;
+                number        { return token_type::value_number; }
+
+                // string
+                quotation_mark  = [\"];
+                escape          = [\\];
+                unescaped       = [^\"\\\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F];
+                single_escaped  = [\"\\/bfnrt];
+                unicode_escaped = [u][0-9a-fA-F]{4};
+                escaped         = escape (single_escaped | unicode_escaped);
+                char            = unescaped | escaped;
+                string          = quotation_mark char* quotation_mark;
+                string          { return token_type::value_string; }
+
+                // end of file
+                '\000'         { return token_type::end_of_input; }
+
+                // anything else is an error
+                .              { return token_type::parse_error; }
+             */
+        }
+
+        /// append data from the stream to the internal buffer
+        void yyfill() noexcept
+        {
+            if (m_stream == nullptr or not * m_stream)
+            {
+                return;
+            }
+
+            const auto offset_start = m_start - m_content;
+            const auto offset_marker = m_marker - m_start;
+            const auto offset_cursor = m_cursor - m_start;
+
+            m_buffer.erase(0, static_cast<size_t>(offset_start));
+            std::string line;
+            assert(m_stream != nullptr);
+            std::getline(*m_stream, line);
+            m_buffer += "\n" + line; // add line with newline symbol
+
+            m_content = reinterpret_cast<const lexer_char_t*>(m_buffer.c_str());
+            assert(m_content != nullptr);
+            m_start  = m_content;
+            m_marker = m_start + offset_marker;
+            m_cursor = m_start + offset_cursor;
+            m_limit  = m_start + m_buffer.size() - 1;
+        }
+
+        /// return string representation of last read token
+        string_t get_token() const
+        {
+            assert(m_start != nullptr);
+            return string_t(reinterpret_cast<typename string_t::const_pointer>(m_start),
+                            static_cast<size_t>(m_cursor - m_start));
+        }
+
+        /*!
+        @brief return string value for string tokens
+
+        The function iterates the characters between the opening and closing
+        quotes of the string value. The complete string is the range
+        [m_start,m_cursor). Consequently, we iterate from m_start+1 to
+        m_cursor-1.
+
+        We differentiate two cases:
+
+        1. Escaped characters. In this case, a new character is constructed
+           according to the nature of the escape. Some escapes create new
+           characters (e.g., `"\\n"` is replaced by `"\n"`), some are copied
+           as is (e.g., `"\\\\"`). Furthermore, Unicode escapes of the shape
+           `"\\uxxxx"` need special care. In this case, to_unicode takes care
+           of the construction of the values.
+        2. Unescaped characters are copied as is.
+
+        @return string value of current token without opening and closing
+        quotes
+        @throw std::out_of_range if to_unicode fails
+        */
+        string_t get_string() const
+        {
+            string_t result;
+            result.reserve(static_cast<size_t>(m_cursor - m_start - 2));
+
+            // iterate the result between the quotes
+            for (const lexer_char_t* i = m_start + 1; i < m_cursor - 1; ++i)
+            {
+                // process escaped characters
+                if (*i == '\\')
+                {
+                    // read next character
+                    ++i;
+
+                    switch (*i)
+                    {
+                        // the default escapes
+                        case 't':
+                        {
+                            result += "\t";
+                            break;
+                        }
+                        case 'b':
+                        {
+                            result += "\b";
+                            break;
+                        }
+                        case 'f':
+                        {
+                            result += "\f";
+                            break;
+                        }
+                        case 'n':
+                        {
+                            result += "\n";
+                            break;
+                        }
+                        case 'r':
+                        {
+                            result += "\r";
+                            break;
+                        }
+                        case '\\':
+                        {
+                            result += "\\";
+                            break;
+                        }
+                        case '/':
+                        {
+                            result += "/";
+                            break;
+                        }
+                        case '"':
+                        {
+                            result += "\"";
+                            break;
+                        }
+
+                        // unicode
+                        case 'u':
+                        {
+                            // get code xxxx from uxxxx
+                            auto codepoint = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>(i + 1),
+                                                          4).c_str(), nullptr, 16);
+
+                            // check if codepoint is a high surrogate
+                            if (codepoint >= 0xD800 and codepoint <= 0xDBFF)
+                            {
+                                // make sure there is a subsequent unicode
+                                if ((i + 6 >= m_limit) or * (i + 5) != '\\' or * (i + 6) != 'u')
+                                {
+                                    throw std::invalid_argument("missing low surrogate");
+                                }
+
+                                // get code yyyy from uxxxx\uyyyy
+                                auto codepoint2 = std::strtoul(std::string(reinterpret_cast<typename string_t::const_pointer>
+                                                               (i + 7), 4).c_str(), nullptr, 16);
+                                result += to_unicode(codepoint, codepoint2);
+                                // skip the next 10 characters (xxxx\uyyyy)
+                                i += 10;
+                            }
+                            else
+                            {
+                                // add unicode character(s)
+                                result += to_unicode(codepoint);
+                                // skip the next four characters (xxxx)
+                                i += 4;
+                            }
+                            break;
+                        }
+                    }
+                }
+                else
+                {
+                    // all other characters are just copied to the end of the
+                    // string
+                    result.append(1, static_cast<typename string_t::value_type>(*i));
+                }
+            }
+
+            return result;
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in] type  the @ref number_float_t in use
+
+        @param[in,out] endptr recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+
+        @bug This function uses `std::strtof`, `std::strtod`, or `std::strtold`
+        which use the current C locale to determine which character is used as
+        decimal point character. This may yield to parse errors if the locale
+        does not used `.`.
+        */
+        long double str_to_float_t(long double* /* type */, char** endptr) const
+        {
+            return std::strtold(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in] type  the @ref number_float_t in use
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        double str_to_float_t(double* /* type */, char** endptr) const
+        {
+            return std::strtod(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief parse floating point number
+
+        This function (and its overloads) serves to select the most approprate
+        standard floating point number parsing function based on the type
+        supplied via the first parameter.  Set this to @a
+        static_cast<number_float_t*>(nullptr).
+
+        @param[in] type  the @ref number_float_t in use
+
+        @param[in,out] endptr  recieves a pointer to the first character after
+        the number
+
+        @return the floating point number
+        */
+        float str_to_float_t(float* /* type */, char** endptr) const
+        {
+            return std::strtof(reinterpret_cast<typename string_t::const_pointer>(m_start), endptr);
+        }
+
+        /*!
+        @brief return number value for number tokens
+
+        This function translates the last token into the most appropriate
+        number type (either integer, unsigned integer or floating point),
+        which is passed back to the caller via the result parameter.
+
+        This function parses the integer component up to the radix point or
+        exponent while collecting information about the 'floating point
+        representation', which it stores in the result parameter. If there is
+        no radix point or exponent, and the number can fit into a @ref
+        number_integer_t or @ref number_unsigned_t then it sets the result
+        parameter accordingly.
+
+        The 'floating point representation' includes the number of significant
+        figures after the radix point, whether the number is in exponential or
+        decimal form, the capitalization of the exponent marker, and if the
+        optional '+' is present in the exponent. This information is necessary
+        to perform accurate round trips of floating point numbers.
+
+        If the number is a floating point number the number is then parsed
+        using @a std:strtod (or @a std:strtof or @a std::strtold).
+
+        @param[out] result  @ref basic_json object to receive the number, or
+          NAN if the conversion read past the current token. The latter case
+          needs to be treated by the caller function.
+        */
+        void get_number(basic_json& result) const
+        {
+            assert(m_start != nullptr);
+
+            const lexer::lexer_char_t* curptr = m_start;
+
+            // remember this number was parsed (for later serialization)
+            result.m_type.bits.parsed = true;
+
+            // 'found_radix_point' will be set to 0xFF upon finding a radix
+            // point and later used to mask in/out the precision depending
+            // whether a radix is found i.e. 'precision &= found_radix_point'
+            uint8_t found_radix_point = 0;
+            uint8_t precision = 0;
+
+            // accumulate the integer conversion result (unsigned for now)
+            number_unsigned_t value = 0;
+
+            // maximum absolute value of the relevant integer type
+            number_unsigned_t max;
+
+            // temporarily store the type to avoid unecessary bitfield access
+            value_t type;
+
+            // look for sign
+            if (*curptr == '-')
+            {
+                type = value_t::number_integer;
+                max = static_cast<uint64_t>(std::numeric_limits<number_integer_t>::max()) + 1;
+                curptr++;
+            }
+            else
+            {
+                type = value_t::number_unsigned;
+                max = static_cast<uint64_t>(std::numeric_limits<number_unsigned_t>::max());
+            }
+
+            // count the significant figures
+            for (; curptr < m_cursor; curptr++)
+            {
+                // quickly skip tests if a digit
+                if (*curptr < '0' || *curptr > '9')
+                {
+                    if (*curptr == '.')
+                    {
+                        // don't count '.' but change to float
+                        type = value_t::number_float;
+
+                        // reset precision count
+                        precision = 0;
+                        found_radix_point = 0xFF;
+                        continue;
+                    }
+                    // assume exponent (if not then will fail parse): change to
+                    // float, stop counting and record exponent details
+                    type = value_t::number_float;
+                    result.m_type.bits.has_exp = true;
+
+                    // exponent capitalization
+                    result.m_type.bits.exp_cap = (*curptr == 'E');
+
+                    // exponent '+' sign
+                    result.m_type.bits.exp_plus = (*(++curptr) == '+');
+                    break;
+                }
+
+                // skip if definitely not an integer
+                if (type != value_t::number_float)
+                {
+                    // multiply last value by ten and add the new digit
+                    auto temp = value * 10 + *curptr - 0x30;
+
+                    // test for overflow
+                    if (temp < value || temp > max)
+                    {
+                        // overflow
+                        type = value_t::number_float;
+                    }
+                    else
+                    {
+                        // no overflow - save it
+                        value = temp;
+                    }
+                }
+                ++precision;
+            }
+
+            // If no radix point was found then precision would now be set to
+            // the number of digits, which is wrong - clear it.
+            result.m_type.bits.precision = precision & found_radix_point;
+
+            // save the value (if not a float)
+            if (type == value_t::number_unsigned)
+            {
+                result.m_value.number_unsigned = value;
+            }
+            else if (type == value_t::number_integer)
+            {
+                result.m_value.number_integer = -static_cast<number_integer_t>(value);
+            }
+            else
+            {
+                // parse with strtod
+                result.m_value.number_float = str_to_float_t(static_cast<number_float_t*>(nullptr), NULL);
+            }
+
+            // save the type
+            result.m_type = type;
+        }
+
+      private:
+        /// optional input stream
+        std::istream* m_stream = nullptr;
+        /// the buffer
+        string_t m_buffer;
+        /// the buffer pointer
+        const lexer_char_t* m_content = nullptr;
+        /// pointer to the beginning of the current symbol
+        const lexer_char_t* m_start = nullptr;
+        /// pointer for backtracking information
+        const lexer_char_t* m_marker = nullptr;
+        /// pointer to the current symbol
+        const lexer_char_t* m_cursor = nullptr;
+        /// pointer to the end of the buffer
+        const lexer_char_t* m_limit = nullptr;
+    };
+
+    /*!
+    @brief syntax analysis
+
+    This class implements a recursive decent parser.
+    */
+    class parser
+    {
+      public:
+        /// constructor for strings
+        parser(const string_t& s, parser_callback_t cb = nullptr) noexcept
+            : callback(cb), m_lexer(s)
+        {
+            // read first token
+            get_token();
+        }
+
+        /// a parser reading from an input stream
+        parser(std::istream& _is, parser_callback_t cb = nullptr) noexcept
+            : callback(cb), m_lexer(&_is)
+        {
+            // read first token
+            get_token();
+        }
+
+        /// public parser interface
+        basic_json parse()
+        {
+            basic_json result = parse_internal(true);
+
+            expect(lexer::token_type::end_of_input);
+
+            // return parser result and replace it with null in case the
+            // top-level value was discarded by the callback function
+            return result.is_discarded() ? basic_json() : result;
+        }
+
+      private:
+        /// the actual parser
+        basic_json parse_internal(bool keep)
+        {
+            auto result = basic_json(value_t::discarded);
+
+            switch (last_token)
+            {
+                case lexer::token_type::begin_object:
+                {
+                    if (keep and (not callback or (keep = callback(depth++, parse_event_t::object_start, result))))
+                    {
+                        // explicitly set result to object to cope with {}
+                        result.m_type = value_t::object;
+                        result.m_value = json_value(value_t::object);
+                    }
+
+                    // read next token
+                    get_token();
+
+                    // closing } -> we are done
+                    if (last_token == lexer::token_type::end_object)
+                    {
+                        get_token();
+                        if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
+                    }
+
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
+
+                    // otherwise: parse key-value pairs
+                    do
+                    {
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
+                        {
+                            get_token();
+                        }
+
+                        // store key
+                        expect(lexer::token_type::value_string);
+                        const auto key = m_lexer.get_string();
+
+                        bool keep_tag = false;
+                        if (keep)
+                        {
+                            if (callback)
+                            {
+                                basic_json k(key);
+                                keep_tag = callback(depth, parse_event_t::key, k);
+                            }
+                            else
+                            {
+                                keep_tag = true;
+                            }
+                        }
+
+                        // parse separator (:)
+                        get_token();
+                        expect(lexer::token_type::name_separator);
+
+                        // parse and add value
+                        get_token();
+                        auto value = parse_internal(keep);
+                        if (keep and keep_tag and not value.is_discarded())
+                        {
+                            result[key] = std::move(value);
+                        }
+                    }
+                    while (last_token == lexer::token_type::value_separator);
+
+                    // closing }
+                    expect(lexer::token_type::end_object);
+                    get_token();
+                    if (keep and callback and not callback(--depth, parse_event_t::object_end, result))
+                    {
+                        result = basic_json(value_t::discarded);
+                    }
+
+                    return result;
+                }
+
+                case lexer::token_type::begin_array:
+                {
+                    if (keep and (not callback or (keep = callback(depth++, parse_event_t::array_start, result))))
+                    {
+                        // explicitly set result to object to cope with []
+                        result.m_type = value_t::array;
+                        result.m_value = json_value(value_t::array);
+                    }
+
+                    // read next token
+                    get_token();
+
+                    // closing ] -> we are done
+                    if (last_token == lexer::token_type::end_array)
+                    {
+                        get_token();
+                        if (callback and not callback(--depth, parse_event_t::array_end, result))
+                        {
+                            result = basic_json(value_t::discarded);
+                        }
+                        return result;
+                    }
+
+                    // no comma is expected here
+                    unexpect(lexer::token_type::value_separator);
+
+                    // otherwise: parse values
+                    do
+                    {
+                        // ugly, but could be fixed with loop reorganization
+                        if (last_token == lexer::token_type::value_separator)
+                        {
+                            get_token();
+                        }
+
+                        // parse value
+                        auto value = parse_internal(keep);
+                        if (keep and not value.is_discarded())
+                        {
+                            result.push_back(std::move(value));
+                        }
+                    }
+                    while (last_token == lexer::token_type::value_separator);
+
+                    // closing ]
+                    expect(lexer::token_type::end_array);
+                    get_token();
+                    if (keep and callback and not callback(--depth, parse_event_t::array_end, result))
+                    {
+                        result = basic_json(value_t::discarded);
+                    }
+
+                    return result;
+                }
+
+                case lexer::token_type::literal_null:
+                {
+                    get_token();
+                    result.m_type = value_t::null;
+                    break;
+                }
+
+                case lexer::token_type::value_string:
+                {
+                    const auto s = m_lexer.get_string();
+                    get_token();
+                    result = basic_json(s);
+                    break;
+                }
+
+                case lexer::token_type::literal_true:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = true;
+                    break;
+                }
+
+                case lexer::token_type::literal_false:
+                {
+                    get_token();
+                    result.m_type = value_t::boolean;
+                    result.m_value = false;
+                    break;
+                }
+
+                case lexer::token_type::value_number:
+                {
+                    m_lexer.get_number(result);
+                    get_token();
+                    break;
+                }
+
+                default:
+                {
+                    // the last token was unexpected
+                    unexpect(last_token);
+                }
+            }
+
+            if (keep and callback and not callback(depth, parse_event_t::value, result))
+            {
+                result = basic_json(value_t::discarded);
+            }
+            return result;
+        }
+
+        /// get next token from lexer
+        typename lexer::token_type get_token() noexcept
+        {
+            last_token = m_lexer.scan();
+            return last_token;
+        }
+
+        void expect(typename lexer::token_type t) const
+        {
+            if (t != last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token() + "'") :
+                              lexer::token_type_name(last_token));
+                error_msg += "; expected " + lexer::token_type_name(t);
+                throw std::invalid_argument(error_msg);
+            }
+        }
+
+        void unexpect(typename lexer::token_type t) const
+        {
+            if (t == last_token)
+            {
+                std::string error_msg = "parse error - unexpected ";
+                error_msg += (last_token == lexer::token_type::parse_error ? ("'" +  m_lexer.get_token() + "'") :
+                              lexer::token_type_name(last_token));
+                throw std::invalid_argument(error_msg);
+            }
+        }
+
+      private:
+        /// current level of recursion
+        int depth = 0;
+        /// callback function
+        parser_callback_t callback;
+        /// the type of the last read token
+        typename lexer::token_type last_token = lexer::token_type::uninitialized;
+        /// the lexer
+        lexer m_lexer;
+    };
+
+  public:
+    /*!
+    @brief JSON Pointer
+
+    A JSON pointer defines a string syntax for identifying a specific value
+    within a JSON document. It can be used with functions `at` and
+    `operator[]`. Furthermore, JSON pointers are the base for JSON patches.
+
+    @sa [RFC 6901](https://tools.ietf.org/html/rfc6901)
+
+    @since version 2.0.0
+    */
+    class json_pointer
+    {
+        /// allow basic_json to access private members
+        friend class basic_json;
+
+      public:
+        /*!
+        @brief create JSON pointer
+
+        Create a JSON pointer according to the syntax described in
+        [Section 3 of RFC6901](https://tools.ietf.org/html/rfc6901#section-3).
+
+        @param[in] s  string representing the JSON pointer; if omitted, the
+                      empty string is assumed which references the whole JSON
+                      value
+
+        @throw std::domain_error if reference token is nonempty and does not
+        begin with a slash (`/`); example: `"JSON pointer must be empty or
+        begin with /"`
+        @throw std::domain_error if a tilde (`~`) is not followed by `0`
+        (representing `~`) or `1` (representing `/`); example: `"escape error:
+        ~ must be followed with 0 or 1"`
+
+        @liveexample{The example shows the construction several valid JSON
+        pointers as well as the exceptional behavior.,json_pointer}
+
+        @since version 2.0.0
+        */
+        explicit json_pointer(const std::string& s = "")
+            : reference_tokens(split(s))
+        {}
+
+        /*!
+        @brief return a string representation of the JSON pointer
+
+        @invariant For each JSON pointer `ptr`, it holds:
+        @code {.cpp}
+        ptr == json_pointer(ptr.to_string());
+        @endcode
+
+        @return a string representation of the JSON pointer
+
+        @liveexample{The example shows the result of `to_string`.,
+        json_pointer__to_string}
+
+        @since version 2.0.0
+        */
+        std::string to_string() const noexcept
+        {
+            std::string result;
+
+            for (const auto& reference_token : reference_tokens)
+            {
+                result += "/" + escape(reference_token);
+            }
+
+            return result;
+        }
+
+        /// @copydoc to_string()
+        operator std::string() const
+        {
+            return to_string();
+        }
+
+      private:
+        /// remove and return last reference pointer
+        std::string pop_back()
+        {
+            if (is_root())
+            {
+                throw std::domain_error("JSON pointer has no parent");
+            }
+
+            auto last = reference_tokens.back();
+            reference_tokens.pop_back();
+            return last;
+        }
+
+        /// return whether pointer points to the root document
+        bool is_root() const
+        {
+            return reference_tokens.empty();
+        }
+
+        json_pointer top() const
+        {
+            if (is_root())
+            {
+                throw std::domain_error("JSON pointer has no parent");
+            }
+
+            json_pointer result = *this;
+            result.reference_tokens = {reference_tokens[0]};
+            return result;
+        }
+
+        /*!
+        @brief create and return a reference to the pointed to value
+        */
+        reference get_and_create(reference j) const
+        {
+            pointer result = &j;
+
+            // in case no reference tokens exist, return a reference to the
+            // JSON value j which will be overwritten by a primitive value
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (result->m_type)
+                {
+                    case value_t::null:
+                    {
+                        if (reference_token == "0")
+                        {
+                            // start a new array if reference token is 0
+                            result = &result->operator[](0);
+                        }
+                        else
+                        {
+                            // start a new object otherwise
+                            result = &result->operator[](reference_token);
+                        }
+                        break;
+                    }
+
+                    case value_t::object:
+                    {
+                        // create an entry in the object
+                        result = &result->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // create an entry in the array
+                        result = &result->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    /*
+                    The following code is only reached if there exists a
+                    reference token _and_ the current value is primitive. In
+                    this case, we have an error situation, because primitive
+                    values may only occur as single value; that is, with an
+                    empty list of reference tokens.
+                    */
+                    default:
+                    {
+                        throw std::domain_error("invalid value to unflatten");
+                    }
+                }
+            }
+
+            return *result;
+        }
+
+        /*!
+        @brief return a reference to the pointed to value
+
+        @param[in] ptr  a JSON value
+
+        @return reference to the JSON value pointed to by the JSON pointer
+
+        @complexity Linear in the length of the JSON pointer.
+
+        @throw std::out_of_range      if the JSON pointer can not be resolved
+        @throw std::domain_error      if an array index begins with '0'
+        @throw std::invalid_argument  if an array index was not a number
+        */
+        reference get_unchecked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        if (reference_token == "-")
+                        {
+                            // explicityly treat "-" as index beyond the end
+                            ptr = &ptr->operator[](ptr->m_value.array->size());
+                        }
+                        else
+                        {
+                            // convert array index to number; unchecked access
+                            ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        }
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        reference get_checked(pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /*!
+        @brief return a const reference to the pointed to value
+
+        @param[in] ptr  a JSON value
+
+        @return const reference to the JSON value pointed to by the JSON
+                pointer
+        */
+        const_reference get_unchecked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // use unchecked object access
+                        ptr = &ptr->operator[](reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" cannot be used for const access
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        // use unchecked array access
+                        ptr = &ptr->operator[](static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        const_reference get_checked(const_pointer ptr) const
+        {
+            for (const auto& reference_token : reference_tokens)
+            {
+                switch (ptr->m_type)
+                {
+                    case value_t::object:
+                    {
+                        // note: at performs range check
+                        ptr = &ptr->at(reference_token);
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (reference_token == "-")
+                        {
+                            // "-" always fails the range check
+                            throw std::out_of_range("array index '-' (" +
+                                                    std::to_string(ptr->m_value.array->size()) +
+                                                    ") is out of range");
+                        }
+
+                        // error condition (cf. RFC 6901, Sect. 4)
+                        if (reference_token.size() > 1 and reference_token[0] == '0')
+                        {
+                            throw std::domain_error("array index must not begin with '0'");
+                        }
+
+                        // note: at performs range check
+                        ptr = &ptr->at(static_cast<size_type>(std::stoi(reference_token)));
+                        break;
+                    }
+
+                    default:
+                    {
+                        throw std::out_of_range("unresolved reference token '" + reference_token + "'");
+                    }
+                }
+            }
+
+            return *ptr;
+        }
+
+        /// split the string input to reference tokens
+        static std::vector<std::string> split(std::string reference_string)
+        {
+            std::vector<std::string> result;
+
+            // special case: empty reference string -> no reference tokens
+            if (reference_string.empty())
+            {
+                return result;
+            }
+
+            // check if nonempty reference string begins with slash
+            if (reference_string[0] != '/')
+            {
+                throw std::domain_error("JSON pointer must be empty or begin with '/'");
+            }
+
+            // extract the reference tokens:
+            // - slash: position of the last read slash (or end of string)
+            // - start: position after the previous slash
+            for (
+                // search for the first slash after the first character
+                size_t slash = reference_string.find_first_of("/", 1),
+                // set the beginning of the first reference token
+                start = 1;
+                // we can stop if start == string::npos+1 = 0
+                start != 0;
+                // set the beginning of the next reference token
+                // (will eventually be 0 if slash == std::string::npos)
+                start = slash + 1,
+                // find next slash
+                slash = reference_string.find_first_of("/", start))
+            {
+                // use the text between the beginning of the reference token
+                // (start) and the last slash (slash).
+                auto reference_token = reference_string.substr(start, slash - start);
+
+                // check reference tokens are properly escaped
+                for (size_t pos = reference_token.find_first_of("~");
+                        pos != std::string::npos;
+                        pos = reference_token.find_first_of("~", pos + 1))
+                {
+                    assert(reference_token[pos] == '~');
+
+                    // ~ must be followed by 0 or 1
+                    if (pos == reference_token.size() - 1 or
+                            (reference_token[pos + 1] != '0' and
+                             reference_token[pos + 1] != '1'))
+                    {
+                        throw std::domain_error("escape error: '~' must be followed with '0' or '1'");
+                    }
+                }
+
+                // finally, store the reference token
+                unescape(reference_token);
+                result.push_back(reference_token);
+            }
+
+            return result;
+        }
+
+      private:
+        /*!
+        @brief replace all occurrences of a substring by another string
+
+        @param[in,out] s  the string to manipulate
+        @param[in]     f  the substring to replace with @a t
+        @param[out]    t  the string to replace @a f
+
+        @return The string @a s where all occurrences of @a f are replaced
+                with @a t.
+
+        @pre The search string @a f must not be empty.
+
+        @since version 2.0.0
+        */
+        static void replace_substring(std::string& s,
+                                      const std::string& f,
+                                      const std::string& t)
+        {
+            assert(not f.empty());
+
+            for (
+                size_t pos = s.find(f);         // find first occurrence of f
+                pos != std::string::npos;       // make sure f was found
+                s.replace(pos, f.size(), t),    // replace with t
+                pos = s.find(f, pos + t.size()) // find next occurrence of f
+            );
+        }
+
+        /// escape tilde and slash
+        static std::string escape(std::string s)
+        {
+            // escape "~"" to "~0" and "/" to "~1"
+            replace_substring(s, "~", "~0");
+            replace_substring(s, "/", "~1");
+            return s;
+        }
+
+        /// unescape tilde and slash
+        static void unescape(std::string& s)
+        {
+            // first transform any occurrence of the sequence '~1' to '/'
+            replace_substring(s, "~1", "/");
+            // then transform any occurrence of the sequence '~0' to '~'
+            replace_substring(s, "~0", "~");
+        }
+
+        /*!
+        @param[in] reference_string  the reference string to the current value
+        @param[in] value             the value to consider
+        @param[in,out] result        the result object to insert values to
+
+        @note Empty objects or arrays are flattened to `null`.
+        */
+        static void flatten(const std::string& reference_string,
+                            const basic_json& value,
+                            basic_json& result)
+        {
+            switch (value.m_type)
+            {
+                case value_t::array:
+                {
+                    if (value.m_value.array->empty())
+                    {
+                        // flatten empty array as null
+                        result[reference_string] = nullptr;
+                    }
+                    else
+                    {
+                        // iterate array and use index as reference string
+                        for (size_t i = 0; i < value.m_value.array->size(); ++i)
+                        {
+                            flatten(reference_string + "/" + std::to_string(i),
+                                    value.m_value.array->operator[](i), result);
+                        }
+                    }
+                    break;
+                }
+
+                case value_t::object:
+                {
+                    if (value.m_value.object->empty())
+                    {
+                        // flatten empty object as null
+                        result[reference_string] = nullptr;
+                    }
+                    else
+                    {
+                        // iterate object and use keys as reference string
+                        for (const auto& element : *value.m_value.object)
+                        {
+                            flatten(reference_string + "/" + escape(element.first),
+                                    element.second, result);
+                        }
+                    }
+                    break;
+                }
+
+                default:
+                {
+                    // add primitive value with its reference string
+                    result[reference_string] = value;
+                    break;
+                }
+            }
+        }
+
+        /*!
+        @param[in] value  flattened JSON
+
+        @return unflattened JSON
+        */
+        static basic_json unflatten(const basic_json& value)
+        {
+            if (not value.is_object())
+            {
+                throw std::domain_error("only objects can be unflattened");
+            }
+
+            basic_json result;
+
+            // iterate the JSON object values
+            for (const auto& element : *value.m_value.object)
+            {
+                if (not element.second.is_primitive())
+                {
+                    throw std::domain_error("values in object must be primitive");
+                }
+
+                // assign value to reference pointed to by JSON pointer; Note
+                // that if the JSON pointer is "" (i.e., points to the whole
+                // value), function get_and_create returns a reference to
+                // result itself. An assignment will then create a primitive
+                // value.
+                json_pointer(element.first).get_and_create(result) = element.second;
+            }
+
+            return result;
+        }
+
+      private:
+        /// the reference tokens
+        std::vector<std::string> reference_tokens {};
+    };
+
+    //////////////////////////
+    // JSON Pointer support //
+    //////////////////////////
+
+    /// @name JSON Pointer functions
+    /// @{
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Uses a JSON pointer to retrieve a reference to the respective JSON value.
+    No bound checking is performed. Similar to @ref operator[](const typename
+    object_t::key_type&), `null` values are created in arrays and objects if
+    necessary.
+
+    In particular:
+    - If the JSON pointer points to an object key that does not exist, it
+      is created an filled with a `null` value before a reference to it
+      is returned.
+    - If the JSON pointer points to an array index that does not exist, it
+      is created an filled with a `null` value before a reference to it
+      is returned. All indices between the current maximum and the given
+      index are also filled with `null`.
+    - The special value `-` is treated as a synonym for the index past the
+      end.
+
+    @param[in] ptr  a JSON pointer
+
+    @return reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,operatorjson_pointer}
+
+    @since version 2.0.0
+    */
+    reference operator[](const json_pointer& ptr)
+    {
+        return ptr.get_unchecked(this);
+    }
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Uses a JSON pointer to retrieve a reference to the respective JSON value.
+    No bound checking is performed. The function does not change the JSON
+    value; no `null` values are created. In particular, the the special value
+    `-` yields an exception.
+
+    @param[in] ptr  JSON pointer to the desired element
+
+    @return const reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,operatorjson_pointer_const}
+
+    @since version 2.0.0
+    */
+    const_reference operator[](const json_pointer& ptr) const
+    {
+        return ptr.get_unchecked(this);
+    }
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Returns a reference to the element at with specified JSON pointer @a ptr,
+    with bounds checking.
+
+    @param[in] ptr  JSON pointer to the desired element
+
+    @return reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,at_json_pointer}
+
+    @since version 2.0.0
+    */
+    reference at(const json_pointer& ptr)
+    {
+        return ptr.get_checked(this);
+    }
+
+    /*!
+    @brief access specified element via JSON Pointer
+
+    Returns a const reference to the element at with specified JSON pointer @a
+    ptr, with bounds checking.
+
+    @param[in] ptr  JSON pointer to the desired element
+
+    @return reference to the element pointed to by @a ptr
+
+    @complexity Constant.
+
+    @throw std::out_of_range      if the JSON pointer can not be resolved
+    @throw std::domain_error      if an array index begins with '0'
+    @throw std::invalid_argument  if an array index was not a number
+
+    @liveexample{The behavior is shown in the example.,at_json_pointer_const}
+
+    @since version 2.0.0
+    */
+    const_reference at(const json_pointer& ptr) const
+    {
+        return ptr.get_checked(this);
+    }
+
+    /*!
+    @brief return flattened JSON value
+
+    The function creates a JSON object whose keys are JSON pointers (see [RFC
+    6901](https://tools.ietf.org/html/rfc6901)) and whose values are all
+    primitive. The original JSON value can be restored using the @ref
+    unflatten() function.
+
+    @return an object that maps JSON pointers to primitve values
+
+    @note Empty objects and arrays are flattened to `null` and will not be
+          reconstructed correctly by the @ref unflatten() function.
+
+    @complexity Linear in the size the JSON value.
+
+    @liveexample{The following code shows how a JSON object is flattened to an
+    object whose keys consist of JSON pointers.,flatten}
+
+    @sa @ref unflatten() for the reverse function
+
+    @since version 2.0.0
+    */
+    basic_json flatten() const
+    {
+        basic_json result(value_t::object);
+        json_pointer::flatten("", *this, result);
+        return result;
+    }
+
+    /*!
+    @brief unflatten a previously flattened JSON value
+
+    The function restores the arbitrary nesting of a JSON value that has been
+    flattened before using the @ref flatten() function. The JSON value must
+    meet certain constraints:
+    1. The value must be an object.
+    2. The keys must be JSON pointers (see
+       [RFC 6901](https://tools.ietf.org/html/rfc6901))
+    3. The mapped values must be primitive JSON types.
+
+    @return the original JSON from a flattened version
+
+    @note Empty objects and arrays are flattened by @ref flatten() to `null`
+          values and can not unflattened to their original type. Apart from
+          this example, for a JSON value `j`, the following is always true:
+          `j == j.flatten().unflatten()`.
+
+    @complexity Linear in the size the JSON value.
+
+    @liveexample{The following code shows how a flattened JSON object is
+    unflattened into the original nested JSON object.,unflatten}
+
+    @sa @ref flatten() for the reverse function
+
+    @since version 2.0.0
+    */
+    basic_json unflatten() const
+    {
+        return json_pointer::unflatten(*this);
+    }
+
+    /// @}
+
+    //////////////////////////
+    // JSON Patch functions //
+    //////////////////////////
+
+    /// @name JSON Patch functions
+    /// @{
+
+    /*!
+    @brief applies a JSON patch
+
+    [JSON Patch](http://jsonpatch.com) defines a JSON document structure for
+    expressing a sequence of operations to apply to a JSON) document. With
+    this funcion, a JSON Patch is applied to the current JSON value by
+    executing all operations from the patch.
+
+    @param[in] json_patch  JSON patch document
+    @return patched document
+
+    @note The application of a patch is atomic: Either all operations succeed
+          and the patched document is returned or an exception is thrown. In
+          any case, the original value is not changed: the patch is applied
+          to a copy of the value.
+
+    @throw std::out_of_range if a JSON pointer inside the patch could not
+    be resolved successfully in the current JSON value; example: `"key baz
+    not found"`
+    @throw invalid_argument if the JSON patch is malformed (e.g., mandatory
+    attributes are missing); example: `"operation add must have member path"`
+
+    @complexity Linear in the size of the JSON value and the length of the
+    JSON patch. As usually only a fraction of the JSON value is affected by
+    the patch, the complexity can usually be neglected.
+
+    @liveexample{The following code shows how a JSON patch is applied to a
+    value.,patch}
+
+    @sa @ref diff -- create a JSON patch by comparing two JSON values
+
+    @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
+    @sa [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901)
+
+    @since version 2.0.0
+    */
+    basic_json patch(const basic_json& json_patch) const
+    {
+        // make a working copy to apply the patch to
+        basic_json result = *this;
+
+        // the valid JSON Patch operations
+        enum class patch_operations {add, remove, replace, move, copy, test, invalid};
+
+        const auto get_op = [](const std::string op)
+        {
+            if (op == "add")
+            {
+                return patch_operations::add;
+            }
+            if (op == "remove")
+            {
+                return patch_operations::remove;
+            }
+            if (op == "replace")
+            {
+                return patch_operations::replace;
+            }
+            if (op == "move")
+            {
+                return patch_operations::move;
+            }
+            if (op == "copy")
+            {
+                return patch_operations::copy;
+            }
+            if (op == "test")
+            {
+                return patch_operations::test;
+            }
+
+            return patch_operations::invalid;
+        };
+
+        // wrapper for "add" operation; add value at ptr
+        const auto operation_add = [&result](json_pointer & ptr, basic_json val)
+        {
+            // adding to the root of the target document means replacing it
+            if (ptr.is_root())
+            {
+                result = val;
+            }
+            else
+            {
+                // make sure the top element of the pointer exists
+                json_pointer top_pointer = ptr.top();
+                if (top_pointer != ptr)
+                {
+                    basic_json& x = result.at(top_pointer);
+                }
+
+                // get reference to parent of JSON pointer ptr
+                const auto last_path = ptr.pop_back();
+                basic_json& parent = result[ptr];
+
+                switch (parent.m_type)
+                {
+                    case value_t::null:
+                    case value_t::object:
+                    {
+                        // use operator[] to add value
+                        parent[last_path] = val;
+                        break;
+                    }
+
+                    case value_t::array:
+                    {
+                        if (last_path == "-")
+                        {
+                            // special case: append to back
+                            parent.push_back(val);
+                        }
+                        else
+                        {
+                            const auto idx = std::stoi(last_path);
+                            if (static_cast<size_type>(idx) > parent.size())
+                            {
+                                // avoid undefined behavior
+                                throw std::out_of_range("array index " + std::to_string(idx) + " is out of range");
+                            }
+                            else
+                            {
+                                // default case: insert add offset
+                                parent.insert(parent.begin() + static_cast<difference_type>(idx), val);
+                            }
+                        }
+                        break;
+                    }
+
+                    default:
+                    {
+                        // if there exists a parent it cannot be primitive
+                        assert(false);  // LCOV_EXCL_LINE
+                    }
+                }
+            }
+        };
+
+        // wrapper for "remove" operation; remove value at ptr
+        const auto operation_remove = [&result](json_pointer & ptr)
+        {
+            // get reference to parent of JSON pointer ptr
+            const auto last_path = ptr.pop_back();
+            basic_json& parent = result.at(ptr);
+
+            // remove child
+            if (parent.is_object())
+            {
+                // perform range check
+                auto it = parent.find(last_path);
+                if (it != parent.end())
+                {
+                    parent.erase(it);
+                }
+                else
+                {
+                    throw std::out_of_range("key '" + last_path + "' not found");
+                }
+            }
+            else if (parent.is_array())
+            {
+                // note erase performs range check
+                parent.erase(static_cast<size_type>(std::stoi(last_path)));
+            }
+        };
+
+        // type check
+        if (not json_patch.is_array())
+        {
+            // a JSON patch must be an array of objects
+            throw std::invalid_argument("JSON patch must be an array of objects");
+        }
+
+        // iterate and apply th eoperations
+        for (const auto& val : json_patch)
+        {
+            // wrapper to get a value for an operation
+            const auto get_value = [&val](const std::string & op,
+                                          const std::string & member,
+                                          bool string_type) -> basic_json&
+            {
+                // find value
+                auto it = val.m_value.object->find(member);
+
+                // context-sensitive error message
+                const auto error_msg = (op == "op") ? "operation" : "operation '" + op + "'";
+
+                // check if desired value is present
+                if (it == val.m_value.object->end())
+                {
+                    throw std::invalid_argument(error_msg + " must have member '" + member + "'");
+                }
+
+                // check if result is of type string
+                if (string_type and not it->second.is_string())
+                {
+                    throw std::invalid_argument(error_msg + " must have string member '" + member + "'");
+                }
+
+                // no error: return value
+                return it->second;
+            };
+
+            // type check
+            if (not val.is_object())
+            {
+                throw std::invalid_argument("JSON patch must be an array of objects");
+            }
+
+            // collect mandatory members
+            const std::string op = get_value("op", "op", true);
+            const std::string path = get_value(op, "path", true);
+            json_pointer ptr(path);
+
+            switch (get_op(op))
+            {
+                case patch_operations::add:
+                {
+                    operation_add(ptr, get_value("add", "value", false));
+                    break;
+                }
+
+                case patch_operations::remove:
+                {
+                    operation_remove(ptr);
+                    break;
+                }
+
+                case patch_operations::replace:
+                {
+                    // the "path" location must exist - use at()
+                    result.at(ptr) = get_value("replace", "value", false);
+                    break;
+                }
+
+                case patch_operations::move:
+                {
+                    const std::string from_path = get_value("move", "from", true);
+                    json_pointer from_ptr(from_path);
+
+                    // the "from" location must exist - use at()
+                    basic_json v = result.at(from_ptr);
+
+                    // The move operation is functionally identical to a
+                    // "remove" operation on the "from" location, followed
+                    // immediately by an "add" operation at the target
+                    // location with the value that was just removed.
+                    operation_remove(from_ptr);
+                    operation_add(ptr, v);
+                    break;
+                }
+
+                case patch_operations::copy:
+                {
+                    const std::string from_path = get_value("copy", "from", true);;
+                    const json_pointer from_ptr(from_path);
+
+                    // the "from" location must exist - use at()
+                    result[ptr] = result.at(from_ptr);
+                    break;
+                }
+
+                case patch_operations::test:
+                {
+                    bool success = false;
+                    try
+                    {
+                        // check if "value" matches the one at "path"
+                        // the "path" location must exist - use at()
+                        success = (result.at(ptr) == get_value("test", "value", false));
+                    }
+                    catch (std::out_of_range&)
+                    {
+                        // ignore out of range errors: success remains false
+                    }
+
+                    // throw an exception if test fails
+                    if (not success)
+                    {
+                        throw std::domain_error("unsuccessful: " + val.dump());
+                    }
+
+                    break;
+                }
+
+                case patch_operations::invalid:
+                {
+                    // op must be "add", "remove", "replace", "move", "copy", or
+                    // "test"
+                    throw std::invalid_argument("operation value '" + op + "' is invalid");
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /*!
+    @brief creates a diff as a JSON patch
+
+    Creates a [JSON Patch](http://jsonpatch.com) so that value @a source can
+    be changed into the value @a target by calling @ref patch function.
+
+    @invariant For two JSON values @a source and @a target, the following code
+    yields always `true`:
+    @code {.cpp}
+    source.patch(diff(source, target)) == target;
+    @endcode
+
+    @note Currently, only `remove`, `add`, and `replace` operations are
+          generated.
+
+    @param[in] source  JSON value to copare from
+    @param[in] target  JSON value to copare against
+    @param[in] path    helper value to create JSON pointers
+
+    @return a JSON patch to convert the @a source to @a target
+
+    @complexity Linear in the lengths of @a source and @a target.
+
+    @liveexample{The following code shows how a JSON patch is created as a
+    diff for two JSON values.,diff}
+
+    @sa @ref patch -- apply a JSON patch
+
+    @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902)
+
+    @since version 2.0.0
+    */
+    static basic_json diff(const basic_json& source,
+                           const basic_json& target,
+                           std::string path = "")
+    {
+        // the patch
+        basic_json result(value_t::array);
+
+        // if the values are the same, return empty patch
+        if (source == target)
+        {
+            return result;
+        }
+
+        if (source.type() != target.type())
+        {
+            // different types: replace value
+            result.push_back(
+            {
+                {"op", "replace"},
+                {"path", path},
+                {"value", target}
+            });
+        }
+        else
+        {
+            switch (source.type())
+            {
+                case value_t::array:
+                {
+                    // first pass: traverse common elements
+                    size_t i = 0;
+                    while (i < source.size() and i < target.size())
+                    {
+                        // recursive call to compare array values at index i
+                        auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i));
+                        result.insert(result.end(), temp_diff.begin(), temp_diff.end());
+                        ++i;
+                    }
+
+                    // i now reached the end of at least one array
+                    // in a second pass, traverse the remaining elements
+
+                    // remove my remaining elements
+                    while (i < source.size())
+                    {
+                        result.push_back(object(
+                        {
+                            {"op", "remove"},
+                            {"path", path + "/" + std::to_string(i)}
+                        }));
+                        ++i;
+                    }
+
+                    // add other remaining elements
+                    while (i < target.size())
+                    {
+                        result.push_back(
+                        {
+                            {"op", "add"},
+                            {"path", path + "/" + std::to_string(i)},
+                            {"value", target[i]}
+                        });
+                        ++i;
+                    }
+
+                    break;
+                }
+
+                case value_t::object:
+                {
+                    // first pass: traverse this object's elements
+                    for (auto it = source.begin(); it != source.end(); ++it)
+                    {
+                        // escape the key name to be used in a JSON patch
+                        const auto key = json_pointer::escape(it.key());
+
+                        if (target.find(it.key()) != target.end())
+                        {
+                            // recursive call to compare object values at key it
+                            auto temp_diff = diff(it.value(), target[it.key()], path + "/" + key);
+                            result.insert(result.end(), temp_diff.begin(), temp_diff.end());
+                        }
+                        else
+                        {
+                            // found a key that is not in o -> remove it
+                            result.push_back(object(
+                            {
+                                {"op", "remove"},
+                                {"path", path + "/" + key}
+                            }));
+                        }
+                    }
+
+                    // second pass: traverse other object's elements
+                    for (auto it = target.begin(); it != target.end(); ++it)
+                    {
+                        if (source.find(it.key()) == source.end())
+                        {
+                            // found a key that is not in this -> add it
+                            const auto key = json_pointer::escape(it.key());
+                            result.push_back(
+                            {
+                                {"op", "add"},
+                                {"path", path + "/" + key},
+                                {"value", it.value()}
+                            });
+                        }
+                    }
+
+                    break;
+                }
+
+                default:
+                {
+                    // both primitive type: replace value
+                    result.push_back(
+                    {
+                        {"op", "replace"},
+                        {"path", path},
+                        {"value", target}
+                    });
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /// @}
+};
+
+
+/////////////
+// presets //
+/////////////
+
+/*!
+@brief default JSON class
+
+This type is the default specialization of the @ref basic_json class which
+uses the standard template types.
+
+@since version 1.0.0
+*/
+using json = basic_json<>;
+}
+
+
+///////////////////////
+// nonmember support //
+///////////////////////
+
+// specialization of std::swap, and std::hash
+namespace std
+{
+/*!
+@brief exchanges the values of two JSON objects
+
+@since version 1.0.0
+*/
+template <>
+inline void swap(nlohmann::json& j1,
+                 nlohmann::json& j2) noexcept(
+                     is_nothrow_move_constructible<nlohmann::json>::value and
+                     is_nothrow_move_assignable<nlohmann::json>::value
+                 )
+{
+    j1.swap(j2);
+}
+
+/// hash value for JSON objects
+template <>
+struct hash<nlohmann::json>
+{
+    /*!
+    @brief return a hash value for a JSON object
+
+    @since version 1.0.0
+    */
+    std::size_t operator()(const nlohmann::json& j) const
+    {
+        // a naive hashing via the string representation
+        const auto& h = hash<nlohmann::json::string_t>();
+        return h(j.dump());
+    }
+};
+}
+
+/*!
+@brief user-defined string literal for JSON values
+
+This operator implements a user-defined string literal for JSON objects. It
+can be used by adding \p "_json" to a string literal and returns a JSON object
+if no parse error occurred.
+
+@param[in] s  a string representation of a JSON object
+@return a JSON object
+
+@since version 1.0.0
+*/
+inline nlohmann::json operator "" _json(const char* s, std::size_t)
+{
+    return nlohmann::json::parse(reinterpret_cast<const nlohmann::json::string_t::value_type*>(s));
+}
+
+/*!
+@brief user-defined string literal for JSON pointer
+
+@since version 2.0.0
+*/
+inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t)
+{
+    return nlohmann::json::json_pointer(s);
+}
+
+// restore GCC/clang diagnostic settings
+#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
+    #pragma GCC diagnostic pop
+#endif
+
+#endif
diff --git a/resources/3rdparty/modernjson/test/CMakeLists.txt b/resources/3rdparty/modernjson/test/CMakeLists.txt
new file mode 100755
index 000000000..b63e5a394
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/CMakeLists.txt
@@ -0,0 +1,21 @@
+# The unit test executable.
+add_executable(json_unit
+    "src/catch.hpp"
+    "src/unit.cpp"
+)
+
+set_target_properties(json_unit PROPERTIES
+    CXX_STANDARD 11
+    CXX_STANDARD_REQUIRED ON
+    COMPILE_DEFINITIONS "$<$<CXX_COMPILER_ID:MSVC>:_SCL_SECURE_NO_WARNINGS>"
+    COMPILE_OPTIONS "$<$<CXX_COMPILER_ID:MSVC>:/EHsc;$<$<CONFIG:Release>:/Od>>"
+)
+
+# Install the test binary.
+install(TARGETS json_unit RUNTIME DESTINATION test/bin)
+
+# Copy the test data to the install tree.
+install(DIRECTORY data/ DESTINATION test/data)
+
+target_include_directories(json_unit PRIVATE "src")
+target_link_libraries(json_unit ${JSON_TARGET_NAME})
diff --git a/resources/3rdparty/modernjson/test/data/json.org/1.json b/resources/3rdparty/modernjson/test/data/json.org/1.json
new file mode 100755
index 000000000..eacfbf5e6
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json.org/1.json
@@ -0,0 +1,22 @@
+{
+    "glossary": {
+        "title": "example glossary",
+		"GlossDiv": {
+            "title": "S",
+			"GlossList": {
+                "GlossEntry": {
+                    "ID": "SGML",
+					"SortAs": "SGML",
+					"GlossTerm": "Standard Generalized Markup Language",
+					"Acronym": "SGML",
+					"Abbrev": "ISO 8879:1986",
+					"GlossDef": {
+                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
+						"GlossSeeAlso": ["GML", "XML"]
+                    },
+					"GlossSee": "markup"
+                }
+            }
+        }
+    }
+}
diff --git a/resources/3rdparty/modernjson/test/data/json.org/2.json b/resources/3rdparty/modernjson/test/data/json.org/2.json
new file mode 100755
index 000000000..5600991a4
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json.org/2.json
@@ -0,0 +1,11 @@
+{"menu": {
+  "id": "file",
+  "value": "File",
+  "popup": {
+    "menuitem": [
+      {"value": "New", "onclick": "CreateNewDoc()"},
+      {"value": "Open", "onclick": "OpenDoc()"},
+      {"value": "Close", "onclick": "CloseDoc()"}
+    ]
+  }
+}}
diff --git a/resources/3rdparty/modernjson/test/data/json.org/3.json b/resources/3rdparty/modernjson/test/data/json.org/3.json
new file mode 100755
index 000000000..5bfdffec8
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json.org/3.json
@@ -0,0 +1,26 @@
+{"widget": {
+    "debug": "on",
+    "window": {
+        "title": "Sample Konfabulator Widget",
+        "name": "main_window",
+        "width": 500,
+        "height": 500
+    },
+    "image": { 
+        "src": "Images/Sun.png",
+        "name": "sun1",
+        "hOffset": 250,
+        "vOffset": 250,
+        "alignment": "center"
+    },
+    "text": {
+        "data": "Click Here",
+        "size": 36,
+        "style": "bold",
+        "name": "text1",
+        "hOffset": 250,
+        "vOffset": 100,
+        "alignment": "center",
+        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
+    }
+}}   
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json.org/4.json b/resources/3rdparty/modernjson/test/data/json.org/4.json
new file mode 100755
index 000000000..d540b57f0
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json.org/4.json
@@ -0,0 +1,88 @@
+{"web-app": {
+  "servlet": [   
+    {
+      "servlet-name": "cofaxCDS",
+      "servlet-class": "org.cofax.cds.CDSServlet",
+      "init-param": {
+        "configGlossary:installationAt": "Philadelphia, PA",
+        "configGlossary:adminEmail": "ksm@pobox.com",
+        "configGlossary:poweredBy": "Cofax",
+        "configGlossary:poweredByIcon": "/images/cofax.gif",
+        "configGlossary:staticPath": "/content/static",
+        "templateProcessorClass": "org.cofax.WysiwygTemplate",
+        "templateLoaderClass": "org.cofax.FilesTemplateLoader",
+        "templatePath": "templates",
+        "templateOverridePath": "",
+        "defaultListTemplate": "listTemplate.htm",
+        "defaultFileTemplate": "articleTemplate.htm",
+        "useJSP": false,
+        "jspListTemplate": "listTemplate.jsp",
+        "jspFileTemplate": "articleTemplate.jsp",
+        "cachePackageTagsTrack": 200,
+        "cachePackageTagsStore": 200,
+        "cachePackageTagsRefresh": 60,
+        "cacheTemplatesTrack": 100,
+        "cacheTemplatesStore": 50,
+        "cacheTemplatesRefresh": 15,
+        "cachePagesTrack": 200,
+        "cachePagesStore": 100,
+        "cachePagesRefresh": 10,
+        "cachePagesDirtyRead": 10,
+        "searchEngineListTemplate": "forSearchEnginesList.htm",
+        "searchEngineFileTemplate": "forSearchEngines.htm",
+        "searchEngineRobotsDb": "WEB-INF/robots.db",
+        "useDataStore": true,
+        "dataStoreClass": "org.cofax.SqlDataStore",
+        "redirectionClass": "org.cofax.SqlRedirection",
+        "dataStoreName": "cofax",
+        "dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
+        "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
+        "dataStoreUser": "sa",
+        "dataStorePassword": "dataStoreTestQuery",
+        "dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
+        "dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
+        "dataStoreInitConns": 10,
+        "dataStoreMaxConns": 100,
+        "dataStoreConnUsageLimit": 100,
+        "dataStoreLogLevel": "debug",
+        "maxUrlLength": 500}},
+    {
+      "servlet-name": "cofaxEmail",
+      "servlet-class": "org.cofax.cds.EmailServlet",
+      "init-param": {
+      "mailHost": "mail1",
+      "mailHostOverride": "mail2"}},
+    {
+      "servlet-name": "cofaxAdmin",
+      "servlet-class": "org.cofax.cds.AdminServlet"},
+ 
+    {
+      "servlet-name": "fileServlet",
+      "servlet-class": "org.cofax.cds.FileServlet"},
+    {
+      "servlet-name": "cofaxTools",
+      "servlet-class": "org.cofax.cms.CofaxToolsServlet",
+      "init-param": {
+        "templatePath": "toolstemplates/",
+        "log": 1,
+        "logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
+        "logMaxSize": "",
+        "dataLog": 1,
+        "dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
+        "dataLogMaxSize": "",
+        "removePageCache": "/content/admin/remove?cache=pages&id=",
+        "removeTemplateCache": "/content/admin/remove?cache=templates&id=",
+        "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
+        "lookInContext": 1,
+        "adminGroupID": 4,
+        "betaServer": true}}],
+  "servlet-mapping": {
+    "cofaxCDS": "/",
+    "cofaxEmail": "/cofaxutil/aemail/*",
+    "cofaxAdmin": "/admin/*",
+    "fileServlet": "/static/*",
+    "cofaxTools": "/tools/*"},
+ 
+  "taglib": {
+    "taglib-uri": "cofax.tld",
+    "taglib-location": "/WEB-INF/tlds/cofax.tld"}}}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json.org/5.json b/resources/3rdparty/modernjson/test/data/json.org/5.json
new file mode 100755
index 000000000..acdf930ea
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json.org/5.json
@@ -0,0 +1,27 @@
+{"menu": {
+    "header": "SVG Viewer",
+    "items": [
+        {"id": "Open"},
+        {"id": "OpenNew", "label": "Open New"},
+        null,
+        {"id": "ZoomIn", "label": "Zoom In"},
+        {"id": "ZoomOut", "label": "Zoom Out"},
+        {"id": "OriginalView", "label": "Original View"},
+        null,
+        {"id": "Quality"},
+        {"id": "Pause"},
+        {"id": "Mute"},
+        null,
+        {"id": "Find", "label": "Find..."},
+        {"id": "FindAgain", "label": "Find Again"},
+        {"id": "Copy"},
+        {"id": "CopyAgain", "label": "Copy Again"},
+        {"id": "CopySVG", "label": "Copy SVG"},
+        {"id": "ViewSVG", "label": "View SVG"},
+        {"id": "ViewSource", "label": "View Source"},
+        {"id": "SaveAs", "label": "Save As"},
+        null,
+        {"id": "Help"},
+        {"id": "About", "label": "About Adobe CVG Viewer..."}
+    ]
+}}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/all_unicode.json.REMOVED.git-id b/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/all_unicode.json.REMOVED.git-id
new file mode 100644
index 000000000..a26b04e23
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/all_unicode.json.REMOVED.git-id
@@ -0,0 +1 @@
+9b834847378ec1a1651518b7e24719775aa0725e
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/bom.json b/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/bom.json
new file mode 100755
index 000000000..9d02f600b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_nlohmann_tests/bom.json
@@ -0,0 +1,3 @@
+{
+   "foo": true
+}
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip01.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip01.json
new file mode 100755
index 000000000..500db4a86
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip01.json
@@ -0,0 +1 @@
+[null]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip02.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip02.json
new file mode 100755
index 000000000..de601e305
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip02.json
@@ -0,0 +1 @@
+[true]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip03.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip03.json
new file mode 100755
index 000000000..67b2f0760
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip03.json
@@ -0,0 +1 @@
+[false]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip04.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip04.json
new file mode 100755
index 000000000..6e7ea636e
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip04.json
@@ -0,0 +1 @@
+[0]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip05.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip05.json
new file mode 100755
index 000000000..6dfd29830
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip05.json
@@ -0,0 +1 @@
+["foo"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip06.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip06.json
new file mode 100755
index 000000000..0637a088a
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip06.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip07.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip07.json
new file mode 100755
index 000000000..9e26dfeeb
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip07.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip08.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip08.json
new file mode 100755
index 000000000..bfa34124c
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip08.json
@@ -0,0 +1 @@
+[0,1]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip09.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip09.json
new file mode 100755
index 000000000..9f5dd4e3d
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip09.json
@@ -0,0 +1 @@
+{"foo":"bar"}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip10.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip10.json
new file mode 100755
index 000000000..2355b4df2
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip10.json
@@ -0,0 +1 @@
+{"a":null,"foo":"bar"}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip11.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip11.json
new file mode 100755
index 000000000..99d21a2a0
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip11.json
@@ -0,0 +1 @@
+[-1]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip12.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip12.json
new file mode 100755
index 000000000..56c78bef1
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip12.json
@@ -0,0 +1 @@
+[-2147483648]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip13.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip13.json
new file mode 100755
index 000000000..029580f6f
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip13.json
@@ -0,0 +1 @@
+[-1234567890123456789]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip14.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip14.json
new file mode 100755
index 000000000..d86580009
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip14.json
@@ -0,0 +1 @@
+[-9223372036854775808]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip15.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip15.json
new file mode 100755
index 000000000..bace2a0be
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip15.json
@@ -0,0 +1 @@
+[1]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip16.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip16.json
new file mode 100755
index 000000000..dfe696dbd
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip16.json
@@ -0,0 +1 @@
+[2147483647]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip17.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip17.json
new file mode 100755
index 000000000..6640b07fb
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip17.json
@@ -0,0 +1 @@
+[4294967295]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip18.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip18.json
new file mode 100755
index 000000000..a3ab143b0
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip18.json
@@ -0,0 +1 @@
+[1234567890123456789]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip19.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip19.json
new file mode 100755
index 000000000..8ab4a5078
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip19.json
@@ -0,0 +1 @@
+[9223372036854775807]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip20.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip20.json
new file mode 100755
index 000000000..92df1df1d
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip20.json
@@ -0,0 +1 @@
+[0.0]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip21.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip21.json
new file mode 100755
index 000000000..cfef81540
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip21.json
@@ -0,0 +1 @@
+[-0.0]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip22.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip22.json
new file mode 100755
index 000000000..a7b7eefc5
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip22.json
@@ -0,0 +1 @@
+[1.2345]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip23.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip23.json
new file mode 100755
index 000000000..b553e84b7
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip23.json
@@ -0,0 +1 @@
+[-1.2345]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip24.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip24.json
new file mode 100755
index 000000000..f01efb6d5
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip24.json
@@ -0,0 +1 @@
+[5e-324]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip25.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip25.json
new file mode 100755
index 000000000..cdef14d38
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip25.json
@@ -0,0 +1 @@
+[2.225073858507201e-308]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip26.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip26.json
new file mode 100755
index 000000000..f4121b787
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip26.json
@@ -0,0 +1 @@
+[2.2250738585072014e-308]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip27.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip27.json
new file mode 100755
index 000000000..17ce5211c
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip27.json
@@ -0,0 +1 @@
+[1.7976931348623157e308]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip28.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip28.json
new file mode 100755
index 000000000..749ffaf93
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip28.json
@@ -0,0 +1 @@
+[4.940656458412e-324]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip29.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip29.json
new file mode 100755
index 000000000..4bf65ec4b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip29.json
@@ -0,0 +1 @@
+[2.2250738585072e-308]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip30.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip30.json
new file mode 100755
index 000000000..fd357651b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip30.json
@@ -0,0 +1 @@
+[1.2345E-30]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip31.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip31.json
new file mode 100755
index 000000000..1428d1443
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip31.json
@@ -0,0 +1 @@
+[1.2345E+30]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip32.json b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip32.json
new file mode 100755
index 000000000..d6f34011f
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_roundtrip/roundtrip32.json
@@ -0,0 +1 @@
+[1.2345e+30]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail1.json b/resources/3rdparty/modernjson/test/data/json_tests/fail1.json
new file mode 100755
index 000000000..6216b865f
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail1.json
@@ -0,0 +1 @@
+"A JSON payload should be an object or array, not a string."
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail10.json b/resources/3rdparty/modernjson/test/data/json_tests/fail10.json
new file mode 100755
index 000000000..5d8c0047b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail10.json
@@ -0,0 +1 @@
+{"Extra value after close": true} "misplaced quoted value"
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail11.json b/resources/3rdparty/modernjson/test/data/json_tests/fail11.json
new file mode 100755
index 000000000..76eb95b45
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail11.json
@@ -0,0 +1 @@
+{"Illegal expression": 1 + 2}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail12.json b/resources/3rdparty/modernjson/test/data/json_tests/fail12.json
new file mode 100755
index 000000000..77580a452
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail12.json
@@ -0,0 +1 @@
+{"Illegal invocation": alert()}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail13.json b/resources/3rdparty/modernjson/test/data/json_tests/fail13.json
new file mode 100755
index 000000000..379406b59
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail13.json
@@ -0,0 +1 @@
+{"Numbers cannot have leading zeroes": 013}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail14.json b/resources/3rdparty/modernjson/test/data/json_tests/fail14.json
new file mode 100755
index 000000000..0ed366b38
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail14.json
@@ -0,0 +1 @@
+{"Numbers cannot be hex": 0x14}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail15.json b/resources/3rdparty/modernjson/test/data/json_tests/fail15.json
new file mode 100755
index 000000000..fc8376b60
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail15.json
@@ -0,0 +1 @@
+["Illegal backslash escape: \x15"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail16.json b/resources/3rdparty/modernjson/test/data/json_tests/fail16.json
new file mode 100755
index 000000000..3fe21d4b5
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail16.json
@@ -0,0 +1 @@
+[\naked]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail17.json b/resources/3rdparty/modernjson/test/data/json_tests/fail17.json
new file mode 100755
index 000000000..62b9214ae
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail17.json
@@ -0,0 +1 @@
+["Illegal backslash escape: \017"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail18.json b/resources/3rdparty/modernjson/test/data/json_tests/fail18.json
new file mode 100755
index 000000000..edac92716
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail18.json
@@ -0,0 +1 @@
+[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail19.json b/resources/3rdparty/modernjson/test/data/json_tests/fail19.json
new file mode 100755
index 000000000..3b9c46fa9
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail19.json
@@ -0,0 +1 @@
+{"Missing colon" null}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail2.json b/resources/3rdparty/modernjson/test/data/json_tests/fail2.json
new file mode 100755
index 000000000..6b7c11e5a
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail2.json
@@ -0,0 +1 @@
+["Unclosed array"
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail20.json b/resources/3rdparty/modernjson/test/data/json_tests/fail20.json
new file mode 100755
index 000000000..27c1af3e7
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail20.json
@@ -0,0 +1 @@
+{"Double colon":: null}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail21.json b/resources/3rdparty/modernjson/test/data/json_tests/fail21.json
new file mode 100755
index 000000000..62474573b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail21.json
@@ -0,0 +1 @@
+{"Comma instead of colon", null}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail22.json b/resources/3rdparty/modernjson/test/data/json_tests/fail22.json
new file mode 100755
index 000000000..a7752581b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail22.json
@@ -0,0 +1 @@
+["Colon instead of comma": false]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail23.json b/resources/3rdparty/modernjson/test/data/json_tests/fail23.json
new file mode 100755
index 000000000..494add1ca
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail23.json
@@ -0,0 +1 @@
+["Bad value", truth]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail24.json b/resources/3rdparty/modernjson/test/data/json_tests/fail24.json
new file mode 100755
index 000000000..caff239bf
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail24.json
@@ -0,0 +1 @@
+['single quote']
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail25.json b/resources/3rdparty/modernjson/test/data/json_tests/fail25.json
new file mode 100755
index 000000000..8b7ad23e0
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail25.json
@@ -0,0 +1 @@
+["	tab	character	in	string	"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail26.json b/resources/3rdparty/modernjson/test/data/json_tests/fail26.json
new file mode 100755
index 000000000..845d26a6a
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail26.json
@@ -0,0 +1 @@
+["tab\   character\   in\  string\  "]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail27.json b/resources/3rdparty/modernjson/test/data/json_tests/fail27.json
new file mode 100755
index 000000000..6b01a2ca4
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail27.json
@@ -0,0 +1,2 @@
+["line
+break"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail28.json b/resources/3rdparty/modernjson/test/data/json_tests/fail28.json
new file mode 100755
index 000000000..621a0101c
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail28.json
@@ -0,0 +1,2 @@
+["line\
+break"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail29.json b/resources/3rdparty/modernjson/test/data/json_tests/fail29.json
new file mode 100755
index 000000000..47ec421bb
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail29.json
@@ -0,0 +1 @@
+[0e]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail3.json b/resources/3rdparty/modernjson/test/data/json_tests/fail3.json
new file mode 100755
index 000000000..168c81eb7
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail3.json
@@ -0,0 +1 @@
+{unquoted_key: "keys must be quoted"}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail30.json b/resources/3rdparty/modernjson/test/data/json_tests/fail30.json
new file mode 100755
index 000000000..8ab0bc4b8
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail30.json
@@ -0,0 +1 @@
+[0e+]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail31.json b/resources/3rdparty/modernjson/test/data/json_tests/fail31.json
new file mode 100755
index 000000000..1cce602b5
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail31.json
@@ -0,0 +1 @@
+[0e+-1]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail32.json b/resources/3rdparty/modernjson/test/data/json_tests/fail32.json
new file mode 100755
index 000000000..45cba7396
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail32.json
@@ -0,0 +1 @@
+{"Comma instead if closing brace": true,
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail33.json b/resources/3rdparty/modernjson/test/data/json_tests/fail33.json
new file mode 100755
index 000000000..ca5eb19dc
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail33.json
@@ -0,0 +1 @@
+["mismatch"}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail4.json b/resources/3rdparty/modernjson/test/data/json_tests/fail4.json
new file mode 100755
index 000000000..9de168bf3
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail4.json
@@ -0,0 +1 @@
+["extra comma",]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail5.json b/resources/3rdparty/modernjson/test/data/json_tests/fail5.json
new file mode 100755
index 000000000..ddf3ce3d2
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail5.json
@@ -0,0 +1 @@
+["double extra comma",,]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail6.json b/resources/3rdparty/modernjson/test/data/json_tests/fail6.json
new file mode 100755
index 000000000..ed91580e1
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail6.json
@@ -0,0 +1 @@
+[   , "<-- missing value"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail7.json b/resources/3rdparty/modernjson/test/data/json_tests/fail7.json
new file mode 100755
index 000000000..8a96af3e4
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail7.json
@@ -0,0 +1 @@
+["Comma after the close"],
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail8.json b/resources/3rdparty/modernjson/test/data/json_tests/fail8.json
new file mode 100755
index 000000000..b28479c6e
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail8.json
@@ -0,0 +1 @@
+["Extra close"]]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/fail9.json b/resources/3rdparty/modernjson/test/data/json_tests/fail9.json
new file mode 100755
index 000000000..5815574f3
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/fail9.json
@@ -0,0 +1 @@
+{"Extra comma": true,}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/pass1.json b/resources/3rdparty/modernjson/test/data/json_tests/pass1.json
new file mode 100755
index 000000000..70e268543
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/pass1.json
@@ -0,0 +1,58 @@
+[
+    "JSON Test Pattern pass1",
+    {"object with 1 member":["array with 1 element"]},
+    {},
+    [],
+    -42,
+    true,
+    false,
+    null,
+    {
+        "integer": 1234567890,
+        "real": -9876.543210,
+        "e": 0.123456789e-12,
+        "E": 1.234567890E+34,
+        "":  23456789012E66,
+        "zero": 0,
+        "one": 1,
+        "space": " ",
+        "quote": "\"",
+        "backslash": "\\",
+        "controls": "\b\f\n\r\t",
+        "slash": "/ & \/",
+        "alpha": "abcdefghijklmnopqrstuvwyz",
+        "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
+        "digit": "0123456789",
+        "0123456789": "digit",
+        "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
+        "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
+        "true": true,
+        "false": false,
+        "null": null,
+        "array":[  ],
+        "object":{  },
+        "address": "50 St. James Street",
+        "url": "http://www.JSON.org/",
+        "comment": "// /* <!-- --",
+        "# -- --> */": " ",
+        " s p a c e d " :[1,2 , 3
+
+,
+
+4 , 5        ,          6           ,7        ],"compact":[1,2,3,4,5,6,7],
+        "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
+        "quotes": "&#34; \u0022 %22 0x22 034 &#x22;",
+        "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
+: "A key can be any string"
+    },
+    0.5 ,98.6
+,
+99.44
+,
+
+1066,
+1e1,
+0.1e1,
+1e-1,
+1e00,2e+00,2e-00
+,"rosebud"]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/pass2.json b/resources/3rdparty/modernjson/test/data/json_tests/pass2.json
new file mode 100755
index 000000000..d3c63c7ad
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/pass2.json
@@ -0,0 +1 @@
+[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_tests/pass3.json b/resources/3rdparty/modernjson/test/data/json_tests/pass3.json
new file mode 100755
index 000000000..4528d51f1
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_tests/pass3.json
@@ -0,0 +1,6 @@
+{
+    "JSON Test Pattern pass3": {
+        "The outermost value": "must be an object or array.",
+        "In this test": "It is an object."
+    }
+}
diff --git a/resources/3rdparty/modernjson/test/data/json_testsuite/README.md b/resources/3rdparty/modernjson/test/data/json_testsuite/README.md
new file mode 100755
index 000000000..e259b6d0b
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_testsuite/README.md
@@ -0,0 +1,10 @@
+# json-test-suite
+
+## Source
+
+https://code.google.com/p/json-test-suite/downloads/detail?name=sample.zip&can=2&q=
+
+## License
+
+Apache License Version 2.0
+http://www.apache.org/licenses/LICENSE-2.0
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/data/json_testsuite/sample.json b/resources/3rdparty/modernjson/test/data/json_testsuite/sample.json
new file mode 100755
index 000000000..30930e765
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/data/json_testsuite/sample.json
@@ -0,0 +1,3315 @@
+{
+ "a": {
+  "6U閆崬밺뀫颒myj츥휘:$薈mY햚#rz飏+玭V㭢뾿愴YꖚX亥ᮉ푊\u0006垡㐭룝\"厓ᔧḅ^Sqpv媫\"⤽걒\"˽Ἆ?ꇆ䬔未tv{DV鯀Tἆl凸g\\㈭ĭ즿UH㽤": null,
+  "b茤z\\.N": [[
+   "ZL:ᅣዎ*Y|猫劁櫕荾Oj为1糕쪥泏S룂w࡛Ᏺ⸥蚙)",
+   {
+    "\"䬰ỐwD捾V`邀⠕VD㺝sH6[칑.:醥葹*뻵倻aD\"": true,
+    "e浱up蔽Cr෠JK軵xCʨ<뜡癙Y獩ケ齈X/螗唻?<蘡+뷄㩤쳖3偑犾&\\첊xz坍崦ݻ鍴\"嵥B3㰃詤豺嚼aqJ⑆∥韼@\u000b㢊\u0015L臯.샥": false,
+    "l?Ǩ喳e6㔡$M꼄I,(3᝝縢,䊀疅뉲B㴔傳䂴\u0088㮰钘ꜵ!ᅛ韽>": -5514085325291784739,
+    "o㮚?\"춛㵉<\/﬊ࠃ䃪䝣wp6ἀ䱄[s*S嬈貒pᛥ㰉'돀": [{
+     "(QP윤懊FI<ꃣ『䕷[\"珒嶮?%Ḭ壍಻䇟0荤!藲끹bd浶tl\u2049#쯀@僞": {"i妾8홫": {
+      ",M맃䞛K5nAㆴVN㒊햬$n꩑&ꎝ椞阫?/ṏ세뉪1x쥼㻤㪙`\"$쟒薟B煌܀쨝ଢ଼2掳7㙟鴙X婢\u0002": "Vዉ菈᧷⦌kﮞఈnz*<?੃'ahhCFX(\u0007⮊E㭍䱾Gxꥩr❣.洎",
+      "뻴5bDD큯O傆盓왻U?ꞅꐊN鐭᧢τ\"迳豲8\u001b䃥ꂻ䴺ྸH筴,": {
+       "\"L鸔SE㬡XV&~͎'놅蔞눶l匛?'.K氁\\ƢẨ疇mΊ'꽳&!鹠m'|{P痊 秄쒿u\u00111䋧gϩx7t丗D䊨䠻z0.A0": -1.50139930144708198E18,
+       "8鋂뛷?첒B☚>﷜FM\"荭7ꍀ-VR<\/';䁙E9$䩉\f @s?퍪o3^衴cඎ䧪aK鼟q䆨c{䳠5mᒲՙ蘹ᮩ": {
+        "F㲷JGo⯍P덵x뒳p䘧☔\"+ꨲ吿JfR㔹)4n紬G练Q፞!C|": true,
+        "p^㫮솎oc.೚A㤠??r\u000f)⾽⌲們M2.䴘䩳:⫭胃\\፾@Fᭌ\\K": false,
+        "蟌Tk愙潦伩": {
+         "a<\/@ᾛ慂侇瘎": -7271305752851720826,
+         "艓藬/>၄ṯ,XW~㲆w": {"E痧郶)㜓ha朗!N赻瞉駠uC\u20ad辠<Ve?폱!Im䁎搄:*s 9諚Prᵾ뒰髶B̌qWA8梸vS⫊⢳{t㺲q㺈랊뮣RqK밢쳪": [
+          false,
+          {
+           "\u000b=>x퓮⣫P1ࠫLMMX'M刼唳됤": null,
+           "P쓫晥%k覛ዩIUᇸ滨:噐혲lMR5䋈V梗>%幽u頖\\)쟟": null,
+           "eg+昉~矠䧞难\b?gQ쭷筝\\eꮠNl{ಢ哭|]Mn銌╥zꖘzⱷ⭤ᮜ^": [
+            -1.30142114406914976E17,
+            -1.7555215491128452E-19,
+            null,
+            "渾㨝ߏ牄귛r?돌?w[⚞ӻ~廩輫㼧/",
+            -4.5737191805302129E18,
+            null,
+            "xy࿑M[oc셒竓Ⓔx?뜓y䊦>-D켍(&&?XKkc꩖ﺸᏋ뵞K伕6ী)딀P朁yW揙?훻魢傎EG碸9類៌g踲C⟌aEX舲:z꒸许",
+            3808159498143417627,
+            null,
+            {"m試\u20df1{G8&뚈h홯J<\/": {
+             "3ஸ厠zs#1K7:rᥞoꅔꯧ&띇鵼鞫6跜#赿5l'8{7㕳(b/j\"厢aq籀ꏚ\u0015厼稥": [
+              -2226135764510113982,
+              true,
+              null,
+              {
+               "h%'맞S싅Hs&dl슾W0j鿏MםD놯L~S-㇡R쭬%": null,
+               "⟓咔謡칲\u0000孺ꛭx旑檉㶆?": null,
+               "恇I転;￸B2Y`z\\獓w,놏濐撐埵䂄)!䶢D=ഭ㴟jyY": {
+                "$ࡘt厛毣ൢI芁<겿骫⫦6tr惺a": [
+                 6.385779736989334E-20,
+                 false,
+                 true,
+                 true,
+                 [
+                  -6.891946211462334E-19,
+                  null,
+                  {
+                   "]-\\Ꟑ1/薓❧Ὂ\\l牑\u0007A郃)阜ᇒᓌ-塯`W峬G}SDb㬨Q臉⮻빌O鞟톴첂B㺱<ƈmu챑J㴹㷳픷Oㆩs": {
+                    "\"◉B\"pᶉt骔J꩸ᄇᛐi╰栛K쉷㉯鐩!㈐n칍䟅難>盥y铿e୔蒏M貹ヅ8嘋퀯䉶ጥ㏢殊뻳\"絧╿ꉑ䠥?∃蓊{}㣣Gk긔H1哵峱": false,
+                    "6.瀫cN䇮F㧺?\\椯=ڈT䘆4␘8qv": -3.5687501019676885E-19,
+                    "Q?yऴr혴{஀䳘p惭f1ﹸ䅷䕋贲<ྃᄊ繲hq\\b|#QSTs1c-7(䵢\u2069匏絘ꯉ:l毴汞t戀oෟᵶ뮱፣-醇Jx䙬䐁햢0࣫ᡁgrㄛ": "\u0011_xM/蘇Chv;dhA5.嗀绱V爤ﰦi뵲M",
+                    "⏑[\"ugoy^儣횎~U\\섯겜論l2jw஌yD腅̂\u0019": true,
+                    "ⵯɇ䐲᫿࢚!㯢l샅笶戮1꣖0Xe": null,
+                    "劅f넀識b宁焊E찓橵G!ʱ獓뭔雩괛": [{"p⹣켙[q>燣䍃㞽ᩲx:쓤삘7玑퇼0<\/q璂ᑁ[Z\\3䅵䧳\u0011㤧|妱緒C['췓Yꞟ3Z鳱雼P錻BU씧U`ᢶg蓱>.1ӧ譫'L_5V䏵Ц": [
+                     false,
+                     false,
+                     {"22䂍盥N霂얢<F8꼵7Gసyh뀍g᦭ꄢx硴嬢\u001a?E괆T|;7犟\"Wt%䐩O⨵t&#ᬋK'蜍Ძ揔⾠鲂T멷靃\u0018䓞cE": {"f=䏏츜瞾zw?孡鏣\\铀᫞yẆg(\u0011M6(s2]`ਫ": [[[{
+                      "'y몱纣4S@\\,i㷯럹Ua充Tᣢ9躘Zଞ쥿䐊s<\/刎\\\"뉦-8/": "蜑.X0꭛낢륹i젨ꚁ<8?s볕蝡|Q✬᯦@\\G㑢屿Mn졾J굤⥟JW뤵苑r쁕툄嵵?⾥O",
+                      "^1挲~[n귆誈央碠멪gI洷": -8214236471236116548,
+                      "sሣ%娌暡clr蟜㑓2\u000bS❟_X㨔⚴5~蔷ꀇ|Xu㬖,꤭卹r(g믇쩍%췸앙|栣U\\2]䤉+啠菡ꯎT鉹m\n/`SzDᅼ鞶": 1.1217523390167132E-19,
+                      "u톇=黚\\ ꂮ췵L>躰e9⑩_뵜斌n@B}$괻Yᐱ@䧋V\"☒-諯cV돯ʠ": true,
+                      "Ű螧ᔼ檍鍎땒딜qꄃH뜣<獧ूCY吓⸏>XQ㵡趌o끬k픀빯a(ܵ甏끆୯/6Nᪧ}搚ᆚ짌P牰泱鈷^d꣟#L삀\"㕹襻;k㸊\\f+": true,
+                      "쎣\",|⫝̸阊x庿k잣v庅$鈏괎炔k쬪O_": [
+                       "잩AzZGz3v愠ꉈⵎ?㊱}S尳௏p\r2>췝IP䘈M)w|\u000eE",
+                       -9222726055990423201,
+                       null,
+                       [
+                        false,
+                        {"´킮'뮤쯽Wx讐V,6ᩪ1紲aႈ\u205czD": [
+                         -930994432421097536,
+                         3157232031581030121,
+                         "l貚PY䃛5@䭄<nW\u001e",
+                         [
+                          3.801747732605161E18,
+                          [
+                           null,
+                           false,
+                           {
+                            "": 4.0442013775147072E16,
+                            "2J[sᡪ㞿|n'#廲꯬乞": true,
+                            "B[繰`\\㏏a̼㨀偛㽓<\/꥖ᵈO让\r43⡩徑ﬓ๨ﮕx:㣜o玐ꉟぢC珵὆ᓞ쇓Qs氯였9駵q혃Ljꂔ<\/昺+t䐋༻猙c沪~櫆bpJ9UᏐ:칣妙!皗F4㑄탎䕀櫳振讓": 7.3924182188256287E18,
+                            "H磵ai委曷n柋T<\/勿F&:ꣴfU@㿗榻Lb+?퍄sp\"᪟~>귻m㎮琸f": 1.0318894506812084E-19,
+                            "࢜⩢Ш䧔1肽씮+༎ᣰ闺馺窃䕨8Mƶq腽xc(៯夐J5굄䕁Qj_훨/~価.䢵慯틠퇱豠㼇Qﵘ$DuSp(8Uญ<\/ಟ룴𥳐ݩ$": 8350772684161555590,
+                            "ㆎQ䄾\u001bpᩭ${[諟^^骴᤮b^ㅥI┧T㉇⾞\"绦<AYJ⒃-oF<\/蛎mm;obh婃ᦢ": false,
+                            "䔤䣈?汝.p襟&d㱅\\Jᚠ@?O첁ࢽ휔VR蔩|㒢柺": [[
+                             "-ꕨ岓棻r@鿆^3~䪤Ѐ狼︌ﹲ\\᝸MlE쵠Q+",
+                             null,
+                             false,
+                             3346674396990536343,
+                             null,
+                             {
+                              "": null,
+                              "/䏨S쨑,&繷㉥8C엮赸3馢|뇲{鄎ꗇqFﶉ雕UD躢?Ꟛအ꽡[hᕱᗅ㦋쭞Mユ茍?L槽암V#성唐%㣕嘵\\ڹ(嘏躿&q": [
+                               -1364715155337673920,
+                               false,
+                               -8197733031775379251,
+                               "E팗鮲JwH\\觡܈᜝\"+뉞娂N휗v噙၂깼\u001dD帒l%-斔N",
+                               -3.844267973858711E-20,
+                               [{"쬯(褈Q 蟚뿢 /ⱖ㻥\u0017/?v邘䃡0U.Z1x?鯔V尠8Em<": [[[
+                                null,
+                                [
+                                 null,
+                                 -5841406347577698873,
+                                 "킷\"S⋄籞繗솸ᵣ浵w쑿ퟗ7nᎏx3앙z㘌쿸I葥覯㬏0ᆝb汆狺뷘ႀnꋋ",
+                                 -1227911573141158702,
+                                 {
+                                  "u㉮PᾺV鵸A\\g*ࡗ9슟晭+ͧↀ쿅H\u001c꾣犓}癇恛ᗬ黩䟘X梑鐆e>r䰂f矩'-7䡭桥Dz兔V9谶居㺍ᔊ䩯덲.\u001eL0ὅㅷ釣": [{
+                                   "<쯬J卷^숞u࠯䌗艞R9닪g㐾볎a䂈歖意:%鐔|ﵤ|y}>;2,覂⶚啵tb*仛8乒㓶B࿠㯉戩oX 貘5V嗆렽낁߼4h䧛ꍺM空\\b꿋貼": 8478577078537189402,
+                                   "VD*|吝z~h譺aᯒ": {
+                                    "YI췢K<\/濳xNne玗rJo쾘3핰鴊\"↱AR:ࢷ\"9?\"臁說)?誚ꊏe)_D翾W?&F6J@뺾ꍰNZ醊Z쾈വH嶿?炫㷱鬰M겈<bS}㎥l|刖k": {"H7鷮퇢_k": [
+                                     true,
+                                     "s㟑瀭좾쮀⑁Y찺k맢戲쀸俻ກ6儮끗扖puߖꜻ馶rꈞ痘?3ྚ畊惘䎗\"vv)*臔웅鿈䧲^v,껛㰙J <ᚶ5",
+                                     7950276470944656796,
+                                     4.9392301536234746E17,
+                                     -4796050478201554639,
+                                     "yꬴc<3㻚",
+                                     "o塁\u20a4蒵鮬裢CᴧnB㭱f.",
+                                     false,
+                                     [
+                                      false,
+                                      "㡐弑V?瀆䰺q!출㇞yᘪ꼼(IS~Ka 烿ꟿ샕桤\u0005HQҹ㯪罂q萾⚇懋⦕둡v",
+                                      1862560050083946970,
+                                      "\u20b6[|(뭹gꍒ펉O轄Dl묽]ﯨ髯QEbA㒾m@롴礠㕓2땫n6ْ엘঵篳R잷꙲m색摪|@㿫5aK设f胭r8/NI4춫栵\\꯬2]",
+                                      false,
+                                      {
+                                       "\u000b7*㙛燏.~?䔊p搕e_拺艿뷍f{ꔻ1s驙`$Ė戧?q⋬沭?塷᭚蹀unoa5": {
+                                        "S귯o紞㾕ᅶ侏銇12|ʟ畴iNAo?|Sw$M拲գ㭄紧螆+,梔": null,
+                                        "㭚0?xB疱敻ேBPwv뾃熉(ӠpJ]갢\"Bj'\u0016GE椱<\/zgៅx黢礇h},M9ﴦ?LḨ": "Si B%~㬒E",
+                                        "핇㉊살㍢숨~ȪRo䦅D桺0z]﬽蠆c9ᣨyPP㿷U~㞐?쯟퍸宒뉆U|}㉓郾ࣻ*櫎꼪䁗s?~7\u001e㘔h9{aឋ}:㶒P8": [{"\\R囡쐬nN柋琍؛7칾 :㶃衇徜V 深f1淍♠i?3S角폞^ᆞ\u20e8ṰD\u0007秡+躒臔&-6": {
+                                         "䨑g.fh㔗=8!\"狿ൻLU^뻱g䲚㻐'W}k欤?๒鲇S꧗䫾$ĥ피": -794055816303360636,
+                                         "外頮詋~텡竆繃䏩苨뾺朁꼃瘹f*㉀枙NH/\u2027ꢁ}j묎vペq︉식뜡Od5 N顯ି烅仟Qfㆤ嚢(i䬅c;맧?嶰㩼츱獡?-": {
+                                          "e݆㍡⬬'2㻒?U篲鿄\"隻Ҭ5NꭰꤺBꀈ拾᩺[刯5곑Na램ﴦ዆]㝓qw钄\u001b\"Y洊䗿祏塥迵[⼞⠳P$꠱5먃0轢`": [{"獰E賝﫚b먭N긆Ⰹ史2逶ꜛ?H짉~?P}jj}侷珿_T>᭨b,⻁鈵P䕡䀠८ⱄ홎鄣": {
+                                           "@?k2鶖㋮\"Oರ K㨇廪儲\u0017䍾J?);\b*묀㗠섳햭1MC V": null,
+                                           "UIICP!BUA`ᢈ㋸~袩㗪⾒=fB﮴l1ꡛ죘R辂여ҳ7쮡<䩲`熕8頁": 4481809488267626463,
+                                           "Y?+8먙ᚔ鋳蜩럶1㥔y璜౩`": [
+                                            null,
+                                            1.2850335807501874E-19,
+                                            "~V2",
+                                            2035406654801997866,
+                                            {
+                                             "<숻1>\"": -8062468865199390827,
+                                             "M㿣E]}qwG莎Gn᝶(ꔙ\\D⬲iꇲs寢t駇S뀡ꢜ": false,
+                                             "pꝤ㎏9W%>M;-U璏f(^j1?&RB隧 忓b똊E": "#G?C8.躬ꥯ'?냪#< 渟&헿란zpo왓Kj}鷧XﻘMツb䕖;㪻",
+                                             "vE풤幉xz뱕쫥Ug㦲aH} ᣟp:鬼Yᰟ<Fɋ잣緂頒⺏䉲瑑䅂,C~ޅG!f熢-B7~9Pqࡢ[츑#3ꕎ,Öඳ聁⩅㵧춀뿍xy䌏͂tdj!箧᳆|9蚡돬": -2.54467378964089632E17,
+                                             "䵈䅦5빖,궆-:໿댾仫0ᙚyᦝhqᚄ": null,
+                                             "侯Y\"湛졯劇U셎YX灍ⅸ2伴|筧\\䁒㶶᷏쁑Waᦵᗱ㜏늾膠<Jc63<G\u20fe䇹66僣k0O\"_@U": null,
+                                             "姪y$#s漴JH璌Ӊ脛J㝾펔ﹴoꈶ㚸PD:薠쏖%說ថ蹂1]⾕5튄": {
+                                              "᝾Huw3䮅如쿺䍟嫝]<鰨ݷ?꯯䫓傩|ᐶස媽\\澒≡闢": "Mm\"쏇ᯄ졽\"楇<\/ꥆ흭局n隴@鿣w⠊4P贈徎W㊋;䤞'.팇蒁䡴egpx嗎wஅ獗堮ᛐnˁ︖䀤4噙?໚郝᱋ޘॎt恑姫籕殥陃\"4[ꝬqL4Wꠎx",
+                                              "ℇj遌5B뒚\" U": "硄ꏘ{憠굏:&t䌨m Cઌ쿣鞛XFꠟs䝭ﶃ\"格a0x闊昵吲L\\杚聈aꁸj싹獅\"灟ﱡ馆*굖糠<ꔏ躎",
+                                              "톌賠弳ꟍb\"螖X50sĶ晠3f秂坯Iⓟ:萘": 5.573183333596288E18,
+                                              "%䴺": [[[[
+                                               -6957233336860166165,
+                                               false,
+                                               null,
+                                               {
+                                                "\"\\௮茒袀ᕥ23ୃ괶?䕎.嚲◉㏞L+ᵡ艱hL콇붆@": null,
+                                                "%螥9ꭌ<\/-t": true,
+                                                ",9|耢椸䁓Xk죱\u0015$Ώ鲞[?엢ᝲ혪즈ⴂ▂ℴ㗯\"g뺘\\ꍜ#\u0002ヮ}ሎ芲P[鹮轧@냲䃦=#(": 2.78562909315899616E17,
+                                                "R?H䧰ⵇ<,憰쮼Q總iR>H3镔ᴚ斦\\鏑r*2橱G⼔F/.j": true,
+                                                "RK좬뎂a홠f*f㱉ᮍ⦋潙㨋Gu곌SGI3I뿐\\F',)t`荁蘯囯ﮉ裲뇟쥼_ገ驪▵撏ᕤV": 1.52738225997956557E18,
+                                                "^k굲䪿꠹B逤%F㱢漥O披M㽯镞竇霒i꼂焅륓\u00059=皫之눃\u2047娤閍銤唫ၕb<\/w踲䔼u솆맚,䝒ᝳ'/it": "B餹饴is権ꖪ怯ꦂẉဎt\"!凢谵⧿0\\<=(uL䷍刨쑪>俆揓Cy襸Q힆䆭涷<\/ᐱ0ɧ䗾䚹\\ኜ?ꄢᇘ`䴢{囇}᠈䴥X4퓪檄]ꥷ/3謒ሴn+g騍X",
+                                                "GgG꽬[(嫓몍6\u0004궍宩㙻/>\u0011^辍dT腪hxǑ%ꊇk,8(W⧂結P鬜O": [{
+                                                 "M㴾c>\\ᓲ\u0019V{>ꤩ혙넪㭪躂TS-痴໸闓⍵/徯O.M㏥ʷD囎⧔쁳휤T??鉬뇙=#ꢫ숣BX䭼<\/d똬졬g榿)eꨋﯪ좇첻<?2K)": null,
+                                                 "Z17縬z]愀䖌 ᾋBCg5딒국憍꾓aⲷ턷u:U촳驿?雺楶\u0001\u001c{q*ᰗ苑B@k揰z.*蓗7ረIm\"Oᱍ@7?_": true,
+                                                 "㺃Z<": -4349275766673120695,
+                                                 "휃䠂fa塆ffixKe'덬鏗੄뺾w࠾鑎k땢m*႑햞鐮6攊&虜h黚,Y䱳Sﭼ둺pN6": [
+                                                  false,
+                                                  "IΎ䣲,\"ᬮ˪癘P~Qlnx喁Sᮔ༬˨I珌m䜛酛\u0003iꐸ㦧cQ帲晼D' \\(粋wQcN\\뵰跈",
+                                                  [
+                                                   "D0\\L?M1쥍Kaꏌsd+盌귤憊tz䌣댐בO坂wϢ%ὒgp,Ai⎧ᶆI餾ꦍ棩嘅᳉怴%m]ၶis纖D凜镧o심b U",
+                                                   {
+                                                    "?଼\u0011Rv&^[+匚I趈T媫\u0010.䥤ᆯ1q僤HydⲰl㒽K'ᅾiౕ豲초딨@\u0013J'쪪VD౼P4Ezg#8*㋤W馓]c쿯8": false,
+                                                    "c/擯X5~JmK䵶^쐎ച|B|u[솝(X뚤6v}W㤘⠛aR弌臌쾭諦eⒷ僡-;㩩⭖ⷴ徆龄갬{䱓ᥩ!﯏⊚ᇨ<v燡露`:볉癮꨽り★Ax7Ꮀ譥~舑\\Vꍋ\"$)v": "e&sFF쬘OBd슊寮f蠛জ봞mn~锆竒G脁\"趵G刕䕳&L唽붵<\/I,X팚B⍥X,kԇҗ眄_慡:U附ᓚA蕧>\u001a\u0011\";~쓆BH4坋攊7힪",
+                                                    "iT:L闞椕윚*滛gI≀Wਟඊ'ꢆ縺뱹鮚Nꩁ᧬蕼21줧\\䋯``⍐\\㏱鳨": 1927052677739832894,
+                                                    "쮁缦腃g]礿Y㬙 fヺSɪ꾾N㞈": [
+                                                     null,
+                                                     null,
+                                                     {
+                                                      "!t,灝Y 1䗉罵?c饃호䉂Cᐭ쒘z(즽sZG㬣sഖE4뢜㓕䏞丮Qp簍6EZឪ겛fx'ꩱQ0罣i{k锩*㤴㯞r迎jTⲤ渔m炅肳": [
+                                                       -3.3325685522591933E18,
+                                                       [{"㓁5]A䢕1룥BC?Ꙍ`r룔Ⳛ䙡u伲+\u0001്o": [
+                                                        null,
+                                                        4975309147809803991,
+                                                        null,
+                                                        null,
+                                                        {"T팘8Dﯲ稟MM☻㧚䥧/8ﻥ⥯aXLaH\"顾S☟耲ît7fS෉놁뮔/ꕼ䓈쁺4\\霶䠴ᩢ<\/t4?죵>uD5➶༆쉌럮⢀秙䘥\u20972ETR3濡恆vB? ~鸆\u0005": {
+                                                         "`閖m璝㥉b뜴?Wf;?DV콜\u2020퍉౓擝宏ZMj3mJ먡-傷뱙yח㸷꥿ ໘u=M읝!5吭L4v\\?ǎ7C홫": null,
+                                                         "|": false,
+                                                         "~Ztᛋ䚘\\擭㗝傪W陖+㗶qᵿ蘥ᙄp%䫎)}=⠔6ᮢS湟-螾-mXH?cp": 448751162044282216,
+                                                         "\u209fad놹j檋䇌ᶾ梕㉝bוּ<d䗱:줰M酄\u0000X#_r獢A饓ꍗُKo_跔?ᪧ嵜鼲<": null,
+                                                         "ꆘ)ubI@h@洭Ai㜎䏱k\u0003?T䉐3间%j6j棍j=❁\\U毮ᬹ*8䀔v6cpj⭬~Q꿾뺶펵悡!쩭厝l六㽫6퇓ޭ2>": {"?苴ꩠD䋓帘5騱qﱖPF?☸珗顒yU ᡫcb䫎 S@㥚gꮒ쎘泴멖\\:I鮱TZ듒ᶨQ3+f7캙\"?\f풾\\o杞紟﻽M.⏎靑OP": [
+                                                          -2.6990368911551596E18,
+                                                          [{"䒖@<᰿<\/⽬tTr腞&G%᳊秩蜰擻f㎳?S㵧\r*k뎾-乢겹隷j軛겷0룁鮁": {")DO0腦:춍逿:1㥨่!蛍樋2": [{
+                                                           ",ꌣf侴笾m๫ꆽ?1?U?\u0011ꌈꂇ": {
+                                                            "x捗甠nVq䅦w`CD⦂惺嘴0I#vỵ} \\귂S끴D얾?Ԓj溯\"v餄a": {
+                                                             "@翙c⢃趚痋i\u0015OQ⍝lq돆Y0pࢥ3쉨䜩^<8g懥0w)]䊑n洺o5쭝QL댊랖L镈Qnt⪟㒅십q헎鳒⮤眉ᔹ梠@O縠u泌ㄘb榚癸XޔFtj;iC": false,
+                                                             "I&뱋゘|蓔䔕측瓯%6ᗻHW\\N1貇#?僐ᗜgh᭪o'䗈꽹Rc욏/蔳迄༝!0邔䨷푪8疩)[쭶緄㇈୧ፐ": {
+                                                              "B+:ꉰ`s쾭)빼C羍A䫊pMgjdx䐝Hf9᥸W0!C樃'蘿f䫤סи\u0017Jve? 覝f둀⬣퓉Whk\"஼=չﳐ皆笁BIW虨쫓F廰饞": -642906201042308791,
+                                                              "sb,XcZ<\/m㉹ ;䑷@c䵀s奤⬷7`ꘖ蕘戚?Feb#輜}p4nH⬮eKL트}": [
+                                                               "RK鳗z=袤Pf|[,u욺",
+                                                               "Ẏᏻ罯뉋⺖锅젯㷻{H䰞쬙-쩓D]~\u0013O㳢gb@揶蔉|kᦂ❗!\u001ebM褐sca쨜襒y⺉룓",
+                                                               null,
+                                                               null,
+                                                               true,
+                                                               -1.650777344339075E-19,
+                                                               false,
+                                                               "☑lꄆs힨꤇]'uTന⌳농].1⋔괁沰\"IWഩ\u0019氜8쟇䔻;3衲恋,窌z펏喁횗?4?C넁问?ᥙ橭{稻Ⴗ_썔",
+                                                               "n?]讇빽嗁}1孅9#ꭨ靶v\u0014喈)vw祔}룼쮿I",
+                                                               -2.7033457331882025E18,
+                                                               {
+                                                                ";⚃^㱋x:饬ኡj'꧵T☽O㔬RO婎?향ᒭ搩$渣y4i;(Q>꿘e8q": "j~錘}0g;L萺*;ᕭꄮ0l潛烢5H▄쳂ꏒוֹꙶT犘≫x閦웧v",
+                                                                "~揯\u2018c4職렁E~ᑅቚꈂ?nq뎤.:慹`F햘+%鉎O瀜쟏敛菮⍌浢<\/㮺紿P鳆ࠉ8I-o?#jﮨ7v3Dt赻J9": null,
+                                                                "ࣝW䌈0ꍎqC逖,횅c၃swj;jJS櫍5槗OaB>D踾Y": {"㒰䵝F%?59.㍈cᕨ흕틎ḏ㋩B=9IېⓌ{:9.yw}呰ㆮ肒᎒tI㾴62\"ዃ抡C﹬B<\/<EO꽓ᇕu&鋫\\禞퐹u꒍.7훯ಶ2䩦͉ᶱf깵ᷣ늎": [
+                                                                 5.5099570884646902E18,
+                                                                 "uQN濿m臇<%?谣鮢s]]x0躩慌闋<;( 鋤.0ᠵd1#벘a:Gs?햷'.)ㅴ䞟琯崈FS@O㌛ᓬ抢큌ើ냷쿟툥IZn[惵ꐧ3뙍[&v憙J>촋jo朣",
+                                                                 [
+                                                                  -7675533242647793366,
+                                                                  {"ᙧ呃:[㒺쳀쌡쏂H稈㢤\u001dᶗGG-{GHྻຊꡃ哸䵬;$?&d\\⥬こN圴됤挨-'ꕮ$PU%?冕눖i魁q騎Q": [
+                                                                   false,
+                                                                   [[
+                                                                    7929823049157504248,
+                                                                    [[
+                                                                     true,
+                                                                     "Z菙\u0017'eꕤ᱕l,0\\X\u001c[=雿8蠬L<\/낲긯W99g톉4ퟋb㝺\u0007劁'!麕Q궈oW:@X၎z蘻m絙璩귓죉+3柚怫tS捇蒣䝠-擶D[0=퉿8)q0ٟ",
+                                                                     "唉\nFA椭穒巯\\䥴䅺鿤S#b迅獘 ﶗ꬘\\?q1qN犠pX꜅^䤊⛤㢌[⬛휖岺q唻ⳡ틍\"㙙Eh@oA賑㗠y必Nꊑᗘ",
+                                                                     -2154220236962890773,
+                                                                     -3.2442003245397908E18,
+                                                                     "Wᄿ筠:瘫퀩?o貸q⊻(᎞KWf宛尨h^残3[U(='橄",
+                                                                     -7857990034281549164,
+                                                                     1.44283696979059942E18,
+                                                                     null,
+                                                                     {"ꫯAw跭喀 ?_9\"Aty背F=9缉ྦྷ@;?^鞀w:uN㘢Rỏ": [
+                                                                      7.393662029337442E15,
+                                                                      3564680942654233068,
+                                                                      [
+                                                                       false,
+                                                                       -5253931502642112194,
+                                                                       "煉\\辎ೆ罍5⒭1䪁䃑s䎢:[e5}峳ﴱn騎3?腳Hyꏃ膼N潭錖,Yᝋ˜YAၓ㬠bG렣䰣:",
+                                                                       true,
+                                                                       null,
+                                                                       {
+                                                                        "⒛'P&%죮|:⫶춞": -3818336746965687085,
+                                                                        "钖m<\/0ݎMtF2Pk=瓰୮洽겎.": [[
+                                                                         -8757574841556350607,
+                                                                         -3045234949333270161,
+                                                                         null,
+                                                                         {
+                                                                          "Ꮬr輳>⫇9hU##w@귪A\\C 鋺㘓ꖐ梒뒬묹㹻+郸嬏윤'+g<\/碴,}ꙫ>손;情d齆J䬁ຩ撛챝탹/R澡7剌tꤼ?ặ!`⏲睤\u00002똥଴⟏": null,
+                                                                          "\u20f2ܹe\\tAꥍư\\x当뿖렉禛;G檳ﯪS૰3~㘠#[J<}{奲 5箉⨔{놁<\/釿抋,嚠/曳m&WaOvT赋皺璑텁": [[
+                                                                           false,
+                                                                           null,
+                                                                           true,
+                                                                           -5.7131445659795661E18,
+                                                                           "萭m䓪D5|3婁ఞ>蠇晼6nﴺPp禽羱DS<睓닫屚삏姿",
+                                                                           true,
+                                                                           [
+                                                                            -8759747687917306831,
+                                                                            {
+                                                                             ">ⓛ\t,odKr{䘠?b퓸C嶈=DyEᙬ@ᴔ쨺芛髿UT퓻春<\/yꏸ>豚W釺N뜨^?꽴﨟5殺ᗃ翐%>퍂ဿ䄸沂Ea;A_\u0005閹殀W+窊?Ꭼd\u0013P汴G5썓揘": 4.342729067882445E-18,
+                                                                             "Q^즾眆@AN\u0011Kb榰냎Y#䝀ꀒᳺ'q暇睵s\"!3#I⊆畼寤@HxJ9": false,
+                                                                             "⿾D[)袨㇩i]웪䀤ᛰMvR<蟏㣨": {"v퇓L㪱ꖣ豛톤\\곱#kDTN": [{
+                                                                              "(쾴䡣,寴ph(C\"㳶w\"憳2s馆E!n!&柄<\/0Pꈗſ?㿳Qd鵔": {"娇堰孹L錮h嵅⛤躏顒?CglN束+쨣ﺜ\\MrH": {"獞䎇둃ቲ弭팭^ꄞ踦涟XK錆쳞ឌ`;੶S炥騞ଋ褂B៎{ڒ䭷ᶼ靜pI荗虶K$": [{"◖S~躘蒉꫿輜譝Q㽙闐@ᢗ¥E榁iء5┄^B[絮跉ᰥ遙PWi3wㄾⵀDJ9!w㞣ᄎ{듒ꓓb6\\篴??c⼰鶹⟧\\鮇ꮇ": [[
+                                                                               654120831325413520,
+                                                                               -1.9562073916357608E-19,
+                                                                               {
+                                                                                "DC(昐衵ἡ긙갵姭|֛[t": 7.6979110359897907E18,
+                                                                                "J␅))嫼❳9Xfd飉j7猬ᩉ+⤻眗벎E鰉Zᄊ63zၝ69}ZᶐL崭ᦥ⡦靚⋛ꎨ~i㨃咊ꧭo䰠阀3C(": -3.5844809362512589E17,
+                                                                                "p꣑팱쒬ꎑ뛡Ꙩ挴恍胔&7ᔈ묒4Hd硶훐㎖zꢼ豍㿢aሃ=<\/湉鵲EӅ%$F!퍶棌孼{O駍਺geu+": ")\u001b잓kŀX쩫A밁®ڣ癦狢)扔弒p}k縕ꩋ,䃉tࣼi",
+                                                                                "ァF肿輸<솄G-䢹䛸ꊏl`Tqꕗ蒞a氷⸅ᴉ蠰]S/{J왲m5{9.uέ~㕚㣹u>x8U讁B덺襪盎QhVS맅킃i识{벂磄Iහ䙅xZy/抍૭Z鲁-霳V据挦ℒ": null,
+                                                                                "㯛|Nꐸb7ⵐb?拠O\u0014ކ?-(EꞨ4ꕷᄤYᯕOW瞺~螸\"욿ќ<u鵵઎⸊倾쑷෻rT⪄牤銱;W殆͢芄ਰ嚝훚샢⊿+㲽": null,
+                                                                                "単逆ົ%_맛d)zJ%3칧_릟#95䌨怡\u001ci턠ॣi冘4赖'ਐ䧐_栔!": {
+                                                                                 "*?2~4㲌᭳쯁ftႷ1#oJ\b䊇镇됔 \u2079x䛁㊝ᮂN;穽跖s휇ᣄ홄傷z⸷(霸!3y뺏M쒿햏۽v㳉tở心3黎v쭻 Rp཮Vr~T?&˴k糒븥쩩r*D": null,
+                                                                                 "8@~홟ꔘk1[": -5570970366240640754,
+                                                                                 "BZt鏦ꡬc餖  s(mᛴ\u0000◄d腑t84C⟐坯VṊ뉙'噱Ꝕ珽GC顀?허0ꞹ&돇䛭C䷫](": 2.4303828213012387E-20,
+                                                                                 "y撔Z외放+}ḑ骈ᙝ&\u0016`G便2|-e]঳?QF㜹YF\"㿒緄햷㈟塚䷦ୀጤlM蘸N㾆▛럪㞂tᕬ镈쇝喠l amcxPnm\u001a᱋<\/]_]ﻹ瞧?H": false,
+                                                                                 "ፏ氏묢뜚I[♺뽛x?0H봬Wpn꨹Ra䝿쌑{㴂ni祻윸A'y|⺴ᚘ庌9{$恲{톽=m#@6ᨧfgs44陎J#<Ễ쨓瀵❩a୛㷉㙉ܸ◠냔嬯~呄籁羥镳": false,
+                                                                                 "㘱{<頬22?IF@곊I겂嶻L᝛D{@r쒂?IAᣧ洪惒誸b徂z췺꾍㠭\\刊%禨쌐ⶣ仵\\P[:47;<ᇅ<\/": {
+                                                                                  "^U釳-v㢈ꗝ◄菘rᜨi;起kR犺䵫\u0000锍쁙m-ԙ!lḃ꛸뻾F(W귛y": "#ᠺH㸢5v8_洑C",
+                                                                                  "䔵໳$ᙠ6菞\u206e摎q圩P|慍sV4:㜾(I溞I?": -6569206717947549676,
+                                                                                  "透Ꞃ緵퇝8 >e㺰\"'㌢ƐW\u0004瞕>0?V鷵엳": true,
+                                                                                  "뤥G\\迋䠿[庩'꼡\u001aiᩮV쯁ᳪ䦪Ô;倱ନ뛁誈": null,
+                                                                                  "쥹䄆䚟Q榁䎐᢭<\/2㕣p}HW蟔|䃏꿈ꚉ锳2Pb7㙑Tⅹᵅ": {
+                                                                                   "Y?֭$>#cVBꩨ:>eL蒁務": {
+                                                                                    "86柡0po 䏚&-捑Ћ祌<\/휃-G*㶢הּ쩍s㶟餇c걺yu꽎還5*턧簕Og婥SꝐ": null,
+                                                                                    "a+葞h٥ࠆ裈嗫ﵢ5輙퀟ᛜ,QDﹼ⟶Y騠锪E_|x죗j侵;m蜫轘趥?븅w5+mi콛L": {
+                                                                                     ";⯭ﱢ!买F⽍柤鶂n䵣V㫚墱2렾ELEl⣆": [
+                                                                                      true,
+                                                                                      -3.6479311868339015E-18,
+                                                                                      -7270785619461995400,
+                                                                                      3.334081886177621E18,
+                                                                                      2.581457786298155E18,
+                                                                                      -6.605252412954115E-20,
+                                                                                      -3.9232347037744167E-20,
+                                                                                      {
+                                                                                       "B6㊕.k1": null,
+                                                                                       "ZAꄮJ鮷ᳱo갘硥鈠䠒츼": {
+                                                                                        "ᕅ}럡}.@y陪鶁r業'援퀉x䉴ﵴl퍘):씭脴ᥞhiꃰblﲂ䡲엕8߇M㶭0燋標挝-?PCwe⾕J碻Ᾱ䬈䈥뷰憵賣뵓痬+": {"a췩v礗X⋈耓ፊf罅靮!㔽YYᣓw澍33⎔芲F|\"䜏T↮輦挑6ᓘL侘?ᅥ]덆1R௯✎餘6ꏽ<\/௨\\?q喷ꁫj~@ulq": {"嗫欆뾔Xꆹ4H㌋F嵧]ࠎ]㠖1ꞤT<$m뫏O i댳0䲝i": {"?෩?\u20cd슮|ꯆjs{?d7?eNs⢚嫥氂䡮쎱:鑵롟2hJꎒﯭ鱢3춲亄:뼣v䊭諱Yj択cVmR䩃㘬T\"N홝*ै%x^F\\_s9보zz4淗?q": [
+                                                                                         null,
+                                                                                         "?",
+                                                                                         2941869570821073737,
+                                                                                         "{5{殇0䝾g6밖퍋臩綹R$䖭j紋釰7sXI繳漪행y",
+                                                                                         false,
+                                                                                         "aH磂?뛡#惇d婅?Fe,쐘+늵䍘\"3r瘆唊勐j⳧࠴ꇓ<\/唕윈x⬌讣䋵%拗ᛆⰿ妴᝔M2㳗必꧂淲?ゥ젯檢<8끒MidX䏒3᳻Q▮佐UT|⤪봦靏⊏",
+                                                                                         [[{
+                                                                                          "颉(&뜸귙{y^\"P퟉춝Ჟ䮭D顡9=?}Y誱<$b뱣RvO8cH煉@tk~4ǂ⤧⩝屋SS;J{vV#剤餓ᯅc?#a6D,s": [
+                                                                                           -7.8781018564821536E16,
+                                                                                           true,
+                                                                                           [
+                                                                                            -2.28770899315832371E18,
+                                                                                            false,
+                                                                                            -1.0863912140143876E-20,
+                                                                                            -6282721572097446995,
+                                                                                            6767121921199223078,
+                                                                                            -2545487755405567831,
+                                                                                            false,
+                                                                                            null,
+                                                                                            -9065970397975641765,
+                                                                                            [
+                                                                                             -5.928721243413937E-20,
+                                                                                             {"6촊\u001a홯kB0w撨燠룉{绎6⳹!턍贑y▾鱧ժ[;7ᨷ∀*땒䪮1x霆Hᩭ☔\"r䝐7毟ᝰr惃3ꉭE+>僒澐": [
+                                                                                              "Ta쎩aƝt쵯ⰪVb",
+                                                                                              [
+                                                                                               -5222472249213580702,
+                                                                                               null,
+                                                                                               -2851641861541559595,
+                                                                                               null,
+                                                                                               4808804630502809099,
+                                                                                               5657671602244269874,
+                                                                                               "5犲﨣4mᥣ?yf젫꾯|䋬잁$`Iⳉﴷ扳兝,'c",
+                                                                                               false,
+                                                                                               [
+                                                                                                null,
+                                                                                                {
+                                                                                                 "DyUIN쎾M仼惀⮥裎岶泭lh扠\u001e礼.tEC癯튻@_Qd4c5S熯A<\/\6U윲蹴Q=%푫汹\\\u20614b[௒C⒥Xe⊇囙b,服3ss땊뢍i~逇PA쇸1": -2.63273619193485312E17,
+                                                                                                 "Mq꺋貘k휕=nK硍뫞輩>㾆~἞ࡹ긐榵l⋙Hw뮢帋M엳뢯v⅃^": 1877913476688465125,
+                                                                                                 "ᶴ뻗`~筗免⚽টW˃⽝b犳䓺Iz篤p;乨A\u20ef쩏?疊m㝀컩뫡b탔鄃ᾈV(遢珳=뎲ିeF仢䆡谨8t0醄7㭧瘵⻰컆r厡궥d)a阄፷Ed&c﯄伮1p": null,
+                                                                                                 "⯁w4曢\"(欷輡": "\"M᭫]䣒頳B\\燧ࠃN㡇j姈g⊸⺌忉ꡥF矉স%^",
+                                                                                                 "㣡Oᄦ昵⫮Y祎S쐐級㭻撥>{I$": -378474210562741663,
+                                                                                                 "䛒掷留Q%쓗1*1J*끓헩ᦢ﫫哉쩧EↅIcꅡ\\?ⴊl귛顮4": false,
+                                                                                                 "寔愆샠5]䗄IH贈=d﯊/偶?ॊn%晥D視N򗘈'᫂⚦|X쵩넽z질tskxDQ莮Aoﱻ뛓": true,
+                                                                                                 "钣xp?&\u001e侉/y䴼~?U篔蘚缣/I畚?Q绊": -3034854258736382234,
+                                                                                                 "꺲໣眀)⿷J暘pИfAV삕쳭Nꯗ4々'唄ⶑ伻㷯騑倭D*Ok꧁3b␽_<\/챣Xm톰ၕ䆄`*fl㭀暮滠毡?": [
+                                                                                                  "D男p`V뙸擨忝븪9c麺`淂⢦Yw⡢+kzܖ\fY1䬡H歁)벾Z♤溊-혰셢?1<-\u0005;搢Tᐁle\\ᛵߓﭩ榩<QF;t=?Qꀞ",
+                                                                                                  [
+                                                                                                   null,
+                                                                                                   [{"-췫揲ᬨ墊臸<ࠒH跥 㔭쥃㫯W=z[wধ╌<~yW楄S!⑻h즓lĖN￧篌W듷튗乵᪪템먵Pf悥ᘀk䷭焼\\讄r擁鐬y6VF<\/6랿p)麡ꁠ㪁\"pழe": [
+                                                                                                    "#幎杴颒嶈)ㄛJ.嶤26_⋌东챯ꠉ⤋ؚ/⏚%秼Q룠QGztᄎ㎷អI翰Xp睔鍜ꨍ",
+                                                                                                    {",T?": [
+                                                                                                     false,
+                                                                                                     [[
+                                                                                                      true,
+                                                                                                      7974824014498027996,
+                                                                                                      false,
+                                                                                                      [
+                                                                                                       4.3305464880956252E18,
+                                                                                                       {
+                                                                                                        "᱿W^A]'rᮢ)鏥z餝;Hu\\Fk?ﴺ?IG浅-䙧>訝-xJ;巡8깊蠝ﻓU$K": {
+                                                                                                         "Vꕡ諅搓W=斸s︪vﲜ츧$)iꡟ싉e寳?ጭムVથ嵬i楝Fg<\/Z|៪ꩆ-5'@ꃱ80!燱R쇤t糳]罛逇dṌ֣XHiͦ{": true,
+                                                                                                         "Ya矲C멗Q9膲墅携휻c\\딶G甔<\/.齵휴": -1.1456247877031811E-19,
+                                                                                                         "z#.OO￝J": -8263224695871959017,
+                                                                                                         "崍_3夼ᮟ1F븍뽯ᦓ鴭V豈Ь": [{
+                                                                                                          "N蒬74": null,
+                                                                                                          "yuB?厅vK笗!ᔸcXQ旦컶P-녫mᄉ麟_": "1R@ 톘xa_|﩯遘s槞d!d껀筤⬫薐焵먑D{\\6k共倌☀G~AS_D\"딟쬚뮥馲렓쓠攥WTMܭ8nX㩴䕅檹E\u0007ﭨN 2 ℆涐ꥏ꠵3▙玽|됨_\u2048",
+                                                                                                          "恐A C䧩G": {":M큣5e들\\ꍀ恼ᔄ靸|I﨏$)n": {
+                                                                                                           "|U䬫㟯SKV6ꛤ㗮\bn봻䲄fXT:㾯쳤'笓0b/ೢC쳖?2浓uO.䰴": "ཐ꼋e?``,ᚇ慐^8ꜙNM䂱\u0001IᖙꝧM'vKdꌊH牮r\\O@䊷ᓵ쀆(fy聻i툺\"?<\/峧ࣞ⓺ᤤ쵒߯ꎺ騬?)刦\u2072l慪y꺜ﲖTj+u",
+                                                                                                           "뽫<G;稳UL⸙q2n쵿C396炿J蓡z⣁zဩSOU?<\/뙍oE큸O鿅෴ꍈEm#\"[瑦⤫ᝆgl⡗q8\"큘덥係@ᆤ=\u0001爖羝췀㸩b9\\jeqt㟿㮸龾m㳳긄": {
+                                                                                                            "9\"V霟釜{/o0嫲C咀-饷䈍[녩)\r䤴tMW\\龟ϣ^ي㪙忩䞞N湆Y笕)萨ꖤ誥煽:14⫻57U$擒䲐薡Qvↇ櫲현誧?nஷ6": {"l웾䌵.䅋䦝ic碳g[糲Ƿ-ឈᚱ4쑧\u0004C࿼\u0018&쬑?멲<\/fD_檼픃pd쪼n㕊渪V䛉m揈W儅톳뗳䓆7㭽諤T煠Ney?0᪵鈑&": [
+                                                                                                             false,
+                                                                                                             null,
+                                                                                                             {
+                                                                                                              "\r;鼶j᠂꼍RLz~♔9gf?ӡ浐": -1.4843072575250897E-19,
+                                                                                                              "&ꊒ\"ꋟ䝭E诮ﯚO?SW뒁훪mb旙⎕ᗕ⶙|ᷤ5y4甥": "j5|庠t铱?v 횋0\"'rxz䃢杺Ɜ!\u0002",
+                                                                                                              "Q ၩ㟧": {"Hﬔ\u2058䪠틙izZㅛ탟H^ﶲA??R6呠Z솋R.࿶g8": [
+                                                                                                               -8762672252886298799,
+                                                                                                               -1.9486830507000208E17,
+                                                                                                               null,
+                                                                                                               -7157359405410123024,
+                                                                                                               null,
+                                                                                                               null,
+                                                                                                               -995856734219489233,
+                                                                                                               "呧㫹A4!",
+                                                                                                               null,
+                                                                                                               -1.9105609358624648E-19,
+                                                                                                               5888184370445333848,
+                                                                                                               2.25460605078245E-19,
+                                                                                                               2.5302739297121987E18,
+                                                                                                               "뢹sbEf捵2丯?뗾耸(Wd띙SବꭖrtU?筤P똙QpbbKqaE$来V웰3i/lK퉜,8︸e= g螓t竦컼?.寋8鵗",
+                                                                                                               7377742975895263424,
+                                                                                                               2.4218442017790503E-19,
+                                                                                                               {
+                                                                                                                "y꒚ཫ쨘醬킃糟}yTSt䡀⇂뿽4ൢ戰U": [[
+                                                                                                                 3600537227234741875,
+                                                                                                                 4435474101760273035,
+                                                                                                                 -1.42274517007951795E18,
+                                                                                                                 -5567915915496026866,
+                                                                                                                 null,
+                                                                                                                 null,
+                                                                                                                 [
+                                                                                                                  -3204084299154861161,
+                                                                                                                  {
+                                                                                                                   "7梧慸憏.a瘎\u00041U鵮Ck֨d惥耍ⳡY,⭏써E垁FFI鱑ⳬ줢7⧵Bﴠ耘줕햸q컴~*瑍W.떛ࡆ@'᐀+轳": -961121410259132975,
+                                                                                                                   "⥅]l黭㣓绶;!!⎃=朼㐿e&ἂ繤C﯀l䝣㌀6TM쑮w懃ꡡ#ᤆ䰓,墼湼゙뽸㲿䧽쫨xᵖ듨<\/ T0峸iQ:溫脐\\\"쎪ὴ砇宖^M泼큥➅鈫@ᄟ༩\u2008⥼": true,
+                                                                                                                   "⩐\"籽汎P싯鲘蟼sRᐯ䅩\u0019R(kRᖁ&ಌ 0\"鳶!馼YH": null,
+                                                                                                                   "鮼ꚇ싋։刟\rRLd步Nⴗ5Eࡆ訛갚[I醵NC(郴ṉy5D뤺౳QY壯5苴y훨(W\\Cଇ姚C艄깹\u001c歷㋵ZC᥂": [
+                                                                                                                    -6806235313106257498,
+                                                                                                                    null,
+                                                                                                                    "}N⸿讽sꚪ;\\p繇j苄䫨\u20e7%5x?t#",
+                                                                                                                    {
+                                                                                                                     "O〗k<墻yV$ఁrs-c1ఌ唪.C7_Yobᦜ褷'b帰mㄑl⌅": {"qB뗗擄3隂5뺍櫂䱟e촸P/鏩,3掁ꗩ=冉棓㑉|˞F襴뿴,:㞦<퓂⧙礞♗g뚎ᛩ<\/뉽ⶳ⸻A?_x2I㽝勒*I홱鍧粿~曟㤙2绥Ly6+썃uu鿜בf큘|歍ࣖÉ": [
+                                                                                                                      ">hh䈵w>1ⲏ쐭V[ⅎ\\헑벑F_㖝⠗㫇h恽;῝汰ᱼ瀖J옆9RR셏vsZ柺鶶툤r뢱橾/ꉇ囦FGm\"謗ꉦ⨶쒿⥡%]鵩#ᖣ_蹎 u5|祥?O",
+                                                                                                                      null,
+                                                                                                                      2.0150326776036215E-19,
+                                                                                                                      null,
+                                                                                                                      true,
+                                                                                                                      false,
+                                                                                                                      true,
+                                                                                                                      {"\fa᭶P捤WWc᠟f뚉ᬏ퓗ⳀW睹5:HXH=q7x찙X$)모r뚥ᆟ!Jﳸf": [
+                                                                                                                       -2995806398034583407,
+                                                                                                                       [
+                                                                                                                        6441377066589744683,
+                                                                                                                        "Mﶒ醹i)Gἦ廃s6몞 KJ౹礎VZ螺费힀\u0000冺업{谥'꡾뱻:.ꘘ굄奉攼Di᷑K鶲y繈욊阓v㻘}枭캗e矮1c?휐\"4\u0005厑莔뀾墓낝⽴洗ṹ䇃糞@b1\u0016즽Y轹",
+                                                                                                                        {
+                                                                                                                         "1⽕⌰鉟픏M㤭n⧴ỼD#%鐘⊯쿼稁븣몐紧ᅇ㓕ᛖcw嬀~ഌ㖓(0r⧦Q䑕髍ര铂㓻R儮\"@ꇱm❈௿᦯頌8}㿹犴?xn잆꥽R": 2.07321075750427366E18,
+                                                                                                                         "˳b18㗈䃟柵Z曆VTAu7+㛂cb0﯑Wp執<\/臋뭡뚋刼틮荋벲TLP预庰܈G\\O@VD'鱃#乖끺*鑪ꬳ?Mޞdﭹ{␇圯쇜㼞顄︖Y홡g": [{
+                                                                                                                          "0a,FZ": true,
+                                                                                                                          "2z̬蝣ꧦ驸\u0006L↛Ḣ4๚뿀'?lcwᄧ㐮!蓚䃦-|7.飑挴.樵*+1ﮊ\u0010ꛌ%貨啺/JdM:똍!FBe?鰴㨗0O财I藻ʔWA᫓G쳛u`<\/I": [{
+                                                                                                                           "$τ5V鴐a뾆両環iZp頻යn븃v": -4869131188151215571,
+                                                                                                                           "*즢[⦃b礞R◚nΰꕢH=귰燙[yc誘g䆌?ଜ臛": {
+                                                                                                                            "洤湌鲒)⟻\\䥳va}PeAMnN[": "㐳ɪ/(軆lZR,Cp殍ȮN啷\"3B婴?i=r$펽ᤐ쀸",
+                                                                                                                            "阄R4㒿㯔ڀ69ZᲦ2癁핌噗P崜#\\-쭍袛&鐑/$4童V꩑_ZHA澢fZ3": {"x;P{긳:G閉:9?活H": [
+                                                                                                                             "繺漮6?z犞焃슳\">ỏ[Ⳛ䌜녏䂹>聵⼶煜Y桥[泥뚩MvK$4jtロ",
+                                                                                                                             "E#갶霠좭㦻ୗ먵F+䪀o蝒ba쮎4X㣵 h",
+                                                                                                                             -335836610224228782,
+                                                                                                                             null,
+                                                                                                                             null,
+                                                                                                                             [
+                                                                                                                              "r1᫩0>danjY짿bs{",
+                                                                                                                              [
+                                                                                                                               -9.594464059325631E-23,
+                                                                                                                               1.0456894622831624E-20,
+                                                                                                                               null,
+                                                                                                                               5.803973284253454E-20,
+                                                                                                                               -8141787905188892123,
+                                                                                                                               true,
+                                                                                                                               -4735305442504973382,
+                                                                                                                               9.513150514479281E-20,
+                                                                                                                               "7넳$螔忷㶪}䪪l짴\u0007鹁P鰚HF銏ZJﳴ/⍎1ᷓ忉睇ᜋ쓈x뵠m䷐窥Ꮤ^\u0019ᶌ偭#ヂt☆၃pᎍ臶䟱5$䰵&๵分숝]䝈뉍♂坎\u0011<>",
+                                                                                                                               "C蒑貑藁lﰰ}X喇몛;t밿O7/᯹f\u0015kI嘦<ዴ㟮ᗎZ`GWퟩ瑹࡮ᅴB꿊칈??R校s脚",
+                                                                                                                               {
+                                                                                                                                "9珵戬+AU^洘拻ቒy柭床'粙XG鞕᠜繀伪%]hC,$輙?Ut乖Qm떚W8઼}~q⠪rU䤶CQ痗ig@#≲t샌f㈥酧l;y闥ZH斦e⸬]j⸗?ঢ拻퀆滌": null,
+                                                                                                                                "畯}㧢J罚帐VX㨑>1ꢶkT⿄蘥㝑o|<嗸層沈挄GEOM@-䞚䧰$만峬輏䠱V✩5宸-揂D'㗪yP掶7b⠟J㕻SfP?d}v㼂Ꮕ'猘": {
+                                                                                                                                 "陓y잀v>╪": null,
+                                                                                                                                 "鬿L+7:됑Y=焠U;킻䯌잫!韎ஔ\f": {
+                                                                                                                                  "駫WmGጶ": {
+                                                                                                                                   "\\~m6狩K": -2586304199791962143,
+                                                                                                                                   "ႜࠀ%͑l⿅D.瑢Dk%0紪dḨTI픸%뗜☓s榗኉\"?V籄7w髄♲쟗翛歂E䤓皹t ?)ᄟ鬲鐜6C": {
+                                                                                                                                    "_췤a圷1\u000eB-XOy缿請∎$`쳌eZ~杁튻/蜞`塣৙\"⪰\"沒l}蕌\\롃荫氌.望wZ|o!)Hn獝qg}": null,
+                                                                                                                                    "kOSܧ䖨钨:಼鉝ꭝO醧S`십`ꓭ쭁ﯢN&Et㺪馻㍢ⅳ㢺崡ຊ蜚锫\\%ahx켨|ż劻ꎄ㢄쐟A躊᰹p譞綨Ir쿯\u0016ﵚOd럂*僨郀N*b㕷63z": {
+                                                                                                                                     ":L5r+T㡲": [{
+                                                                                                                                      "VK泓돲ᮙRy㓤➙Ⱗ38oi}LJቨ7Ó㹡৘*q)1豢⛃e᫛뙪壥镇枝7G藯g㨛oI䄽 孂L缊ꋕ'EN`": -2148138481412096818,
+                                                                                                                                      "`⛝ᘑ$(खꊲ⤖ᄁꤒ䦦3=)]Y㢌跨NĴ驳줟秠++d孳>8ᎊ떩EꡣSv룃 쯫أ?#E|᭙㎐?zv:5祉^⋑V": [
+                                                                                                                                       -1.4691944435285607E-19,
+                                                                                                                                       3.4128661569395795E17,
+                                                                                                                                       "㐃촗^G9佭龶n募8R厞eEw⺡_ㆱ%⼨D뉄퉠2ꩵᛅⳍ搿L팹Lවn=\"慉념ᛮy>!`g!풲晴[/;?[v겁軇}⤳⤁핏∌T㽲R홓遉㓥",
+                                                                                                                                       "愰_⮹T䓒妒閤둥?0aB@㈧g焻-#~跬x<\/舁P݄ꐡ=\\׳P\u0015jᳪᢁq;㯏l%᭗;砢觨▝,謁ꍰGy?躤O黩퍋Y㒝a擯\n7覌똟_䔡]fJ晋IAS",
+                                                                                                                                       4367930106786121250,
+                                                                                                                                       -4.9421193149720582E17,
+                                                                                                                                       null,
+                                                                                                                                       {
+                                                                                                                                        ";ᄌ똾柉곟ⰺKpፇ䱻ฺ䖝{o~h!eꁿ઻욄ښ\u0002y?xUd\u207c悜ꌭ": [
+                                                                                                                                         1.6010824122815255E-19,
+                                                                                                                                         [
+                                                                                                                                          "宨︩9앉檥pr쇷?WxLb",
+                                                                                                                                          "氇9】J玚\u000f옛呲~ 輠1D嬛,*mW3?n휂糊γ虻*ᴫ꾠?q凐趗Ko↦GT铮",
+                                                                                                                                          "㶢ថmO㍔k'诔栀Z蛟}GZ钹D",
+                                                                                                                                          false,
+                                                                                                                                          -6.366995517736813E-20,
+                                                                                                                                          -4894479530745302899,
+                                                                                                                                          null,
+                                                                                                                                          "V%᫡II璅䅛䓎풹ﱢ/pU9se되뛞x梔~C)䨧䩻蜺(g㘚R?/Ự[忓C뾠ࢤc왈邠买?嫥挤풜隊枕",
+                                                                                                                                          ",v碍喔㌲쟚蔚톬៓ꭶ",
+                                                                                                                                          3.9625444752577524E-19,
+                                                                                                                                          null,
+                                                                                                                                          [
+                                                                                                                                           "kO8란뿒䱕馔b臻⍟隨\"㜮鲣Yq5m퐔<u뷆c譆\u001bN?<",
+                                                                                                                                           [{
+                                                                                                                                            ";涉c蒀ᴧN䘱䤳 ÿꭷ,핉dSTDB>K#ꢘug㼈ᝦ=P^6탲@䧔%$CqSw铜랊0&m⟭<\/a逎ym\u0013vᯗ": true,
+                                                                                                                                            "洫`|XN뤮\u0018詞=紩鴘_sX)㯅鿻Ố싹": 7.168252736947373E-20,
+                                                                                                                                            "ꛊ饤ﴏ袁(逊+~⽫얢鈮艬O힉7D筗S곯w操I斞᠈븘蓷x": [[[[
+                                                                                                                                             -7.3136069426336952E18,
+                                                                                                                                             -2.13572396712722688E18,
+                                                                                                                                             {
+                                                                                                                                              "硢3㇩R:o칢行E<=\u0018ၬYuH!\u00044U%卝炼2>\u001eSi$⓷ꒈ'렢gᙫ番ꯒ㛹럥嶀澈v;葷鄕x蓎\\惩+稘UEᖸﳊ㊈壋N嫿⏾挎,袯苷ኢ\\x|3c": 7540762493381776411,
+                                                                                                                                              "?!*^ᢏ窯?\u0001ڔꙃw虜돳FgJ?&⨫*uo籤:?}ꃹ=ٴ惨瓜Z媊@ત戹㔏똩Ԛ耦Wt轁\\枒^\\ꩵ}}}ꀣD\\]6M_⌫)H豣:36섘㑜": {
+                                                                                                                                               ";홗ᰰU஋㙛`D왔ཿЃS회爁\u001b-㢈`봆?盂㛣듿ᦾ蒽_AD~EEຆ㊋(eNwk=Rɠ峭q\"5Ἠ婾^>'ls\n8QAK<l_⭨穟": [
+                                                                                                                                                true,
+                                                                                                                                                true,
+                                                                                                                                                {"ﳷm箅6qⷈ?ﲈ憟b۷⫉἞V뚴少U呡瓴ꉆs~嘵得㌶4XR漊": [
+                                                                                                                                                 "폆介fM暪$9K[ㄇ샍큳撦g撟恸jҐF㹹aj bHᘀ踉ꎐC粄 a?\u000fK즉郝 幨9D舢槷Xh뵎u훩Ꜿ턾ƅ埂P埆k멀{䢹~?D<\/꼢XR\u001b〱䝽꼨i㘀ḟ㚺A-挸",
+                                                                                                                                                 false,
+                                                                                                                                                 null,
+                                                                                                                                                 -1.1710758021294953E-20,
+                                                                                                                                                 3996737830256461142,
+                                                                                                                                                 true,
+                                                                                                                                                 null,
+                                                                                                                                                 -8271596984134071193,
+                                                                                                                                                 "_1G퉁텑m䮔鰼6멲Nmꇩſt쓟튍N许FDj+3^ﶜ⎸\u0019⤕橥!\"s-뾞lz北׸ꍚ랬)?l⻮고i䑰\u001f䪬",
+                                                                                                                                                 4.459124464204517E-19,
+                                                                                                                                                 -4.0967172848578447E18,
+                                                                                                                                                 5643211135841796287,
+                                                                                                                                                 -9.482336221192844E-19,
+                                                                                                                                                 "౪冏釶9D?s螭X榈枸j2秀v]泌鰚岒聵轀쌶i텽qMbL]R,",
+                                                                                                                                                 null,
+                                                                                                                                                 [
+                                                                                                                                                  null,
+                                                                                                                                                  {"M쪊ꯪ@;\u0011罙ꕅ<e᝺|爑Yⵝ<\/&ᩎ<腊ሑᮔ੃F豭": [
+                                                                                                                                                   "^0࡟1볏P폋ፏ杈F⨥Iꂴ\"z磣VⅡ=8퀝2]䢹h1\u0017{jT<I煛5%D셍S⑙⅏J*샐 巙ດ;᧡䙞",
+                                                                                                                                                   [{
+                                                                                                                                                    "'㶡큾鄧`跊\"gV[?u᭒Ʊ髷%葉굵a띦N켧Qﯳy%y䩟髒L䯜S䵳r絅肾킂ၐ'ꔦg긓a'@혔যW谁ᝬF栩ŷ+7w鞚": 6.3544416675584832E17,
+                                                                                                                                                    "苎脷v改hm쏵|㋊g_ᔐ 뒨蹨峟썎㷸|Ο刢?Gͨ옛-?GꦱIEYUX4?%ꘋᆊ㱺": -2.8418378709165287E-19,
+                                                                                                                                                    "誰?(H]N맘]k洳\"q蒧蘞!R퐫\\(Q$T5N堍⫣윿6|럦속︅ﭗ(": [
+                                                                                                                                                     "峩_\u0003A瘘?✓[硫䎯ၽuጭ\"@Y綅첞m榾=贮9R벿῜Z",
+                                                                                                                                                     null,
+                                                                                                                                                     "䰉㗹㷾Iaᝃqcp쓘὾൫Q|ﵓ<\/ḙ>)- Q䲌mo펹L_칍樖庫9꩝쪹ᘹ䑖瀍aK ?*趤f뭓廝p=磕",
+                                                                                                                                                     "哑z懅ᤏ-ꍹux쀭",
+                                                                                                                                                     [
+                                                                                                                                                      true,
+                                                                                                                                                      3998739591332339511,
+                                                                                                                                                      "ጻ㙙?᳸aK<\/囩U`B3袗ﱱ?\"/k鏔䍧2l@쿎VZ쨎/6ꃭ脥|B?31+on颼-ꮧ,O嫚m ࡭`KH葦:粘i]aSU쓙$쐂f+詛頖b",
+                                                                                                                                                      [{"^<9<箝&絡;%i﫡2攑紴\\켉h쓙-柂䚝ven\u20f7浯-Ꮏ\r^훁䓚헬\u000e?\\ㅡֺJ떷VOt": [{
+                                                                                                                                                       "-௄卶k㘆혐஽y⎱㢬sS઄+^瞥h;ᾷj;抭\u0003밫f<\/5Ⱗ裏_朻%*[-撵䷮彈-芈": {
+                                                                                                                                                        "㩩p3篊G|宮hz䑊o곥j^Co0": [
+                                                                                                                                                         653239109285256503,
+                                                                                                                                                         {"궲?|\":N1ۿ氃NZ#깩:쇡o8킗ࡊ[\"됸Po핇1(6鰏$膓}⽐*)渽J'DN<썙긘毦끲Ys칖": {
+                                                                                                                                                          "2Pr?Xjㆠ?搮/?㓦柖馃5뚣Nᦼ|铢r衴㩖\"甝湗ܝ憍": "\"뾯i띇筝牻$珲/4ka $匝휴译zbAᩁꇸ瑅&뵲衯ꎀᆿ7@ꈋ'ᶨH@ᠴl+",
+                                                                                                                                                          "7뢽뚐v?4^ꊥ_⪛.>pởr渲<\/⢕疻c\"g䇘vU剺dஔ鮥꒚(dv祴X⼹\\a8y5坆": true,
+                                                                                                                                                          "o뼄B욞羁hr﷔폘뒚⿛U5pꪴfg!6\\\"爑쏍䢱W<ﶕ\\텣珇oI/BK뺡'谑♟[Ut븷亮g(\"t⡎有?ꬊ躺翁艩nl F⤿蠜": 1695826030502619742,
+                                                                                                                                                          "ۊ깖>ࡹ햹^ⵕ쌾BnN〳2C䌕tʬ]찠?ݾ2饺蹳ぶꌭ訍\"◹ᬁD鯎4e滨T輀ﵣ੃3\u20f3킙D瘮g\\擦+泙ၧ 鬹ﯨַ肋7놷郟lP冝{ߒhড়r5,꓋": null,
+                                                                                                                                                          "ΉN$y{}2\\N﹯ⱙK'8ɜͣwt,.钟廣䎘ꆚk媄_": null,
+                                                                                                                                                          "䎥eᾆᝦ읉,Jުn岪㥐s搖謽䚔5t㯏㰳㱊ZhD䃭f絕s鋡篟a`Q鬃┦鸳n_靂(E4迠_觅뷝_宪D(NL疶hL追V熑%]v肫=惂!㇫5⬒\u001f喺4랪옑": {
+                                                                                                                                                           "2a輍85먙R㮧㚪Sm}E2yꆣꫨrRym㐱膶ᔨ\\t綾A☰.焄뙗9<쫷챻䒵셴᭛䮜.<\/慌꽒9叻Ok䰊Z㥪幸k": [
+                                                                                                                                                            null,
+                                                                                                                                                            true,
+                                                                                                                                                            {"쌞쐍": {
+                                                                                                                                                             "▟GL K2i뛱iQ\"̠.옛1X$}涺]靎懠ڦ늷?tf灟ݞゟ{": 1.227740268699265E-19,
+                                                                                                                                                             "꒶]퓚%ฬK❅": [{
+                                                                                                                                                              "(ෛ@Ǯっ䧼䵤[aテൖvEnAdU렖뗈@볓yꈪ,mԴ|꟢캁(而첸죕CX4Y믅": "2⯩㳿ꢚ훀~迯?᪑\\啚;4X\u20c2襏B箹)俣eỻw䇄",
+                                                                                                                                                              "75༂f詳䅫ꐧ鏿 }3\u20b5'∓䝱虀f菼Iq鈆﨤g퍩)BFa왢d0뮪痮M鋡nw∵謊;ꝧf美箈ḋ*\u001c`퇚퐋䳫$!V#N㹲抗ⱉ珎(V嵟鬒_b㳅\u0019": null,
+                                                                                                                                                              "e_m@(i㜀3ꦗ䕯䭰Oc+-련0뭦⢹苿蟰ꂏSV䰭勢덥.ྈ爑Vd,ᕥ=퀍)vz뱊ꈊB_6듯\"?{㒲&㵞뵫疝돡믈%Qw限,?\r枮\"? N~癃ruࡗdn&": null,
+                                                                                                                                                              "㉹&'Pfs䑜공j<\/?|8oc᧨L7\\pXᭁ 9᪘": -2.423073789014103E18,
+                                                                                                                                                              "䝄瑄䢸穊f盈᥸,B뾧푗횵B1쟢f\u001f凄": "魖⚝2儉j꼂긾껢嗎0ࢇ纬xI4](੓`蕞;픬\fC\"斒\")2櫷I﹥迧",
+                                                                                                                                                              "ퟯ詔x悝령+T?Bg⥄섅kOeQ큼㻴*{E靼6氿L缋\u001c둌๶-㥂2==-츫I즃㠐Lg踞ꙂEG貨鞠\"\u0014d'.缗gI-lIb䋱ᎂDy缦?": null,
+                                                                                                                                                              "紝M㦁犿w浴詟棓쵫G:䜁?V2ힽ7N*n&㖊Nd-'ຊ?-樹DIv⊜)g䑜9뉂ㄹ푍阉~ꅐ쵃#R^\u000bB䌎䦾]p.䀳": [{"ϒ爛\"ꄱ︗竒G䃓-ま帳あ.j)qgu扐徣ਁZ鼗A9A鸦甈!k蔁喙:3T%&㠘+,䷞|챽v䚞문H<\/醯r셓㶾\\a볜卺zE䝷_죤ဵ뿰᎟CB": [
+                                                                                                                                                               6233512720017661219,
+                                                                                                                                                               null,
+                                                                                                                                                               -1638543730522713294,
+                                                                                                                                                               false,
+                                                                                                                                                               -8901187771615024724,
+                                                                                                                                                               [
+                                                                                                                                                                3891351109509829590,
+                                                                                                                                                                true,
+                                                                                                                                                                false,
+                                                                                                                                                                -1.03836679125188032E18,
+                                                                                                                                                                {
+                                                                                                                                                                 "<?起HCᷭ죎劐莇逰/{gs\u0014⽛㰾愫tᅱ<솞ڢ됌煲膺਻9x닳x࡭Q訽,ᶭඦtt掾\"秧㺌d˪䙻꫗:ᭈh4緞痐䤴c뫚떩త<?ᕢ謚6]폛O鰐鋛镠贩赟\"<G♷1'": true,
+                                                                                                                                                                 "቙ht4ߝBqꦤ+\u0006멲趫灔)椾": -1100102890585798710,
+                                                                                                                                                                 "総兎곇뇸粟F醇;朠?厱楛㶆ⶏ7r⾛o꯬᳡F\\머幖 㜦\f[搦᥽㮣0䕊?J㊳뀄e㔔+?<n↴复": [
+                                                                                                                                                                  "4~ꉍ羁\\偮(泤叕빜\u0014>j랎:g曞ѕᘼ}链N",
+                                                                                                                                                                  -1.1103819473845426E-19,
+                                                                                                                                                                  true,
+                                                                                                                                                                  [
+                                                                                                                                                                   true,
+                                                                                                                                                                   null,
+                                                                                                                                                                   -7.9091791735309888E17,
+                                                                                                                                                                   true,
+                                                                                                                                                                   {"}蔰鋈+ꐨ啵0?g*사%`J?*": [{
+                                                                                                                                                                    "\"2wG?yn,癷BK\\龞䑞x?蠢": -3.7220345009853505E-19,
+                                                                                                                                                                    ";饹়❀)皋`噿焒j(3⿏w>偍5X<np?<줯<Y]捘!J೸UⳂNे7v௸㛃ᄧ톿䨷鯻v焇=烻TQ!F⦰䣣눿K鷚눁'⭲m捠(䚻": [
+                                                                                                                                                                     "蹕 淜੃b\"+몾ⴕ",
+                                                                                                                                                                     null,
+                                                                                                                                                                     35892237756161615,
+                                                                                                                                                                     {
+                                                                                                                                                                      " 듹㏝)5慁箱&$~:遰쮐<\/堋?% \\勽唅z손帋䘺H髀麡M퇖uz\u0012m諦d᳤콌樝\rX싹̡Ო": -433791617729505482,
+                                                                                                                                                                      "-j溗ࢵcz!:}✽5ഇ,욨ݏs#덫=南浺^}E\\Y\\T*뼈cd꺐cۘ뎁䨸됱K䠴㉿恿逳@wf쏢<\/[L[": -9.3228549642908109E17,
+                                                                                                                                                                      "Ms킭u஗%\\u⍎/家欲ἅ答㓽/꯳齳|㭘Pr\"v<\/禇䔆$GA䊻˔-:틊[h?倬荤ᾞ৳.Gw\u000b": [
+                                                                                                                                                                       "0宜塙I@䏴蝉\\Uy뒅=2<h暒K._贡璐Yi檻_⮵uᐝ㘗聠[f\u0015힢Hꔮ}጑;誏yf0\"\u20cc?(=q斠➽5ꎾ鞘kⲃ",
+                                                                                                                                                                       -2.9234211354411E-19,
+                                                                                                                                                                       false,
+                                                                                                                                                                       true,
+                                                                                                                                                                       {
+                                                                                                                                                                        "\u0011⟴GH_;#怵:\u001c\u0002n1U\\p/왔(┫]hꐚ7\r0䵷첗岷O௷?㝎[殇|J=?韷pᶟ儜犆?5კ1kꍖiH竧뛈ପdmk游y(콪팱꾍k慧 y辣": [
+                                                                                                                                                                         false,
+                                                                                                                                                                         "O\"끍p覈ykv磂㢠㝵~뀬튍lC&4솎䇃:Mj",
+                                                                                                                                                                         -7.009964654003924E-20,
+                                                                                                                                                                         false,
+                                                                                                                                                                         -49306078522414046,
+                                                                                                                                                                         null,
+                                                                                                                                                                         null,
+                                                                                                                                                                         2160432477732354319,
+                                                                                                                                                                         true,
+                                                                                                                                                                         "4횡h+!踹ꐬP鮄{0&뱥M?샍鞅n㮞ᨹ?쒆毪l'箅^ꚥ頛`e㻨52柳⮙嫪࡟딯a.~䵮1f吘N&zȭL榓ۃ鳠5d㟆M@㣥ӋA΍q0縶$",
+                                                                                                                                                                         -3.848996532974368E16,
+                                                                                                                                                                         true,
+                                                                                                                                                                         null,
+                                                                                                                                                                         -3.5240055580952525E18,
+                                                                                                                                                                         {
+                                                                                                                                                                          " vﭷၵ#ce乃5僞?Z D`묨粇ᐔ绠vWL譢u뽀\\J|tⓙt№\"ꨋnT凮ᒩ蝂篝b騩:䢭Hbv읻峨z㹚T趗햆귣학津XiY@ᖥK": true,
+                                                                                                                                                                          "!F 醌y䉸W2ꇬ\u0006/䒏7~%9擛햀徉9⛰+?㌘;ꠓX䇻Dfi뼧쒒\u0012F謞՝絺+臕kऍLSQ쌁X쎬幦HZ98蒊枳": "澤令#\u001d抍⛳@N搕퀂[5,✄ꘇ~䘷?\u0011Xꈺ[硸⠘⛯X醪聡x\u0007쌇MiX/|ミ뚁K8䁡W)銀q僞綂蔕E",
+                                                                                                                                                                          "6␲䣖R৞@ငg?<\/೴x陙Xꈺ崸⠅ᇾ\\0X,H쟴셭A稂ힿゝF\\쑞\u0012懦(Aᯕ灭~\u0001껮X?逊": 5.7566819207732864E17,
+                                                                                                                                                                          "[c?椓": false,
+                                                                                                                                                                          "k䒇": 2583824107104166717,
+                                                                                                                                                                          "꙯N훙㏅ﮒ燣㨊瞯咽jMxby뻭뵫װ[\"1畈?ৱL": "띣ᔂ魠羓犴ꚃ+|rY",
+                                                                                                                                                                          "녺Z?䬝鉉:?ⳙ瘏Cኯ.Vs[釿䨉쐧\\\\*쵢猒$\\y溔^,㑳": {"藶꺟": [{
+                                                                                                                                                                           "\"d훣N2zq]?'檿죸忷篇ﮟ擤m'9!죶≓p뭻\\ᇷ\f퇶_䰸h๐Q嵃訾㘑従ꯦ䞶jL틊r澵Omᾫ!H䱤팼/;|᭺I7슎YhuXi⚼": -1.352716906472438E-19,
+                                                                                                                                                                           "M⽇倻5J䂫औ᝔楸#J[Fﹱ쫮W誻bWz?}1\"9硪뻶fe": "盬:Ѹ砿획땣T凊(m灦呜ﻝR㿎艴䂵h",
+                                                                                                                                                                           "R띾k힪CH钙_i苮ⰵoᾨ紑퉎7h؉\"柀蝽z0့\"<?嘭$蜝?礲7岇槀묡?V钿T⣜v+솒灚ԛ2米mH?>薙婏聿3aFÆÝ": "2,ꓴg?_섦_>Y쪥션钺;=趘F~?D㨫\bX?㹤+>/믟kᠪ멅쬂Uzỵ]$珧`m雁瑊ඖ鯬cꙉ梢f묛bB",
+                                                                                                                                                                           "♽n$YjKiXX*GO贩鏃豮祴遞K醞眡}ꗨv嵎꼷0୸+M菋eH徸J꣆:⼐悥B켽迚㯃b諂\u000bjꠜ碱逮m8": [
+                                                                                                                                                                            "푷᣺ﻯd8ﱖ嬇ភH鹎⡱᱅0g:果6$GQ췎{vᷧYy-脕x偹砡館⮸C蓼ꏚ=軄H犠G谖ES詤Z蠂3l봟hᅭ7䦹1GPQG癸숟~[#駥8zQ뛣J소obg,",
+                                                                                                                                                                            null,
+                                                                                                                                                                            1513751096373485652,
+                                                                                                                                                                            null,
+                                                                                                                                                                            -6.851466660824754E-19,
+                                                                                                                                                                            {"䩂-⴮2ٰK솖풄꾚ႻP앳1H鷛wmR䗂皎칄?醜<\/&ࠧ㬍X濬䵈K`vJ륒Q/IC묛!;$vϑ": {
+                                                                                                                                                                             "@-ꚗxྐྵ@m瘬\u0010U絨ﮌ驐\\켑寛넆T=tQ㭤L연@脸삯e-:⩼u㎳VQ㋱襗ຓ<Ⅶ䌸cML3+\u001e_C)r\\9+Jn\\Pﺔ8蠱檾萅Pq鐳话T䄐I": -1.80683891195530061E18,
+                                                                                                                                                                             "ᷭዻU~ཷsgSJ`᪅'%㖔n5픆桪砳峣3獮枾䌷⊰呀": {
+                                                                                                                                                                              "Ş੉䓰邟自~X耤pl7间懑徛s첦5ਕXexh⬖鎥᐀nNr(J컗|ૃF\"Q겮葲놔엞^겄+㈆话〾희紐G'E?飕1f❼텬悚泬먐U睬훶Qs": false,
+                                                                                                                                                                              "(\u20dag8큽튣>^Y{뤋.袊䂓;_g]S\u202a꽬L;^'#땏bႌ?C緡<䝲䲝断ꏏ6\u001asD7IK5Wxo8\u0006p弊⼂ꯍ扵\u0003`뵂픋%ꄰ⫙됶l囏尛+䗅E쟇\\": [
+                                                                                                                                                                               true,
+                                                                                                                                                                               {
+                                                                                                                                                                                "\n鱿aK㝡␒㼙2촹f;`쾏qIࡔG}㝷䐍瓰w늮*粅9뒪ㄊCj倡翑閳R渚MiUO~仨䜶RꙀA僈㉋⦋n{㖥0딿벑逦⥻0h薓쯴Ꝼ": [
+                                                                                                                                                                                 5188716534221998369,
+                                                                                                                                                                                 2579413015347802508,
+                                                                                                                                                                                 9.010794400256652E-21,
+                                                                                                                                                                                 -6.5327297761238093E17,
+                                                                                                                                                                                 1.11635352494065523E18,
+                                                                                                                                                                                 -6656281618760253655,
+                                                                                                                                                                                 {
+                                                                                                                                                                                  "": ")?",
+                                                                                                                                                                                  "TWKLꑙ裑꺔UE俸塑炌Ũ᜕-o\"徚#": {"M/癟6!oI51ni퐚=댡>xꍨ\u0004 ?": {
+                                                                                                                                                                                   "皭": {"⢫䋖>u%w잼<䕏꘍P䋵$魋拝U䮎緧皇Y훂&|羋ꋕ잿cJ䨈跓齳5\u001a삱籷I꿾뤔S8㌷繖_Yឯ䲱B턼O歵F\\l醴o_欬6籏=D": [
+                                                                                                                                                                                    false,
+                                                                                                                                                                                    true,
+                                                                                                                                                                                    {"Mt|ꏞD|F궣MQ뵕T,띺k+?㍵i": [
+                                                                                                                                                                                     7828094884540988137,
+                                                                                                                                                                                     false,
+                                                                                                                                                                                     {
+                                                                                                                                                                                      "!༦鯠,&aﳑ>[euJꏽ綷搐B.h": -7648546591767075632,
+                                                                                                                                                                                      "-n켧嘰{7挐毄Y,>❏螵煫乌pv醑Q嶚!|⌝責0왾덢ꏅ蛨S\\)竰'舓Q}A釡5#v": 3344849660672723988,
+                                                                                                                                                                                      "8閪麁V=鈢1녈幬6棉⪮둌\u207d᚛驉ꛃ'r䆉惏ै|bἧﺢᒙ<=穊强s혧eꮿ慩⌡ \\槳W븧J檀C,ᘉ의0俯퀉M;筷ࣴ瓿{늊埂鄧_4揸Nn阼Jੵ˥(社": true,
+                                                                                                                                                                                      "o뼀vw)4A뢵(a䵢)p姃뛸\u000fK#KiQp\u0005ꅍ芅쏅": null,
+                                                                                                                                                                                      "砥$ꥸ┇耽u斮Gc{z빔깎밇\\숰\u001e괷各㶇쵿_ᴄ+h穢p촀Ნ䃬z䝁酳ӂ31xꔄ1_砚W렘G#2葊P ": [
+                                                                                                                                                                                       -3709692921720865059,
+                                                                                                                                                                                       null,
+                                                                                                                                                                                       [
+                                                                                                                                                                                        6669892810652602379,
+                                                                                                                                                                                        -135535375466621127,
+                                                                                                                                                                                        "뎴iO}Z? 馢녱稹ᄾ䐩rSt帤넆&7i騏멗畖9誧鄜'w{Ͻ^2窭외b㑎粖i矪ꦨ탪跣)KEㆹ\u0015V8[W?⽉>'kc$䨘ᮛ뉻٬M5",
+                                                                                                                                                                                        1.10439588726055846E18,
+                                                                                                                                                                                        false,
+                                                                                                                                                                                        -4349729830749729097,
+                                                                                                                                                                                        null,
+                                                                                                                                                                                        [
+                                                                                                                                                                                         false,
+                                                                                                                                                                                         "_蠢㠝^䟪/D녒㡋ỎC䒈판\u0006એq@O펢%;鹐쏌o戥~A[ꡉ濽ỳ&虃᩾荣唙藍茨Ig楡꒻M窓冉?",
+                                                                                                                                                                                         true,
+                                                                                                                                                                                         2.17220752996421728E17,
+                                                                                                                                                                                         -5079714907315156164,
+                                                                                                                                                                                         -9.960375974658589E-20,
+                                                                                                                                                                                         "ᾎ戞༒",
+                                                                                                                                                                                         true,
+                                                                                                                                                                                         false,
+                                                                                                                                                                                         [[
+                                                                                                                                                                                          "ⶉᖌX⧕홇)g엃⹪x뚐癟\u0002",
+                                                                                                                                                                                          -5185853871623955469,
+                                                                                                                                                                                          {
+                                                                                                                                                                                           "L㜤9ợㇶK鐰⋓V뽋˖!斫as|9"፬䆪?7胜&n薑~": -2.11545634977136992E17,
+                                                                                                                                                                                           "O8뀩D}캖q萂6༣㏗䈓煮吽ਆᎼDᣘ폛;": false,
+                                                                                                                                                                                           "YTᡅ^L㗎cbY$pᣞ縿#fh!ꘂb삵玊颟샞ဢ$䁗鼒몁~rkH^:닮먖츸륈⪺쒉砉?㙓扫㆕꣒`R䢱B酂?C뇞<5Iޚ讳騕S瞦z": null,
+                                                                                                                                                                                           "\\RB?`mG댵鉡幐物䵎有5*e骄T㌓ᛪ琾駒Ku\u001a[柆jUq8⋈5鿋츿myﻗ?雍ux঴?": 5828963951918205428,
+                                                                                                                                                                                           "n0晅:黯 xu씪^퓞cB㎊ᬍ⺘٤փ~B岚3㥕擄vᲂ~F?C䶖@$m~忔S왖㲚?챴⊟W#벌{'㰝I䝠縁s樘\\X뢻9핡I6菍ㄛ8쯶]wॽ0L\"q": null,
+                                                                                                                                                                                           "x增줖j⦦t䏢᎙㛿Yf鼘~꫓恄4惊\u209c": "oOhbᤃ᛽z&Bi犑\\3B㩬劇䄑oŁ쨅孥멁ຖacA㖫借㞝vg싰샂㐜#譞⢤@k]鋰嘘䜾L熶塥_<\/⍾屈ﮊ_mY菹t뙺}Ox=w鮮4S1ꐩמּ'巑",
+                                                                                                                                                                                           "㗓蟵ꂾe蠅匳(JP䗏෸\u0089耀왲": [{
+                                                                                                                                                                                            "ᤃ㵥韎뤽\r?挥O쯡⇔㞚3伖\u0005P⋪\"D궣QLn(⚘罩䩢Ŏv䤘尗뼤됛O淽鋋闚r崩a{4箙{煷m6〈": {
+                                                                                                                                                                                             "l곺1L": {
+                                                                                                                                                                                              "T'ਤ?砅|੬Km]䄩\"(࿶<\/6U爢䫈倔郴l2㴱^줣k'L浖L鰄Rp今鎗⒗C얨M훁㡧ΘX粜뫈N꤇輊㌻켑#㮮샶-䍗룲蠝癜㱐V>=\\I尬癤t=": 7648082845323511446,
+                                                                                                                                                                                              "鋞EP:<\/_`ၧe混ㇹBd⯢㮂驋\\q碽饩跓྿ᴜ+j箿렏㗑yK毢宸p謹h䦹乕U媣\\炤": [[
+                                                                                                                                                                                               "3",
+                                                                                                                                                                                               [
+                                                                                                                                                                                                true,
+                                                                                                                                                                                                3.4058271399411134E-20,
+                                                                                                                                                                                                true,
+                                                                                                                                                                                                "揀+憱f逮@먻BpW曉\u001a㣐⎊$n劈D枤㡞좾\u001aᛁ苔౩闝1B䷒Ṋ݋➐ꀞꐃ磍$t੤_:蘺⮼(#N",
+                                                                                                                                                                                                697483894874368636,
+                                                                                                                                                                                                [
+                                                                                                                                                                                                 "vᘯ锴)0訶}䳅⩚0O壱韈ߜ\u0018*U鍾䏖=䧉뽑单휻ID쿇嘗?ꌸῬ07",
+                                                                                                                                                                                                 -5.4858784319382006E18,
+                                                                                                                                                                                                 7.5467775182251151E18,
+                                                                                                                                                                                                 -8911128589670029195,
+                                                                                                                                                                                                 -7531052386005780140,
+                                                                                                                                                                                                 null,
+                                                                                                                                                                                                 [
+                                                                                                                                                                                                  null,
+                                                                                                                                                                                                  true,
+                                                                                                                                                                                                  [[{
+                                                                                                                                                                                                   "1欯twG<u䝮␽ꇣ_ჟﱴଶ-쪋\"?홺k:莝Ꜫ*⺵꽹댅釔좵}P?=9렿46b\u001c\\S?(筈僦⇶爷谰1ྷa": true,
+                                                                                                                                                                                                   "TҫJYxڪ\\鰔℮혡)m_WVi眪1[71><\/Q:0怯押殃탷聫사<ỗꕧ蚨䡁nDꌕ\u001c녬~蓩<N蹑\"{䫥lKc혁뫖앺:vⵑ": "g槵?",
+                                                                                                                                                                                                   "aꨩ뻃싥렌1`롗}Yg>鲃g儊>ꏡl㻿/⑷*챳6㻜W毤緛ﹺᨪ4\u0013뺚J髬e3쳸䘦伧?恪&{L掾p+꬜M䏊d娘6": {
+                                                                                                                                                                                                    "2p첼양棜h䜢﮶aQ*c扦v︥뮓kC寵횂S銩&ǝ{O*य़iH`U큅ࡓr䩕5ꄸ?`\\᧫?ᮼ?t〟崾훈k薐ì/iy꤃뵰z1<\/AQ#뿩8jJ1z@u䕥": 1.82135747285215155E18,
+                                                                                                                                                                                                    "ZdN &=d년ᅆ'쑏ⅉ:烋5&៏ᄂ汎来L㯄固{钧u\\㊏튚e摑&t嗄ꖄUb❌?m䴘熚9EW": [{
+                                                                                                                                                                                                     "ଛ{i*a(": -8.0314147546006822E17,
+                                                                                                                                                                                                     "⫾ꃆY\u000e+W`௸ \"M뒶+\\뷐lKE}(NT킶Yj選篒쁶'jNQ硾(똡\\\"逌ⴍy? IRꜘ὞鄬﨧:M\\f⠋Cꚜ쫊ᚴNV^D䕗ㅖἔIao꿬C⍏8": [
+                                                                                                                                                                                                      287156137829026547,
+                                                                                                                                                                                                      {
+                                                                                                                                                                                                       "H丞N逕<rO䎗:텕<\/䶩샌Sd%^ᵯ눐엑者g䖩똭蕮1U驣?Pⰰ\u001fp(W]67\u0015﫣6굺OR羸#촐F蒈;嘙i✵@_撶y㤏⤍(:᧗뼢༌朆@⏰㤨ꭲ?-n>⯲": {"": {
+                                                                                                                                                                                                        "7-;枮阕梒9ᑄZ": [[[[
+                                                                                                                                                                                                         null,
+                                                                                                                                                                                                         {
+                                                                                                                                                                                                          "": [[[[
+                                                                                                                                                                                                           -7.365909561486078E-19,
+                                                                                                                                                                                                           2948694324944243408,
+                                                                                                                                                                                                           null,
+                                                                                                                                                                                                           [
+                                                                                                                                                                                                            true,
+                                                                                                                                                                                                            "荒\"并孷䂡쵼9o䀘F\u0002龬7⮹Wz%厖/*? a*R枈㌦됾g뒠䤈q딄㺿$쮸tᶎ릑弣^鏎<\/Y鷇驜L鿽<\/춋9Mᲆឨ^<\/庲3'l낢",
+                                                                                                                                                                                                            "c鮦\u001b두\\~?眾ಢu݆綑෪蘛轋◜gȃ<\/ⴃcpkDt誩܅\"Y",
+                                                                                                                                                                                                            [[
+                                                                                                                                                                                                             null,
+                                                                                                                                                                                                             null,
+                                                                                                                                                                                                             [
+                                                                                                                                                                                                              3113744396744005402,
+                                                                                                                                                                                                              true,
+                                                                                                                                                                                                              "v(y",
+                                                                                                                                                                                                              {
+                                                                                                                                                                                                               "AQ幆h쾜O+꺷铀ꛉ練A蚗⼺螔j㌍3꽂楎䥯뎸먩?": null,
+                                                                                                                                                                                                               "蠗渗iz鱖w]擪E": 1.2927828494783804E-17,
+                                                                                                                                                                                                               "튷|䀭n*曎b✿~杤U]Gz鄭kW|㴚#㟗ഠ8u擨": [[
+                                                                                                                                                                                                                true,
+                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                {"⾪壯톽g7?㥜ώQꑐ㦀恃㧽伓\\*᧰閖樧뢇赸N휶䎈pI氇镊maᬠ탷#X?A+kНM ༑᩟؝?5꧎鰜ṚY즫궔 =ঈ;ﳈ?*s|켦蜌wM笙莔": [
+                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                 -3808207793125626469,
+                                                                                                                                                                                                                 [
+                                                                                                                                                                                                                  -469910450345251234,
+                                                                                                                                                                                                                  7852761921290328872,
+                                                                                                                                                                                                                  -2.7979740127017492E18,
+                                                                                                                                                                                                                  1.4458504352519893E-20,
+                                                                                                                                                                                                                  true,
+                                                                                                                                                                                                                  "㽙깹?먏䆢:䴎ۻg殠JBTU⇞}ꄹꗣi#I뵣鉍r혯~脀쏃#釯:场:䔁>䰮o'㼽HZ擓௧nd",
+                                                                                                                                                                                                                  [
+                                                                                                                                                                                                                   974441101787238751,
+                                                                                                                                                                                                                   null,
+                                                                                                                                                                                                                   -2.1647718292441327E-19,
+                                                                                                                                                                                                                   1.03602824249831488E18,
+                                                                                                                                                                                                                   [
+                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                    1.0311977941822604E-17,
+                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                    true,
+                                                                                                                                                                                                                    {
+                                                                                                                                                                                                                     "": -3.7019778830816707E18,
+                                                                                                                                                                                                                     "E峾恆茍6xLIm縂0n2视֯J-ᤜz+ᨣ跐mYD豍繹⹺䊓몓ﴀE(@詮(!Y膽#᎙2䟓섣A䈀㟎,囪QbK插wcG湎ꤧtG엝x⥏俎j'A一ᯥ뛙6ㅑ鬀": 8999803005418087004,
+                                                                                                                                                                                                                     "よ殳\\zD⧅%Y泥簳Uꈩ*wRL{3#3FYHା[d岀䉯T稉駅䞘礄P:闈W怏ElB㤍喬赔bG䠼U଄Nw鰯闀楈ePsDꥷ꭬⊊": [
+                                                                                                                                                                                                                      6.77723657904486E-20,
+                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                      [
+                                                                                                                                                                                                                       "ཚ_뷎꾑蹝q'㾱ꂓ钚蘞慵렜떆`ⴹ⎼櫯]J?[t9Ⓢ !컶躔I᮸uz>3a㠕i,錃L$氰텰@7녫W㸮?羧W뇧ꃞ,N鋮숪2ɼ콏┍䁲6",
+                                                                                                                                                                                                                       "&y?뢶=킕올Za惻HZk>c\u20b58i?ꦶcfBv잉ET9j䡡",
+                                                                                                                                                                                                                       "im珊Ճb칧<D-諂*u2ꡜ췛~䬢(텸ﵦ>校\\뼾쯀",
+                                                                                                                                                                                                                       9.555715121193197E-20,
+                                                                                                                                                                                                                       true,
+                                                                                                                                                                                                                       {
+                                                                                                                                                                                                                        "<㫚v6腓㨭e1㕔&&V∌ᗈT奄5Lጥ>탤?튣瑦㳆ꉰ!(ᙪ㿬擇_n쌯IMΉ㕨␰櫈ᱷ5풔蟹&L.첽e鰷쯃劼﫭b#ﭶ퓀7뷄Wr㢈๧Tʴશ㶑澕鍍%": -1810142373373748101,
+                                                                                                                                                                                                                        "fg晌o?߲ꗄ;>C>?=鑰監侯Kt굅": true,
+                                                                                                                                                                                                                        "䫡蓺ꑷ]C蒹㦘\"1ః@呫\u0014NL䏾eg呮፳,r$裢k>/\\<z": [[
+                                                                                                                                                                                                                         null,
+                                                                                                                                                                                                                         "C䡏>?ㄤᇰﻛ쉕1஥'Ċ\" \\_?쨔\"ʾr: 9S䘏禺ᪧꄂ㲄",
+                                                                                                                                                                                                                         [[{
+                                                                                                                                                                                                                          "*硙^+E쌺I1䀖ju?:⦈Ꞓl๴竣迃xKC/饉:\fl\"XTFᄄ蟭,芢<\/骡軺띜hꏘ\u001f銿<棔햳▨(궆*=乥b8\\媦䷀뫝}닶ꇭ(Kej䤑M": [{
+                                                                                                                                                                                                                           "1Ꮼ?>옿I╅C<ގ?ꊌ冉SV5A㢊㶆z-๎玶绢2F뵨@㉌뀌o嶔f9-庒茪珓뷳4": null,
+                                                                                                                                                                                                                           ";lᰳ": "CbB+肻a䄷苝*/볳+/4fq=㰁h6瘉샴4铢Y骐.⌖@哼猎㦞+'gꋸ㒕ߤ㞑(䶒跲ti⑴a硂#No볔",
+                                                                                                                                                                                                                           "t?/jE幸YHT셵⩎K!Eq糦ꗣv刴w\"l$ο:=6:移": {
+                                                                                                                                                                                                                            "z]鑪醊嫗J-Xm銌翁絨c里됏炙Ep㣋鏣똼嚌䀓GP﹖cmf4鹭T䅿꣭姧␸wy6ꦶ;S&(}ᎧKxᾂQ|t뻳k\"d6\"|Ml췆hwLt꼼4$&8Պ褵婶鯀9": {"嵃닢ᒯ'd᧫䳳#NXe3-붋鸿ଢ떓%dK\u0013䲎ꖍYV.裸R⍉rR3蟛\\:젯:南ĺLʆ넕>|텩鴷矔ꋅⒹ{t孶㓑4_": [
+                                                                                                                                                                                                                             true,
+                                                                                                                                                                                                                             null,
+                                                                                                                                                                                                                             [
+                                                                                                                                                                                                                              false,
+                                                                                                                                                                                                                              "l怨콈lᏒ",
+                                                                                                                                                                                                                              {
+                                                                                                                                                                                                                               "0w䲏嬧-:`䉅쉇漧\\܂yㄨb%㽄j7ᦶ涶<": 3.7899452730383747E-19,
+                                                                                                                                                                                                                               "ꯛTẀq纤q嶏V⿣?\"g}ი艹(쥯B T騠I=仵및X": {"KX6颠+&ᅃ^f畒y[": {
+                                                                                                                                                                                                                                "H?뱜^?꤂-⦲1a㋞&ꍃ精Ii᤾챪咽쬘唂쫷<땡劈훫놡o㥂\\ KⴙD秼F氮[{'좴:례晰Iq+I쭥_T綺砸GO煝䟪ᚪ`↹l羉q쐼D꽁ᜅ훦: vUV": true,
+                                                                                                                                                                                                                                "u^yﳍ0㱓#[y뜌앸ꊬL㷩?蕶蘾⻍KӼ": -7931695755102841701,
+                                                                                                                                                                                                                                "䤬轉車>\u001c鴵惋\"$쯃྆⇻n뽀G氠S坪]ಲꨍ捇Qxኻ椕駔\\9ࣼ﫻읜磡煮뺪ᶚ볝l㕆t+sζ": [[[
+                                                                                                                                                                                                                                 true,
+                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                 [
+                                                                                                                                                                                                                                  null,
+                                                                                                                                                                                                                                  3363739578828074923,
+                                                                                                                                                                                                                                  true,
+                                                                                                                                                                                                                                  {
+                                                                                                                                                                                                                                   "\"鸣詩 볰㑵gL㯦῅춝旫}ED辗ﮈI쀤-ꧤ|㠦Z\"娑ᕸ4爏騍㣐\"]쳝Af]茛⬻싦o蚁k䢯䩐菽3廇喑ޅ": 4.5017999150704666E17,
+                                                                                                                                                                                                                                   "TYႇ7ʠ值4챳唤~Zo&ݛ": false,
+                                                                                                                                                                                                                                   "`塄J袛㭆끺㳀N㺣`꽐嶥KﯝSVᶔ∲퀠獾N딂X\"ᤏhNﬨvI": {"\u20bb㭘I䖵䰼?sw䂷쇪](泒f\"~;꼪Fԝsᝦ": {"p,'ꉂ軿=A蚶?bƉ㏵䅰諬'LYKL6B깯⋩겦뎙(ᜭ\u0006噣d꾆㗼Z;䄝䚔cd<情@䞂3苼㸲U{)<6&ꩻ钛\u001au〷N숨囖愙j=BXW욕^x芜堏Ῑ爂뛷꒻t✘Q\b": [[
+                                                                                                                                                                                                                                    "籛&ଃ䩹.ꃩ㦔\\C颫#暪&!勹ꇶ놽攺J堬镙~軌C'꾖䣹㮅岃ᙴ鵣",
+                                                                                                                                                                                                                                    4.317829988264744E15,
+                                                                                                                                                                                                                                    6.013585322002147E-20,
+                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                    true,
+                                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                                    -3.084633632357326E-20,
+                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                                    {
+                                                                                                                                                                                                                                     "\"짫愔昻  X\"藣j\"\"먁ཅѻ㘤㬯0晲DU꟒㸃d벀윒l䦾c੻*3": null,
+                                                                                                                                                                                                                                     "谈Wm陧阦咟ฯ歖擓N喴㋐銭rCCnVࢥ^♼Ⅾ젲씗刊S༝+_t赔\\b䚍뉨ꬫ6펛cL䊘᜼<\/澤pF懽&H": [
+                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                       "W\"HDUuΌ퀟M'P4࿰H똆ⰱﮯ<\/凐蘲\"C鴫ﭒж}ꭩ쥾t5yd诪ﮡ퍉ⴰ@?氐醳rj4I6Qt": 6.9090159359219891E17,
+                                                                                                                                                                                                                                       "絛ﳛ⺂": {"諰P㗮聦`ZQ?ꫦh*റcb⧱}埌茥h{棩렛툽o3钛5鮁l7Q榛6_g)ὄ\u0013kj뤬^爖eO4Ⱈ槞鉨ͺ订%qX0T썗嫷$?\\\"봅늆'%": [
+                                                                                                                                                                                                                                        -2.348150870600346E-19,
+                                                                                                                                                                                                                                        [[
+                                                                                                                                                                                                                                         true,
+                                                                                                                                                                                                                                         -6619392047819511778,
+                                                                                                                                                                                                                                         false,
+                                                                                                                                                                                                                                         [[
+                                                                                                                                                                                                                                          -1.2929189982356161E-20,
+                                                                                                                                                                                                                                          1.7417192219309838E-19,
+                                                                                                                                                                                                                                          {"?嵲2࿐2\u0001啑㷳c縯": [
+                                                                                                                                                                                                                                           null,
+                                                                                                                                                                                                                                           [
+                                                                                                                                                                                                                                            false,
+                                                                                                                                                                                                                                            true,
+                                                                                                                                                                                                                                            2578060295690793218,
+                                                                                                                                                                                                                                            {
+                                                                                                                                                                                                                                             "?\"殃呎#㑑F": true,
+                                                                                                                                                                                                                                             "}F炊_殛oU헢兔Ꝉ,赭9703.B数gTz3⏬": {
+                                                                                                                                                                                                                                              "5&t3,햓Mݸᵣ㴵;꣫䩍↳#@뫷䠅+W-ࣇzᓃ鿕ಔ梭?T䮑ꥬ旴]u뫵막bB讍:왳둛lEh=숾鱠p咐$짏#?g⹷ᗊv㷵.斈u頻\u0018-G.": "뽙m-ouࣤ஫牷\"`Ksꕞ筼3HlȨvC堈\"I]㖡玎r먞#'W賜鴇k'c룼髋䆿飉㗆xg巤9;芔cጐ/ax䊨♢큓r吓㸫೼䢗da᩾\"]屣`",
+                                                                                                                                                                                                                                              ":M딪<䢥喠\u0013㖅x9蕐㑂XO]f*Q呰瞊吭VP@9,㨣 D\\穎vˤƩs㜂-曱唅L걬/롬j㈹EB8g<\/섩o渀\"u0y&룣": ">氍緩L/䕑돯Ꟙ蕞^aB뒣+0jK⪄瑨痜LXK^힦1qK{淚t츔X:Vm{2r獁B뾄H첚7氥?쉟䨗ꠂv팳圎踁齀\\",
+                                                                                                                                                                                                                                              "D彤5㢷Gꪻ[lㄆ@὜⓰絳[ଃ獽쮹☒[*0ꑚ㜳": 9022717159376231865,
+                                                                                                                                                                                                                                              "ҖaV銣tW+$魿\u20c3亜~뫡ᙰ禿쨽㏡fṼzE/h": "5臐㋇Ჯ쮺? 昨탰Wム밎#'\"崲钅U?幫뺀⍾@4kh>騧\\0ҾEV=爐͌U捀%ꉼ 㮋<{j]{R>:gԩL\u001c瀈锌ﯲﳡꚒ'⫿E4暍㌗뵉X\"H᝜",
+                                                                                                                                                                                                                                              "ᱚגּ;s醒}犍SἿ㦣&{T$jkB\\\tḮ앾䤹o<避(tW": "vb⯽䴪䮢@|)",
+                                                                                                                                                                                                                                              "⥒퐁껉%惀뗌+녣迺顀q條g⚯i⤭룐M琹j̈́⽜A": -8385214638503106917,
+                                                                                                                                                                                                                                              "逨ꊶZ<\/W⫟솪㎮ᘇb?ꠔi\"H㧺x෷韒Xꫨฟ|]窽\u001a熑}Agn?Mᶖa<rఄ4Ů䢤슲Axģe곖㴤x竾郍B謉鸵k薽M)\"芣眜`菉ꉛ䴺": "鹏^ె캫?3耲]|Ü1䡒㝮]8e?䶍^",
+                                                                                                                                                                                                                                              "뿸樅#P㡊1M룮Uꪭ绢ꑮZ9꽸": {"\nJ^є|3袄ㅐ7⨆銦y睝⋷仴ct?[,<\/ㅬ`?갔髞%揁A೚C": {
+                                                                                                                                                                                                                                               " 䇞3갫䅪": [{
+                                                                                                                                                                                                                                                "0|⩁㑂砕ㅻ": null,
+                                                                                                                                                                                                                                                "D箳᠉`|=⼭)\"*࣊㦏LjO誋": "",
+                                                                                                                                                                                                                                                "ࠚDZmꗥ}ᷴ╈r7헴ȥ4Kp5a)o}鎘门L搰䆓'✎k俎c#T68ӏ⩶6L鎴<r൦$黊BQY㼳\\跿F慮⡨拵贀!甶V喅/": null,
+                                                                                                                                                                                                                                                "ⵣq⳹ﻨLk]晩1*y\\$%}䖶P煑㇆䈦E嫁櫕Y࣓嫨䓏OL낮梚㸇洛洚BYtgl∛S☕䉓宑⋢粚ꔯ꠼붠": ")ꬑ윤`\"Ⱓ<\/婽*Y䔸ᓰ_ﳍt슲坩隥&S糧䛮闵诌豐sh쯽邴*섴؏͎=㯨\"RVힳ,^t\"ac?䤒ꉀxHa=Uꛕ㐙TkF껾",
+                                                                                                                                                                                                                                                "弾cUAF?暤c덽.欀nK앭]r傊䀓ﯳ馽垃[䥛oI0N砊鈥헅Co쟋钄ㅷ㊌뷚7": [
+                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                 "૓鏨?^䆏{\u0006`X䧵儱&롡尙砡\u0006뻝쑬sj▻XfᬶgcㄢV >9韲4$3Ỵ^=쏍煤ፐ돷2䣃%鷠/eQ9頸쥎",
+                                                                                                                                                                                                                                                 2398360204813891033,
+                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                 3.2658897259932633E-19,
+                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                 "?ꚃ8Nn㞷幵d䲳䱲뀙ꪛQ瑓鎴]䩋-鰾捡䳡??掊",
+                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                 -1309779089385483661,
+                                                                                                                                                                                                                                                 "ᦲxu_/yecR.6芏.ᜇ過 ~",
+                                                                                                                                                                                                                                                 -5658779764160586501,
+                                                                                                                                                                                                                                                 "쒌:曠=l썜䢜wk#s蕚\"互㮉m䉤~0듐䋙#G;h숄옥顇෤勹(C7㢅雚㐯L⠅VV簅<",
+                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                 -4.664877097240962E18,
+                                                                                                                                                                                                                                                 -4.1931322262828017E18,
+                                                                                                                                                                                                                                                 {
+                                                                                                                                                                                                                                                  ",": {
+                                                                                                                                                                                                                                                   "v㮟麑䄠뤵g{M띮.\u001bzt뢜뵡0Ǥ龍떟Ᾰ怷ϓRT@Lꀌ樂U㏠⾕e扉|bJg(뵒㠶唺~ꂿ(땉x⻫싉쁊;%0鎻V(o\f,N鏊%nk郼螺": -1.73631993428376141E18,
+                                                                                                                                                                                                                                                   "쟧摑繮Q@Rᕾ㭚㾣4隅待㓎3蒟": [
+                                                                                                                                                                                                                                                    4971487283312058201,
+                                                                                                                                                                                                                                                    8973067552274458613,
+                                                                                                                                                                                                                                                    {
+                                                                                                                                                                                                                                                     "`a揙ᣗ\u0015i<S幼訃锭B0&槩✨[Wp皩[g≊k葾x2ᡆ橲䲢W": true,
+                                                                                                                                                                                                                                                     "kH皈Sꁱq傑u?솹풑~o^F=劣N*reJ沤wW苯7p㼹䎐a=ꮧL㷩냴nWꌑ㞱uu谁lVN珿᤻(e豶5#L쪉ᅄ઄\u0015숟봊P瀚X蓎": false,
+                                                                                                                                                                                                                                                     "䫯דּ〖Sc䛭점L뵾pCꙞ\"엇즓_ﰛ톣ꫀ먩㺣㮠⭴!\\W┏t䖰軅y\u0014~ᇰ렢E7*俜䥪W䀩䷐h봆vjஉ묣༏G39.뼳輼:㮿ᐦA饕TUL}~": [
+                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                      8.8648298810470003E17,
+                                                                                                                                                                                                                                                      5.735561205600924E-20,
+                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                      -102555823658171644,
+                                                                                                                                                                                                                                                      1.2674932032973067E-19,
+                                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                                       "D胣O㯨\u0017Ku눓㒏텁nᨊ!Ꚇ廫_>Bo¸": 4.3236479112537999E18,
+                                                                                                                                                                                                                                                       "HW&퉡ぁ圍<W)6悰ꠑHEp14xy峑ft\u0005s亘V튉䢮ꦈX嵐꬝?lI_덝춇-6Ss噺Nk-ﮥ큃܁郪*PR(S6╋@仙V懸뺵ﯜV粹": "9䗌斀4㐈^Qs隄硏j\u0003",
+                                                                                                                                                                                                                                                       "Vk鶅C泹筁HX훉朗*r\\z顊誌儖4?n7᏾6몋䎡ﳈ],H頢p蚐㑄P4满E䏩V䬕ญL廂쒬쑨ꆷh迡ꍰ譖墎 ]鹿ฌ7ﶽ冭༽<ꈓS\\l䋮?_ユ檒?": -8598528325153980065,
+                                                                                                                                                                                                                                                       "t=q퍣疻тZ\\錅J.镎|nfḷ鴒1厰L灯纜E]୦⥪]Ꮾ'羝p/咩0닳ﳁqﳖཽk ?X1Ft%ś뭢v鋋⺃爵⒗": [[
+                                                                                                                                                                                                                                                        5.0824756359232045E-19,
+                                                                                                                                                                                                                                                        [
+                                                                                                                                                                                                                                                         7.268480839079619E-19,
+                                                                                                                                                                                                                                                         {"탿^굞⧕iј덊ꀛw껩6ꟳXs酚\\>Y?瑡Qy훍q!帰敏s舠㫸zꚗaS歲v`G株巷Jp6킼 (귶鍔⾏⡈>M汐㞍ቴ꙲dv@i㳓ᇆ?黍": [
+                                                                                                                                                                                                                                                          null,
+                                                                                                                                                                                                                                                          4997607199327183467,
+                                                                                                                                                                                                                                                          "E㻎蠫ᐾ高䙟蘬洼旾﫠텛㇛?'M$㣒蔸=A_亀绉앭rN帮",
+                                                                                                                                                                                                                                                          null,
+                                                                                                                                                                                                                                                          [{
+                                                                                                                                                                                                                                                           "Eᑞ)8<Z㡿W镀䛒C생V?0ꯦ+tL)`齳AjB姀XೳD빠㻲ƙgn9⑰ྍ῜&\"㚹>餧A5u&㗾q?": [
+                                                                                                                                                                                                                                                            -1.969987519306507E-19,
+                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                            [
+                                                                                                                                                                                                                                                             3.42437673373841E-20,
+                                                                                                                                                                                                                                                             true,
+                                                                                                                                                                                                                                                             "e걷M墁\"割P␛퍧厀R䱜3ﻴO퓫r﹉⹊",
+                                                                                                                                                                                                                                                             [
+                                                                                                                                                                                                                                                              -8164221302779285367,
+                                                                                                                                                                                                                                                              [
+                                                                                                                                                                                                                                                               true,
+                                                                                                                                                                                                                                                               null,
+                                                                                                                                                                                                                                                               "爘y^-?蘞Ⲽꪓa␅ꍨ}I",
+                                                                                                                                                                                                                                                               1.4645984996724427E-19,
+                                                                                                                                                                                                                                                               [{
+                                                                                                                                                                                                                                                                "tY좗⧑mrzﺝ㿥ⴖ᥷j諅\u0000q賋譁Ꞅ⮱S\nࡣB/큃굪3Zɑ复o<\/;롋": null,
+                                                                                                                                                                                                                                                                "彟h浠_|V4䦭Dᙣ♞u쿻=삮㍦\u001e哀鬌": [{"6횣楠,qʎꗇ鎆빙]㱭R굋鈌%栲j分僅ペ䇰w폦p蛃N溈ꡐꏀ?@(GI뉬$ﮄ9誁ꓚ2e甸ڋ[䁺,\u0011\u001cࢃ=\\+衪䷨ᯕ鬸K": [[
+                                                                                                                                                                                                                                                                 "ㅩ拏鈩勥\u000etgWVXs陂規p狵w퓼{뮵_i\u0002ퟑႢ⬐d6鋫F~챿搟\u0096䚼1ۼ칥0꣯儏=鋷牋ⅈꍞ龐",
+                                                                                                                                                                                                                                                                 -7283717290969427831,
+                                                                                                                                                                                                                                                                 true,
+                                                                                                                                                                                                                                                                 [
+                                                                                                                                                                                                                                                                  4911644391234541055,
+                                                                                                                                                                                                                                                                  {
+                                                                                                                                                                                                                                                                   "I鈒첽P릜朸W徨觘-Hᎄ퐟⓺>8kr1{겵䍃〛ᬡ̨O귑o䝕'쿡鉕p5": "fv粖RN瞖蛐a?q꤄\u001d⸥}'ꣴ犿ꦼ?뤋?鵆쥴덋䡫s矷̄?ඣ/;괱絢oWfV<\/\u202cC,㖦0䑾%n賹g&T;|lj_欂N4w",
+                                                                                                                                                                                                                                                                   "짨䠗;䌕u i+r๏0": [{"9䥁\\఩8\"馇z䇔<\/ႡY3e狚쐡\"ุ6ﰆZ遖c\"Ll:ꮾ疣<\/᭙O◌납୕湞9⡳Und㫜\u0018^4pj1;䧐儂䗷ୗ>@e톬": {
+                                                                                                                                                                                                                                                                    "a⑂F鋻Q螰'<퇽Q贝瀧{ᘪ,cP&~䮃Z?gI彃": [
+                                                                                                                                                                                                                                                                     -1.69158726118025933E18,
+                                                                                                                                                                                                                                                                     [
+                                                                                                                                                                                                                                                                      "궂z簽㔛㮨瘥⤜䛖Gℤ逆Y⪾j08Sn昞ꘔ캻禀鴚P謦b{ꓮmN靐Mᥙ5\"睏2냑I\u0011.L&=?6ᄠ뻷X鸌t刑\"#z)o꫚n쳟줋",
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      7517598198523963704,
+                                                                                                                                                                                                                                                                      "ኑQp襟`uᩄr方]*F48ꔵn俺ሙ9뇒",
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      6645782462773449868,
+                                                                                                                                                                                                                                                                      1219168146640438184,
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                                                       ")ယ넌竀Sd䰾zq⫣⏌ʥ\u0010ΐ' |磪&p牢蔑mV蘸૰짬꺵;K": [
+                                                                                                                                                                                                                                                                        -7.539062290108008E-20,
+                                                                                                                                                                                                                                                                        [
+                                                                                                                                                                                                                                                                         true,
+                                                                                                                                                                                                                                                                         false,
+                                                                                                                                                                                                                                                                         null,
+                                                                                                                                                                                                                                                                         true,
+                                                                                                                                                                                                                                                                         6574577753576444630,
+                                                                                                                                                                                                                                                                         [[
+                                                                                                                                                                                                                                                                          1.2760162530699766E-19,
+                                                                                                                                                                                                                                                                          [
+                                                                                                                                                                                                                                                                           null,
+                                                                                                                                                                                                                                                                           [
+                                                                                                                                                                                                                                                                            "顊\\憎zXB,",
+                                                                                                                                                                                                                                                                            [{
+                                                                                                                                                                                                                                                                             "㇆{CVC9-MN㜋ઘR눽#{h@ퟨ!鼚׼XOvXS\u0017ᝣ=cS+梽៲綆16s덽휐y屬?ᇳG2ᴭ\u00054쫖y룇nKcW̭炦s/鰘ᬽ?J|퓀髣n勌\u0010홠P>j": false,
+                                                                                                                                                                                                                                                                             "箴": [
+                                                                                                                                                                                                                                                                              false,
+                                                                                                                                                                                                                                                                              "鍞j\"ꮾ*엇칬瘫xṬ⭽쩁䃳\"-⋵?ᦽ<cਔ↎⩧%鱩涎삧u9K⦈\"῝ᬑV绩킯愌ṱv@GꝾ跶Ꚇ(?䖃vI᧊xV\r哦j㠒?*=S굤紴ꊀ鹭쬈s<DrIu솹꧑?",
+                                                                                                                                                                                                                                                                              {
+                                                                                                                                                                                                                                                                               ".}S㸼L?t\u000fK⑤s~hU鱜꘦}쪍C滈4ꓗ蛌):ྦ\"顥이⢷ῳYLn\"?fꘌ>댎Ĝ": true,
+                                                                                                                                                                                                                                                                               "Pg帯佃籛n㔠⭹࠳뷏≻࿟3㞱!-쒾!}쭪䃕!籿n涻J5ਲ਼yvy;Rኂ%ᔡጀ裃;M⣼)쵂쑈": 1.80447711803435366E18,
+                                                                                                                                                                                                                                                                               "ꈑC⡂ᑆ㤉壂뎃Xub<\/쀆༈憓ق쨐ק\\": [
+                                                                                                                                                                                                                                                                                7706977185172797197,
+                                                                                                                                                                                                                                                                                {"": {"K╥踮砆NWࡆFy韣7ä밥{|紒︧䃀榫rᩛꦡTSy잺iH8}ퟴ,M?Ʂ勺ᴹ@T@~꾂=I㙕뾰_涀쑜嫴曣8IY?ҿo줫fऒ}\\S\"ᦨ뵼#nDX": {
+                                                                                                                                                                                                                                                                                 "♘k6?଱癫d68?㽚乳䬳-V顷\u0005蝕?\u0018䞊V{邾zじl]雏k臤~ൖH뒐iꢥ]g?.G碄懺䔛p<q꜉S岗_.%": 7688630934772863849,
+                                                                                                                                                                                                                                                                                 "溗摽嗙O㧀,⡢⼰呠ꅧ㓲/葇䢛icc@-r\b渂ꌳ뻨饑觝ᖜ\\鮭\u0014엙㥀᧺@浹W2꛵{W률G溮킀轡䬆g㨑'Q聨៪网Hd\"Q늴ᱢﶨ邮昕纚枑?▰hr羌驀[痹<\/": [
+                                                                                                                                                                                                                                                                                  -1.0189902027934687E-19,
+                                                                                                                                                                                                                                                                                  {"窶椸릎뚻shE\"ꪗႥꎳU矖佟{SJ": [{"-慜x櫹XY-澐ܨ⣷ઢ鯙%Fu\u0000迋▒}᥷L嗭臖oញc넨\u0016/迎1b꯸g뢱㐧蓤䒏8C散삭|\"컪輩鹩\"\\g$zG䥽긷?狸꿭扵㲐:URON&oU8": [
+                                                                                                                                                                                                                                                                                   null,
+                                                                                                                                                                                                                                                                                   true,
+                                                                                                                                                                                                                                                                                   null,
+                                                                                                                                                                                                                                                                                   -2.8907335031148883E17,
+                                                                                                                                                                                                                                                                                   -3864019407187144121,
+                                                                                                                                                                                                                                                                                   {
+                                                                                                                                                                                                                                                                                    "`빬d⵺4H뜳⧈쓑ohஸ*㶐ﻇ⸕䠵!i䝬﹑h夘▥ꗐ푹갇㵳TA鳠嚵\\B<X}3訒c⋝{*﫢w]璨-g捭\\j໵侠Ei层\u0011": 3.758356090089446E-19,
+                                                                                                                                                                                                                                                                                    "䄘ﮐ)Y놞씃㾱陰큁:{\u2059/S⓴": [[
+                                                                                                                                                                                                                                                                                     null,
+                                                                                                                                                                                                                                                                                     [[
+                                                                                                                                                                                                                                                                                      -3.8256602120220546E-20,
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      7202317607724472882,
+                                                                                                                                                                                                                                                                                      "CWQ뚿",
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      false,
+                                                                                                                                                                                                                                                                                      true,
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      2857038485417498625,
+                                                                                                                                                                                                                                                                                      6.191302233218633E-20,
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      -6795250594296208046,
+                                                                                                                                                                                                                                                                                      [
+                                                                                                                                                                                                                                                                                       true,
+                                                                                                                                                                                                                                                                                       {
+                                                                                                                                                                                                                                                                                        "%ዧ遰Yᚯ⚀x莰愒Vᔈ턗BN洝ꤟA1⍌l콹풪H;OX๫륞쪐ᰚц@͎黾a邬<L厒Xb龃7f웨窂二;": [[
+                                                                                                                                                                                                                                                                                         null,
+                                                                                                                                                                                                                                                                                         "耲?䙧㘓F6Xs틭멢.v뚌?鄟恠▽'묺競?WvᆾCtxo?dZ;䨸疎",
+                                                                                                                                                                                                                                                                                         {
+                                                                                                                                                                                                                                                                                          "@hWꉁ&\"빜4礚UO~C;う殩_ꀥ蘁奢^챟k→ᡱKMⵉ<\/Jㅲ붉L͟Q": false,
+                                                                                                                                                                                                                                                                                          "tU뢂8龰I먽7,.Y搽Z툼=&⨥覽K乫햶㠸%#@Z끖愓^⍊⾂몒3E_噆J(廊ឭyd䞜鈬Ћ档'⣘I": {
+                                                                                                                                                                                                                                                                                           "tK*ꔵ銂u艗ԃ쿏∳ꄂ霫X3♢9y?=ⲭdЊb&xy}": [
+                                                                                                                                                                                                                                                                                            -4.097346784534325E-20,
+                                                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                                                            6016848468610144624,
+                                                                                                                                                                                                                                                                                            -8194387253692332861,
+                                                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                                                            {
+                                                                                                                                                                                                                                                                                             "(祬诀譕쯠娣c봝r?畄kT뼾⌘⎨?noV䏘쥝硎n?": [
+                                                                                                                                                                                                                                                                                              1.82679422844617293E18,
+                                                                                                                                                                                                                                                                                              [
+                                                                                                                                                                                                                                                                                               false,
+                                                                                                                                                                                                                                                                                               2.6849944122427694E18,
+                                                                                                                                                                                                                                                                                               true,
+                                                                                                                                                                                                                                                                                               [
+                                                                                                                                                                                                                                                                                                false,
+                                                                                                                                                                                                                                                                                                {
+                                                                                                                                                                                                                                                                                                 ";0z⭆;화$bਔ瀓\"衱^?잢ᢛ⣿~`ꕉ薸⌳໿湘腌'&:ryБꋥၼ꒥筙꬜긨?X": -3536753685245791530,
+                                                                                                                                                                                                                                                                                                 "c;Y7釚Uꃣ割J༨Y戣w}c峰뢨㽑㫈0N>R$䅒X觨l봜A刊8R梒',}u邩퉕?;91Ea䈈믁G⊶芔h袪&廣㺄j;㡏綽\u001bN頸쳘橆": -2272208444812560733,
+                                                                                                                                                                                                                                                                                                 "拑Wﵚj鵼駳Oࣿ)#㾅顂N傓纝y僱栜'Bꐍ-!KF*ꭇK¦?䈴^:啤wG逭w᧯": "xᣱmYe1ۏ@霄F$ě꧘푫O䤕퀐Pq52憬ꀜ兴㑗ᡚ?L鷝ퟐ뭐zJꑙ}╆ᅨJB]\"袌㺲u8䯆f",
+                                                                                                                                                                                                                                                                                                 "꿽၅㔂긱Ǧ?SI": -1669030251960539193,
+                                                                                                                                                                                                                                                                                                 "쇝ɨ`!葎>瞺瘡驷錶❤ﻮ酜=": -6961311505642101651,
+                                                                                                                                                                                                                                                                                                 "?f7♄꫄Jᡔ훮e읇퍾፣䭴KhखT;Qty}O\\|뫁IῒNe(5惁ꥶㆷY9ﮡ\\ oy⭖-䆩婁m#x봉>Y鈕E疣s驇↙ᙰm<": {"퉻:dꂁ&efᅫ쫢[\"돈늖꺙|Ô剐1͖-K:ʚ᭕/;쏖㷛]I痐职4g<Oꗢ뫺N쯂륬J╆.`ᇵP轆&fd$?苅o궓vO侃沲⍩嚅沗 E%⿰얦wi\\*趫": [
+                                                                                                                                                                                                                                                                                                  3504362220185634767,
+                                                                                                                                                                                                                                                                                                  false,
+                                                                                                                                                                                                                                                                                                  "qzX朝qT3軞T垈ꮲQ览ᚻ⻑쎎b驌䵆ꬠ5Fୗ䲁缿ꝁ蒇潇Ltᆄ钯蜀W欥ሺ",
+                                                                                                                                                                                                                                                                                                  "볰ɐ霬)젝鶼kwoc엷荁r \u001d쒷⎹8{%澡K늒?iﺩd=&皼倚J9s@3偛twὡgj䁠흪5⭉⨺役&놎cﺉ㺡N5",
+                                                                                                                                                                                                                                                                                                  false,
+                                                                                                                                                                                                                                                                                                  null,
+                                                                                                                                                                                                                                                                                                  "D0st[ni锹r*0k6ꀎ덇UX2⽼৞䃚粭#)Z桷36P]<\/`",
+                                                                                                                                                                                                                                                                                                  4281410120849816730,
+                                                                                                                                                                                                                                                                                                  null,
+                                                                                                                                                                                                                                                                                                  -3256922126984394461,
+                                                                                                                                                                                                                                                                                                  1.16174580369801549E18,
+                                                                                                                                                                                                                                                                                                  {
+                                                                                                                                                                                                                                                                                                   " ᆼꤗ~*TN긂<㡴턱℃酰^蘒涯잰淭傛2rൡet쾣䐇m*㸏y\"\\糮᧺qv쌜镜T@yg1譬ﭧﳭ\f": null,
+                                                                                                                                                                                                                                                                                                   "圾ᨿ0xᮛ禵ਗ਼D-㟻ẵ錚e\"赜.˶m)鴑B(I$<\/轴퉯揷⋏⏺*)宓쓌?*橯Lx\\f쩂㞼⇸\"ﺧ軂遳V\\땒\"캘c:G": null,
+                                                                                                                                                                                                                                                                                                   "?﵁_곢翸폈8㿠h열Q2㭛}RY㯕YT놂⽻e^B<\/맫ﻇ繱\u0017Gц⟊ᢑﵩS:jt櫣嗒⟰W㴚搦ᅉe[w䋺?藂翙Ⲱ芮䍘╢囥lpdu7r볺I 近qFyᗊ": [
+                                                                                                                                                                                                                                                                                                    "$b脬aᅠ襬育Bگ嵺Pw+'M<\/כֿn䚚v螁bN⒂}褺%lቦ阤\"ꓺᏗM牏,۞Ҷ!矬?ke9銊X괦)䈽틁脽ṫ䈞ᴆ^=Yᗿ遛4I귺⋥%",
+                                                                                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                                                                                    2.9444482723232051E18,
+                                                                                                                                                                                                                                                                                                    2072621064799640026,
+                                                                                                                                                                                                                                                                                                    "/_뇴뫢j㍒=Nꡦ↍Ժ赒❬톥䨞珯su*媸瀳鷔抡o흺-៳辏勷f绔:䵢搢2",
+                                                                                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                                                                                    "쒜 E䌐/큁\u0018懺_<\\隺&{wF⤊谼(<죽遠8?@*rᶊGd뻻갇&Ⳇq᣿e࢔t_ꩄ梸O詬C᧧Kꩠ풤9눙醅됞}竸rw?滨ӽK⥿ཊG魲']`๖5㄰",
+                                                                                                                                                                                                                                                                                                    -2375253967958699084,
+                                                                                                                                                                                                                                                                                                    {"嗱⿲\"f億ᝬ": {"v?䚑킡`◤k3,骥曘뒤Oᒱ㲹^圮᠀YT껛&촮P:G/T⣝#튣k3炩蠏k@橈䏷S䧕,熜晬k1鮥玸먚7䤡f绝嗚샴ᥒ~0q拮垑a뻱LⰖ_": [{
+                                                                                                                                                                                                                                                                                                     ":p尢": -6.688985172863383E17,
+                                                                                                                                                                                                                                                                                                     "A0\u0001疠ﻵ爻鼀湶I~W^岀mZx#㍈7r拣$Ꜷ疕≛⦒痋盩Vꬷ᭝ΩQꍪ療鈑A(劽詗ꭅo-獶鑺\"Ⓠ@$j탥;": [
+                                                                                                                                                                                                                                                                                                      8565614620787930994,
+                                                                                                                                                                                                                                                                                                      [
+                                                                                                                                                                                                                                                                                                       "嶗PC?උQ㪣$&j幾㾷h慑 즊慧⪉霄M窊ꁷ'鮕)䊏铨m趦䗲(g罣ЮKVﯦ鏮5囗ﰼ鿦",
+                                                                                                                                                                                                                                                                                                       -7168038789747526632,
+                                                                                                                                                                                                                                                                                                       null,
+                                                                                                                                                                                                                                                                                                       -7.8069738975270288E16,
+                                                                                                                                                                                                                                                                                                       2.25819579241348352E17,
+                                                                                                                                                                                                                                                                                                       -6.5597416611655936E18,
+                                                                                                                                                                                                                                                                                                       {
+                                                                                                                                                                                                                                                                                                        "瘕멦핓+?フZ귢z鍛V": {
+                                                                                                                                                                                                                                                                                                         "ᕾ": 1.7363275204701887E-19,
+                                                                                                                                                                                                                                                                                                         "㭌s뎹㳉": {"\u00187FI6Yf靺+UC쬸麁␲䂿긕R\\ᆮC?Φ耭\rOத际핅홦*베W㸫㯼᡹cㅜ|G㮗\u0013[o`?jHV앝?蒪꩚!퍫ᜦ㌇䚇鿘:@": [
+                                                                                                                                                                                                                                                                                                          "}푛Г콲<䟏C藐呈#2㓋#ྕ፟尿9q竓gI%랙mꍬoa睕贿J咿D_熏Zz皳験I豼B扳ḢQ≖㻹㱣D䝦練2'ᗍ㗣▌砲8罿%హF姦;0悇<\/\"p嚧",
+                                                                                                                                                                                                                                                                                                          -710184373154164247,
+                                                                                                                                                                                                                                                                                                          "Vo쫬⬾ꝫⴷŻ\u0004靎HBꅸ_aVBHbN>Z4⍜kเꛘZ⥺\\Bʫᇩ鄨魢弞&幟ᓮ2̊盜",
+                                                                                                                                                                                                                                                                                                          -9006004849098116748,
+                                                                                                                                                                                                                                                                                                          -3118404930403695681,
+                                                                                                                                                                                                                                                                                                          {
+                                                                                                                                                                                                                                                                                                           "_彃Y艘-\"Xx㤩㳷瑃?%2䐡鵛o<A?\"顜ᘌΈ;ⷅC洺L蚴蚀voq:,Oo4쪂)": 5719065258177391842,
+                                                                                                                                                                                                                                                                                                           "l륪맽耞塻論倐E㗑/㲕QM辬I\"qi酨玑㖪5q]尾魨鲡ƞY}⮯蠇%衟Fsf윔䐚찤i腳": {"ꢪ'a䣊糈": {"밑/♋S8s㼴5瓹O{댞\"9XﰇlJ近8}q{긧ⓈI᱑꿋腸D瀬H\"ﺬ'3?}\u0014#?丙㑯ᥨ圦',g鑠(樴턇?": [
+                                                                                                                                                                                                                                                                                                            2.5879275511391145E18,
+                                                                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                                                                            [
+                                                                                                                                                                                                                                                                                                             "3㼮ꔌ1Gẃ2W龙j͊{1囐㦭9x宠㑝oR䐕犽",
+                                                                                                                                                                                                                                                                                                             1268729930083267852,
+                                                                                                                                                                                                                                                                                                             "땕軚⿦7C",
+                                                                                                                                                                                                                                                                                                             [
+                                                                                                                                                                                                                                                                                                              -3.757935946502082E18,
+                                                                                                                                                                                                                                                                                                              "\"赌'糬_2뭾᝝b",
+                                                                                                                                                                                                                                                                                                              {
+                                                                                                                                                                                                                                                                                                               "(a䕎ጽjҰD4.ᴡ66ԃ畮<\/l`k癸\\㇋ࣆ욯R㫜픉녬挛;ڴ맺`.;焓q淞뮕ٹ趴r蔞ꯔ䟩v粏u5<\/pZ埖Skrvj帛=\u0005aa": null,
+                                                                                                                                                                                                                                                                                                               "璄≩ v몛ᘮ%?:1頌챀H㷪뉮k滘e": [
+                                                                                                                                                                                                                                                                                                                "ꤾ{`c샬왌펡[俊络vmz㪀悫⸹ᷥ5o'㾵 L蹦qjYIYណԠW냁剫<\/W嗂0,}",
+                                                                                                                                                                                                                                                                                                                2.4817616702666762E18,
+                                                                                                                                                                                                                                                                                                                false,
+                                                                                                                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                                                                                                                -8.6036958071260979E17,
+                                                                                                                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                                                                                                                -1.2744078022652468E-19,
+                                                                                                                                                                                                                                                                                                                -4.4752020268429594E17,
+                                                                                                                                                                                                                                                                                                                1.13672865156637872E17,
+                                                                                                                                                                                                                                                                                                                [
+                                                                                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                                                                                 -4.178004168554046E-20,
+                                                                                                                                                                                                                                                                                                                 true,
+                                                                                                                                                                                                                                                                                                                 2927542512798605527,
+                                                                                                                                                                                                                                                                                                                 {
+                                                                                                                                                                                                                                                                                                                  ".ꔓ뉤1䵬cHy汼䊆賓ᐇƩ|樷❇醎㬅4\u0003赵}#yD5膏晹뱓9ꖁ虛J㺕 t䊛膎ؤ": {
+                                                                                                                                                                                                                                                                                                                   "rVtᓸ5^`েN⹻Yv᥋lꌫt拘?<鮰넿ZC?㒽^": {"␪k_:>귵옔夘v*탋职&㳈챗|O钧": [
+                                                                                                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                                                                                                    "daꧺdᗹ羞쯧H㍤鄳頳<型孒ン냆㹀f4㹰\u000f|C*ሟ鰠(O<ꨭ峹ipຠ*y೧4VQ蔔hV淬{?ᵌEfrI_",
+                                                                                                                                                                                                                                                                                                                    "j;ꗣ밷邍副]ᗓ",
+                                                                                                                                                                                                                                                                                                                    -4299029053086432759,
+                                                                                                                                                                                                                                                                                                                    -5610837526958786727,
+                                                                                                                                                                                                                                                                                                                    [
+                                                                                                                                                                                                                                                                                                                     null,
+                                                                                                                                                                                                                                                                                                                     [
+                                                                                                                                                                                                                                                                                                                      -1.3958390678662759E-19,
+                                                                                                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                                                                                                       "lh좈T_믝Y\"伨\u001cꔌG爔겕ꫳ晚踍⿻읐T䯎]~e#฽燇\"5hٔ嶰`泯r;ᗜ쮪Q):/t筑,榄&5懶뎫狝(": [{
+                                                                                                                                                                                                                                                                                                                        "2ፁⓛ]r3C攟וּ9賵s⛔6'ஂ|\"ⵈ鶆䐹禝3\"痰ࢤ霏䵩옆䌀?栕r7O簂Isd?K᫜`^讶}z8?z얰T:X倫⨎ꑹ": -6731128077618251511,
+                                                                                                                                                                                                                                                                                                                        "|︦僰~m漿햭\\Y1'Vvخ굇ቍ챢c趖": [null]
+                                                                                                                                                                                                                                                                                                                       }],
+                                                                                                                                                                                                                                                                                                                       "虌魿閆5⛔煊뎰㞤ᗴꥰF䮥蘦䂪樳-K᝷-(^\u20dd_": 2.11318679791770592E17
+                                                                                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                                                                                                    ]
+                                                                                                                                                                                                                                                                                                                   ]},
+                                                                                                                                                                                                                                                                                                                   "묗E䀳㧯᳀逞GMc\b墹㓄끖Ơ&U??펌鑍 媋k))ᄊ": null,
+                                                                                                                                                                                                                                                                                                                   "묥7콽벼諌J_DɯﮪM殴䣏,煚ྼ`Y:씧<\/⩫%yf䦀!1Ჶk춎Q米W∠WC跉鬽*ᛱi<?,l<崣炂骵*?8푐៣ⰵ憉⎑.,Nw罣q+ο컆弎": false
+                                                                                                                                                                                                                                                                                                                  },
+                                                                                                                                                                                                                                                                                                                  "e[|଀+lꑸ㝈TT?뿿|ꫛ9`㱯䊸楋-곳賨?쳁k棽擋wQ餈⟐Nq[q霩䵀뷮锅ꚢ": 5753148631596678144,
+                                                                                                                                                                                                                                                                                                                  "sᓝ鴻߸d렶ὕ蜗ဟ툑!诉౿": false,
+                                                                                                                                                                                                                                                                                                                  "|4䕳鵻?䈔(]틍/Ui#湻{듲ーMዀt7潔泄Ch⸨}쏣`螧銚㋼壯kⰥQ戵峉갑x辙'첛": "jd䘯$䕌茷!auw眶ㅥ䁣ꆢ民i",
+                                                                                                                                                                                                                                                                                                                  "剖駰ꞫsM2]ᾴ2ࡷ祅拌Av狔꩛'ꓗ킧ꣁ0酜✘O'": false,
+                                                                                                                                                                                                                                                                                                                  "澩뢣ꀁeU~D\\ꮡ킠": "v^YC嚈ί\u0007죋h>㴕L꘻ꀏ쓪\"_g鿄'#t⽙?,Wg㥖|D鑆e⥏쪸僬h鯔咼ඡ;4TK聎졠嫞"
+                                                                                                                                                                                                                                                                                                                 }
+                                                                                                                                                                                                                                                                                                                ]
+                                                                                                                                                                                                                                                                                                               ]
+                                                                                                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                                                                                                             ]
+                                                                                                                                                                                                                                                                                                            ]
+                                                                                                                                                                                                                                                                                                           ]}}
+                                                                                                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                                                                                                         ]}
+                                                                                                                                                                                                                                                                                                        },
+                                                                                                                                                                                                                                                                                                        "뿋뀾淣截䔲踀&XJ펖꙯^Xb訅ꫥgᬐ>棟S\"혧騾밫겁7-": "擹8C憎W\"쵮yR뢩浗絆䠣簿9䏈引Wcy䤶孖ꯥ;퐌]輩䍐3@{叝 뽸0ᡈ쵡Ⲇ\u001dL匁꧐2F~ݕ㪂@W^靽L襒ᦘ~沦zZ棸!꒲栬R"
+                                                                                                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                                                                                                      ]
+                                                                                                                                                                                                                                                                                                     ],
+                                                                                                                                                                                                                                                                                                     "Z:덃൛5Iz찇䅄駠㭧蓡K1": "e8᧤좱U%?ⵇ䯿鿝\u0013縮R∱骒EO\u000fg?幤@֗퉙vU`",
+                                                                                                                                                                                                                                                                                                     "䐃쪈埽້=Ij,쭗쓇చ": false
+                                                                                                                                                                                                                                                                                                    }]}}
+                                                                                                                                                                                                                                                                                                   ]
+                                                                                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                                                                                 ]}
+                                                                                                                                                                                                                                                                                                }
+                                                                                                                                                                                                                                                                                               ]
+                                                                                                                                                                                                                                                                                              ]
+                                                                                                                                                                                                                                                                                             ],
+                                                                                                                                                                                                                                                                                             "咰긖VM]᝼6䓑쇎琺etDҌ?㞏ꩄ퇫밉gj8蠃\"⩐5䛹1ࣚ㵪": "ക蹊?⎲⧘⾚̀I#\"䈈⦞돷`wo窭戕෱휾䃼)앷嵃꾞稧,Ⴆ윧9S?೗EMk3Მ3+e{⹔Te驨7䵒?타Ulg悳o43"
+                                                                                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                                                                                           ],
+                                                                                                                                                                                                                                                                                           "zQᤚ纂땺6#ٽ﹧v￿#ࠫ휊冟蹧텈ꃊʆ?&a䥯De潝|쿓pt瓞㭻啹^盚2Ꝋf醪,얏T窧\\Di䕎谄nn父ꋊE": -2914269627845628872,
+                                                                                                                                                                                                                                                                                           "䉩跐|㨻ᷢ㝉B{蓧瞸`I!℄욃힕#ೲᙾ竛ᔺCjk췒늕貭词\u0017署?W딚%(pꍁ⤼띳^=on뺲l䆼bzrﳨ[&j狸䠠=ᜑꦦ\u2061յnj=牲攑)M\\龏": false,
+                                                                                                                                                                                                                                                                                           "뎕y絬᫡⥮Ϙᯑ㌔/NF*˓.,QEzvK!Iwz?|쥾\"ꩻL꼗Bꔧ賴緜s뉣隤茛>ロ?(?^`>冺飒=噸泥⺭Ᲊ婓鎔븜z^坷裮êⓅ໗jM7ﶕ找\\O": 1.376745434746303E-19
+                                                                                                                                                                                                                                                                                          },
+                                                                                                                                                                                                                                                                                          "䐛r滖w㏤<k;l8ꡔጵ⮂ny辶⋃퍼僮z\"﮲X@t5෼暧퓞猋♅䦖QC鹮|픨( ,>,|Nዜ": false
+                                                                                                                                                                                                                                                                                         }
+                                                                                                                                                                                                                                                                                        ]],
+                                                                                                                                                                                                                                                                                        "@꿙?薕尬 gd晆(띄5躕ﻫS蔺4)떒錸瓍?~": 1665108992286702624,
+                                                                                                                                                                                                                                                                                        "w믍nᏠ=`঺ᅥC>'從됐槷䤝眷螄㎻揰扰XᅧC贽uჍ낟jKD03T!lDV쀉Ӊy뢖,袛!终캨G?鉮Q)⑗1쾅庅O4ꁉH7?d\u0010蠈줘월ސ粯Q!낇껉6텝|{": null,
+                                                                                                                                                                                                                                                                                        "~˷jg쿤촖쉯y": -5.5527605669177098E18,
+                                                                                                                                                                                                                                                                                        "펅Wᶺzꐆと푭e?4j仪열[D<鈑皶婆䵽ehS?袪;HꍨM뗎ば[(嗏M3q퍟g4y╸鰧茀[Bi盤~﫝唎鋆彺⦊q?B4쉓癚O洙킋툈䶯_?ퟲ": null
+                                                                                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                                                                                      ]
+                                                                                                                                                                                                                                                                                     ]]
+                                                                                                                                                                                                                                                                                    ]],
+                                                                                                                                                                                                                                                                                    "꟱Ԕ㍤7曁聯ಃ錐V䷰?v㪃૦~K\"$%请|ꇹn\"k䫛㏨鲨\u2023䄢\u0004[<S8ᐬ뭩脥7U.m࿹:D葍┆2蘸^U'w1젅;䠆ꋪB껮>︊VJ?䶟ាꮈ䗱=깘U빩": -4863152493797013264
+                                                                                                                                                                                                                                                                                   }
+                                                                                                                                                                                                                                                                                  ]}]}
+                                                                                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                                                                                }}}
+                                                                                                                                                                                                                                                                               ],
+                                                                                                                                                                                                                                                                               "쏷쐲۹퉃~aE唙a챑,9㮹gLHd'䔏|킗㍞䎥&KZYT맵7䥺N<Hp4ꕭ⹠꽐c~皽z": "课|ᖾ䡁廋萄䐪W\u0016&Jn괝b~摓M>ⱳ同莞鿧w\\༌疣n/+ꎥU\"封랾○ퟙAJᭌ?9䛝$?驔9讐짘魡T֯c藳`虉C읇쐦T"
+                                                                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                                                                             ],
+                                                                                                                                                                                                                                                                             "谶개gTR￐>ၵ͚dt晑䉇陏滺}9㉸P漄": -3350307268584339381
+                                                                                                                                                                                                                                                                            }]
+                                                                                                                                                                                                                                                                           ]
+                                                                                                                                                                                                                                                                          ]
+                                                                                                                                                                                                                                                                         ]]
+                                                                                                                                                                                                                                                                        ]
+                                                                                                                                                                                                                                                                       ],
+                                                                                                                                                                                                                                                                       "0y꟭馋X뱔瑇:䌚￐廿jg-懲鸭䷭垤㒬茭u賚찶ಽ+\\mT땱\u20821殑㐄J쩩䭛ꬿNS潔*d\\X,壠뒦e殟%LxG9:摸": 3737064585881894882,
+                                                                                                                                                                                                                                                                       "풵O^-⧧ⅶvѪ8廸鉵㈉ר↝Q㿴뺟EႳvNM:磇>w/៻唎뷭୥!냹D䯙i뵱貁C#⼉NH6`柴ʗ#\\!2䂗Ⱨf?諳.P덈-返I꘶6?8ꐘ": -8934657287877777844,
+                                                                                                                                                                                                                                                                       "溎-蘍寃i诖ര\"汵\"\ftl,?d⼡쾪⺋h匱[,෩I8MҧF{k瓿PA'橸ꩯ綷퉲翓": null
+                                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                                                    ],
+                                                                                                                                                                                                                                                                    "ោ係؁<元": 1.7926963090826924E-18
+                                                                                                                                                                                                                                                                   }}]
+                                                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                                                                ]]}]
+                                                                                                                                                                                                                                                               }]
+                                                                                                                                                                                                                                                              ]
+                                                                                                                                                                                                                                                             ]
+                                                                                                                                                                                                                                                            ]
+                                                                                                                                                                                                                                                           ],
+                                                                                                                                                                                                                                                           "ጩV<\"ڸsOᤘ": 2.0527167903723048E-19
+                                                                                                                                                                                                                                                          }]
+                                                                                                                                                                                                                                                         ]}
+                                                                                                                                                                                                                                                        ]
+                                                                                                                                                                                                                                                       ]],
+                                                                                                                                                                                                                                                       "∳㙰3젴p᧗䱙?`<U὇<\/意E[ᮚAj诂ᒽ阚uv徢ဎ떗尔Ᵹ훀쩑J䐴?⪏=륪ᆩ푰ஓ㐕?럽VK\"X?檨လ齿I/耉A(AWA~⏯稐蹫": false,
+                                                                                                                                                                                                                                                       "偒妝뾇}䀼链i⇃%⋜&璪Ix渥5涧qq棩ᥝ-⠫AA낇yY颕A*裦O|n?䭬혗F": null,
+                                                                                                                                                                                                                                                       "琭CL얭B혆Kॎ`鎃nrsZiժW砏)?p~K~A眱䲏QO妣\u001b\u001b]ᵆᆯ&㐋ᏹ豉뺘$ꭧ#j=C)祤⫢歑1o㒙諩": 7028426989382601021,
+                                                                                                                                                                                                                                                       "쳱冲&ဤ䌏앧h胺-齱H忱8왪RDKᅒ䬋ᔶS*J}ስ漵'㼹뮠9걢9p봋경ጕtởꚳT䶽瘙%춴`@nಆ4<d??#僜ᙤ钴=薔ꭂbLXNam蹈": "樭る蹿= Uurwkn뙧⌲%\"쑃牪\"cq윕o@",
+                                                                                                                                                                                                                                                       "溌[H]焎SLㅁ?뀼䫨災W": 1.1714289118497062E-19,
+                                                                                                                                                                                                                                                       "ﬢp븇剌燇kĔ尘㶿㴞睠꾘Ia;s❺^)$穮?sHᢥ폪l": null
+                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                                   ]
+                                                                                                                                                                                                                                                  },
+                                                                                                                                                                                                                                                  "TKnzj5o<\/K㊗ꗣ藠⦪駇>yZA8Ez0,^ᙛ4_0븢\u001ft:~䎼s.bb룦明yNP8弆C偯;⪾짍'蕴뮛": -6976654157771105701,
+                                                                                                                                                                                                                                                  "큵ꦀ\\㇑:nv+뒤燻䀪ﴣ﷍9ᚈ኷K㚊誦撪䚛,ꮪxሲ쳊\u0005HSf?asg昱dqꬌVꙇ㼺'k*'㈈": -5.937042203633044E-20
+                                                                                                                                                                                                                                                 }
+                                                                                                                                                                                                                                                ]
+                                                                                                                                                                                                                                               }],
+                                                                                                                                                                                                                                               "?}\u20e0],s嶳菋@#2u쒴sQS䩗=ꥮ;烌,|ꘔ䘆": "ᅩ영N璠kZ먕眻?2ቲ芋眑D륟渂⸑ﴃIRE]啗`K'"
+                                                                                                                                                                                                                                              }},
+                                                                                                                                                                                                                                              "쨀jmV賂ﰊ姐䂦玞㬙ᏪM᪟Վ씜~`uOn*ॠ8\u000ef6??\\@/?9見d筜ﳋB|S䝬葫㽁o": true
+                                                                                                                                                                                                                                             },
+                                                                                                                                                                                                                                             "즛ꄤ酳艚␂㺘봿㎨iG৕ࡿ?1\"䘓您\u001fSኝ⺿溏zៀ뻤B\u0019?윐a䳵᭱䉺膷d:<\/": 3935553551038864272
+                                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                                           ]
+                                                                                                                                                                                                                                          ]}
+                                                                                                                                                                                                                                         ]]
+                                                                                                                                                                                                                                        ]]
+                                                                                                                                                                                                                                       ]}
+                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                   ]]}},
+                                                                                                                                                                                                                                   "᥺3h↛!ꋰy\"攜(ெl䪕oUkc1A㘞ᡲ촾ᣫ<\/䒌E㛝潨i{v?W౾H\\RჅpz蝬R脾;v:碽✘↯삞鷱o㸧瑠jcmK7㶧뾥찲n": true,
+                                                                                                                                                                                                                                   "ⶸ?x䊺⬝-䰅≁!e쩆2ꎿ准G踌XXᩯ1߁}0?.헀Z馟;稄\baDꟹ{-寪⚈ꉷ鮸_L7ƽᾚ<\u001bጨA䧆송뇵⨔\\礍뗔d设룱㶉cq{HyぱR㥽吢ſtp": -7985372423148569301,
+                                                                                                                                                                                                                                   "緫#콮IB6<\/=5Eh礹\t8럭@饹韠r㰛斣$甝LV췐a갵'请o0g:^": "䔨(.",
+                                                                                                                                                                                                                                   "띳℡圤pン௄ĝ倧訜B쁟G䙔\"Sb⓮;$$▏S1J뢙SF|赡g*\"Vu䲌y": "䪈&틐),\\kT鬜1풥;뷴'Zေ䩹@J鞽NぼM?坥eWb6榀ƩZڮ淽⺞삳煳xჿ絯8eⶍ羷V}ჿ쎱䄫R뱃9Z>'\u20f1ⓕ䏜齮"
+                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                                ]]]
+                                                                                                                                                                                                                               }}
+                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                             ]
+                                                                                                                                                                                                                            ]},
+                                                                                                                                                                                                                            "펮b.h粔폯2npX詫g錰鷇㇒<쐙S値bBi@?镬矉`剔}c2壧ଭfhY깨R()痩⺃a\\⍔?M&ﯟ<劜꺄멊ᄟA\"_=": null
+                                                                                                                                                                                                                           },
+                                                                                                                                                                                                                           "~潹Rqn榢㆓aR鬨侅?䜑亡V_翅㭔(䓷w劸ၳDp䀅<\/ﰎ鶊m䵱팱긽ꆘ<tD쇋>긓准D3掱;o:_ќ)껚콥8곤d矦8nP倥ꃸI": null,
+                                                                                                                                                                                                                           "뾎/Q㣩㫸벯➡㠦◕挮a鶧⋓偼\u00001뱓fm覞n?㛅\"": 2.8515592202045408E17
+                                                                                                                                                                                                                          }],
+                                                                                                                                                                                                                          ",": -5426918750465854828,
+                                                                                                                                                                                                                          "2櫫@0柡g䢻/gꆑ6演&D稒肩Y?艘/놘p{f투`飷ᒉ챻돎<늛䘍ﴡ줰쫄": false,
+                                                                                                                                                                                                                          "8(鸑嵀⵹ퟡ<9㣎Tߗ┘d슒ل蘯&㠦뮮eࠍk砝g 엻": false,
+                                                                                                                                                                                                                          "d-\u208b?0ﳮ嵙'(J`蔿d^踅⤔榥\\J⵲v7": 6.8002426206715341E17,
+                                                                                                                                                                                                                          "ཎ耰큓ꐕ㱷\u0013y=詽I\"盈xm{0쾽倻䉚ષso#鰑/8㸴짯%ꀄ떸b츟*\\鲷礬ZQ兩?np㋄椂榨kc᡹醅3": false,
+                                                                                                                                                                                                                          "싊j20": false
+                                                                                                                                                                                                                         }]]
+                                                                                                                                                                                                                        ]],
+                                                                                                                                                                                                                        "俛\u0017n緽Tu뫉蜍鼟烬.ꭠIⰓ\"Ἀ᜾uC쎆J@古%ꛍm뻨ᾀ画蛐휃T:錖㑸ዚ9죡$": true
+                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                      ]
+                                                                                                                                                                                                                     ],
+                                                                                                                                                                                                                     "㍵⇘ꦖ辈s}㱮慀밒s`\"㞟j:`i픻Z<C1衽$\"-饧?℃\u0010⼒{p飗%R\"䲔\")칀\\%": true,
+                                                                                                                                                                                                                     "苧.8\u00120ݬ仓": 6912164821255417986,
+                                                                                                                                                                                                                     "떎顣俁X;.#Q틝.笂'p쟨唒퐏랩냆¦aⱍ{谐.b我$蜑SH\u000f琾=䟼⣼奔ᜏ攕B&挰繗㝔ꅂ-Qv\\0䶝䚥ぺio[㑮-ᇼ䬰컪ṼiY){데\u0010q螰掻~\n輚x\u0014罺)軴": 3.024364150712629E-20
+                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                   ]
+                                                                                                                                                                                                                  ]
+                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                ]}
+                                                                                                                                                                                                               ]]
+                                                                                                                                                                                                              }
+                                                                                                                                                                                                             ]
+                                                                                                                                                                                                            ]]
+                                                                                                                                                                                                           ]
+                                                                                                                                                                                                          ]]]],
+                                                                                                                                                                                                          "\"凲o肉Iz絾豉J8?i~傠᫽䇂!WD溊J?ᡒvs菆嵹➒淴>섫^諎0Ok{켿歁෣胰a2﨤[탳뚬쎼嫭뉮m": 409440660915023105,
+                                                                                                                                                                                                          "w墄#*ᢄ峠밮jLa`ㆪ꺊漓Lで끎!Agk'ꁛ뢃㯐岬D#㒦": false,
+                                                                                                                                                                                                          "ଦPGI䕺L몥罭ꃑ궩﮶#⮈ᢓӢ䚬p7웼臧%~S菠␌힀6&t䳙y㪘냏\\*;鉏ᅧ鿵'嗕pa\"oL쇿꬈Cg": "㶽1灸D⟸䴅ᆤ뉎﷛渤csx 䝔цꬃ锚捬?ຽ+x~꘩uI࡞\u0007栲5呚ẓem?袝\")=㥴䨃pac!/揎Y",
+                                                                                                                                                                                                          "ᷱo\\||뎂몷r篙|#X䦜I#딌媸픕叞RD斳X4t⯩夬=[뭲r=绥jh뷱츝⪘%]⚋܈㖴スH텹m(WO曝劉0~K3c柢Ր㏉着逳~": false,
+                                                                                                                                                                                                          "煽_qb[첑\\륌wE❽ZtCNﭝ+餌ᕜOꛭ": "{ﳾ쉌&s惧ᭁⵆ3䢫;䨞팑꒪흘褀࢖Q䠿V5뭀䎂澻%받u5텸oA⮥U㎦;B䳌wz䕙$ឿ\\௅婺돵⪾퐆\\`Kyौꋟ._\u0006L챯l뇠Hi䧈偒5",
+                                                                                                                                                                                                          "艊佁ࣃ롇䱠爬!*;⨣捎慓q靓|儑ᨋL+迥=6㒺딉6弄3辅J-㕎뛄듘SG㆛(\noAzQꝱ䰩X*ぢO퀌%펠낌mo틮a^<\/F&_눊ᾉ㨦ы4\"8H": 2974648459619059400,
+                                                                                                                                                                                                          "鬙@뎣䫳ၮ끡?){y?5K;TA*k溱䫜J汃ꂯ싔썍\u001dA}룖(<\/^,": false,
+                                                                                                                                                                                                          "몏@QꋦFꊩᒐ뎶lXl垨4^郣|ꮇ;䝴ᝓ}쵲z珖": null
+                                                                                                                                                                                                         }
+                                                                                                                                                                                                        ]]]],
+                                                                                                                                                                                                        ":_=닧弗D䙋暨鏛. 㱻붘䂍J儒&ZK/녩䪜r囁⽯D喠죥7⹌䪥c\u001a\u2076￞妈朹oLk菮F౟覛쐧㮏7T;}蛙2{9\"崓bB<\/⡷룀;즮鿹)丒툃୤뷠5W⊢嶜(fb뭳갣": "E{响1WM"
+                                                                                                                                                                                                       }},
+                                                                                                                                                                                                       "䘨tjJ驳豨?y輊M*᳑梵瞻઻ofQG瑮e": 2.222802939724948E-19,
+                                                                                                                                                                                                       "䮴=❑➶T෋w䞜\"垦ꃼUt\u001dx;B$뵣䙶E↌艣ᡥ!᧟;䱀[䔯k쬃`੍8饙른熏'2_'袻tGf蒭J땟as꯳╖&啒zWࡇᒫYSᏬ\u0014ℑ첥鈤|cG~Pᓮ\">\"": "ႆl\f7V儊㦬nHꄬꨧC{쐢~C⮃⛓嶦vꄎ1w鰠嘩뿠魄&\"_qMⵖ釔녮ꝇ 㝚{糍J哋 cv?-jkﻯྌ鹑L舟r",
+                                                                                                                                                                                                       "龧葆yB✱H盋夔ﶉ?n*0(": "ꧣኆ㢓氥qZZ酒ຜ)鮢樛)X䣆gTSґG텞k.J圬疝롫쯭z L:\\ྤ@w炋塜쿖ᾳy뢀䶃뱝N䥨㚔勇겁#p",
+                                                                                                                                                                                                       "도畎Q娡\"@S/뼋:䵏!P衅촚fVHQs✜ᐫi㻑殡B䜇%믚k*U#濨낄~": "ꍟዕ쳸ꍈ敋&l妏\u0005憡멗瘌uPgᅪm<\/To쯬锩h뒓k"
+                                                                                                                                                                                                      }
+                                                                                                                                                                                                     ]
+                                                                                                                                                                                                    }],
+                                                                                                                                                                                                    "墥홞r绚<\/⸹ⰃB}<躅\\Y;๑@䔸>韫䜲뱀X뗩鿥쩗SI%ﴞ㳕䛇?<\/\u00018x\\&侂9鋙a[LR㋭W胕)⡿8㞙0JF,}?허d1cDMᐃ␛鄝ⱕ%X)!XQ": "ⳍꗳ=橇a;3t⦾꼑仈ူaᚯ⯋ꕃAs鴷N⍕_䎃ꙎAz\u0016䯷\\<࿫>8q{}キ?ᣰ}'0ᴕ펓B┦lF#趤厃T?㕊#撹圂䆲"
+                                                                                                                                                                                                   },
+                                                                                                                                                                                                   "܋닐龫論c웑": false,
+                                                                                                                                                                                                   "ㇿ/q\"6-co髨휝C큦#\u001b4~?3䐹E삇<<": 7.600917488140322E-20,
+                                                                                                                                                                                                   "䁝E6?㣖ꃁ间t祗*鑠{ḣV(浾h逇큞=W?ૉ?nꇽ8ꅉຉj으쮺@Ꚅ㰤u]Oyr": "v≁᫸_*όAඤԆl)ۓᦇQ}폠z༏q滚",
+                                                                                                                                                                                                   "ソ᥊/넺I": true
+                                                                                                                                                                                                  }]]
+                                                                                                                                                                                                 ]
+                                                                                                                                                                                                ]
+                                                                                                                                                                                               ]
+                                                                                                                                                                                              ]]
+                                                                                                                                                                                             },
+                                                                                                                                                                                             "䭑Ik攑\u0002QV烄:芩.麑㟴㘨≕": true,
+                                                                                                                                                                                             "坄꿕C쇻풉~崍%碼\\8\"䬦꣙": null,
+                                                                                                                                                                                             "欌L圬䅘Y8c(♺2?ON}o椳s宥2䉀eJ%闹r冁O^K諭%凞⺉⡻,掜?$ꥉ?略焕찳㯊艼誜4?\"﯎<゛XፈINT:詓 +": -1.0750456770694562E-19,
+                                                                                                                                                                                             "獒àc뜭싼ﺳ뎤K`]p隨LtE": null,
+                                                                                                                                                                                             "甙8䵊神EIꩤ鐯ᢀ,ﵮU䝑u疒ử驺䚿≚ഋ梶秓F`覤譐#짾蔀묊4<媍쬦靪_Yzgcࡶ4k紥`kc[Lﮗ簐*I瀑[⾰L殽鑥_mGȠ<\/|囹灠g桰iri": true,
+                                                                                                                                                                                             "챓ꖙꟻ좝菇ou,嗠0\\jK핻뜠qwQ?ഩ㼕3Y彦b\u009bJ榶N棨f?됦鏖綃6鳵M[OE봨u햏.Ꮁ癜蟳뽲ꩌ뻾rM豈R嗀羫 uDꎚ%": null
+                                                                                                                                                                                            },
+                                                                                                                                                                                            "V傜2<": 7175127699521359521
+                                                                                                                                                                                           }],
+                                                                                                                                                                                           "铫aG切<\/\"ী⊆e<^g࢛)D顝nאַ饼\u008c猪繩嵿ﱚCꡬ㻊g엺A엦\u000f暿_f꿤볝㦕桦`蒦䎔j甬%岝rj 糏": "䚢偎눴Au<4箞7礦Iﱔ坠eȧ䪸u䵁p|逹$嗫쨘ꖾ﷐!胠z寓팢^㨔|u8Nሇe텔ꅦ抷]،鹎㳁#༔繁 ",
+                                                                                                                                                                                           "낂乕ꃻ볨ϱ-ꇋ㖍fs⿫)zꜦ/K?솞♞ꑌ宭hJ᤭瑥Fu": false,
+                                                                                                                                                                                           "쟰ぜ魛G\u0003u?`㾕ℾ㣭5螠烶這趩ꖢ:@咕ꐶx뒘느m䰨b痃렐0鳊喵熬딃$摉_~7*ⱦ녯1錾GKhJ惎秴6'H妈Tᧅ窹㺒疄矤铟wላ": null,
+                                                                                                                                                                                           "쯆q4!3錕㲏ⵆ㇛꘷Z瑩뭆\\◪NH\u001d\\㽰U~㯶<\"쑣낞3ᵤ'峉eꢬ;鬹o꣒木X*長PXᘱu\"䠹n惞": null,
+                                                                                                                                                                                           "ᅸ祊\"&ꥴCjࢼ﴿?䡉`U效5殼㮞V昽ꏪ#ﺸ\\&t6x꠹盥꣰a[\u001aꪍSpe鎿蠹": -1.1564713893659811E-19
+                                                                                                                                                                                          }
+                                                                                                                                                                                         ]]
+                                                                                                                                                                                        ]
+                                                                                                                                                                                       ]
+                                                                                                                                                                                      ],
+                                                                                                                                                                                      "羵䥳H,6ⱎ겾|@t\"#햊1|稃 섭)띜=뻔ꡜ???櫎~*ῡ꫌/繣ﻠq": null
+                                                                                                                                                                                     }
+                                                                                                                                                                                    ]}
+                                                                                                                                                                                   ]},
+                                                                                                                                                                                   "츤": false
+                                                                                                                                                                                  }},
+                                                                                                                                                                                  "s": 3.7339341963399598E18
+                                                                                                                                                                                 }
+                                                                                                                                                                                ],
+                                                                                                                                                                                "N,I?1+㢓|ࣱ嶃쩥V2\u0012(4EE虪朶$|w颇v步": "~읢~_,Mzr㐫YB溓E淚\"ⅹ䈔ᏺ抙 b,nt5V㐒J檶ꏨ⻔?",
+                                                                                                                                                                                "Q껑ꡡ}$넎qH煔惍/ez^!ẳF댙䝌馻剁8": "梲;yt钰$i冄}AL%a j뜐奷걳뚾d꿽*ሬuDY3?뮟鼯뮟w㍪틱V",
+                                                                                                                                                                                "o{Q/K O胟㍏zUdꀐm&⨺J舕⾏魸訟㌥[T籨櫉唐킝 aṭ뱫촙莛>碶覆⧬짙쭰ׯdAiH໥벤퐥_恸[ 0e:죃TC弼荎뵁DA:w唵ꣁ": null,
+                                                                                                                                                                                "὏樎䵮軧|?౗aWH쩃1 ꅭsu": null
+                                                                                                                                                                               }
+                                                                                                                                                                              ]
+                                                                                                                                                                             },
+                                                                                                                                                                             "勂\\&m鰈J釮=Ⲽ鳋+䂡郑": null,
+                                                                                                                                                                             "殣b綊倶5㥗惢⳷萢ᑀ䬄镧M^ﱴ3⣢翣n櫻1㨵}ኯ뗙顖Z.Q➷ꮨ뗇\u0004": "ꔙ䁼>n^[GीA䨟AM琢ᒊS쨲w?d㶣젊嘶纝麓+愣a%気ྞSc됓ᔘ:8bM7Xd8㶑臌]Ꙥ0ꐭ쒙䫣挵C薽Dfⵃ떼᷸",
+                                                                                                                                                                             "?紡.셪_෨j\u0013Ox┠$Xᶨ-ᅇo薹-}軫;y毝㪜K㣁?.EV쮱4둽⛻䤜'2盡\u001f60(|e쐰㼎ᦀ㒧-$l@ﻑ坳\u0003䭱响巗WFo5c㧆T턁Y맸♤(": -2.50917882560589088E17
+                                                                                                                                                                            }}
+                                                                                                                                                                           ],
+                                                                                                                                                                           "侸\\릩.᳠뎠狣살cs项䭩畳H1s瀉븇19?.w骴崖㤊h痠볭㞳㞳䁮Ql怠㦵": "@䟴-=7f",
+                                                                                                                                                                           "鹟1x௢+d ;vi䭴FSDS\u0004hꎹ㚍?⒍⦏ў6u,扩@됷Su)Pag휛TᒗV痩!瞏釀ꖞ蘥&ೞ蘐ꭰꞇᝎ": "ah懱Ժ&\u20f7䵅♎඀䞧鿪굛ౕ湚粎蚵ᯋ幌YOE)५襦㊝Y*^\"R+ඈ咷蝶9ꥂ榨艦멎헦閝돶v좛咊E)K㓷ྭr",
+                                                                                                                                                                           "搆q쮦4綱켙셁.f4<\/g<籽늷?#蚴픘:fF\u00051㹉뀭.ᰖ풎f֦Hv蔎㧤.!䭽=鞽]음H:?\"-4": 8.740133984938656E-20
+                                                                                                                                                                          }]}
+                                                                                                                                                                         }
+                                                                                                                                                                        ],
+                                                                                                                                                                        "tVKn딩꘥⊾蹓᤹{\u0003lR꼽ᄲQFᅏ傅ﱋ猢⤊ᔁ,E㓒秤nTතv`♛I\u0000]꫔ṞD\"麵c踝杰X&濿또꣹깳౥葂鿎\\aꡨ?": 3900062609292104525
+                                                                                                                                                                       }
+                                                                                                                                                                      ],
+                                                                                                                                                                      "ਉ샒⊩Lu@S䧰^g": -1.1487677090371648E18,
+                                                                                                                                                                      "⎢k⑊꬗yᏫ7^err糎Dt\u000bJ礯확ㆍ沑サꋽe赔㝢^J\u0004笲㿋idra剰-᪉C錇/Ĝ䂾ညS지?~콮gR敉⬹'䧭": 1901472137232418266,
+                                                                                                                                                                      "灗k䶥:?촽贍쓉꓈㒸g獘[뵎\\胕?\u0014_榙p.j稶,$`糉妋0>Fᡰly㘽$?": "]ꙛO赎&#㠃돱剳\"<◆>0誉齐_|z|裵씪>ᐌ㼍\"Z[琕}O?G뚇諦cs⠜撺5cu痑U圲\u001c?鴴計l춥/╓哼䄗茏ꮅ뫈댽A돌롖뤫V窗讬sHd&\nOi;_u"
+                                                                                                                                                                     }
+                                                                                                                                                                    ],
+                                                                                                                                                                    "Uﺗ\\Y\\梷䄬~\u0002": null,
+                                                                                                                                                                    "k\"Y磓ᗔ휎@U冈<\/w컑)[": false,
+                                                                                                                                                                    "曏J蝷⌻덦\u001f㙳s꥓⍟邫P늮쥄c∬ྡྷ舆렮칤Z趣5콡넛A쳨\\뀙骫(棻.*&輛LiIfi{@EA婳KᬰTXT": -4.3088230431977587E17
+                                                                                                                                                                   }]}
+                                                                                                                                                                  ]
+                                                                                                                                                                 ],
+                                                                                                                                                                 "곃㲧<\/dఓꂟs其ࡧ&N葶=?c㠤Ჴ'횠숄臼#\u001a~": false
+                                                                                                                                                                }
+                                                                                                                                                               ]
+                                                                                                                                                              ]}]
+                                                                                                                                                             }]
+                                                                                                                                                            }}
+                                                                                                                                                           ],
+                                                                                                                                                           "2f`⽰E쵟>J笂裭!〛觬囀ۺ쟰#桊l鹛ⲋ|RA_Vx፭gE됓h﵀mfỐ|?juTU档[d⢼⺻p濚7E峿": 5613688852456817133
+                                                                                                                                                          },
+                                                                                                                                                          "濘끶g忮7㏵殬W팕Q曁 뫰)惃廊5%-蹚zYZ樭ﴷQ锘쯤崫gg": true,
+                                                                                                                                                          "絥ᇑ⦏쒓븣爚H.㗊߄o蘵貆ꂚ(쎔O᥉ﮓ]姨Wꁓ!RMA|o퉢THx轮7M껁U즨'i뾘舯o": "跥f꜃?"
+                                                                                                                                                         }}
+                                                                                                                                                        ],
+                                                                                                                                                        "鷰鹮K-9k;ﰰ?_ݦѷ-ꅣ䩨Zꥱ\"mꠟ屎/콑Y╘2&鸞脇㏢ꀇ࠺ⰼ拾喭틮L꽩bt俸墶 [l/웄\"꾦\u20d3iও-&+\u000fQ+໱뵞": -1.296494662286671E-19
+                                                                                                                                                       },
+                                                                                                                                                       "HX੹/⨇୕붷Uﮘ旧\\쾜͔3l鄈磣糂̖䟎Eᐳw橖b῀_딕hu葰窳闹вU颵|染H죶.fP䗮:j䫢\\b뎖i燕ꜚG⮠W-≚뉗l趕": "ଊ칭Oa᡺$IV㷧L\u0019脴셀붿餲햪$迳向쐯켂PqfT\" ?I屉鴼쿕@硙z^鏕㊵M}㚛T젣쓌-W⩐-g%⺵<뮱~빅╴瑿浂脬\u0005왦燲4Ⴭb|D堧 <\/oEQh",
+                                                                                                                                                       "䘶#㥘੐캔f巋ἡAJ䢚쭈ࣨ뫒*mᇊK,ࣺAꑱ\u000bR<\/A\"1a6鵌㯀bh곿w(\"$ꘁ*rಐ趣.d࿩k/抶면䒎9W⊃9": "漩b挋Sw藎\u0000",
+                                                                                                                                                       "畀e㨼mK꙼HglKb,\"'䤜": null
+                                                                                                                                                      }]}]
+                                                                                                                                                     ]
+                                                                                                                                                    ]
+                                                                                                                                                   }]
+                                                                                                                                                  ]}
+                                                                                                                                                 ]
+                                                                                                                                                ]}
+                                                                                                                                               ],
+                                                                                                                                               "歙>駿ꣂ숰Q`J΋方樛(d鱾뼣(뫖턭\u20f9lচ9歌8o]8윶l얶?镖G摄탗6폋폵+g:䱫홊<멀뀿/س|ꭺs걐跶稚W々c㫣⎖": "㣮蔊깚Cꓔ舊|XRf遻㆚︆'쾉췝\\&言",
+                                                                                                                                               "殭\"cށɨꝙ䞘:嬮e潽Y펪㳅/\"O@ࠗ겴]췖YǞ(t>R\"N?梳LD恭=n氯T豰2R諸#N}*灧4}㶊G䍣b얚": null,
+                                                                                                                                               "襞<\/啧 B|싞W瓇)6簭鼡艆lN쩝`|펭佡\\間邝[z릶&쭟愱ꅅ\\T᰽1鯯偐栈4̸s윜R7⒝/똽?치X": "⏊躖Cﱰ2Qẫ脐&இ?%냝悊",
+                                                                                                                                               ",鰧偵셣싹xᎹ힨᯳EṬH㹖9": -4604276727380542356
+                                                                                                                                              }
+                                                                                                                                             }
+                                                                                                                                            ]]]],
+                                                                                                                                            "웺㚑xs}q䭵䪠馯8?LB犯zK'os䚛HZ\"L?셎s^㿧㴘Cv2": null
+                                                                                                                                           }]
+                                                                                                                                          ]
+                                                                                                                                         ]
+                                                                                                                                        ],
+                                                                                                                                        "Kd2Kv+|z": 7367845130646124107,
+                                                                                                                                        "ᦂⶨ?ᝢ 祂些ഷ牢㋇操\"腭䙾㖪\\(y4cE뽺ㆷ쫺ᔖ%zfۻ$ў1柦,㶢9r漢": -3.133230960444846E-20,
+                                                                                                                                        "琘M焀q%㢟f鸯O⣏蓑맕鯊$O噷|)z褫^㢦⠮ꚯ꫞`毕1qꢚ{ĭ䎀বώT\"뱘3G൴?^^of": null
+                                                                                                                                       }
+                                                                                                                                      ],
+                                                                                                                                      "a8V᯺?:ﺃ/8ꉿBq|9啓댚;*i2": null,
+                                                                                                                                      "cpT瀇H珰Ừpೃi鎪Rr␣숬-鹸ҩ䠚z脚цGoN8入y%趌I┽2ឪЀiJNcN)槣/▟6S숆牟\"箑X僛G殱娇葱T%杻:J諹昰qV쨰": 8331037591040855245
+                                                                                                                                     }],
+                                                                                                                                     "G5ᩜ䄗巢껳": true
+                                                                                                                                    }
+                                                                                                                                   },
+                                                                                                                                   "Ồ巢ゕ@_譙A`碫鄐㡥砄㠓(^K": "?܃B혢▦@犑ὺD~T⧁|醁;o=J牌9냚⢽㨘{4觍蚔9#$∺\u0016p囅\\3Xk阖⪚\"UzA穕롬✎➁㭒춺C㣌ဉ\"2瓑员ᅽꝶ뫍}꽚ꞇ鶂舟彺]ꍽJC蝧銉",
+                                                                                                                                   "␆Ě膝\"b-퉐ACR言J謈53~V튥x䜢?ꃽɄY뮩ꚜ": "K/↾e萃}]Bs⾿q룅鷦-膋?m+死^魊镲6",
+                                                                                                                                   "粡霦c枋AHퟁo礼Ke?qWcA趸㡔ꂏ?\u000e춂8iতᦜ婪\u0015㢼nﵿꍻ!ᐴ関\u001d5j㨻gfῩUK5Ju丝tかTI'?㓏t>⼟o a>i}ᰗ;뤕ܝ": false,
+                                                                                                                                   "ꄮ匴껢ꂰ涽+䜨B蛹H䛓-k蕞fu7kL谖,'涃V~챳逋穞cT\"vQ쓕ObaCRQ㓡Ⲯ?轭⫦輢墳?vA餽=h䮇킵n폲퉅喙?\"'1疬V嬗Qd灗'Lự": "6v!s믁㭟㣯獃!磸餠ቂh0C뿯봗F鷭gꖶ~コkK<ᦈTt\\跓w㭣횋钘ᆹ듡䑚W䟾X'ꅔ4FL勉Vܴ邨y)2'〚쭉⽵-鞣E,Q.?块",
+                                                                                                                                   "?(˧쩯@崟吋歄K": null
+                                                                                                                                  },
+                                                                                                                                  "Gc럃녧>?2DYI鴿\\륨)澔0ᔬlx'觔7젘⤡縷螩%Sv׫묈/]↱&S h\u0006歋ᑛxi̘}ひY蔯_醨鯘煑橾8?䵎쨋z儬ꁏ*@츾:": null
+                                                                                                                                 }
+                                                                                                                                }
+                                                                                                                               }
+                                                                                                                              ]
+                                                                                                                             ]
+                                                                                                                            ]}
+                                                                                                                           },
+                                                                                                                           "HO츧G": 3.694949578823609E17,
+                                                                                                                           "QC\u0012(翻曇Tf㷟bGBJ옉53\\嚇ᛎD/\u001b夾၉4\"핀@祎)쫆yD\"i먎Vn㿿V1W᨝䶀": -6150931500380982286,
+                                                                                                                           "Z㓮P翸鍱鉼K䋞꘺튿⭁Y": -7704503411315138850,
+                                                                                                                           "]모开ꬖP븣c霤<[3aΠ\"黁䖖䰑뮋ꤦ秽∼㑷冹T+YUt\"싳F↭䖏&鋌": -2.7231911483181824E18,
+                                                                                                                           "tꎖ": -4.9517948741799555E-19,
+                                                                                                                           "䋘즊.⬅IꬃۣQ챢ꄑ黐|f?C⾺|兕읯sC鬸섾整腨솷V": "旆柩l<K髝M戶鯮t:wR2ꉱ`9'l픪*폍芦㊢Pjjo堡^  읇얛嶅있ষ0?F",
+                                                                                                                           "下9T挞\\$yᮇk쌋⼇,ਉ": true,
+                                                                                                                           "櫨:ㆣ,邍lr崕祜㐮烜Z,XXD蕼㉴ kM꯽?P0﹉릗": null,
+                                                                                                                           "gv솠歽閘4镳䗄2澾>쪦sᖸMy㦅울썉瘗㎜檵9ꍂ駓ૉᚿ/u3씅徐拉[Z䞸ࡗ1ꆱ&Q풘?ǂ8\u0011BCDY2볨;鸏": null,
+                                                                                                                           "幫 n煥s쁇펇 왊-$C\"衝:\u0014㣯舼.3뙗Yl⋇\"K迎멎[꽵s}9鉳UK8쐥\"掄㹖h㙈!얄સ?Ꜳ봺R伕UTD媚I䜘W鏨蔮": -4.150842714188901E-17,
+                                                                                                                           "ﺯ^㄄\b죵@fྉkf颡팋Ꞧ{/Pm0V둳⻿/落韒ꊔᚬ@5螺G\\咸a谆⊪ቧ慷绖?财(鷇u錝F=r၍橢ឳn:^iᴵtD볠覅N赴": null
+                                                                                                                          }]
+                                                                                                                         }]
+                                                                                                                        }
+                                                                                                                       ]
+                                                                                                                      ]}
+                                                                                                                     ]},
+                                                                                                                     "謯?w厓奰T李헗聝ឍ貖o⪇弒L!캶$ᆅ": -4299324168507841322,
+                                                                                                                     "뺊奉_垐浸延몏孄Z舰2i$q붿좾껇d▵餏\"v暜Ҭ섁m￴g>": -1.60911932510533427E18
+                                                                                                                    }
+                                                                                                                   ]
+                                                                                                                  }
+                                                                                                                 ]
+                                                                                                                ]],
+                                                                                                                "퉝꺔㠦楶Pꅱ": 7517896876489142899,
+                                                                                                                "": false
+                                                                                                               }
+                                                                                                              ]},
+                                                                                                              "是u&I狻餼|谖j\"7c됮sסּ-踳鉷`䣷쉄_A艣鳞凃*m⯾☦椿q㎭N溔铉tlㆈ^": 1.93547720203604352E18,
+                                                                                                              "kⲨ\\%vr#\u000bⒺY\\t<\/3﬌R訤='﹠8蝤Ꞵ렴曔r": false
+                                                                                                             }
+                                                                                                            ]},
+                                                                                                            "阨{c?C\u001d~K?鎌Ԭ8烫#뙣P초遗t㭱E­돒䆺}甗[R*1!\\~h㕅᰺@<9JꏏષI䳖栭6綘걹ᅩM\"▯是∔v鬽顭⋊譬": "운ﶁK敂(欖C취پ℄爦賾"
+                                                                                                           }
+                                                                                                          }}
+                                                                                                         }],
+                                                                                                         "鷨赼鸙+\\䭣t圙ڹx᜾ČN<\/踘\"S_맶a鷺漇T彚⎲i㈥LT-xA캔$\u001cUH=a0츺l릦": "溣㣂0濕=鉵氬駘>Pꌢpb솇쬤h힊줎獪㪬CrQ矠a&脍꼬爼M茴/΅\u0017弝轼y#Ꞡc6둴=?R崏뷠麖w?"
+                                                                                                        },
+                                                                                                        "閕ᘜ]CT)䵞l9z'xZF{:ؐI/躅匽졁:䟇AGF૸\u001cퟗ9)駬慟ꡒꆒRS״툋A<>\u0010\"ꂔ炃7g덚E৏bꅰ輤]o㱏_뷕ܘ暂\"u": "芢+U^+㢩^鱆8*1鈶鮀\u0002뺰9⬳ꪮlL䃣괟,G8\u20a8DF㉪錖0ㄤ瓶8Nଷd?眡GLc陓\\_죌V쁰ल二?c띦捱 \u0019JC\u0011b⤉zẒT볕\"绣蘨뚋cꡉkI\u001e鳴",
+                                                                                                        "ꃣI'{6u^㡃#཰Kq4逹y൒䧠䵮!㱙/n??{L풓ZET㙠퍿X2᩟綳跠葿㚙w཮x캽扳B唕S|尾}촕%N?o䪨": null,
+                                                                                                        "ⰴFjෟ셈[\u0018辷px?椯\\1<ﲻ栘ᣁ봢憠뉴p": -5263694954586507640
+                                                                                                       }
+                                                                                                      ]
+                                                                                                     ]]
+                                                                                                    ]}
+                                                                                                   ]}]
+                                                                                                  ]
+                                                                                                 ],
+                                                                                                 "?#癘82禩鋆ꊝty?&": -1.9419029518535086E-19
+                                                                                                }
+                                                                                               ]
+                                                                                              ]
+                                                                                             ]}
+                                                                                            ]
+                                                                                           ]
+                                                                                          ],
+                                                                                          "훊榲.|῕戄&.㚏Zꛦ2\"䢥ሆ⤢fV_摕婔?≍Fji冀탆꜕i㏬_ẑKᅢ꫄蔻XWc|饡Siẘ^㲦?羡2ぴ1縁ᙅ?쐉Ou": false
+                                                                                         }]]
+                                                                                        ]}}},
+                                                                                        "慂뗄卓蓔ᐓ匐嚖/颹蘯/翻ㆼL?뇊,텵<\\獷ごCボ": null
+                                                                                       },
+                                                                                       "p溉ᑟi짣z:䒤棇r^٫%G9缑r砌롧.물农g?0׼ሩ4ƸO㣥㯄쩞ጩ": null,
+                                                                                       "껎繥YxK\"F젷쨹뤤1wq轫o?鱑뜀瘊?뎃h灑\\ꛣ}K峐^ኖ⤐林ꉓhy": null
+                                                                                      }
+                                                                                     ],
+                                                                                     "᱀n肓ㄛ\"堻2>m殮'1橌%Ꞵ군=Ӳ鯨9耛<\/n據0u彘8㬇៩f᏿诙]嚊": "䋯쪦S럶匏ㅛ#)O`ሀX_鐪渲⛀㨻宅闩➈ꢙஶDR⪍"
+                                                                                    },
+                                                                                    "tA썓龇 ⋥bj왎录r땽✒롰;羋^\\?툳*┎?썀ma䵳넅U䳆૘〹䆀LQ0\b疀U~u$M}(鵸g⳾i抦뛹?䤈땚검.鹆?ꩡtⶥGĒ;!ቹHS峻B츪켏f5≺": 2366175040075384032,
+                                                                                    "전pJjleb]ួ": -7.5418493141528422E18,
+                                                                                    "n.鎖ጲ\n?,$䪘": true
+                                                                                   },
+                                                                                   "欈Ar㉣螵᪚茩?O)": null
+                                                                                  },
+                                                                                  "쫸M#x}D秱欐K=侫们丐.KꕾxẠ\u001e㿯䣛F܍캗qq8꟞ṢFD훎⵳簕꭛^鳜\u205c٫~⑟~冫ऊ2쫰<\/戲윱o<\"": true
+                                                                                 },
+                                                                                 "㷝聥/T뱂\u0010锕|内䞇x侁≦㭖:M?iM᣿IJe煜dG࣯尃⚩gPt*辂.{磼럾䝪@a\\袛?}ᓺB珼": true
+                                                                                }
+                                                                               }
+                                                                              ]]}]}},
+                                                                              "tn\"6ꫤ샾䄄;銞^%VBPwu묪`Y僑N.↺Ws?3C⤻9唩S䠮ᐴm;sᇷ냞඘B/;툥B?lB∤)G+O9m裢0kC햪䪤": -4.5941249382502277E18,
+                                                                              "ᚔt'\\愫?鵀@\\びꂕP큠<<]煹G-b!S?\nꖽ鼫,ݛ&頺y踦?E揆릱H}햧캡b@手.p탻>췽㣬ꒅ`qe佭P>ᓂ&?u}毚ᜉ蟶頳졪ᎏzl2wO": -2.53561440423275936E17
+                                                                             }]}
+                                                                            }
+                                                                           ]
+                                                                          ]],
+                                                                          "潈촒⿂叡": 5495738871964062986
+                                                                         }
+                                                                        ]]
+                                                                       }
+                                                                      ]
+                                                                     ]}
+                                                                    ]]
+                                                                   ]]
+                                                                  ]}
+                                                                 ]
+                                                                ]},
+                                                                "ႁq킍蓅R`謈蟐ᦏ儂槐僻ﹶ9婌櫞釈~\"%匹躾ɢ뤥>࢟瀴愅?殕节/냔O✬H鲽엢?ᮈੁ⋧d␽㫐zCe*": 2.15062231586689536E17,
+                                                                "㶵Ui曚珰鋪ᾼ臧P{䍏䷪쨑̟A뼿T渠誈䏚D1!잶<\/㡍7?)2l≣穷᛾稝{:;㡹nemיּ訊`G": null,
+                                                                "䀕\"飕辭p圁f#뫆䶷뛮;⛴ᩍ3灚덏ᰝ쎓⦷詵%᜖Մfs⇫(\u001e~P|ﭗCⲾផv湟W첋(텪બT<บSꏉ੗⋲X婵i ӵ⇮?L䬇|ꈏ?졸": 1.548341247351782E-19
+                                                               }
+                                                              ]
+                                                             },
+                                                             "t;:N\u0015q鐦Rt缆{ꮐC?஛㷱敪\\+鲊㉫㓪몗릙竏(氵kYS": "XᰂT?൮ô",
+                                                             "碕飦幑|+ 㚦鏶`镥ꁩ B<\/加륙": -4314053432419755959,
+                                                             "秌孳(p!G?V傫%8ሽ8w;5鲗㦙LI檸\u2098": "zG N볞䆭鎍흘\\ONK3횙<\/樚立圌Q튅k쩎Ff쁋aׂJK銆ઘ즐狩6༥✙䩜篥CzP(聻駇HHퟲ讃%,ά{렍p而刲vy䦅ክ^톺M楒鍢㹳]Mdg2>䤉洞",
+                                                             "踛M젧>忔芿㌜Zk": 2215369545966507819,
+                                                             "씐A`$槭頰퍻^U覒\bG毲aᣴU;8!팲f꜇E⸃_卵{嫏羃X쀳C7뗮m(嚼u N܁谟D劯9]#": true,
+                                                             "ﻩ!뵸-筚P᭛}ἰ履lPh?౮ⶹꆛ穉뎃g萑㑓溢CX뾇G㖬A錟]RKaꄘ]Yo+@䘁's섎襠$^홰}F": null
+                                                            },
+                                                            "粘ꪒ4HXᕘ蹵.$區\r\u001d묁77pPc^y笲Q<\/ꖶ 訍䃍ᨕG?*": 1.73773035935040224E17
+                                                           },
+                                                           "婅拳?bkU;#D矠❴vVN쩆t㜷A풃갮娪a%鮏絪3dAv룒#tm쑬⌛qYwc4|L8KZ;xU⓭㳔밆拓EZ7襨eD|隰ऌ䧼u9Ԣ+]贴P荿": 2.9628516456987075E18
+                                                          }]}}]
+                                                         ]}
+                                                        }}
+                                                       ]}]
+                                                      ],
+                                                      "|g翉F*湹̶\u0005⏐1脉̀eI쩓ᖂ㫱0碞l䴨ꑅ㵽7AtἈ턧yq䳥塑:z:遀ᄐX눔擉)`N3昛oQ셖y-ڨ⾶恢ꈵq^<\/": null,
+                                                      "菹\\랓G^璬x৴뭸ゆUS겧﮷Bꮤ ┉銜᯻0%N7}~f洋坄Xꔼ<\/4妟Vꄟ9:౟곡t킅冩䧉笭裟炂4봋ⱳ叺怊t+怯涗\"0㖈Hq": false,
+                                                      "졬믟'ﺇফ圪쓬멤m邸QLব䗁愍4jvs翙 ྍ꧀艳H-|": null,
+                                                      "컮襱⣱뗠 R毪/鹙꾀%헳8&": -5770986448525107020
+                                                     }
+                                                    ],
+                                                    "B䔚bꐻ뙏姓展槰T-똌鷺tc灿᫽^㓟䏀o3o$꘭趙萬I顩)뇭Ἑ䓝\f@{ᣨ`x3蔛": null
+                                                   }
+                                                  ]
+                                                 ]
+                                                }],
+                                                "⦖扚vWꃱ꥙㾠壢輓{-⎳鹷贏璿䜑bG倛⋐磎c皇皩7a~ﳫU╣Q࠭ꎉS摅姽OW.홌ೞ.": null,
+                                                "蚪eVlH献r}ᮏ믠ﰩꔄ@瑄ⲱ": null,
+                                                "퀭$JWoꩢg역쁍䖔㑺h&ୢtXX愰㱇?㾫I_6 OaB瑈q裿": null,
+                                                "꽦ﲼLyr纛Zdu珍B絟쬴糔?㕂짹䏵e": "ḱ\u2009cX9멀i䶛簆㳀k"
+                                               }
+                                              ]]]],
+                                              "(_ꏮg່澮?ᩑyM<艷\u001aꪽ\\庼뙭Z맷㰩Vm\\lY筺]3㋲2㌩㄀Eਟ䝵⨄쐨ᔟgङHn鐖⤇놋瓇Q탚單oY\"♆臾jHᶈ征ቄ??uㇰA?#1侓": null
+                                             },
+                                             "觓^~ሢ&iI띆g륎ḱ캀.ᓡꀮ胙鈉": 1.0664523593012836E-19,
+                                             "y詭Gbᔶऽs댁U:杜⤎ϲ쁗⮼D醄诿q뙰I#즧v蔎xHᵿt᡽[**?崮耖p缫쿃L菝,봬ꤦC쯵#=X1瞻@OZc鱗CQTx": null
+                                            }
+                                           ]
+                                          }}],
+                                          "剘紁\u0004\\Xn⊠6,တױ;嵣崇}讃iႽ)d1\\䔓": null
+                                         },
+                                         "脨z\"{X,1u찜<'k&@?1}Yn$\u0015Rd輲ーa쮂굄+B$l": true,
+                                         "諳>*쭮괐䵟Ґ+<箁}빀䅱⡔檏臒hIH脟ꩪC핝ଗP좕\"0i<\/C褻D۞恗+^5?'ꂱ䚫^7}㡠cq6\\쨪ꔞꥢ?纖䫀氮蒫侲빦敶q{A煲G": -6880961710038544266
+                                        }}]
+                                       },
+                                       "5s⨲JvಽῶꭂᄢI.a৊": null,
+                                       "?1q꽏쿻ꛋDR%U娝>DgN乭G": -1.2105047302732358E-19
+                                      }
+                                     ]
+                                    ]},
+                                    "qZz`撋뙹둣j碇쁏\\ꆥ\u0018@藴疰Wz)O{F䶛l᷂绘訥$]뮍夻䢋䩇萿獰樧猵⣭j萶q)$꬚⵷0馢W:Ⱍ!Qoe": -1666634370862219540,
+                                    "t": "=wp|~碎Q鬳Ӎ\\l-<\/^ﳊhn퐖}䍔t碵ḛ혷?靻䊗",
+                                    "邙쇡㯇%#=,E4勃驆V繚q[Y댻XV㡸[逹ᰏ葢B@u=JS5?bLRn얮㍉⏅ﰳ?a6[&큟!藈": 1.2722786745736667E-19
+                                   },
+                                   "X블땨4{ph鵋ꉯ웸 5p簂䦭s_E徔濧d稝~No穔噕뽲)뉈c5M윅>⚋[岦䲟懷恁?鎐꓆ฬ爋獠䜔s{\u001bm鐚儸煛%bﯿXT>ꗘ@8G": 1157841540507770724,
+                                   "媤娪Q杸\u0011SAyᡈ쿯": true,
+                                   "灚^ಸ%걁<\/蛯<O\"-刷㏠R(kO=䢊䅎l䰓팪A絫픧": "譔\\㚄 ?R7㔪G㋉⣰渆?\\#|gN⤴;W칷A׫癮଼ೣ㏳뒜7d恓꾲0扬S0ᆵi/贎ྡn䆋武",
+                                   "萇砇Gこ朦켋Wq`㞲攊*冁~霓L剢zI腧튴T繙Cঅ뫬╈뮜ㄾ䦧촄椘B⊬츩r2f㶱厊8eϬ{挚␯OM焄覤\\(Kӡ>?\"祴坓\\\\'흍": -3.4614808555942579E18,
+                                   "釴U:O湛㴑䀣렑縓\ta)<D8ﭳ槁髭D.L|xs斋敠\"띋早7wᎍ": true,
+                                   "쵈+쬎簨up䓬?q+~\u0019仇뵈᫯3ᵣ恘枰劫㪢u珘-퀭:컙:u`⌿A(9鄦!<珚nj3:Hࣨ巋䀁旸뎈맻v\"\\(곘vO㤰aZe<\/W鹙鄜;l厮둝": null,
+                                   "": -1.2019926774977002E-18,
+                                   "%者O7.Nꪍs梇接z蕜綛<\/䜭\"죊y<曋漵@Ś⹝sD⟓jݗᢜ?z/9ၲMa쨮긗贎8ᔮ㦛;6p뾥໭䭊0B찛+)(Y㿠鸁䕒^옥": "鬃뫤&痽舎J콮藐󽸰ᨨMꈫ髿v<N\\.삒껅я1ꭼ5䴷5쳬臨wj덥"
+                                  }],
+                                  "鷎'㳗@帚妇OAj' 谬f94ǯ(횡ヒ%io쪖삐좛>(j:숾却䗌gCiB뽬Oyuq輥厁/7)?今hY︺Q": null
+                                 }
+                                ]
+                               ]]]}]
+                              ],
+                              "I笔趠Ph!<ཛྷ㸞诘X$畉F\u0005笷菟.Esr릙!W☆䲖뗷莾뒭U\"䀸犜Uo3Gꯌx4r蔇᡹㧪쨢準<䂀%ࡡꟼ瑍8炝Xs0䀝销?fi쥱ꆝલBB": -8571484181158525797,
+                              "L⦁o#J|\"⽩-㱢d㌛8d\\㶤傩儻E[Y熯)r噤὘勇 }": "e(濨쓌K䧚僒㘍蠤Vᛸ\"络QJL2,嬓왍伢㋒䴿考澰@(㏾`kX$끑эE斡,蜍&~y",
+                              "vj.|统圪ᵮPL?2oŶ`밧\"勃+0ue%⿥绬췈체$6:qa렐Q;~晘3㙘鹑": true,
+                              "ශؙ4獄⶿c︋i⚅:ん閝Ⳙ苆籦kw{䙞셕pC췃ꍬ␜꟯ꚓ酄b힝hwk꭭M鬋8B耳쑘WQ\\偙ac'唀x᪌\u2048*h짎#ፇ鮠뾏ឿ뀌": false,
+                              "⎀jꄒ牺3Ⓝ컴~?親ꕽぼܓ喏瘘!@<튋㐌꿱⩦{a?Yv%⪧笯Uܱ栅E搚i뚬:ꄃx7䙳ꦋ&䓹vq☶I䁘ᾘ涜\\썉뺌Lr%Bc㍜3?ꝭ砿裞]": null,
+                              "⭤뙓z(㡂%亳K䌽꫿AԾ岺㦦㼴輞낚Vꦴw냟鬓㹈뽈+o3譻K1잞": 2091209026076965894,
+                              "ㇲ\t⋇轑ꠤ룫X긒\"zoY읇희wj梐쐑l侸`e%s": -9.9240075473576563E17,
+                              "啸ꮑ㉰!ᚓ}銏": -4.0694813896301194E18,
+                              ">]囋੽EK뇜>_ꀣ緳碖{쐐裔[<ನ\"䇅\"5L?#xTwv#罐\u0005래t应\\N?빗;": "v쮽瞭p뭃"
+                             }
+                            ]],
+                            "斴槾?Z翁\"~慍弞ﻆ=꜡o5鐋dw\"?K蠡i샾ogDﲰ_C*⬟iㇷ4nય蟏[㟉U꽌娛苸 ঢ়操贻洞펻)쿗૊許X⨪VY츚Z䍾㶭~튃ᵦ<\/E臭tve猑x嚢": null,
+                            "锡⛩<\/칥ꈙᬙ蝀&Ꚑ籬■865?_>L詏쿨䈌浿弥爫̫lj&zx<\/C쉾?覯n?": null,
+                            "꾳鑤/꼩d=ᘈn挫ᑩ䰬ZC": "3錢爋6Ƹ䴗v⪿Wr益G韠[\u0010屗9쁡钁u?殢c䳀蓃樄욂NAq赟c튒瘁렶Aૡɚ捍"
+                           }
+                          ]
+                         ]
+                        ]}
+                       ]
+                      ]
+                     }]]]}}
+                    ]}],
+                    "Ej䗳U<\/Q=灒샎䞦,堰頠@褙g_\u0003ꤾfⶽ?퇋!łB〙ד3CC䌴鈌U:뭔咎(Qો臃䡬荋BO7㢝䟸\"Yb": 2.36010731779814E-20,
+                    "逸'0岔j\u000e눘먷翌C츊秦=ꭣ棭ှ;鳸=麱$XP⩉駚橄A\\좱⛌jqv䰞3Ь踌v㳆¹gT┌gvLB賖烡m?@E঳i": null
+                   },
+                   "曺v찘ׁ?&绫O័": 9107241066550187880
+                  }
+                 ]
+                ],
+                "(e屄\u0019昜훕琖b蓘ᬄ0/۲묇Z蘮ဏ⨏蛘胯뢃@㘉8ሪWᨮ⦬ᅳ䅴HI၇쨳z囕陻엣1赳o": true,
+                ",b刈Z,ၠ晐T솝ŕB⩆ou'퐼≃绗雗d譊": null,
+                "a唥KB\"ﳝ肕$u\n^⅄P䟼냉䞸⩪u윗瀱ꔨ#yşs꒬=1|ﲤ爢`t౐튼쳫_Az(Ṋ擬㦷좕耈6": 2099309172767331582,
+                "?㴸U<\/䢔ꯡ阽扆㐤q鐋?f㔫wM嬙-;UV죫嚔픞G&\"Cᗍ䪏풊Q": "VM7疹+陕枡툩窲}翡䖶8欞čsT뮐}璤:jﺋ鎴}HfA൝⧻Zd#Qu茅J髒皣Y-︴[?-~쉜v딏璮㹚䅊﩯<-#\u000e걀h\u0004u抱﵊㼃U<㱷⊱IC進"
+               },
+               "숌dee節鏽邺p넱蹓+e罕U": true
+              }
+             ],
+             "b⧴룏??ᔠ3ぱ>%郿劃翐ꏬꠛW瞳᫏누躨狀ໄy੽\"ីuS=㨞馸k乆E": "トz݈^9R䬑<ﮛG<s~<\/?ⵆᏥ老熷u듷"
+            }}
+           ]
+          }
+         ]}
+        }
+       }
+      }
+     }},
+     "宩j鬅쳜QꝖјy獔Z᭵1v擖}䨿F%cֲ᫺贴m塼딚NP亪\"ᅨsa뺯ꘓ2:9뛓༂쌅䊈#>Rꨳ\u000fTT泠纷꽀MR<CBxP񱒫X쇤": -2.22390568492330598E18,
+     "?䯣ᄽ@Z鸅->ᴱ纊:㠭볮?%N56%鈕1䗍䜁a䲗j陇=뿻偂衋࿘ᓸ?ᕵZ+<\/}H耢b䀁z^f$&㝒LkꢳI脚뙛u": 5.694374481577558E-20
+    }]
+   }
+  ]],
+  "obj": {"key": "wrong value"},
+  "퓲꽪m{㶩/뇿#⼢&᭙硞㪔E嚉c樱㬇1a綑᝖DḾ䝩": null
+ },
+ "key": "6.908319653520691E8",
+ "z": {
+  "6U閆崬밺뀫颒myj츥휘:$薈mY햚#rz飏+玭V㭢뾿愴YꖚX亥ᮉ푊\u0006垡㐭룝\"厓ᔧḅ^Sqpv媫\"⤽걒\"˽Ἆ?ꇆ䬔未tv{DV鯀Tἆl凸g\\㈭ĭ즿UH㽤": null,
+  "b茤z\\.N": [[
+   "ZL:ᅣዎ*Y|猫劁櫕荾Oj为1糕쪥泏S룂w࡛Ᏺ⸥蚙)",
+   {
+    "\"䬰ỐwD捾V`邀⠕VD㺝sH6[칑.:醥葹*뻵倻aD\"": true,
+    "e浱up蔽Cr෠JK軵xCʨ<뜡癙Y獩ケ齈X/螗唻?<蘡+뷄㩤쳖3偑犾&\\첊xz坍崦ݻ鍴\"嵥B3㰃詤豺嚼aqJ⑆∥韼@\u000b㢊\u0015L臯.샥": false,
+    "l?Ǩ喳e6㔡$M꼄I,(3᝝縢,䊀疅뉲B㴔傳䂴\u0088㮰钘ꜵ!ᅛ韽>": -5514085325291784739,
+    "o㮚?\"춛㵉<\/﬊ࠃ䃪䝣wp6ἀ䱄[s*S嬈貒pᛥ㰉'돀": [{
+     "(QP윤懊FI<ꃣ『䕷[\"珒嶮?%Ḭ壍಻䇟0荤!藲끹bd浶tl\u2049#쯀@僞": {"i妾8홫": {
+      ",M맃䞛K5nAㆴVN㒊햬$n꩑&ꎝ椞阫?/ṏ세뉪1x쥼㻤㪙`\"$쟒薟B煌܀쨝ଢ଼2掳7㙟鴙X婢\u0002": "Vዉ菈᧷⦌kﮞఈnz*<?੃'ahhCFX(\u0007⮊E㭍䱾Gxꥩr❣.洎",
+      "뻴5bDD큯O傆盓왻U?ꞅꐊN鐭᧢τ\"迳豲8\u001b䃥ꂻ䴺ྸH筴,": {
+       "\"L鸔SE㬡XV&~͎'놅蔞눶l匛?'.K氁\\ƢẨ疇mΊ'꽳&!鹠m'|{P痊 秄쒿u\u00111䋧gϩx7t丗D䊨䠻z0.A0": -1.50139930144708198E18,
+       "8鋂뛷?첒B☚>﷜FM\"荭7ꍀ-VR<\/';䁙E9$䩉\f @s?퍪o3^衴cඎ䧪aK鼟q䆨c{䳠5mᒲՙ蘹ᮩ": {
+        "F㲷JGo⯍P덵x뒳p䘧☔\"+ꨲ吿JfR㔹)4n紬G练Q፞!C|": true,
+        "p^㫮솎oc.೚A㤠??r\u000f)⾽⌲們M2.䴘䩳:⫭胃\\፾@Fᭌ\\K": false,
+        "蟌Tk愙潦伩": {
+         "a<\/@ᾛ慂侇瘎": -7271305752851720826,
+         "艓藬/>၄ṯ,XW~㲆w": {"E痧郶)㜓ha朗!N赻瞉駠uC\u20ad辠<Ve?폱!Im䁎搄:*s 9諚Prᵾ뒰髶B̌qWA8梸vS⫊⢳{t㺲q㺈랊뮣RqK밢쳪": [
+          false,
+          {
+           "\u000b=>x퓮⣫P1ࠫLMMX'M刼唳됤": null,
+           "P쓫晥%k覛ዩIUᇸ滨:噐혲lMR5䋈V梗>%幽u頖\\)쟟": null,
+           "eg+昉~矠䧞难\b?gQ쭷筝\\eꮠNl{ಢ哭|]Mn銌╥zꖘzⱷ⭤ᮜ^": [
+            -1.30142114406914976E17,
+            -1.7555215491128452E-19,
+            null,
+            "渾㨝ߏ牄귛r?돌?w[⚞ӻ~廩輫㼧/",
+            -4.5737191805302129E18,
+            null,
+            "xy࿑M[oc셒竓Ⓔx?뜓y䊦>-D켍(&&?XKkc꩖ﺸᏋ뵞K伕6ী)딀P朁yW揙?훻魢傎EG碸9類៌g踲C⟌aEX舲:z꒸许",
+            3808159498143417627,
+            null,
+            {"m試\u20df1{G8&뚈h홯J<\/": {
+             "3ஸ厠zs#1K7:rᥞoꅔꯧ&띇鵼鞫6跜#赿5l'8{7㕳(b/j\"厢aq籀ꏚ\u0015厼稥": [
+              -2226135764510113982,
+              true,
+              null,
+              {
+               "h%'맞S싅Hs&dl슾W0j鿏MםD놯L~S-㇡R쭬%": null,
+               "⟓咔謡칲\u0000孺ꛭx旑檉㶆?": null,
+               "恇I転;￸B2Y`z\\獓w,놏濐撐埵䂄)!䶢D=ഭ㴟jyY": {
+                "$ࡘt厛毣ൢI芁<겿骫⫦6tr惺a": [
+                 6.385779736989334E-20,
+                 false,
+                 true,
+                 true,
+                 [
+                  -6.891946211462334E-19,
+                  null,
+                  {
+                   "]-\\Ꟑ1/薓❧Ὂ\\l牑\u0007A郃)阜ᇒᓌ-塯`W峬G}SDb㬨Q臉⮻빌O鞟톴첂B㺱<ƈmu챑J㴹㷳픷Oㆩs": {
+                    "\"◉B\"pᶉt骔J꩸ᄇᛐi╰栛K쉷㉯鐩!㈐n칍䟅難>盥y铿e୔蒏M貹ヅ8嘋퀯䉶ጥ㏢殊뻳\"絧╿ꉑ䠥?∃蓊{}㣣Gk긔H1哵峱": false,
+                    "6.瀫cN䇮F㧺?\\椯=ڈT䘆4␘8qv": -3.5687501019676885E-19,
+                    "Q?yऴr혴{஀䳘p惭f1ﹸ䅷䕋贲<ྃᄊ繲hq\\b|#QSTs1c-7(䵢\u2069匏絘ꯉ:l毴汞t戀oෟᵶ뮱፣-醇Jx䙬䐁햢0࣫ᡁgrㄛ": "\u0011_xM/蘇Chv;dhA5.嗀绱V爤ﰦi뵲M",
+                    "⏑[\"ugoy^儣횎~U\\섯겜論l2jw஌yD腅̂\u0019": true,
+                    "ⵯɇ䐲᫿࢚!㯢l샅笶戮1꣖0Xe": null,
+                    "劅f넀識b宁焊E찓橵G!ʱ獓뭔雩괛": [{"p⹣켙[q>燣䍃㞽ᩲx:쓤삘7玑퇼0<\/q璂ᑁ[Z\\3䅵䧳\u0011㤧|妱緒C['췓Yꞟ3Z鳱雼P錻BU씧U`ᢶg蓱>.1ӧ譫'L_5V䏵Ц": [
+                     false,
+                     false,
+                     {"22䂍盥N霂얢<F8꼵7Gసyh뀍g᦭ꄢx硴嬢\u001a?E괆T|;7犟\"Wt%䐩O⨵t&#ᬋK'蜍Ძ揔⾠鲂T멷靃\u0018䓞cE": {"f=䏏츜瞾zw?孡鏣\\铀᫞yẆg(\u0011M6(s2]`ਫ": [[[{
+                      "'y몱纣4S@\\,i㷯럹Ua充Tᣢ9躘Zଞ쥿䐊s<\/刎\\\"뉦-8/": "蜑.X0꭛낢륹i젨ꚁ<8?s볕蝡|Q✬᯦@\\G㑢屿Mn졾J굤⥟JW뤵苑r쁕툄嵵?⾥O",
+                      "^1挲~[n귆誈央碠멪gI洷": -8214236471236116548,
+                      "sሣ%娌暡clr蟜㑓2\u000bS❟_X㨔⚴5~蔷ꀇ|Xu㬖,꤭卹r(g믇쩍%췸앙|栣U\\2]䤉+啠菡ꯎT鉹m\n/`SzDᅼ鞶": 1.1217523390167132E-19,
+                      "u톇=黚\\ ꂮ췵L>躰e9⑩_뵜斌n@B}$괻Yᐱ@䧋V\"☒-諯cV돯ʠ": true,
+                      "Ű螧ᔼ檍鍎땒딜qꄃH뜣<獧ूCY吓⸏>XQ㵡趌o끬k픀빯a(ܵ甏끆୯/6Nᪧ}搚ᆚ짌P牰泱鈷^d꣟#L삀\"㕹襻;k㸊\\f+": true,
+                      "쎣\",|⫝̸阊x庿k잣v庅$鈏괎炔k쬪O_": [
+                       "잩AzZGz3v愠ꉈⵎ?㊱}S尳௏p\r2>췝IP䘈M)w|\u000eE",
+                       -9222726055990423201,
+                       null,
+                       [
+                        false,
+                        {"´킮'뮤쯽Wx讐V,6ᩪ1紲aႈ\u205czD": [
+                         -930994432421097536,
+                         3157232031581030121,
+                         "l貚PY䃛5@䭄<nW\u001e",
+                         [
+                          3.801747732605161E18,
+                          [
+                           null,
+                           false,
+                           {
+                            "": 4.0442013775147072E16,
+                            "2J[sᡪ㞿|n'#廲꯬乞": true,
+                            "B[繰`\\㏏a̼㨀偛㽓<\/꥖ᵈO让\r43⡩徑ﬓ๨ﮕx:㣜o玐ꉟぢC珵὆ᓞ쇓Qs氯였9駵q혃Ljꂔ<\/昺+t䐋༻猙c沪~櫆bpJ9UᏐ:칣妙!皗F4㑄탎䕀櫳振讓": 7.3924182188256287E18,
+                            "H磵ai委曷n柋T<\/勿F&:ꣴfU@㿗榻Lb+?퍄sp\"᪟~>귻m㎮琸f": 1.0318894506812084E-19,
+                            "࢜⩢Ш䧔1肽씮+༎ᣰ闺馺窃䕨8Mƶq腽xc(៯夐J5굄䕁Qj_훨/~価.䢵慯틠퇱豠㼇Qﵘ$DuSp(8Uญ<\/ಟ룴𥳐ݩ$": 8350772684161555590,
+                            "ㆎQ䄾\u001bpᩭ${[諟^^骴᤮b^ㅥI┧T㉇⾞\"绦<AYJ⒃-oF<\/蛎mm;obh婃ᦢ": false,
+                            "䔤䣈?汝.p襟&d㱅\\Jᚠ@?O첁ࢽ휔VR蔩|㒢柺": [[
+                             "-ꕨ岓棻r@鿆^3~䪤Ѐ狼︌ﹲ\\᝸MlE쵠Q+",
+                             null,
+                             false,
+                             3346674396990536343,
+                             null,
+                             {
+                              "": null,
+                              "/䏨S쨑,&繷㉥8C엮赸3馢|뇲{鄎ꗇqFﶉ雕UD躢?Ꟛအ꽡[hᕱᗅ㦋쭞Mユ茍?L槽암V#성唐%㣕嘵\\ڹ(嘏躿&q": [
+                               -1364715155337673920,
+                               false,
+                               -8197733031775379251,
+                               "E팗鮲JwH\\觡܈᜝\"+뉞娂N휗v噙၂깼\u001dD帒l%-斔N",
+                               -3.844267973858711E-20,
+                               [{"쬯(褈Q 蟚뿢 /ⱖ㻥\u0017/?v邘䃡0U.Z1x?鯔V尠8Em<": [[[
+                                null,
+                                [
+                                 null,
+                                 -5841406347577698873,
+                                 "킷\"S⋄籞繗솸ᵣ浵w쑿ퟗ7nᎏx3앙z㘌쿸I葥覯㬏0ᆝb汆狺뷘ႀnꋋ",
+                                 -1227911573141158702,
+                                 {
+                                  "u㉮PᾺV鵸A\\g*ࡗ9슟晭+ͧↀ쿅H\u001c꾣犓}癇恛ᗬ黩䟘X梑鐆e>r䰂f矩'-7䡭桥Dz兔V9谶居㺍ᔊ䩯덲.\u001eL0ὅㅷ釣": [{
+                                   "<쯬J卷^숞u࠯䌗艞R9닪g㐾볎a䂈歖意:%鐔|ﵤ|y}>;2,覂⶚啵tb*仛8乒㓶B࿠㯉戩oX 貘5V嗆렽낁߼4h䧛ꍺM空\\b꿋貼": 8478577078537189402,
+                                   "VD*|吝z~h譺aᯒ": {
+                                    "YI췢K<\/濳xNne玗rJo쾘3핰鴊\"↱AR:ࢷ\"9?\"臁說)?誚ꊏe)_D翾W?&F6J@뺾ꍰNZ醊Z쾈വH嶿?炫㷱鬰M겈<bS}㎥l|刖k": {"H7鷮퇢_k": [
+                                     true,
+                                     "s㟑瀭좾쮀⑁Y찺k맢戲쀸俻ກ6儮끗扖puߖꜻ馶rꈞ痘?3ྚ畊惘䎗\"vv)*臔웅鿈䧲^v,껛㰙J <ᚶ5",
+                                     7950276470944656796,
+                                     4.9392301536234746E17,
+                                     -4796050478201554639,
+                                     "yꬴc<3㻚",
+                                     "o塁\u20a4蒵鮬裢CᴧnB㭱f.",
+                                     false,
+                                     [
+                                      false,
+                                      "㡐弑V?瀆䰺q!출㇞yᘪ꼼(IS~Ka 烿ꟿ샕桤\u0005HQҹ㯪罂q萾⚇懋⦕둡v",
+                                      1862560050083946970,
+                                      "\u20b6[|(뭹gꍒ펉O轄Dl묽]ﯨ髯QEbA㒾m@롴礠㕓2땫n6ْ엘঵篳R잷꙲m색摪|@㿫5aK设f胭r8/NI4춫栵\\꯬2]",
+                                      false,
+                                      {
+                                       "\u000b7*㙛燏.~?䔊p搕e_拺艿뷍f{ꔻ1s驙`$Ė戧?q⋬沭?塷᭚蹀unoa5": {
+                                        "S귯o紞㾕ᅶ侏銇12|ʟ畴iNAo?|Sw$M拲գ㭄紧螆+,梔": null,
+                                        "㭚0?xB疱敻ேBPwv뾃熉(ӠpJ]갢\"Bj'\u0016GE椱<\/zgៅx黢礇h},M9ﴦ?LḨ": "Si B%~㬒E",
+                                        "핇㉊살㍢숨~ȪRo䦅D桺0z]﬽蠆c9ᣨyPP㿷U~㞐?쯟퍸宒뉆U|}㉓郾ࣻ*櫎꼪䁗s?~7\u001e㘔h9{aឋ}:㶒P8": [{"\\R囡쐬nN柋琍؛7칾 :㶃衇徜V 深f1淍♠i?3S角폞^ᆞ\u20e8ṰD\u0007秡+躒臔&-6": {
+                                         "䨑g.fh㔗=8!\"狿ൻLU^뻱g䲚㻐'W}k欤?๒鲇S꧗䫾$ĥ피": -794055816303360636,
+                                         "外頮詋~텡竆繃䏩苨뾺朁꼃瘹f*㉀枙NH/\u2027ꢁ}j묎vペq︉식뜡Od5 N顯ି烅仟Qfㆤ嚢(i䬅c;맧?嶰㩼츱獡?-": {
+                                          "e݆㍡⬬'2㻒?U篲鿄\"隻Ҭ5NꭰꤺBꀈ拾᩺[刯5곑Na램ﴦ዆]㝓qw钄\u001b\"Y洊䗿祏塥迵[⼞⠳P$꠱5먃0轢`": [{"獰E賝﫚b먭N긆Ⰹ史2逶ꜛ?H짉~?P}jj}侷珿_T>᭨b,⻁鈵P䕡䀠८ⱄ홎鄣": {
+                                           "@?k2鶖㋮\"Oರ K㨇廪儲\u0017䍾J?);\b*묀㗠섳햭1MC V": null,
+                                           "UIICP!BUA`ᢈ㋸~袩㗪⾒=fB﮴l1ꡛ죘R辂여ҳ7쮡<䩲`熕8頁": 4481809488267626463,
+                                           "Y?+8먙ᚔ鋳蜩럶1㥔y璜౩`": [
+                                            null,
+                                            1.2850335807501874E-19,
+                                            "~V2",
+                                            2035406654801997866,
+                                            {
+                                             "<숻1>\"": -8062468865199390827,
+                                             "M㿣E]}qwG莎Gn᝶(ꔙ\\D⬲iꇲs寢t駇S뀡ꢜ": false,
+                                             "pꝤ㎏9W%>M;-U璏f(^j1?&RB隧 忓b똊E": "#G?C8.躬ꥯ'?냪#< 渟&헿란zpo왓Kj}鷧XﻘMツb䕖;㪻",
+                                             "vE풤幉xz뱕쫥Ug㦲aH} ᣟp:鬼Yᰟ<Fɋ잣緂頒⺏䉲瑑䅂,C~ޅG!f熢-B7~9Pqࡢ[츑#3ꕎ,Öඳ聁⩅㵧춀뿍xy䌏͂tdj!箧᳆|9蚡돬": -2.54467378964089632E17,
+                                             "䵈䅦5빖,궆-:໿댾仫0ᙚyᦝhqᚄ": null,
+                                             "侯Y\"湛졯劇U셎YX灍ⅸ2伴|筧\\䁒㶶᷏쁑Waᦵᗱ㜏늾膠<Jc63<G\u20fe䇹66僣k0O\"_@U": null,
+                                             "姪y$#s漴JH璌Ӊ脛J㝾펔ﹴoꈶ㚸PD:薠쏖%說ថ蹂1]⾕5튄": {
+                                              "᝾Huw3䮅如쿺䍟嫝]<鰨ݷ?꯯䫓傩|ᐶස媽\\澒≡闢": "Mm\"쏇ᯄ졽\"楇<\/ꥆ흭局n隴@鿣w⠊4P贈徎W㊋;䤞'.팇蒁䡴egpx嗎wஅ獗堮ᛐnˁ︖䀤4噙?໚郝᱋ޘॎt恑姫籕殥陃\"4[ꝬqL4Wꠎx",
+                                              "ℇj遌5B뒚\" U": "硄ꏘ{憠굏:&t䌨m Cઌ쿣鞛XFꠟs䝭ﶃ\"格a0x闊昵吲L\\杚聈aꁸj싹獅\"灟ﱡ馆*굖糠<ꔏ躎",
+                                              "톌賠弳ꟍb\"螖X50sĶ晠3f秂坯Iⓟ:萘": 5.573183333596288E18,
+                                              "%䴺": [[[[
+                                               -6957233336860166165,
+                                               false,
+                                               null,
+                                               {
+                                                "\"\\௮茒袀ᕥ23ୃ괶?䕎.嚲◉㏞L+ᵡ艱hL콇붆@": null,
+                                                "%螥9ꭌ<\/-t": true,
+                                                ",9|耢椸䁓Xk죱\u0015$Ώ鲞[?엢ᝲ혪즈ⴂ▂ℴ㗯\"g뺘\\ꍜ#\u0002ヮ}ሎ芲P[鹮轧@냲䃦=#(": 2.78562909315899616E17,
+                                                "R?H䧰ⵇ<,憰쮼Q總iR>H3镔ᴚ斦\\鏑r*2橱G⼔F/.j": true,
+                                                "RK좬뎂a홠f*f㱉ᮍ⦋潙㨋Gu곌SGI3I뿐\\F',)t`荁蘯囯ﮉ裲뇟쥼_ገ驪▵撏ᕤV": 1.52738225997956557E18,
+                                                "^k굲䪿꠹B逤%F㱢漥O披M㽯镞竇霒i꼂焅륓\u00059=皫之눃\u2047娤閍銤唫ၕb<\/w踲䔼u솆맚,䝒ᝳ'/it": "B餹饴is権ꖪ怯ꦂẉဎt\"!凢谵⧿0\\<=(uL䷍刨쑪>俆揓Cy襸Q힆䆭涷<\/ᐱ0ɧ䗾䚹\\ኜ?ꄢᇘ`䴢{囇}᠈䴥X4퓪檄]ꥷ/3謒ሴn+g騍X",
+                                                "GgG꽬[(嫓몍6\u0004궍宩㙻/>\u0011^辍dT腪hxǑ%ꊇk,8(W⧂結P鬜O": [{
+                                                 "M㴾c>\\ᓲ\u0019V{>ꤩ혙넪㭪躂TS-痴໸闓⍵/徯O.M㏥ʷD囎⧔쁳휤T??鉬뇙=#ꢫ숣BX䭼<\/d똬졬g榿)eꨋﯪ좇첻<?2K)": null,
+                                                 "Z17縬z]愀䖌 ᾋBCg5딒국憍꾓aⲷ턷u:U촳驿?雺楶\u0001\u001c{q*ᰗ苑B@k揰z.*蓗7ረIm\"Oᱍ@7?_": true,
+                                                 "㺃Z<": -4349275766673120695,
+                                                 "휃䠂fa塆ffixKe'덬鏗੄뺾w࠾鑎k땢m*႑햞鐮6攊&虜h黚,Y䱳Sﭼ둺pN6": [
+                                                  false,
+                                                  "IΎ䣲,\"ᬮ˪癘P~Qlnx喁Sᮔ༬˨I珌m䜛酛\u0003iꐸ㦧cQ帲晼D' \\(粋wQcN\\뵰跈",
+                                                  [
+                                                   "D0\\L?M1쥍Kaꏌsd+盌귤憊tz䌣댐בO坂wϢ%ὒgp,Ai⎧ᶆI餾ꦍ棩嘅᳉怴%m]ၶis纖D凜镧o심b U",
+                                                   {
+                                                    "?଼\u0011Rv&^[+匚I趈T媫\u0010.䥤ᆯ1q僤HydⲰl㒽K'ᅾiౕ豲초딨@\u0013J'쪪VD౼P4Ezg#8*㋤W馓]c쿯8": false,
+                                                    "c/擯X5~JmK䵶^쐎ച|B|u[솝(X뚤6v}W㤘⠛aR弌臌쾭諦eⒷ僡-;㩩⭖ⷴ徆龄갬{䱓ᥩ!﯏⊚ᇨ<v燡露`:볉癮꨽り★Ax7Ꮀ譥~舑\\Vꍋ\"$)v": "e&sFF쬘OBd슊寮f蠛জ봞mn~锆竒G脁\"趵G刕䕳&L唽붵<\/I,X팚B⍥X,kԇҗ眄_慡:U附ᓚA蕧>\u001a\u0011\";~쓆BH4坋攊7힪",
+                                                    "iT:L闞椕윚*滛gI≀Wਟඊ'ꢆ縺뱹鮚Nꩁ᧬蕼21줧\\䋯``⍐\\㏱鳨": 1927052677739832894,
+                                                    "쮁缦腃g]礿Y㬙 fヺSɪ꾾N㞈": [
+                                                     null,
+                                                     null,
+                                                     {
+                                                      "!t,灝Y 1䗉罵?c饃호䉂Cᐭ쒘z(즽sZG㬣sഖE4뢜㓕䏞丮Qp簍6EZឪ겛fx'ꩱQ0罣i{k锩*㤴㯞r迎jTⲤ渔m炅肳": [
+                                                       -3.3325685522591933E18,
+                                                       [{"㓁5]A䢕1룥BC?Ꙍ`r룔Ⳛ䙡u伲+\u0001്o": [
+                                                        null,
+                                                        4975309147809803991,
+                                                        null,
+                                                        null,
+                                                        {"T팘8Dﯲ稟MM☻㧚䥧/8ﻥ⥯aXLaH\"顾S☟耲ît7fS෉놁뮔/ꕼ䓈쁺4\\霶䠴ᩢ<\/t4?죵>uD5➶༆쉌럮⢀秙䘥\u20972ETR3濡恆vB? ~鸆\u0005": {
+                                                         "`閖m璝㥉b뜴?Wf;?DV콜\u2020퍉౓擝宏ZMj3mJ먡-傷뱙yח㸷꥿ ໘u=M읝!5吭L4v\\?ǎ7C홫": null,
+                                                         "|": false,
+                                                         "~Ztᛋ䚘\\擭㗝傪W陖+㗶qᵿ蘥ᙄp%䫎)}=⠔6ᮢS湟-螾-mXH?cp": 448751162044282216,
+                                                         "\u209fad놹j檋䇌ᶾ梕㉝bוּ<d䗱:줰M酄\u0000X#_r獢A饓ꍗُKo_跔?ᪧ嵜鼲<": null,
+                                                         "ꆘ)ubI@h@洭Ai㜎䏱k\u0003?T䉐3间%j6j棍j=❁\\U毮ᬹ*8䀔v6cpj⭬~Q꿾뺶펵悡!쩭厝l六㽫6퇓ޭ2>": {"?苴ꩠD䋓帘5騱qﱖPF?☸珗顒yU ᡫcb䫎 S@㥚gꮒ쎘泴멖\\:I鮱TZ듒ᶨQ3+f7캙\"?\f풾\\o杞紟﻽M.⏎靑OP": [
+                                                          -2.6990368911551596E18,
+                                                          [{"䒖@<᰿<\/⽬tTr腞&G%᳊秩蜰擻f㎳?S㵧\r*k뎾-乢겹隷j軛겷0룁鮁": {")DO0腦:춍逿:1㥨่!蛍樋2": [{
+                                                           ",ꌣf侴笾m๫ꆽ?1?U?\u0011ꌈꂇ": {
+                                                            "x捗甠nVq䅦w`CD⦂惺嘴0I#vỵ} \\귂S끴D얾?Ԓj溯\"v餄a": {
+                                                             "@翙c⢃趚痋i\u0015OQ⍝lq돆Y0pࢥ3쉨䜩^<8g懥0w)]䊑n洺o5쭝QL댊랖L镈Qnt⪟㒅십q헎鳒⮤眉ᔹ梠@O縠u泌ㄘb榚癸XޔFtj;iC": false,
+                                                             "I&뱋゘|蓔䔕측瓯%6ᗻHW\\N1貇#?僐ᗜgh᭪o'䗈꽹Rc욏/蔳迄༝!0邔䨷푪8疩)[쭶緄㇈୧ፐ": {
+                                                              "B+:ꉰ`s쾭)빼C羍A䫊pMgjdx䐝Hf9᥸W0!C樃'蘿f䫤סи\u0017Jve? 覝f둀⬣퓉Whk\"஼=չﳐ皆笁BIW虨쫓F廰饞": -642906201042308791,
+                                                              "sb,XcZ<\/m㉹ ;䑷@c䵀s奤⬷7`ꘖ蕘戚?Feb#輜}p4nH⬮eKL트}": [
+                                                               "RK鳗z=袤Pf|[,u욺",
+                                                               "Ẏᏻ罯뉋⺖锅젯㷻{H䰞쬙-쩓D]~\u0013O㳢gb@揶蔉|kᦂ❗!\u001ebM褐sca쨜襒y⺉룓",
+                                                               null,
+                                                               null,
+                                                               true,
+                                                               -1.650777344339075E-19,
+                                                               false,
+                                                               "☑lꄆs힨꤇]'uTന⌳농].1⋔괁沰\"IWഩ\u0019氜8쟇䔻;3衲恋,窌z펏喁횗?4?C넁问?ᥙ橭{稻Ⴗ_썔",
+                                                               "n?]讇빽嗁}1孅9#ꭨ靶v\u0014喈)vw祔}룼쮿I",
+                                                               -2.7033457331882025E18,
+                                                               {
+                                                                ";⚃^㱋x:饬ኡj'꧵T☽O㔬RO婎?향ᒭ搩$渣y4i;(Q>꿘e8q": "j~錘}0g;L萺*;ᕭꄮ0l潛烢5H▄쳂ꏒוֹꙶT犘≫x閦웧v",
+                                                                "~揯\u2018c4職렁E~ᑅቚꈂ?nq뎤.:慹`F햘+%鉎O瀜쟏敛菮⍌浢<\/㮺紿P鳆ࠉ8I-o?#jﮨ7v3Dt赻J9": null,
+                                                                "ࣝW䌈0ꍎqC逖,횅c၃swj;jJS櫍5槗OaB>D踾Y": {"㒰䵝F%?59.㍈cᕨ흕틎ḏ㋩B=9IېⓌ{:9.yw}呰ㆮ肒᎒tI㾴62\"ዃ抡C﹬B<\/<EO꽓ᇕu&鋫\\禞퐹u꒍.7훯ಶ2䩦͉ᶱf깵ᷣ늎": [
+                                                                 5.5099570884646902E18,
+                                                                 "uQN濿m臇<%?谣鮢s]]x0躩慌闋<;( 鋤.0ᠵd1#벘a:Gs?햷'.)ㅴ䞟琯崈FS@O㌛ᓬ抢큌ើ냷쿟툥IZn[惵ꐧ3뙍[&v憙J>촋jo朣",
+                                                                 [
+                                                                  -7675533242647793366,
+                                                                  {"ᙧ呃:[㒺쳀쌡쏂H稈㢤\u001dᶗGG-{GHྻຊꡃ哸䵬;$?&d\\⥬こN圴됤挨-'ꕮ$PU%?冕눖i魁q騎Q": [
+                                                                   false,
+                                                                   [[
+                                                                    7929823049157504248,
+                                                                    [[
+                                                                     true,
+                                                                     "Z菙\u0017'eꕤ᱕l,0\\X\u001c[=雿8蠬L<\/낲긯W99g톉4ퟋb㝺\u0007劁'!麕Q궈oW:@X၎z蘻m絙璩귓죉+3柚怫tS捇蒣䝠-擶D[0=퉿8)q0ٟ",
+                                                                     "唉\nFA椭穒巯\\䥴䅺鿤S#b迅獘 ﶗ꬘\\?q1qN犠pX꜅^䤊⛤㢌[⬛휖岺q唻ⳡ틍\"㙙Eh@oA賑㗠y必Nꊑᗘ",
+                                                                     -2154220236962890773,
+                                                                     -3.2442003245397908E18,
+                                                                     "Wᄿ筠:瘫퀩?o貸q⊻(᎞KWf宛尨h^残3[U(='橄",
+                                                                     -7857990034281549164,
+                                                                     1.44283696979059942E18,
+                                                                     null,
+                                                                     {"ꫯAw跭喀 ?_9\"Aty背F=9缉ྦྷ@;?^鞀w:uN㘢Rỏ": [
+                                                                      7.393662029337442E15,
+                                                                      3564680942654233068,
+                                                                      [
+                                                                       false,
+                                                                       -5253931502642112194,
+                                                                       "煉\\辎ೆ罍5⒭1䪁䃑s䎢:[e5}峳ﴱn騎3?腳Hyꏃ膼N潭錖,Yᝋ˜YAၓ㬠bG렣䰣:",
+                                                                       true,
+                                                                       null,
+                                                                       {
+                                                                        "⒛'P&%죮|:⫶춞": -3818336746965687085,
+                                                                        "钖m<\/0ݎMtF2Pk=瓰୮洽겎.": [[
+                                                                         -8757574841556350607,
+                                                                         -3045234949333270161,
+                                                                         null,
+                                                                         {
+                                                                          "Ꮬr輳>⫇9hU##w@귪A\\C 鋺㘓ꖐ梒뒬묹㹻+郸嬏윤'+g<\/碴,}ꙫ>손;情d齆J䬁ຩ撛챝탹/R澡7剌tꤼ?ặ!`⏲睤\u00002똥଴⟏": null,
+                                                                          "\u20f2ܹe\\tAꥍư\\x当뿖렉禛;G檳ﯪS૰3~㘠#[J<}{奲 5箉⨔{놁<\/釿抋,嚠/曳m&WaOvT赋皺璑텁": [[
+                                                                           false,
+                                                                           null,
+                                                                           true,
+                                                                           -5.7131445659795661E18,
+                                                                           "萭m䓪D5|3婁ఞ>蠇晼6nﴺPp禽羱DS<睓닫屚삏姿",
+                                                                           true,
+                                                                           [
+                                                                            -8759747687917306831,
+                                                                            {
+                                                                             ">ⓛ\t,odKr{䘠?b퓸C嶈=DyEᙬ@ᴔ쨺芛髿UT퓻春<\/yꏸ>豚W釺N뜨^?꽴﨟5殺ᗃ翐%>퍂ဿ䄸沂Ea;A_\u0005閹殀W+窊?Ꭼd\u0013P汴G5썓揘": 4.342729067882445E-18,
+                                                                             "Q^즾眆@AN\u0011Kb榰냎Y#䝀ꀒᳺ'q暇睵s\"!3#I⊆畼寤@HxJ9": false,
+                                                                             "⿾D[)袨㇩i]웪䀤ᛰMvR<蟏㣨": {"v퇓L㪱ꖣ豛톤\\곱#kDTN": [{
+                                                                              "(쾴䡣,寴ph(C\"㳶w\"憳2s馆E!n!&柄<\/0Pꈗſ?㿳Qd鵔": {"娇堰孹L錮h嵅⛤躏顒?CglN束+쨣ﺜ\\MrH": {"獞䎇둃ቲ弭팭^ꄞ踦涟XK錆쳞ឌ`;੶S炥騞ଋ褂B៎{ڒ䭷ᶼ靜pI荗虶K$": [{"◖S~躘蒉꫿輜譝Q㽙闐@ᢗ¥E榁iء5┄^B[絮跉ᰥ遙PWi3wㄾⵀDJ9!w㞣ᄎ{듒ꓓb6\\篴??c⼰鶹⟧\\鮇ꮇ": [[
+                                                                               654120831325413520,
+                                                                               -1.9562073916357608E-19,
+                                                                               {
+                                                                                "DC(昐衵ἡ긙갵姭|֛[t": 7.6979110359897907E18,
+                                                                                "J␅))嫼❳9Xfd飉j7猬ᩉ+⤻眗벎E鰉Zᄊ63zၝ69}ZᶐL崭ᦥ⡦靚⋛ꎨ~i㨃咊ꧭo䰠阀3C(": -3.5844809362512589E17,
+                                                                                "p꣑팱쒬ꎑ뛡Ꙩ挴恍胔&7ᔈ묒4Hd硶훐㎖zꢼ豍㿢aሃ=<\/湉鵲EӅ%$F!퍶棌孼{O駍਺geu+": ")\u001b잓kŀX쩫A밁®ڣ癦狢)扔弒p}k縕ꩋ,䃉tࣼi",
+                                                                                "ァF肿輸<솄G-䢹䛸ꊏl`Tqꕗ蒞a氷⸅ᴉ蠰]S/{J왲m5{9.uέ~㕚㣹u>x8U讁B덺襪盎QhVS맅킃i识{벂磄Iහ䙅xZy/抍૭Z鲁-霳V据挦ℒ": null,
+                                                                                "㯛|Nꐸb7ⵐb?拠O\u0014ކ?-(EꞨ4ꕷᄤYᯕOW瞺~螸\"욿ќ<u鵵઎⸊倾쑷෻rT⪄牤銱;W殆͢芄ਰ嚝훚샢⊿+㲽": null,
+                                                                                "単逆ົ%_맛d)zJ%3칧_릟#95䌨怡\u001ci턠ॣi冘4赖'ਐ䧐_栔!": {
+                                                                                 "*?2~4㲌᭳쯁ftႷ1#oJ\b䊇镇됔 \u2079x䛁㊝ᮂN;穽跖s휇ᣄ홄傷z⸷(霸!3y뺏M쒿햏۽v㳉tở心3黎v쭻 Rp཮Vr~T?&˴k糒븥쩩r*D": null,
+                                                                                 "8@~홟ꔘk1[": -5570970366240640754,
+                                                                                 "BZt鏦ꡬc餖  s(mᛴ\u0000◄d腑t84C⟐坯VṊ뉙'噱Ꝕ珽GC顀?허0ꞹ&돇䛭C䷫](": 2.4303828213012387E-20,
+                                                                                 "y撔Z외放+}ḑ骈ᙝ&\u0016`G便2|-e]঳?QF㜹YF\"㿒緄햷㈟塚䷦ୀጤlM蘸N㾆▛럪㞂tᕬ镈쇝喠l amcxPnm\u001a᱋<\/]_]ﻹ瞧?H": false,
+                                                                                 "ፏ氏묢뜚I[♺뽛x?0H봬Wpn꨹Ra䝿쌑{㴂ni祻윸A'y|⺴ᚘ庌9{$恲{톽=m#@6ᨧfgs44陎J#<Ễ쨓瀵❩a୛㷉㙉ܸ◠냔嬯~呄籁羥镳": false,
+                                                                                 "㘱{<頬22?IF@곊I겂嶻L᝛D{@r쒂?IAᣧ洪惒誸b徂z췺꾍㠭\\刊%禨쌐ⶣ仵\\P[:47;<ᇅ<\/": {
+                                                                                  "^U釳-v㢈ꗝ◄菘rᜨi;起kR犺䵫\u0000锍쁙m-ԙ!lḃ꛸뻾F(W귛y": "#ᠺH㸢5v8_洑C",
+                                                                                  "䔵໳$ᙠ6菞\u206e摎q圩P|慍sV4:㜾(I溞I?": -6569206717947549676,
+                                                                                  "透Ꞃ緵퇝8 >e㺰\"'㌢ƐW\u0004瞕>0?V鷵엳": true,
+                                                                                  "뤥G\\迋䠿[庩'꼡\u001aiᩮV쯁ᳪ䦪Ô;倱ନ뛁誈": null,
+                                                                                  "쥹䄆䚟Q榁䎐᢭<\/2㕣p}HW蟔|䃏꿈ꚉ锳2Pb7㙑Tⅹᵅ": {
+                                                                                   "Y?֭$>#cVBꩨ:>eL蒁務": {
+                                                                                    "86柡0po 䏚&-捑Ћ祌<\/휃-G*㶢הּ쩍s㶟餇c걺yu꽎還5*턧簕Og婥SꝐ": null,
+                                                                                    "a+葞h٥ࠆ裈嗫ﵢ5輙퀟ᛜ,QDﹼ⟶Y騠锪E_|x죗j侵;m蜫轘趥?븅w5+mi콛L": {
+                                                                                     ";⯭ﱢ!买F⽍柤鶂n䵣V㫚墱2렾ELEl⣆": [
+                                                                                      true,
+                                                                                      -3.6479311868339015E-18,
+                                                                                      -7270785619461995400,
+                                                                                      3.334081886177621E18,
+                                                                                      2.581457786298155E18,
+                                                                                      -6.605252412954115E-20,
+                                                                                      -3.9232347037744167E-20,
+                                                                                      {
+                                                                                       "B6㊕.k1": null,
+                                                                                       "ZAꄮJ鮷ᳱo갘硥鈠䠒츼": {
+                                                                                        "ᕅ}럡}.@y陪鶁r業'援퀉x䉴ﵴl퍘):씭脴ᥞhiꃰblﲂ䡲엕8߇M㶭0燋標挝-?PCwe⾕J碻Ᾱ䬈䈥뷰憵賣뵓痬+": {"a췩v礗X⋈耓ፊf罅靮!㔽YYᣓw澍33⎔芲F|\"䜏T↮輦挑6ᓘL侘?ᅥ]덆1R௯✎餘6ꏽ<\/௨\\?q喷ꁫj~@ulq": {"嗫欆뾔Xꆹ4H㌋F嵧]ࠎ]㠖1ꞤT<$m뫏O i댳0䲝i": {"?෩?\u20cd슮|ꯆjs{?d7?eNs⢚嫥氂䡮쎱:鑵롟2hJꎒﯭ鱢3춲亄:뼣v䊭諱Yj択cVmR䩃㘬T\"N홝*ै%x^F\\_s9보zz4淗?q": [
+                                                                                         null,
+                                                                                         "?",
+                                                                                         2941869570821073737,
+                                                                                         "{5{殇0䝾g6밖퍋臩綹R$䖭j紋釰7sXI繳漪행y",
+                                                                                         false,
+                                                                                         "aH磂?뛡#惇d婅?Fe,쐘+늵䍘\"3r瘆唊勐j⳧࠴ꇓ<\/唕윈x⬌讣䋵%拗ᛆⰿ妴᝔M2㳗必꧂淲?ゥ젯檢<8끒MidX䏒3᳻Q▮佐UT|⤪봦靏⊏",
+                                                                                         [[{
+                                                                                          "颉(&뜸귙{y^\"P퟉춝Ჟ䮭D顡9=?}Y誱<$b뱣RvO8cH煉@tk~4ǂ⤧⩝屋SS;J{vV#剤餓ᯅc?#a6D,s": [
+                                                                                           -7.8781018564821536E16,
+                                                                                           true,
+                                                                                           [
+                                                                                            -2.28770899315832371E18,
+                                                                                            false,
+                                                                                            -1.0863912140143876E-20,
+                                                                                            -6282721572097446995,
+                                                                                            6767121921199223078,
+                                                                                            -2545487755405567831,
+                                                                                            false,
+                                                                                            null,
+                                                                                            -9065970397975641765,
+                                                                                            [
+                                                                                             -5.928721243413937E-20,
+                                                                                             {"6촊\u001a홯kB0w撨燠룉{绎6⳹!턍贑y▾鱧ժ[;7ᨷ∀*땒䪮1x霆Hᩭ☔\"r䝐7毟ᝰr惃3ꉭE+>僒澐": [
+                                                                                              "Ta쎩aƝt쵯ⰪVb",
+                                                                                              [
+                                                                                               -5222472249213580702,
+                                                                                               null,
+                                                                                               -2851641861541559595,
+                                                                                               null,
+                                                                                               4808804630502809099,
+                                                                                               5657671602244269874,
+                                                                                               "5犲﨣4mᥣ?yf젫꾯|䋬잁$`Iⳉﴷ扳兝,'c",
+                                                                                               false,
+                                                                                               [
+                                                                                                null,
+                                                                                                {
+                                                                                                 "DyUIN쎾M仼惀⮥裎岶泭lh扠\u001e礼.tEC癯튻@_Qd4c5S熯A<\/\6U윲蹴Q=%푫汹\\\u20614b[௒C⒥Xe⊇囙b,服3ss땊뢍i~逇PA쇸1": -2.63273619193485312E17,
+                                                                                                 "Mq꺋貘k휕=nK硍뫞輩>㾆~἞ࡹ긐榵l⋙Hw뮢帋M엳뢯v⅃^": 1877913476688465125,
+                                                                                                 "ᶴ뻗`~筗免⚽টW˃⽝b犳䓺Iz篤p;乨A\u20ef쩏?疊m㝀컩뫡b탔鄃ᾈV(遢珳=뎲ିeF仢䆡谨8t0醄7㭧瘵⻰컆r厡궥d)a阄፷Ed&c﯄伮1p": null,
+                                                                                                 "⯁w4曢\"(欷輡": "\"M᭫]䣒頳B\\燧ࠃN㡇j姈g⊸⺌忉ꡥF矉স%^",
+                                                                                                 "㣡Oᄦ昵⫮Y祎S쐐級㭻撥>{I$": -378474210562741663,
+                                                                                                 "䛒掷留Q%쓗1*1J*끓헩ᦢ﫫哉쩧EↅIcꅡ\\?ⴊl귛顮4": false,
+                                                                                                 "寔愆샠5]䗄IH贈=d﯊/偶?ॊn%晥D視N򗘈'᫂⚦|X쵩넽z질tskxDQ莮Aoﱻ뛓": true,
+                                                                                                 "钣xp?&\u001e侉/y䴼~?U篔蘚缣/I畚?Q绊": -3034854258736382234,
+                                                                                                 "꺲໣眀)⿷J暘pИfAV삕쳭Nꯗ4々'唄ⶑ伻㷯騑倭D*Ok꧁3b␽_<\/챣Xm톰ၕ䆄`*fl㭀暮滠毡?": [
+                                                                                                  "D男p`V뙸擨忝븪9c麺`淂⢦Yw⡢+kzܖ\fY1䬡H歁)벾Z♤溊-혰셢?1<-\u0005;搢Tᐁle\\ᛵߓﭩ榩<QF;t=?Qꀞ",
+                                                                                                  [
+                                                                                                   null,
+                                                                                                   [{"-췫揲ᬨ墊臸<ࠒH跥 㔭쥃㫯W=z[wধ╌<~yW楄S!⑻h즓lĖN￧篌W듷튗乵᪪템먵Pf悥ᘀk䷭焼\\讄r擁鐬y6VF<\/6랿p)麡ꁠ㪁\"pழe": [
+                                                                                                    "#幎杴颒嶈)ㄛJ.嶤26_⋌东챯ꠉ⤋ؚ/⏚%秼Q룠QGztᄎ㎷អI翰Xp睔鍜ꨍ",
+                                                                                                    {",T?": [
+                                                                                                     false,
+                                                                                                     [[
+                                                                                                      true,
+                                                                                                      7974824014498027996,
+                                                                                                      false,
+                                                                                                      [
+                                                                                                       4.3305464880956252E18,
+                                                                                                       {
+                                                                                                        "᱿W^A]'rᮢ)鏥z餝;Hu\\Fk?ﴺ?IG浅-䙧>訝-xJ;巡8깊蠝ﻓU$K": {
+                                                                                                         "Vꕡ諅搓W=斸s︪vﲜ츧$)iꡟ싉e寳?ጭムVથ嵬i楝Fg<\/Z|៪ꩆ-5'@ꃱ80!燱R쇤t糳]罛逇dṌ֣XHiͦ{": true,
+                                                                                                         "Ya矲C멗Q9膲墅携휻c\\딶G甔<\/.齵휴": -1.1456247877031811E-19,
+                                                                                                         "z#.OO￝J": -8263224695871959017,
+                                                                                                         "崍_3夼ᮟ1F븍뽯ᦓ鴭V豈Ь": [{
+                                                                                                          "N蒬74": null,
+                                                                                                          "yuB?厅vK笗!ᔸcXQ旦컶P-녫mᄉ麟_": "1R@ 톘xa_|﩯遘s槞d!d껀筤⬫薐焵먑D{\\6k共倌☀G~AS_D\"딟쬚뮥馲렓쓠攥WTMܭ8nX㩴䕅檹E\u0007ﭨN 2 ℆涐ꥏ꠵3▙玽|됨_\u2048",
+                                                                                                          "恐A C䧩G": {":M큣5e들\\ꍀ恼ᔄ靸|I﨏$)n": {
+                                                                                                           "|U䬫㟯SKV6ꛤ㗮\bn봻䲄fXT:㾯쳤'笓0b/ೢC쳖?2浓uO.䰴": "ཐ꼋e?``,ᚇ慐^8ꜙNM䂱\u0001IᖙꝧM'vKdꌊH牮r\\O@䊷ᓵ쀆(fy聻i툺\"?<\/峧ࣞ⓺ᤤ쵒߯ꎺ騬?)刦\u2072l慪y꺜ﲖTj+u",
+                                                                                                           "뽫<G;稳UL⸙q2n쵿C396炿J蓡z⣁zဩSOU?<\/뙍oE큸O鿅෴ꍈEm#\"[瑦⤫ᝆgl⡗q8\"큘덥係@ᆤ=\u0001爖羝췀㸩b9\\jeqt㟿㮸龾m㳳긄": {
+                                                                                                            "9\"V霟釜{/o0嫲C咀-饷䈍[녩)\r䤴tMW\\龟ϣ^ي㪙忩䞞N湆Y笕)萨ꖤ誥煽:14⫻57U$擒䲐薡Qvↇ櫲현誧?nஷ6": {"l웾䌵.䅋䦝ic碳g[糲Ƿ-ឈᚱ4쑧\u0004C࿼\u0018&쬑?멲<\/fD_檼픃pd쪼n㕊渪V䛉m揈W儅톳뗳䓆7㭽諤T煠Ney?0᪵鈑&": [
+                                                                                                             false,
+                                                                                                             null,
+                                                                                                             {
+                                                                                                              "\r;鼶j᠂꼍RLz~♔9gf?ӡ浐": -1.4843072575250897E-19,
+                                                                                                              "&ꊒ\"ꋟ䝭E诮ﯚO?SW뒁훪mb旙⎕ᗕ⶙|ᷤ5y4甥": "j5|庠t铱?v 횋0\"'rxz䃢杺Ɜ!\u0002",
+                                                                                                              "Q ၩ㟧": {"Hﬔ\u2058䪠틙izZㅛ탟H^ﶲA??R6呠Z솋R.࿶g8": [
+                                                                                                               -8762672252886298799,
+                                                                                                               -1.9486830507000208E17,
+                                                                                                               null,
+                                                                                                               -7157359405410123024,
+                                                                                                               null,
+                                                                                                               null,
+                                                                                                               -995856734219489233,
+                                                                                                               "呧㫹A4!",
+                                                                                                               null,
+                                                                                                               -1.9105609358624648E-19,
+                                                                                                               5888184370445333848,
+                                                                                                               2.25460605078245E-19,
+                                                                                                               2.5302739297121987E18,
+                                                                                                               "뢹sbEf捵2丯?뗾耸(Wd띙SବꭖrtU?筤P똙QpbbKqaE$来V웰3i/lK퉜,8︸e= g螓t竦컼?.寋8鵗",
+                                                                                                               7377742975895263424,
+                                                                                                               2.4218442017790503E-19,
+                                                                                                               {
+                                                                                                                "y꒚ཫ쨘醬킃糟}yTSt䡀⇂뿽4ൢ戰U": [[
+                                                                                                                 3600537227234741875,
+                                                                                                                 4435474101760273035,
+                                                                                                                 -1.42274517007951795E18,
+                                                                                                                 -5567915915496026866,
+                                                                                                                 null,
+                                                                                                                 null,
+                                                                                                                 [
+                                                                                                                  -3204084299154861161,
+                                                                                                                  {
+                                                                                                                   "7梧慸憏.a瘎\u00041U鵮Ck֨d惥耍ⳡY,⭏써E垁FFI鱑ⳬ줢7⧵Bﴠ耘줕햸q컴~*瑍W.떛ࡆ@'᐀+轳": -961121410259132975,
+                                                                                                                   "⥅]l黭㣓绶;!!⎃=朼㐿e&ἂ繤C﯀l䝣㌀6TM쑮w懃ꡡ#ᤆ䰓,墼湼゙뽸㲿䧽쫨xᵖ듨<\/ T0峸iQ:溫脐\\\"쎪ὴ砇宖^M泼큥➅鈫@ᄟ༩\u2008⥼": true,
+                                                                                                                   "⩐\"籽汎P싯鲘蟼sRᐯ䅩\u0019R(kRᖁ&ಌ 0\"鳶!馼YH": null,
+                                                                                                                   "鮼ꚇ싋։刟\rRLd步Nⴗ5Eࡆ訛갚[I醵NC(郴ṉy5D뤺౳QY壯5苴y훨(W\\Cଇ姚C艄깹\u001c歷㋵ZC᥂": [
+                                                                                                                    -6806235313106257498,
+                                                                                                                    null,
+                                                                                                                    "}N⸿讽sꚪ;\\p繇j苄䫨\u20e7%5x?t#",
+                                                                                                                    {
+                                                                                                                     "O〗k<墻yV$ఁrs-c1ఌ唪.C7_Yobᦜ褷'b帰mㄑl⌅": {"qB뗗擄3隂5뺍櫂䱟e촸P/鏩,3掁ꗩ=冉棓㑉|˞F襴뿴,:㞦<퓂⧙礞♗g뚎ᛩ<\/뉽ⶳ⸻A?_x2I㽝勒*I홱鍧粿~曟㤙2绥Ly6+썃uu鿜בf큘|歍ࣖÉ": [
+                                                                                                                      ">hh䈵w>1ⲏ쐭V[ⅎ\\헑벑F_㖝⠗㫇h恽;῝汰ᱼ瀖J옆9RR셏vsZ柺鶶툤r뢱橾/ꉇ囦FGm\"謗ꉦ⨶쒿⥡%]鵩#ᖣ_蹎 u5|祥?O",
+                                                                                                                      null,
+                                                                                                                      2.0150326776036215E-19,
+                                                                                                                      null,
+                                                                                                                      true,
+                                                                                                                      false,
+                                                                                                                      true,
+                                                                                                                      {"\fa᭶P捤WWc᠟f뚉ᬏ퓗ⳀW睹5:HXH=q7x찙X$)모r뚥ᆟ!Jﳸf": [
+                                                                                                                       -2995806398034583407,
+                                                                                                                       [
+                                                                                                                        6441377066589744683,
+                                                                                                                        "Mﶒ醹i)Gἦ廃s6몞 KJ౹礎VZ螺费힀\u0000冺업{谥'꡾뱻:.ꘘ굄奉攼Di᷑K鶲y繈욊阓v㻘}枭캗e矮1c?휐\"4\u0005厑莔뀾墓낝⽴洗ṹ䇃糞@b1\u0016즽Y轹",
+                                                                                                                        {
+                                                                                                                         "1⽕⌰鉟픏M㤭n⧴ỼD#%鐘⊯쿼稁븣몐紧ᅇ㓕ᛖcw嬀~ഌ㖓(0r⧦Q䑕髍ര铂㓻R儮\"@ꇱm❈௿᦯頌8}㿹犴?xn잆꥽R": 2.07321075750427366E18,
+                                                                                                                         "˳b18㗈䃟柵Z曆VTAu7+㛂cb0﯑Wp執<\/臋뭡뚋刼틮荋벲TLP预庰܈G\\O@VD'鱃#乖끺*鑪ꬳ?Mޞdﭹ{␇圯쇜㼞顄︖Y홡g": [{
+                                                                                                                          "0a,FZ": true,
+                                                                                                                          "2z̬蝣ꧦ驸\u0006L↛Ḣ4๚뿀'?lcwᄧ㐮!蓚䃦-|7.飑挴.樵*+1ﮊ\u0010ꛌ%貨啺/JdM:똍!FBe?鰴㨗0O财I藻ʔWA᫓G쳛u`<\/I": [{
+                                                                                                                           "$τ5V鴐a뾆両環iZp頻යn븃v": -4869131188151215571,
+                                                                                                                           "*즢[⦃b礞R◚nΰꕢH=귰燙[yc誘g䆌?ଜ臛": {
+                                                                                                                            "洤湌鲒)⟻\\䥳va}PeAMnN[": "㐳ɪ/(軆lZR,Cp殍ȮN啷\"3B婴?i=r$펽ᤐ쀸",
+                                                                                                                            "阄R4㒿㯔ڀ69ZᲦ2癁핌噗P崜#\\-쭍袛&鐑/$4童V꩑_ZHA澢fZ3": {"x;P{긳:G閉:9?活H": [
+                                                                                                                             "繺漮6?z犞焃슳\">ỏ[Ⳛ䌜녏䂹>聵⼶煜Y桥[泥뚩MvK$4jtロ",
+                                                                                                                             "E#갶霠좭㦻ୗ먵F+䪀o蝒ba쮎4X㣵 h",
+                                                                                                                             -335836610224228782,
+                                                                                                                             null,
+                                                                                                                             null,
+                                                                                                                             [
+                                                                                                                              "r1᫩0>danjY짿bs{",
+                                                                                                                              [
+                                                                                                                               -9.594464059325631E-23,
+                                                                                                                               1.0456894622831624E-20,
+                                                                                                                               null,
+                                                                                                                               5.803973284253454E-20,
+                                                                                                                               -8141787905188892123,
+                                                                                                                               true,
+                                                                                                                               -4735305442504973382,
+                                                                                                                               9.513150514479281E-20,
+                                                                                                                               "7넳$螔忷㶪}䪪l짴\u0007鹁P鰚HF銏ZJﳴ/⍎1ᷓ忉睇ᜋ쓈x뵠m䷐窥Ꮤ^\u0019ᶌ偭#ヂt☆၃pᎍ臶䟱5$䰵&๵分숝]䝈뉍♂坎\u0011<>",
+                                                                                                                               "C蒑貑藁lﰰ}X喇몛;t밿O7/᯹f\u0015kI嘦<ዴ㟮ᗎZ`GWퟩ瑹࡮ᅴB꿊칈??R校s脚",
+                                                                                                                               {
+                                                                                                                                "9珵戬+AU^洘拻ቒy柭床'粙XG鞕᠜繀伪%]hC,$輙?Ut乖Qm떚W8઼}~q⠪rU䤶CQ痗ig@#≲t샌f㈥酧l;y闥ZH斦e⸬]j⸗?ঢ拻퀆滌": null,
+                                                                                                                                "畯}㧢J罚帐VX㨑>1ꢶkT⿄蘥㝑o|<嗸層沈挄GEOM@-䞚䧰$만峬輏䠱V✩5宸-揂D'㗪yP掶7b⠟J㕻SfP?d}v㼂Ꮕ'猘": {
+                                                                                                                                 "陓y잀v>╪": null,
+                                                                                                                                 "鬿L+7:됑Y=焠U;킻䯌잫!韎ஔ\f": {
+                                                                                                                                  "駫WmGጶ": {
+                                                                                                                                   "\\~m6狩K": -2586304199791962143,
+                                                                                                                                   "ႜࠀ%͑l⿅D.瑢Dk%0紪dḨTI픸%뗜☓s榗኉\"?V籄7w髄♲쟗翛歂E䤓皹t ?)ᄟ鬲鐜6C": {
+                                                                                                                                    "_췤a圷1\u000eB-XOy缿請∎$`쳌eZ~杁튻/蜞`塣৙\"⪰\"沒l}蕌\\롃荫氌.望wZ|o!)Hn獝qg}": null,
+                                                                                                                                    "kOSܧ䖨钨:಼鉝ꭝO醧S`십`ꓭ쭁ﯢN&Et㺪馻㍢ⅳ㢺崡ຊ蜚锫\\%ahx켨|ż劻ꎄ㢄쐟A躊᰹p譞綨Ir쿯\u0016ﵚOd럂*僨郀N*b㕷63z": {
+                                                                                                                                     ":L5r+T㡲": [{
+                                                                                                                                      "VK泓돲ᮙRy㓤➙Ⱗ38oi}LJቨ7Ó㹡৘*q)1豢⛃e᫛뙪壥镇枝7G藯g㨛oI䄽 孂L缊ꋕ'EN`": -2148138481412096818,
+                                                                                                                                      "`⛝ᘑ$(खꊲ⤖ᄁꤒ䦦3=)]Y㢌跨NĴ驳줟秠++d孳>8ᎊ떩EꡣSv룃 쯫أ?#E|᭙㎐?zv:5祉^⋑V": [
+                                                                                                                                       -1.4691944435285607E-19,
+                                                                                                                                       3.4128661569395795E17,
+                                                                                                                                       "㐃촗^G9佭龶n募8R厞eEw⺡_ㆱ%⼨D뉄퉠2ꩵᛅⳍ搿L팹Lවn=\"慉념ᛮy>!`g!풲晴[/;?[v겁軇}⤳⤁핏∌T㽲R홓遉㓥",
+                                                                                                                                       "愰_⮹T䓒妒閤둥?0aB@㈧g焻-#~跬x<\/舁P݄ꐡ=\\׳P\u0015jᳪᢁq;㯏l%᭗;砢觨▝,謁ꍰGy?躤O黩퍋Y㒝a擯\n7覌똟_䔡]fJ晋IAS",
+                                                                                                                                       4367930106786121250,
+                                                                                                                                       -4.9421193149720582E17,
+                                                                                                                                       null,
+                                                                                                                                       {
+                                                                                                                                        ";ᄌ똾柉곟ⰺKpፇ䱻ฺ䖝{o~h!eꁿ઻욄ښ\u0002y?xUd\u207c悜ꌭ": [
+                                                                                                                                         1.6010824122815255E-19,
+                                                                                                                                         [
+                                                                                                                                          "宨︩9앉檥pr쇷?WxLb",
+                                                                                                                                          "氇9】J玚\u000f옛呲~ 輠1D嬛,*mW3?n휂糊γ虻*ᴫ꾠?q凐趗Ko↦GT铮",
+                                                                                                                                          "㶢ថmO㍔k'诔栀Z蛟}GZ钹D",
+                                                                                                                                          false,
+                                                                                                                                          -6.366995517736813E-20,
+                                                                                                                                          -4894479530745302899,
+                                                                                                                                          null,
+                                                                                                                                          "V%᫡II璅䅛䓎풹ﱢ/pU9se되뛞x梔~C)䨧䩻蜺(g㘚R?/Ự[忓C뾠ࢤc왈邠买?嫥挤풜隊枕",
+                                                                                                                                          ",v碍喔㌲쟚蔚톬៓ꭶ",
+                                                                                                                                          3.9625444752577524E-19,
+                                                                                                                                          null,
+                                                                                                                                          [
+                                                                                                                                           "kO8란뿒䱕馔b臻⍟隨\"㜮鲣Yq5m퐔<u뷆c譆\u001bN?<",
+                                                                                                                                           [{
+                                                                                                                                            ";涉c蒀ᴧN䘱䤳 ÿꭷ,핉dSTDB>K#ꢘug㼈ᝦ=P^6탲@䧔%$CqSw铜랊0&m⟭<\/a逎ym\u0013vᯗ": true,
+                                                                                                                                            "洫`|XN뤮\u0018詞=紩鴘_sX)㯅鿻Ố싹": 7.168252736947373E-20,
+                                                                                                                                            "ꛊ饤ﴏ袁(逊+~⽫얢鈮艬O힉7D筗S곯w操I斞᠈븘蓷x": [[[[
+                                                                                                                                             -7.3136069426336952E18,
+                                                                                                                                             -2.13572396712722688E18,
+                                                                                                                                             {
+                                                                                                                                              "硢3㇩R:o칢行E<=\u0018ၬYuH!\u00044U%卝炼2>\u001eSi$⓷ꒈ'렢gᙫ番ꯒ㛹럥嶀澈v;葷鄕x蓎\\惩+稘UEᖸﳊ㊈壋N嫿⏾挎,袯苷ኢ\\x|3c": 7540762493381776411,
+                                                                                                                                              "?!*^ᢏ窯?\u0001ڔꙃw虜돳FgJ?&⨫*uo籤:?}ꃹ=ٴ惨瓜Z媊@ત戹㔏똩Ԛ耦Wt轁\\枒^\\ꩵ}}}ꀣD\\]6M_⌫)H豣:36섘㑜": {
+                                                                                                                                               ";홗ᰰU஋㙛`D왔ཿЃS회爁\u001b-㢈`봆?盂㛣듿ᦾ蒽_AD~EEຆ㊋(eNwk=Rɠ峭q\"5Ἠ婾^>'ls\n8QAK<l_⭨穟": [
+                                                                                                                                                true,
+                                                                                                                                                true,
+                                                                                                                                                {"ﳷm箅6qⷈ?ﲈ憟b۷⫉἞V뚴少U呡瓴ꉆs~嘵得㌶4XR漊": [
+                                                                                                                                                 "폆介fM暪$9K[ㄇ샍큳撦g撟恸jҐF㹹aj bHᘀ踉ꎐC粄 a?\u000fK즉郝 幨9D舢槷Xh뵎u훩Ꜿ턾ƅ埂P埆k멀{䢹~?D<\/꼢XR\u001b〱䝽꼨i㘀ḟ㚺A-挸",
+                                                                                                                                                 false,
+                                                                                                                                                 null,
+                                                                                                                                                 -1.1710758021294953E-20,
+                                                                                                                                                 3996737830256461142,
+                                                                                                                                                 true,
+                                                                                                                                                 null,
+                                                                                                                                                 -8271596984134071193,
+                                                                                                                                                 "_1G퉁텑m䮔鰼6멲Nmꇩſt쓟튍N许FDj+3^ﶜ⎸\u0019⤕橥!\"s-뾞lz北׸ꍚ랬)?l⻮고i䑰\u001f䪬",
+                                                                                                                                                 4.459124464204517E-19,
+                                                                                                                                                 -4.0967172848578447E18,
+                                                                                                                                                 5643211135841796287,
+                                                                                                                                                 -9.482336221192844E-19,
+                                                                                                                                                 "౪冏釶9D?s螭X榈枸j2秀v]泌鰚岒聵轀쌶i텽qMbL]R,",
+                                                                                                                                                 null,
+                                                                                                                                                 [
+                                                                                                                                                  null,
+                                                                                                                                                  {"M쪊ꯪ@;\u0011罙ꕅ<e᝺|爑Yⵝ<\/&ᩎ<腊ሑᮔ੃F豭": [
+                                                                                                                                                   "^0࡟1볏P폋ፏ杈F⨥Iꂴ\"z磣VⅡ=8퀝2]䢹h1\u0017{jT<I煛5%D셍S⑙⅏J*샐 巙ດ;᧡䙞",
+                                                                                                                                                   [{
+                                                                                                                                                    "'㶡큾鄧`跊\"gV[?u᭒Ʊ髷%葉굵a띦N켧Qﯳy%y䩟髒L䯜S䵳r絅肾킂ၐ'ꔦg긓a'@혔যW谁ᝬF栩ŷ+7w鞚": 6.3544416675584832E17,
+                                                                                                                                                    "苎脷v改hm쏵|㋊g_ᔐ 뒨蹨峟썎㷸|Ο刢?Gͨ옛-?GꦱIEYUX4?%ꘋᆊ㱺": -2.8418378709165287E-19,
+                                                                                                                                                    "誰?(H]N맘]k洳\"q蒧蘞!R퐫\\(Q$T5N堍⫣윿6|럦속︅ﭗ(": [
+                                                                                                                                                     "峩_\u0003A瘘?✓[硫䎯ၽuጭ\"@Y綅첞m榾=贮9R벿῜Z",
+                                                                                                                                                     null,
+                                                                                                                                                     "䰉㗹㷾Iaᝃqcp쓘὾൫Q|ﵓ<\/ḙ>)- Q䲌mo펹L_칍樖庫9꩝쪹ᘹ䑖瀍aK ?*趤f뭓廝p=磕",
+                                                                                                                                                     "哑z懅ᤏ-ꍹux쀭",
+                                                                                                                                                     [
+                                                                                                                                                      true,
+                                                                                                                                                      3998739591332339511,
+                                                                                                                                                      "ጻ㙙?᳸aK<\/囩U`B3袗ﱱ?\"/k鏔䍧2l@쿎VZ쨎/6ꃭ脥|B?31+on颼-ꮧ,O嫚m ࡭`KH葦:粘i]aSU쓙$쐂f+詛頖b",
+                                                                                                                                                      [{"^<9<箝&絡;%i﫡2攑紴\\켉h쓙-柂䚝ven\u20f7浯-Ꮏ\r^훁䓚헬\u000e?\\ㅡֺJ떷VOt": [{
+                                                                                                                                                       "-௄卶k㘆혐஽y⎱㢬sS઄+^瞥h;ᾷj;抭\u0003밫f<\/5Ⱗ裏_朻%*[-撵䷮彈-芈": {
+                                                                                                                                                        "㩩p3篊G|宮hz䑊o곥j^Co0": [
+                                                                                                                                                         653239109285256503,
+                                                                                                                                                         {"궲?|\":N1ۿ氃NZ#깩:쇡o8킗ࡊ[\"됸Po핇1(6鰏$膓}⽐*)渽J'DN<썙긘毦끲Ys칖": {
+                                                                                                                                                          "2Pr?Xjㆠ?搮/?㓦柖馃5뚣Nᦼ|铢r衴㩖\"甝湗ܝ憍": "\"뾯i띇筝牻$珲/4ka $匝휴译zbAᩁꇸ瑅&뵲衯ꎀᆿ7@ꈋ'ᶨH@ᠴl+",
+                                                                                                                                                          "7뢽뚐v?4^ꊥ_⪛.>pởr渲<\/⢕疻c\"g䇘vU剺dஔ鮥꒚(dv祴X⼹\\a8y5坆": true,
+                                                                                                                                                          "o뼄B욞羁hr﷔폘뒚⿛U5pꪴfg!6\\\"爑쏍䢱W<ﶕ\\텣珇oI/BK뺡'谑♟[Ut븷亮g(\"t⡎有?ꬊ躺翁艩nl F⤿蠜": 1695826030502619742,
+                                                                                                                                                          "ۊ깖>ࡹ햹^ⵕ쌾BnN〳2C䌕tʬ]찠?ݾ2饺蹳ぶꌭ訍\"◹ᬁD鯎4e滨T輀ﵣ੃3\u20f3킙D瘮g\\擦+泙ၧ 鬹ﯨַ肋7놷郟lP冝{ߒhড়r5,꓋": null,
+                                                                                                                                                          "ΉN$y{}2\\N﹯ⱙK'8ɜͣwt,.钟廣䎘ꆚk媄_": null,
+                                                                                                                                                          "䎥eᾆᝦ읉,Jުn岪㥐s搖謽䚔5t㯏㰳㱊ZhD䃭f絕s鋡篟a`Q鬃┦鸳n_靂(E4迠_觅뷝_宪D(NL疶hL追V熑%]v肫=惂!㇫5⬒\u001f喺4랪옑": {
+                                                                                                                                                           "2a輍85먙R㮧㚪Sm}E2yꆣꫨrRym㐱膶ᔨ\\t綾A☰.焄뙗9<쫷챻䒵셴᭛䮜.<\/慌꽒9叻Ok䰊Z㥪幸k": [
+                                                                                                                                                            null,
+                                                                                                                                                            true,
+                                                                                                                                                            {"쌞쐍": {
+                                                                                                                                                             "▟GL K2i뛱iQ\"̠.옛1X$}涺]靎懠ڦ늷?tf灟ݞゟ{": 1.227740268699265E-19,
+                                                                                                                                                             "꒶]퓚%ฬK❅": [{
+                                                                                                                                                              "(ෛ@Ǯっ䧼䵤[aテൖvEnAdU렖뗈@볓yꈪ,mԴ|꟢캁(而첸죕CX4Y믅": "2⯩㳿ꢚ훀~迯?᪑\\啚;4X\u20c2襏B箹)俣eỻw䇄",
+                                                                                                                                                              "75༂f詳䅫ꐧ鏿 }3\u20b5'∓䝱虀f菼Iq鈆﨤g퍩)BFa왢d0뮪痮M鋡nw∵謊;ꝧf美箈ḋ*\u001c`퇚퐋䳫$!V#N㹲抗ⱉ珎(V嵟鬒_b㳅\u0019": null,
+                                                                                                                                                              "e_m@(i㜀3ꦗ䕯䭰Oc+-련0뭦⢹苿蟰ꂏSV䰭勢덥.ྈ爑Vd,ᕥ=퀍)vz뱊ꈊB_6듯\"?{㒲&㵞뵫疝돡믈%Qw限,?\r枮\"? N~癃ruࡗdn&": null,
+                                                                                                                                                              "㉹&'Pfs䑜공j<\/?|8oc᧨L7\\pXᭁ 9᪘": -2.423073789014103E18,
+                                                                                                                                                              "䝄瑄䢸穊f盈᥸,B뾧푗횵B1쟢f\u001f凄": "魖⚝2儉j꼂긾껢嗎0ࢇ纬xI4](੓`蕞;픬\fC\"斒\")2櫷I﹥迧",
+                                                                                                                                                              "ퟯ詔x悝령+T?Bg⥄섅kOeQ큼㻴*{E靼6氿L缋\u001c둌๶-㥂2==-츫I즃㠐Lg踞ꙂEG貨鞠\"\u0014d'.缗gI-lIb䋱ᎂDy缦?": null,
+                                                                                                                                                              "紝M㦁犿w浴詟棓쵫G:䜁?V2ힽ7N*n&㖊Nd-'ຊ?-樹DIv⊜)g䑜9뉂ㄹ푍阉~ꅐ쵃#R^\u000bB䌎䦾]p.䀳": [{"ϒ爛\"ꄱ︗竒G䃓-ま帳あ.j)qgu扐徣ਁZ鼗A9A鸦甈!k蔁喙:3T%&㠘+,䷞|챽v䚞문H<\/醯r셓㶾\\a볜卺zE䝷_죤ဵ뿰᎟CB": [
+                                                                                                                                                               6233512720017661219,
+                                                                                                                                                               null,
+                                                                                                                                                               -1638543730522713294,
+                                                                                                                                                               false,
+                                                                                                                                                               -8901187771615024724,
+                                                                                                                                                               [
+                                                                                                                                                                3891351109509829590,
+                                                                                                                                                                true,
+                                                                                                                                                                false,
+                                                                                                                                                                -1.03836679125188032E18,
+                                                                                                                                                                {
+                                                                                                                                                                 "<?起HCᷭ죎劐莇逰/{gs\u0014⽛㰾愫tᅱ<솞ڢ됌煲膺਻9x닳x࡭Q訽,ᶭඦtt掾\"秧㺌d˪䙻꫗:ᭈh4緞痐䤴c뫚떩త<?ᕢ謚6]폛O鰐鋛镠贩赟\"<G♷1'": true,
+                                                                                                                                                                 "቙ht4ߝBqꦤ+\u0006멲趫灔)椾": -1100102890585798710,
+                                                                                                                                                                 "総兎곇뇸粟F醇;朠?厱楛㶆ⶏ7r⾛o꯬᳡F\\머幖 㜦\f[搦᥽㮣0䕊?J㊳뀄e㔔+?<n↴复": [
+                                                                                                                                                                  "4~ꉍ羁\\偮(泤叕빜\u0014>j랎:g曞ѕᘼ}链N",
+                                                                                                                                                                  -1.1103819473845426E-19,
+                                                                                                                                                                  true,
+                                                                                                                                                                  [
+                                                                                                                                                                   true,
+                                                                                                                                                                   null,
+                                                                                                                                                                   -7.9091791735309888E17,
+                                                                                                                                                                   true,
+                                                                                                                                                                   {"}蔰鋈+ꐨ啵0?g*사%`J?*": [{
+                                                                                                                                                                    "\"2wG?yn,癷BK\\龞䑞x?蠢": -3.7220345009853505E-19,
+                                                                                                                                                                    ";饹়❀)皋`噿焒j(3⿏w>偍5X<np?<줯<Y]捘!J೸UⳂNे7v௸㛃ᄧ톿䨷鯻v焇=烻TQ!F⦰䣣눿K鷚눁'⭲m捠(䚻": [
+                                                                                                                                                                     "蹕 淜੃b\"+몾ⴕ",
+                                                                                                                                                                     null,
+                                                                                                                                                                     35892237756161615,
+                                                                                                                                                                     {
+                                                                                                                                                                      " 듹㏝)5慁箱&$~:遰쮐<\/堋?% \\勽唅z손帋䘺H髀麡M퇖uz\u0012m諦d᳤콌樝\rX싹̡Ო": -433791617729505482,
+                                                                                                                                                                      "-j溗ࢵcz!:}✽5ഇ,욨ݏs#덫=南浺^}E\\Y\\T*뼈cd꺐cۘ뎁䨸됱K䠴㉿恿逳@wf쏢<\/[L[": -9.3228549642908109E17,
+                                                                                                                                                                      "Ms킭u஗%\\u⍎/家欲ἅ答㓽/꯳齳|㭘Pr\"v<\/禇䔆$GA䊻˔-:틊[h?倬荤ᾞ৳.Gw\u000b": [
+                                                                                                                                                                       "0宜塙I@䏴蝉\\Uy뒅=2<h暒K._贡璐Yi檻_⮵uᐝ㘗聠[f\u0015힢Hꔮ}጑;誏yf0\"\u20cc?(=q斠➽5ꎾ鞘kⲃ",
+                                                                                                                                                                       -2.9234211354411E-19,
+                                                                                                                                                                       false,
+                                                                                                                                                                       true,
+                                                                                                                                                                       {
+                                                                                                                                                                        "\u0011⟴GH_;#怵:\u001c\u0002n1U\\p/왔(┫]hꐚ7\r0䵷첗岷O௷?㝎[殇|J=?韷pᶟ儜犆?5კ1kꍖiH竧뛈ପdmk游y(콪팱꾍k慧 y辣": [
+                                                                                                                                                                         false,
+                                                                                                                                                                         "O\"끍p覈ykv磂㢠㝵~뀬튍lC&4솎䇃:Mj",
+                                                                                                                                                                         -7.009964654003924E-20,
+                                                                                                                                                                         false,
+                                                                                                                                                                         -49306078522414046,
+                                                                                                                                                                         null,
+                                                                                                                                                                         null,
+                                                                                                                                                                         2160432477732354319,
+                                                                                                                                                                         true,
+                                                                                                                                                                         "4횡h+!踹ꐬP鮄{0&뱥M?샍鞅n㮞ᨹ?쒆毪l'箅^ꚥ頛`e㻨52柳⮙嫪࡟딯a.~䵮1f吘N&zȭL榓ۃ鳠5d㟆M@㣥ӋA΍q0縶$",
+                                                                                                                                                                         -3.848996532974368E16,
+                                                                                                                                                                         true,
+                                                                                                                                                                         null,
+                                                                                                                                                                         -3.5240055580952525E18,
+                                                                                                                                                                         {
+                                                                                                                                                                          " vﭷၵ#ce乃5僞?Z D`묨粇ᐔ绠vWL譢u뽀\\J|tⓙt№\"ꨋnT凮ᒩ蝂篝b騩:䢭Hbv읻峨z㹚T趗햆귣학津XiY@ᖥK": true,
+                                                                                                                                                                          "!F 醌y䉸W2ꇬ\u0006/䒏7~%9擛햀徉9⛰+?㌘;ꠓX䇻Dfi뼧쒒\u0012F謞՝絺+臕kऍLSQ쌁X쎬幦HZ98蒊枳": "澤令#\u001d抍⛳@N搕퀂[5,✄ꘇ~䘷?\u0011Xꈺ[硸⠘⛯X醪聡x\u0007쌇MiX/|ミ뚁K8䁡W)銀q僞綂蔕E",
+                                                                                                                                                                          "6␲䣖R৞@ငg?<\/೴x陙Xꈺ崸⠅ᇾ\\0X,H쟴셭A稂ힿゝF\\쑞\u0012懦(Aᯕ灭~\u0001껮X?逊": 5.7566819207732864E17,
+                                                                                                                                                                          "[c?椓": false,
+                                                                                                                                                                          "k䒇": 2583824107104166717,
+                                                                                                                                                                          "꙯N훙㏅ﮒ燣㨊瞯咽jMxby뻭뵫װ[\"1畈?ৱL": "띣ᔂ魠羓犴ꚃ+|rY",
+                                                                                                                                                                          "녺Z?䬝鉉:?ⳙ瘏Cኯ.Vs[釿䨉쐧\\\\*쵢猒$\\y溔^,㑳": {"藶꺟": [{
+                                                                                                                                                                           "\"d훣N2zq]?'檿죸忷篇ﮟ擤m'9!죶≓p뭻\\ᇷ\f퇶_䰸h๐Q嵃訾㘑従ꯦ䞶jL틊r澵Omᾫ!H䱤팼/;|᭺I7슎YhuXi⚼": -1.352716906472438E-19,
+                                                                                                                                                                           "M⽇倻5J䂫औ᝔楸#J[Fﹱ쫮W誻bWz?}1\"9硪뻶fe": "盬:Ѹ砿획땣T凊(m灦呜ﻝR㿎艴䂵h",
+                                                                                                                                                                           "R띾k힪CH钙_i苮ⰵoᾨ紑퉎7h؉\"柀蝽z0့\"<?嘭$蜝?礲7岇槀묡?V钿T⣜v+솒灚ԛ2米mH?>薙婏聿3aFÆÝ": "2,ꓴg?_섦_>Y쪥션钺;=趘F~?D㨫\bX?㹤+>/믟kᠪ멅쬂Uzỵ]$珧`m雁瑊ඖ鯬cꙉ梢f묛bB",
+                                                                                                                                                                           "♽n$YjKiXX*GO贩鏃豮祴遞K醞眡}ꗨv嵎꼷0୸+M菋eH徸J꣆:⼐悥B켽迚㯃b諂\u000bjꠜ碱逮m8": [
+                                                                                                                                                                            "푷᣺ﻯd8ﱖ嬇ភH鹎⡱᱅0g:果6$GQ췎{vᷧYy-脕x偹砡館⮸C蓼ꏚ=軄H犠G谖ES詤Z蠂3l봟hᅭ7䦹1GPQG癸숟~[#駥8zQ뛣J소obg,",
+                                                                                                                                                                            null,
+                                                                                                                                                                            1513751096373485652,
+                                                                                                                                                                            null,
+                                                                                                                                                                            -6.851466660824754E-19,
+                                                                                                                                                                            {"䩂-⴮2ٰK솖풄꾚ႻP앳1H鷛wmR䗂皎칄?醜<\/&ࠧ㬍X濬䵈K`vJ륒Q/IC묛!;$vϑ": {
+                                                                                                                                                                             "@-ꚗxྐྵ@m瘬\u0010U絨ﮌ驐\\켑寛넆T=tQ㭤L연@脸삯e-:⩼u㎳VQ㋱襗ຓ<Ⅶ䌸cML3+\u001e_C)r\\9+Jn\\Pﺔ8蠱檾萅Pq鐳话T䄐I": -1.80683891195530061E18,
+                                                                                                                                                                             "ᷭዻU~ཷsgSJ`᪅'%㖔n5픆桪砳峣3獮枾䌷⊰呀": {
+                                                                                                                                                                              "Ş੉䓰邟自~X耤pl7间懑徛s첦5ਕXexh⬖鎥᐀nNr(J컗|ૃF\"Q겮葲놔엞^겄+㈆话〾희紐G'E?飕1f❼텬悚泬먐U睬훶Qs": false,
+                                                                                                                                                                              "(\u20dag8큽튣>^Y{뤋.袊䂓;_g]S\u202a꽬L;^'#땏bႌ?C緡<䝲䲝断ꏏ6\u001asD7IK5Wxo8\u0006p弊⼂ꯍ扵\u0003`뵂픋%ꄰ⫙됶l囏尛+䗅E쟇\\": [
+                                                                                                                                                                               true,
+                                                                                                                                                                               {
+                                                                                                                                                                                "\n鱿aK㝡␒㼙2촹f;`쾏qIࡔG}㝷䐍瓰w늮*粅9뒪ㄊCj倡翑閳R渚MiUO~仨䜶RꙀA僈㉋⦋n{㖥0딿벑逦⥻0h薓쯴Ꝼ": [
+                                                                                                                                                                                 5188716534221998369,
+                                                                                                                                                                                 2579413015347802508,
+                                                                                                                                                                                 9.010794400256652E-21,
+                                                                                                                                                                                 -6.5327297761238093E17,
+                                                                                                                                                                                 1.11635352494065523E18,
+                                                                                                                                                                                 -6656281618760253655,
+                                                                                                                                                                                 {
+                                                                                                                                                                                  "": ")?",
+                                                                                                                                                                                  "TWKLꑙ裑꺔UE俸塑炌Ũ᜕-o\"徚#": {"M/癟6!oI51ni퐚=댡>xꍨ\u0004 ?": {
+                                                                                                                                                                                   "皭": {"⢫䋖>u%w잼<䕏꘍P䋵$魋拝U䮎緧皇Y훂&|羋ꋕ잿cJ䨈跓齳5\u001a삱籷I꿾뤔S8㌷繖_Yឯ䲱B턼O歵F\\l醴o_欬6籏=D": [
+                                                                                                                                                                                    false,
+                                                                                                                                                                                    true,
+                                                                                                                                                                                    {"Mt|ꏞD|F궣MQ뵕T,띺k+?㍵i": [
+                                                                                                                                                                                     7828094884540988137,
+                                                                                                                                                                                     false,
+                                                                                                                                                                                     {
+                                                                                                                                                                                      "!༦鯠,&aﳑ>[euJꏽ綷搐B.h": -7648546591767075632,
+                                                                                                                                                                                      "-n켧嘰{7挐毄Y,>❏螵煫乌pv醑Q嶚!|⌝責0왾덢ꏅ蛨S\\)竰'舓Q}A釡5#v": 3344849660672723988,
+                                                                                                                                                                                      "8閪麁V=鈢1녈幬6棉⪮둌\u207d᚛驉ꛃ'r䆉惏ै|bἧﺢᒙ<=穊强s혧eꮿ慩⌡ \\槳W븧J檀C,ᘉ의0俯퀉M;筷ࣴ瓿{늊埂鄧_4揸Nn阼Jੵ˥(社": true,
+                                                                                                                                                                                      "o뼀vw)4A뢵(a䵢)p姃뛸\u000fK#KiQp\u0005ꅍ芅쏅": null,
+                                                                                                                                                                                      "砥$ꥸ┇耽u斮Gc{z빔깎밇\\숰\u001e괷各㶇쵿_ᴄ+h穢p촀Ნ䃬z䝁酳ӂ31xꔄ1_砚W렘G#2葊P ": [
+                                                                                                                                                                                       -3709692921720865059,
+                                                                                                                                                                                       null,
+                                                                                                                                                                                       [
+                                                                                                                                                                                        6669892810652602379,
+                                                                                                                                                                                        -135535375466621127,
+                                                                                                                                                                                        "뎴iO}Z? 馢녱稹ᄾ䐩rSt帤넆&7i騏멗畖9誧鄜'w{Ͻ^2窭외b㑎粖i矪ꦨ탪跣)KEㆹ\u0015V8[W?⽉>'kc$䨘ᮛ뉻٬M5",
+                                                                                                                                                                                        1.10439588726055846E18,
+                                                                                                                                                                                        false,
+                                                                                                                                                                                        -4349729830749729097,
+                                                                                                                                                                                        null,
+                                                                                                                                                                                        [
+                                                                                                                                                                                         false,
+                                                                                                                                                                                         "_蠢㠝^䟪/D녒㡋ỎC䒈판\u0006એq@O펢%;鹐쏌o戥~A[ꡉ濽ỳ&虃᩾荣唙藍茨Ig楡꒻M窓冉?",
+                                                                                                                                                                                         true,
+                                                                                                                                                                                         2.17220752996421728E17,
+                                                                                                                                                                                         -5079714907315156164,
+                                                                                                                                                                                         -9.960375974658589E-20,
+                                                                                                                                                                                         "ᾎ戞༒",
+                                                                                                                                                                                         true,
+                                                                                                                                                                                         false,
+                                                                                                                                                                                         [[
+                                                                                                                                                                                          "ⶉᖌX⧕홇)g엃⹪x뚐癟\u0002",
+                                                                                                                                                                                          -5185853871623955469,
+                                                                                                                                                                                          {
+                                                                                                                                                                                           "L㜤9ợㇶK鐰⋓V뽋˖!斫as|9"፬䆪?7胜&n薑~": -2.11545634977136992E17,
+                                                                                                                                                                                           "O8뀩D}캖q萂6༣㏗䈓煮吽ਆᎼDᣘ폛;": false,
+                                                                                                                                                                                           "YTᡅ^L㗎cbY$pᣞ縿#fh!ꘂb삵玊颟샞ဢ$䁗鼒몁~rkH^:닮먖츸륈⪺쒉砉?㙓扫㆕꣒`R䢱B酂?C뇞<5Iޚ讳騕S瞦z": null,
+                                                                                                                                                                                           "\\RB?`mG댵鉡幐物䵎有5*e骄T㌓ᛪ琾駒Ku\u001a[柆jUq8⋈5鿋츿myﻗ?雍ux঴?": 5828963951918205428,
+                                                                                                                                                                                           "n0晅:黯 xu씪^퓞cB㎊ᬍ⺘٤փ~B岚3㥕擄vᲂ~F?C䶖@$m~忔S왖㲚?챴⊟W#벌{'㰝I䝠縁s樘\\X뢻9핡I6菍ㄛ8쯶]wॽ0L\"q": null,
+                                                                                                                                                                                           "x增줖j⦦t䏢᎙㛿Yf鼘~꫓恄4惊\u209c": "oOhbᤃ᛽z&Bi犑\\3B㩬劇䄑oŁ쨅孥멁ຖacA㖫借㞝vg싰샂㐜#譞⢤@k]鋰嘘䜾L熶塥_<\/⍾屈ﮊ_mY菹t뙺}Ox=w鮮4S1ꐩמּ'巑",
+                                                                                                                                                                                           "㗓蟵ꂾe蠅匳(JP䗏෸\u0089耀왲": [{
+                                                                                                                                                                                            "ᤃ㵥韎뤽\r?挥O쯡⇔㞚3伖\u0005P⋪\"D궣QLn(⚘罩䩢Ŏv䤘尗뼤됛O淽鋋闚r崩a{4箙{煷m6〈": {
+                                                                                                                                                                                             "l곺1L": {
+                                                                                                                                                                                              "T'ਤ?砅|੬Km]䄩\"(࿶<\/6U爢䫈倔郴l2㴱^줣k'L浖L鰄Rp今鎗⒗C얨M훁㡧ΘX粜뫈N꤇輊㌻켑#㮮샶-䍗룲蠝癜㱐V>=\\I尬癤t=": 7648082845323511446,
+                                                                                                                                                                                              "鋞EP:<\/_`ၧe混ㇹBd⯢㮂驋\\q碽饩跓྿ᴜ+j箿렏㗑yK毢宸p謹h䦹乕U媣\\炤": [[
+                                                                                                                                                                                               "3",
+                                                                                                                                                                                               [
+                                                                                                                                                                                                true,
+                                                                                                                                                                                                3.4058271399411134E-20,
+                                                                                                                                                                                                true,
+                                                                                                                                                                                                "揀+憱f逮@먻BpW曉\u001a㣐⎊$n劈D枤㡞좾\u001aᛁ苔౩闝1B䷒Ṋ݋➐ꀞꐃ磍$t੤_:蘺⮼(#N",
+                                                                                                                                                                                                697483894874368636,
+                                                                                                                                                                                                [
+                                                                                                                                                                                                 "vᘯ锴)0訶}䳅⩚0O壱韈ߜ\u0018*U鍾䏖=䧉뽑单휻ID쿇嘗?ꌸῬ07",
+                                                                                                                                                                                                 -5.4858784319382006E18,
+                                                                                                                                                                                                 7.5467775182251151E18,
+                                                                                                                                                                                                 -8911128589670029195,
+                                                                                                                                                                                                 -7531052386005780140,
+                                                                                                                                                                                                 null,
+                                                                                                                                                                                                 [
+                                                                                                                                                                                                  null,
+                                                                                                                                                                                                  true,
+                                                                                                                                                                                                  [[{
+                                                                                                                                                                                                   "1欯twG<u䝮␽ꇣ_ჟﱴଶ-쪋\"?홺k:莝Ꜫ*⺵꽹댅釔좵}P?=9렿46b\u001c\\S?(筈僦⇶爷谰1ྷa": true,
+                                                                                                                                                                                                   "TҫJYxڪ\\鰔℮혡)m_WVi眪1[71><\/Q:0怯押殃탷聫사<ỗꕧ蚨䡁nDꌕ\u001c녬~蓩<N蹑\"{䫥lKc혁뫖앺:vⵑ": "g槵?",
+                                                                                                                                                                                                   "aꨩ뻃싥렌1`롗}Yg>鲃g儊>ꏡl㻿/⑷*챳6㻜W毤緛ﹺᨪ4\u0013뺚J髬e3쳸䘦伧?恪&{L掾p+꬜M䏊d娘6": {
+                                                                                                                                                                                                    "2p첼양棜h䜢﮶aQ*c扦v︥뮓kC寵횂S銩&ǝ{O*य़iH`U큅ࡓr䩕5ꄸ?`\\᧫?ᮼ?t〟崾훈k薐ì/iy꤃뵰z1<\/AQ#뿩8jJ1z@u䕥": 1.82135747285215155E18,
+                                                                                                                                                                                                    "ZdN &=d년ᅆ'쑏ⅉ:烋5&៏ᄂ汎来L㯄固{钧u\\㊏튚e摑&t嗄ꖄUb❌?m䴘熚9EW": [{
+                                                                                                                                                                                                     "ଛ{i*a(": -8.0314147546006822E17,
+                                                                                                                                                                                                     "⫾ꃆY\u000e+W`௸ \"M뒶+\\뷐lKE}(NT킶Yj選篒쁶'jNQ硾(똡\\\"逌ⴍy? IRꜘ὞鄬﨧:M\\f⠋Cꚜ쫊ᚴNV^D䕗ㅖἔIao꿬C⍏8": [
+                                                                                                                                                                                                      287156137829026547,
+                                                                                                                                                                                                      {
+                                                                                                                                                                                                       "H丞N逕<rO䎗:텕<\/䶩샌Sd%^ᵯ눐엑者g䖩똭蕮1U驣?Pⰰ\u001fp(W]67\u0015﫣6굺OR羸#촐F蒈;嘙i✵@_撶y㤏⤍(:᧗뼢༌朆@⏰㤨ꭲ?-n>⯲": {"": {
+                                                                                                                                                                                                        "7-;枮阕梒9ᑄZ": [[[[
+                                                                                                                                                                                                         null,
+                                                                                                                                                                                                         {
+                                                                                                                                                                                                          "": [[[[
+                                                                                                                                                                                                           -7.365909561486078E-19,
+                                                                                                                                                                                                           2948694324944243408,
+                                                                                                                                                                                                           null,
+                                                                                                                                                                                                           [
+                                                                                                                                                                                                            true,
+                                                                                                                                                                                                            "荒\"并孷䂡쵼9o䀘F\u0002龬7⮹Wz%厖/*? a*R枈㌦됾g뒠䤈q딄㺿$쮸tᶎ릑弣^鏎<\/Y鷇驜L鿽<\/춋9Mᲆឨ^<\/庲3'l낢",
+                                                                                                                                                                                                            "c鮦\u001b두\\~?眾ಢu݆綑෪蘛轋◜gȃ<\/ⴃcpkDt誩܅\"Y",
+                                                                                                                                                                                                            [[
+                                                                                                                                                                                                             null,
+                                                                                                                                                                                                             null,
+                                                                                                                                                                                                             [
+                                                                                                                                                                                                              3113744396744005402,
+                                                                                                                                                                                                              true,
+                                                                                                                                                                                                              "v(y",
+                                                                                                                                                                                                              {
+                                                                                                                                                                                                               "AQ幆h쾜O+꺷铀ꛉ練A蚗⼺螔j㌍3꽂楎䥯뎸먩?": null,
+                                                                                                                                                                                                               "蠗渗iz鱖w]擪E": 1.2927828494783804E-17,
+                                                                                                                                                                                                               "튷|䀭n*曎b✿~杤U]Gz鄭kW|㴚#㟗ഠ8u擨": [[
+                                                                                                                                                                                                                true,
+                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                {"⾪壯톽g7?㥜ώQꑐ㦀恃㧽伓\\*᧰閖樧뢇赸N휶䎈pI氇镊maᬠ탷#X?A+kНM ༑᩟؝?5꧎鰜ṚY즫궔 =ঈ;ﳈ?*s|켦蜌wM笙莔": [
+                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                 -3808207793125626469,
+                                                                                                                                                                                                                 [
+                                                                                                                                                                                                                  -469910450345251234,
+                                                                                                                                                                                                                  7852761921290328872,
+                                                                                                                                                                                                                  -2.7979740127017492E18,
+                                                                                                                                                                                                                  1.4458504352519893E-20,
+                                                                                                                                                                                                                  true,
+                                                                                                                                                                                                                  "㽙깹?먏䆢:䴎ۻg殠JBTU⇞}ꄹꗣi#I뵣鉍r혯~脀쏃#釯:场:䔁>䰮o'㼽HZ擓௧nd",
+                                                                                                                                                                                                                  [
+                                                                                                                                                                                                                   974441101787238751,
+                                                                                                                                                                                                                   null,
+                                                                                                                                                                                                                   -2.1647718292441327E-19,
+                                                                                                                                                                                                                   1.03602824249831488E18,
+                                                                                                                                                                                                                   [
+                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                    1.0311977941822604E-17,
+                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                    true,
+                                                                                                                                                                                                                    {
+                                                                                                                                                                                                                     "": -3.7019778830816707E18,
+                                                                                                                                                                                                                     "E峾恆茍6xLIm縂0n2视֯J-ᤜz+ᨣ跐mYD豍繹⹺䊓몓ﴀE(@詮(!Y膽#᎙2䟓섣A䈀㟎,囪QbK插wcG湎ꤧtG엝x⥏俎j'A一ᯥ뛙6ㅑ鬀": 8999803005418087004,
+                                                                                                                                                                                                                     "よ殳\\zD⧅%Y泥簳Uꈩ*wRL{3#3FYHା[d岀䉯T稉駅䞘礄P:闈W怏ElB㤍喬赔bG䠼U଄Nw鰯闀楈ePsDꥷ꭬⊊": [
+                                                                                                                                                                                                                      6.77723657904486E-20,
+                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                      [
+                                                                                                                                                                                                                       "ཚ_뷎꾑蹝q'㾱ꂓ钚蘞慵렜떆`ⴹ⎼櫯]J?[t9Ⓢ !컶躔I᮸uz>3a㠕i,錃L$氰텰@7녫W㸮?羧W뇧ꃞ,N鋮숪2ɼ콏┍䁲6",
+                                                                                                                                                                                                                       "&y?뢶=킕올Za惻HZk>c\u20b58i?ꦶcfBv잉ET9j䡡",
+                                                                                                                                                                                                                       "im珊Ճb칧<D-諂*u2ꡜ췛~䬢(텸ﵦ>校\\뼾쯀",
+                                                                                                                                                                                                                       9.555715121193197E-20,
+                                                                                                                                                                                                                       true,
+                                                                                                                                                                                                                       {
+                                                                                                                                                                                                                        "<㫚v6腓㨭e1㕔&&V∌ᗈT奄5Lጥ>탤?튣瑦㳆ꉰ!(ᙪ㿬擇_n쌯IMΉ㕨␰櫈ᱷ5풔蟹&L.첽e鰷쯃劼﫭b#ﭶ퓀7뷄Wr㢈๧Tʴશ㶑澕鍍%": -1810142373373748101,
+                                                                                                                                                                                                                        "fg晌o?߲ꗄ;>C>?=鑰監侯Kt굅": true,
+                                                                                                                                                                                                                        "䫡蓺ꑷ]C蒹㦘\"1ః@呫\u0014NL䏾eg呮፳,r$裢k>/\\<z": [[
+                                                                                                                                                                                                                         null,
+                                                                                                                                                                                                                         "C䡏>?ㄤᇰﻛ쉕1஥'Ċ\" \\_?쨔\"ʾr: 9S䘏禺ᪧꄂ㲄",
+                                                                                                                                                                                                                         [[{
+                                                                                                                                                                                                                          "*硙^+E쌺I1䀖ju?:⦈Ꞓl๴竣迃xKC/饉:\fl\"XTFᄄ蟭,芢<\/骡軺띜hꏘ\u001f銿<棔햳▨(궆*=乥b8\\媦䷀뫝}닶ꇭ(Kej䤑M": [{
+                                                                                                                                                                                                                           "1Ꮼ?>옿I╅C<ގ?ꊌ冉SV5A㢊㶆z-๎玶绢2F뵨@㉌뀌o嶔f9-庒茪珓뷳4": null,
+                                                                                                                                                                                                                           ";lᰳ": "CbB+肻a䄷苝*/볳+/4fq=㰁h6瘉샴4铢Y骐.⌖@哼猎㦞+'gꋸ㒕ߤ㞑(䶒跲ti⑴a硂#No볔",
+                                                                                                                                                                                                                           "t?/jE幸YHT셵⩎K!Eq糦ꗣv刴w\"l$ο:=6:移": {
+                                                                                                                                                                                                                            "z]鑪醊嫗J-Xm銌翁絨c里됏炙Ep㣋鏣똼嚌䀓GP﹖cmf4鹭T䅿꣭姧␸wy6ꦶ;S&(}ᎧKxᾂQ|t뻳k\"d6\"|Ml췆hwLt꼼4$&8Պ褵婶鯀9": {"嵃닢ᒯ'd᧫䳳#NXe3-붋鸿ଢ떓%dK\u0013䲎ꖍYV.裸R⍉rR3蟛\\:젯:南ĺLʆ넕>|텩鴷矔ꋅⒹ{t孶㓑4_": [
+                                                                                                                                                                                                                             true,
+                                                                                                                                                                                                                             null,
+                                                                                                                                                                                                                             [
+                                                                                                                                                                                                                              false,
+                                                                                                                                                                                                                              "l怨콈lᏒ",
+                                                                                                                                                                                                                              {
+                                                                                                                                                                                                                               "0w䲏嬧-:`䉅쉇漧\\܂yㄨb%㽄j7ᦶ涶<": 3.7899452730383747E-19,
+                                                                                                                                                                                                                               "ꯛTẀq纤q嶏V⿣?\"g}ი艹(쥯B T騠I=仵및X": {"KX6颠+&ᅃ^f畒y[": {
+                                                                                                                                                                                                                                "H?뱜^?꤂-⦲1a㋞&ꍃ精Ii᤾챪咽쬘唂쫷<땡劈훫놡o㥂\\ KⴙD秼F氮[{'좴:례晰Iq+I쭥_T綺砸GO煝䟪ᚪ`↹l羉q쐼D꽁ᜅ훦: vUV": true,
+                                                                                                                                                                                                                                "u^yﳍ0㱓#[y뜌앸ꊬL㷩?蕶蘾⻍KӼ": -7931695755102841701,
+                                                                                                                                                                                                                                "䤬轉車>\u001c鴵惋\"$쯃྆⇻n뽀G氠S坪]ಲꨍ捇Qxኻ椕駔\\9ࣼ﫻읜磡煮뺪ᶚ볝l㕆t+sζ": [[[
+                                                                                                                                                                                                                                 true,
+                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                 [
+                                                                                                                                                                                                                                  null,
+                                                                                                                                                                                                                                  3363739578828074923,
+                                                                                                                                                                                                                                  true,
+                                                                                                                                                                                                                                  {
+                                                                                                                                                                                                                                   "\"鸣詩 볰㑵gL㯦῅춝旫}ED辗ﮈI쀤-ꧤ|㠦Z\"娑ᕸ4爏騍㣐\"]쳝Af]茛⬻싦o蚁k䢯䩐菽3廇喑ޅ": 4.5017999150704666E17,
+                                                                                                                                                                                                                                   "TYႇ7ʠ值4챳唤~Zo&ݛ": false,
+                                                                                                                                                                                                                                   "`塄J袛㭆끺㳀N㺣`꽐嶥KﯝSVᶔ∲퀠獾N딂X\"ᤏhNﬨvI": {"\u20bb㭘I䖵䰼?sw䂷쇪](泒f\"~;꼪Fԝsᝦ": {"p,'ꉂ軿=A蚶?bƉ㏵䅰諬'LYKL6B깯⋩겦뎙(ᜭ\u0006噣d꾆㗼Z;䄝䚔cd<情@䞂3苼㸲U{)<6&ꩻ钛\u001au〷N숨囖愙j=BXW욕^x芜堏Ῑ爂뛷꒻t✘Q\b": [[
+                                                                                                                                                                                                                                    "籛&ଃ䩹.ꃩ㦔\\C颫#暪&!勹ꇶ놽攺J堬镙~軌C'꾖䣹㮅岃ᙴ鵣",
+                                                                                                                                                                                                                                    4.317829988264744E15,
+                                                                                                                                                                                                                                    6.013585322002147E-20,
+                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                    true,
+                                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                                    -3.084633632357326E-20,
+                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                    null,
+                                                                                                                                                                                                                                    {
+                                                                                                                                                                                                                                     "\"짫愔昻  X\"藣j\"\"먁ཅѻ㘤㬯0晲DU꟒㸃d벀윒l䦾c੻*3": null,
+                                                                                                                                                                                                                                     "谈Wm陧阦咟ฯ歖擓N喴㋐銭rCCnVࢥ^♼Ⅾ젲씗刊S༝+_t赔\\b䚍뉨ꬫ6펛cL䊘᜼<\/澤pF懽&H": [
+                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                       "W\"HDUuΌ퀟M'P4࿰H똆ⰱﮯ<\/凐蘲\"C鴫ﭒж}ꭩ쥾t5yd诪ﮡ퍉ⴰ@?氐醳rj4I6Qt": 6.9090159359219891E17,
+                                                                                                                                                                                                                                       "絛ﳛ⺂": {"諰P㗮聦`ZQ?ꫦh*റcb⧱}埌茥h{棩렛툽o3钛5鮁l7Q榛6_g)ὄ\u0013kj뤬^爖eO4Ⱈ槞鉨ͺ订%qX0T썗嫷$?\\\"봅늆'%": [
+                                                                                                                                                                                                                                        -2.348150870600346E-19,
+                                                                                                                                                                                                                                        [[
+                                                                                                                                                                                                                                         true,
+                                                                                                                                                                                                                                         -6619392047819511778,
+                                                                                                                                                                                                                                         false,
+                                                                                                                                                                                                                                         [[
+                                                                                                                                                                                                                                          -1.2929189982356161E-20,
+                                                                                                                                                                                                                                          1.7417192219309838E-19,
+                                                                                                                                                                                                                                          {"?嵲2࿐2\u0001啑㷳c縯": [
+                                                                                                                                                                                                                                           null,
+                                                                                                                                                                                                                                           [
+                                                                                                                                                                                                                                            false,
+                                                                                                                                                                                                                                            true,
+                                                                                                                                                                                                                                            2578060295690793218,
+                                                                                                                                                                                                                                            {
+                                                                                                                                                                                                                                             "?\"殃呎#㑑F": true,
+                                                                                                                                                                                                                                             "}F炊_殛oU헢兔Ꝉ,赭9703.B数gTz3⏬": {
+                                                                                                                                                                                                                                              "5&t3,햓Mݸᵣ㴵;꣫䩍↳#@뫷䠅+W-ࣇzᓃ鿕ಔ梭?T䮑ꥬ旴]u뫵막bB讍:왳둛lEh=숾鱠p咐$짏#?g⹷ᗊv㷵.斈u頻\u0018-G.": "뽙m-ouࣤ஫牷\"`Ksꕞ筼3HlȨvC堈\"I]㖡玎r먞#'W賜鴇k'c룼髋䆿飉㗆xg巤9;芔cጐ/ax䊨♢큓r吓㸫೼䢗da᩾\"]屣`",
+                                                                                                                                                                                                                                              ":M딪<䢥喠\u0013㖅x9蕐㑂XO]f*Q呰瞊吭VP@9,㨣 D\\穎vˤƩs㜂-曱唅L걬/롬j㈹EB8g<\/섩o渀\"u0y&룣": ">氍緩L/䕑돯Ꟙ蕞^aB뒣+0jK⪄瑨痜LXK^힦1qK{淚t츔X:Vm{2r獁B뾄H첚7氥?쉟䨗ꠂv팳圎踁齀\\",
+                                                                                                                                                                                                                                              "D彤5㢷Gꪻ[lㄆ@὜⓰絳[ଃ獽쮹☒[*0ꑚ㜳": 9022717159376231865,
+                                                                                                                                                                                                                                              "ҖaV銣tW+$魿\u20c3亜~뫡ᙰ禿쨽㏡fṼzE/h": "5臐㋇Ჯ쮺? 昨탰Wム밎#'\"崲钅U?幫뺀⍾@4kh>騧\\0ҾEV=爐͌U捀%ꉼ 㮋<{j]{R>:gԩL\u001c瀈锌ﯲﳡꚒ'⫿E4暍㌗뵉X\"H᝜",
+                                                                                                                                                                                                                                              "ᱚגּ;s醒}犍SἿ㦣&{T$jkB\\\tḮ앾䤹o<避(tW": "vb⯽䴪䮢@|)",
+                                                                                                                                                                                                                                              "⥒퐁껉%惀뗌+녣迺顀q條g⚯i⤭룐M琹j̈́⽜A": -8385214638503106917,
+                                                                                                                                                                                                                                              "逨ꊶZ<\/W⫟솪㎮ᘇb?ꠔi\"H㧺x෷韒Xꫨฟ|]窽\u001a熑}Agn?Mᶖa<rఄ4Ů䢤슲Axģe곖㴤x竾郍B謉鸵k薽M)\"芣眜`菉ꉛ䴺": "鹏^ె캫?3耲]|Ü1䡒㝮]8e?䶍^",
+                                                                                                                                                                                                                                              "뿸樅#P㡊1M룮Uꪭ绢ꑮZ9꽸": {"\nJ^є|3袄ㅐ7⨆銦y睝⋷仴ct?[,<\/ㅬ`?갔髞%揁A೚C": {
+                                                                                                                                                                                                                                               " 䇞3갫䅪": [{
+                                                                                                                                                                                                                                                "0|⩁㑂砕ㅻ": null,
+                                                                                                                                                                                                                                                "D箳᠉`|=⼭)\"*࣊㦏LjO誋": "",
+                                                                                                                                                                                                                                                "ࠚDZmꗥ}ᷴ╈r7헴ȥ4Kp5a)o}鎘门L搰䆓'✎k俎c#T68ӏ⩶6L鎴<r൦$黊BQY㼳\\跿F慮⡨拵贀!甶V喅/": null,
+                                                                                                                                                                                                                                                "ⵣq⳹ﻨLk]晩1*y\\$%}䖶P煑㇆䈦E嫁櫕Y࣓嫨䓏OL낮梚㸇洛洚BYtgl∛S☕䉓宑⋢粚ꔯ꠼붠": ")ꬑ윤`\"Ⱓ<\/婽*Y䔸ᓰ_ﳍt슲坩隥&S糧䛮闵诌豐sh쯽邴*섴؏͎=㯨\"RVힳ,^t\"ac?䤒ꉀxHa=Uꛕ㐙TkF껾",
+                                                                                                                                                                                                                                                "弾cUAF?暤c덽.欀nK앭]r傊䀓ﯳ馽垃[䥛oI0N砊鈥헅Co쟋钄ㅷ㊌뷚7": [
+                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                 "૓鏨?^䆏{\u0006`X䧵儱&롡尙砡\u0006뻝쑬sj▻XfᬶgcㄢV >9韲4$3Ỵ^=쏍煤ፐ돷2䣃%鷠/eQ9頸쥎",
+                                                                                                                                                                                                                                                 2398360204813891033,
+                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                 3.2658897259932633E-19,
+                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                 "?ꚃ8Nn㞷幵d䲳䱲뀙ꪛQ瑓鎴]䩋-鰾捡䳡??掊",
+                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                 -1309779089385483661,
+                                                                                                                                                                                                                                                 "ᦲxu_/yecR.6芏.ᜇ過 ~",
+                                                                                                                                                                                                                                                 -5658779764160586501,
+                                                                                                                                                                                                                                                 "쒌:曠=l썜䢜wk#s蕚\"互㮉m䉤~0듐䋙#G;h숄옥顇෤勹(C7㢅雚㐯L⠅VV簅<",
+                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                 -4.664877097240962E18,
+                                                                                                                                                                                                                                                 -4.1931322262828017E18,
+                                                                                                                                                                                                                                                 {
+                                                                                                                                                                                                                                                  ",": {
+                                                                                                                                                                                                                                                   "v㮟麑䄠뤵g{M띮.\u001bzt뢜뵡0Ǥ龍떟Ᾰ怷ϓRT@Lꀌ樂U㏠⾕e扉|bJg(뵒㠶唺~ꂿ(땉x⻫싉쁊;%0鎻V(o\f,N鏊%nk郼螺": -1.73631993428376141E18,
+                                                                                                                                                                                                                                                   "쟧摑繮Q@Rᕾ㭚㾣4隅待㓎3蒟": [
+                                                                                                                                                                                                                                                    4971487283312058201,
+                                                                                                                                                                                                                                                    8973067552274458613,
+                                                                                                                                                                                                                                                    {
+                                                                                                                                                                                                                                                     "`a揙ᣗ\u0015i<S幼訃锭B0&槩✨[Wp皩[g≊k葾x2ᡆ橲䲢W": true,
+                                                                                                                                                                                                                                                     "kH皈Sꁱq傑u?솹풑~o^F=劣N*reJ沤wW苯7p㼹䎐a=ꮧL㷩냴nWꌑ㞱uu谁lVN珿᤻(e豶5#L쪉ᅄ઄\u0015숟봊P瀚X蓎": false,
+                                                                                                                                                                                                                                                     "䫯דּ〖Sc䛭점L뵾pCꙞ\"엇즓_ﰛ톣ꫀ먩㺣㮠⭴!\\W┏t䖰軅y\u0014~ᇰ렢E7*俜䥪W䀩䷐h봆vjஉ묣༏G39.뼳輼:㮿ᐦA饕TUL}~": [
+                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                      8.8648298810470003E17,
+                                                                                                                                                                                                                                                      5.735561205600924E-20,
+                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                      -102555823658171644,
+                                                                                                                                                                                                                                                      1.2674932032973067E-19,
+                                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                                       "D胣O㯨\u0017Ku눓㒏텁nᨊ!Ꚇ廫_>Bo¸": 4.3236479112537999E18,
+                                                                                                                                                                                                                                                       "HW&퉡ぁ圍<W)6悰ꠑHEp14xy峑ft\u0005s亘V튉䢮ꦈX嵐꬝?lI_덝춇-6Ss噺Nk-ﮥ큃܁郪*PR(S6╋@仙V懸뺵ﯜV粹": "9䗌斀4㐈^Qs隄硏j\u0003",
+                                                                                                                                                                                                                                                       "Vk鶅C泹筁HX훉朗*r\\z顊誌儖4?n7᏾6몋䎡ﳈ],H頢p蚐㑄P4满E䏩V䬕ญL廂쒬쑨ꆷh迡ꍰ譖墎 ]鹿ฌ7ﶽ冭༽<ꈓS\\l䋮?_ユ檒?": -8598528325153980065,
+                                                                                                                                                                                                                                                       "t=q퍣疻тZ\\錅J.镎|nfḷ鴒1厰L灯纜E]୦⥪]Ꮾ'羝p/咩0닳ﳁqﳖཽk ?X1Ft%ś뭢v鋋⺃爵⒗": [[
+                                                                                                                                                                                                                                                        5.0824756359232045E-19,
+                                                                                                                                                                                                                                                        [
+                                                                                                                                                                                                                                                         7.268480839079619E-19,
+                                                                                                                                                                                                                                                         {"탿^굞⧕iј덊ꀛw껩6ꟳXs酚\\>Y?瑡Qy훍q!帰敏s舠㫸zꚗaS歲v`G株巷Jp6킼 (귶鍔⾏⡈>M汐㞍ቴ꙲dv@i㳓ᇆ?黍": [
+                                                                                                                                                                                                                                                          null,
+                                                                                                                                                                                                                                                          4997607199327183467,
+                                                                                                                                                                                                                                                          "E㻎蠫ᐾ高䙟蘬洼旾﫠텛㇛?'M$㣒蔸=A_亀绉앭rN帮",
+                                                                                                                                                                                                                                                          null,
+                                                                                                                                                                                                                                                          [{
+                                                                                                                                                                                                                                                           "Eᑞ)8<Z㡿W镀䛒C생V?0ꯦ+tL)`齳AjB姀XೳD빠㻲ƙgn9⑰ྍ῜&\"㚹>餧A5u&㗾q?": [
+                                                                                                                                                                                                                                                            -1.969987519306507E-19,
+                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                            [
+                                                                                                                                                                                                                                                             3.42437673373841E-20,
+                                                                                                                                                                                                                                                             true,
+                                                                                                                                                                                                                                                             "e걷M墁\"割P␛퍧厀R䱜3ﻴO퓫r﹉⹊",
+                                                                                                                                                                                                                                                             [
+                                                                                                                                                                                                                                                              -8164221302779285367,
+                                                                                                                                                                                                                                                              [
+                                                                                                                                                                                                                                                               true,
+                                                                                                                                                                                                                                                               null,
+                                                                                                                                                                                                                                                               "爘y^-?蘞Ⲽꪓa␅ꍨ}I",
+                                                                                                                                                                                                                                                               1.4645984996724427E-19,
+                                                                                                                                                                                                                                                               [{
+                                                                                                                                                                                                                                                                "tY좗⧑mrzﺝ㿥ⴖ᥷j諅\u0000q賋譁Ꞅ⮱S\nࡣB/큃굪3Zɑ复o<\/;롋": null,
+                                                                                                                                                                                                                                                                "彟h浠_|V4䦭Dᙣ♞u쿻=삮㍦\u001e哀鬌": [{"6횣楠,qʎꗇ鎆빙]㱭R굋鈌%栲j分僅ペ䇰w폦p蛃N溈ꡐꏀ?@(GI뉬$ﮄ9誁ꓚ2e甸ڋ[䁺,\u0011\u001cࢃ=\\+衪䷨ᯕ鬸K": [[
+                                                                                                                                                                                                                                                                 "ㅩ拏鈩勥\u000etgWVXs陂規p狵w퓼{뮵_i\u0002ퟑႢ⬐d6鋫F~챿搟\u0096䚼1ۼ칥0꣯儏=鋷牋ⅈꍞ龐",
+                                                                                                                                                                                                                                                                 -7283717290969427831,
+                                                                                                                                                                                                                                                                 true,
+                                                                                                                                                                                                                                                                 [
+                                                                                                                                                                                                                                                                  4911644391234541055,
+                                                                                                                                                                                                                                                                  {
+                                                                                                                                                                                                                                                                   "I鈒첽P릜朸W徨觘-Hᎄ퐟⓺>8kr1{겵䍃〛ᬡ̨O귑o䝕'쿡鉕p5": "fv粖RN瞖蛐a?q꤄\u001d⸥}'ꣴ犿ꦼ?뤋?鵆쥴덋䡫s矷̄?ඣ/;괱絢oWfV<\/\u202cC,㖦0䑾%n賹g&T;|lj_欂N4w",
+                                                                                                                                                                                                                                                                   "짨䠗;䌕u i+r๏0": [{"9䥁\\఩8\"馇z䇔<\/ႡY3e狚쐡\"ุ6ﰆZ遖c\"Ll:ꮾ疣<\/᭙O◌납୕湞9⡳Und㫜\u0018^4pj1;䧐儂䗷ୗ>@e톬": {
+                                                                                                                                                                                                                                                                    "a⑂F鋻Q螰'<퇽Q贝瀧{ᘪ,cP&~䮃Z?gI彃": [
+                                                                                                                                                                                                                                                                     -1.69158726118025933E18,
+                                                                                                                                                                                                                                                                     [
+                                                                                                                                                                                                                                                                      "궂z簽㔛㮨瘥⤜䛖Gℤ逆Y⪾j08Sn昞ꘔ캻禀鴚P謦b{ꓮmN靐Mᥙ5\"睏2냑I\u0011.L&=?6ᄠ뻷X鸌t刑\"#z)o꫚n쳟줋",
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      7517598198523963704,
+                                                                                                                                                                                                                                                                      "ኑQp襟`uᩄr方]*F48ꔵn俺ሙ9뇒",
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      6645782462773449868,
+                                                                                                                                                                                                                                                                      1219168146640438184,
+                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                                                       ")ယ넌竀Sd䰾zq⫣⏌ʥ\u0010ΐ' |磪&p牢蔑mV蘸૰짬꺵;K": [
+                                                                                                                                                                                                                                                                        -7.539062290108008E-20,
+                                                                                                                                                                                                                                                                        [
+                                                                                                                                                                                                                                                                         true,
+                                                                                                                                                                                                                                                                         false,
+                                                                                                                                                                                                                                                                         null,
+                                                                                                                                                                                                                                                                         true,
+                                                                                                                                                                                                                                                                         6574577753576444630,
+                                                                                                                                                                                                                                                                         [[
+                                                                                                                                                                                                                                                                          1.2760162530699766E-19,
+                                                                                                                                                                                                                                                                          [
+                                                                                                                                                                                                                                                                           null,
+                                                                                                                                                                                                                                                                           [
+                                                                                                                                                                                                                                                                            "顊\\憎zXB,",
+                                                                                                                                                                                                                                                                            [{
+                                                                                                                                                                                                                                                                             "㇆{CVC9-MN㜋ઘR눽#{h@ퟨ!鼚׼XOvXS\u0017ᝣ=cS+梽៲綆16s덽휐y屬?ᇳG2ᴭ\u00054쫖y룇nKcW̭炦s/鰘ᬽ?J|퓀髣n勌\u0010홠P>j": false,
+                                                                                                                                                                                                                                                                             "箴": [
+                                                                                                                                                                                                                                                                              false,
+                                                                                                                                                                                                                                                                              "鍞j\"ꮾ*엇칬瘫xṬ⭽쩁䃳\"-⋵?ᦽ<cਔ↎⩧%鱩涎삧u9K⦈\"῝ᬑV绩킯愌ṱv@GꝾ跶Ꚇ(?䖃vI᧊xV\r哦j㠒?*=S굤紴ꊀ鹭쬈s<DrIu솹꧑?",
+                                                                                                                                                                                                                                                                              {
+                                                                                                                                                                                                                                                                               ".}S㸼L?t\u000fK⑤s~hU鱜꘦}쪍C滈4ꓗ蛌):ྦ\"顥이⢷ῳYLn\"?fꘌ>댎Ĝ": true,
+                                                                                                                                                                                                                                                                               "Pg帯佃籛n㔠⭹࠳뷏≻࿟3㞱!-쒾!}쭪䃕!籿n涻J5ਲ਼yvy;Rኂ%ᔡጀ裃;M⣼)쵂쑈": 1.80447711803435366E18,
+                                                                                                                                                                                                                                                                               "ꈑC⡂ᑆ㤉壂뎃Xub<\/쀆༈憓ق쨐ק\\": [
+                                                                                                                                                                                                                                                                                7706977185172797197,
+                                                                                                                                                                                                                                                                                {"": {"K╥踮砆NWࡆFy韣7ä밥{|紒︧䃀榫rᩛꦡTSy잺iH8}ퟴ,M?Ʂ勺ᴹ@T@~꾂=I㙕뾰_涀쑜嫴曣8IY?ҿo줫fऒ}\\S\"ᦨ뵼#nDX": {
+                                                                                                                                                                                                                                                                                 "♘k6?଱癫d68?㽚乳䬳-V顷\u0005蝕?\u0018䞊V{邾zじl]雏k臤~ൖH뒐iꢥ]g?.G碄懺䔛p<q꜉S岗_.%": 7688630934772863849,
+                                                                                                                                                                                                                                                                                 "溗摽嗙O㧀,⡢⼰呠ꅧ㓲/葇䢛icc@-r\b渂ꌳ뻨饑觝ᖜ\\鮭\u0014엙㥀᧺@浹W2꛵{W률G溮킀轡䬆g㨑'Q聨៪网Hd\"Q늴ᱢﶨ邮昕纚枑?▰hr羌驀[痹<\/": [
+                                                                                                                                                                                                                                                                                  -1.0189902027934687E-19,
+                                                                                                                                                                                                                                                                                  {"窶椸릎뚻shE\"ꪗႥꎳU矖佟{SJ": [{"-慜x櫹XY-澐ܨ⣷ઢ鯙%Fu\u0000迋▒}᥷L嗭臖oញc넨\u0016/迎1b꯸g뢱㐧蓤䒏8C散삭|\"컪輩鹩\"\\g$zG䥽긷?狸꿭扵㲐:URON&oU8": [
+                                                                                                                                                                                                                                                                                   null,
+                                                                                                                                                                                                                                                                                   true,
+                                                                                                                                                                                                                                                                                   null,
+                                                                                                                                                                                                                                                                                   -2.8907335031148883E17,
+                                                                                                                                                                                                                                                                                   -3864019407187144121,
+                                                                                                                                                                                                                                                                                   {
+                                                                                                                                                                                                                                                                                    "`빬d⵺4H뜳⧈쓑ohஸ*㶐ﻇ⸕䠵!i䝬﹑h夘▥ꗐ푹갇㵳TA鳠嚵\\B<X}3訒c⋝{*﫢w]璨-g捭\\j໵侠Ei层\u0011": 3.758356090089446E-19,
+                                                                                                                                                                                                                                                                                    "䄘ﮐ)Y놞씃㾱陰큁:{\u2059/S⓴": [[
+                                                                                                                                                                                                                                                                                     null,
+                                                                                                                                                                                                                                                                                     [[
+                                                                                                                                                                                                                                                                                      -3.8256602120220546E-20,
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      7202317607724472882,
+                                                                                                                                                                                                                                                                                      "CWQ뚿",
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      false,
+                                                                                                                                                                                                                                                                                      true,
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      2857038485417498625,
+                                                                                                                                                                                                                                                                                      6.191302233218633E-20,
+                                                                                                                                                                                                                                                                                      null,
+                                                                                                                                                                                                                                                                                      -6795250594296208046,
+                                                                                                                                                                                                                                                                                      [
+                                                                                                                                                                                                                                                                                       true,
+                                                                                                                                                                                                                                                                                       {
+                                                                                                                                                                                                                                                                                        "%ዧ遰Yᚯ⚀x莰愒Vᔈ턗BN洝ꤟA1⍌l콹풪H;OX๫륞쪐ᰚц@͎黾a邬<L厒Xb龃7f웨窂二;": [[
+                                                                                                                                                                                                                                                                                         null,
+                                                                                                                                                                                                                                                                                         "耲?䙧㘓F6Xs틭멢.v뚌?鄟恠▽'묺競?WvᆾCtxo?dZ;䨸疎",
+                                                                                                                                                                                                                                                                                         {
+                                                                                                                                                                                                                                                                                          "@hWꉁ&\"빜4礚UO~C;う殩_ꀥ蘁奢^챟k→ᡱKMⵉ<\/Jㅲ붉L͟Q": false,
+                                                                                                                                                                                                                                                                                          "tU뢂8龰I먽7,.Y搽Z툼=&⨥覽K乫햶㠸%#@Z끖愓^⍊⾂몒3E_噆J(廊ឭyd䞜鈬Ћ档'⣘I": {
+                                                                                                                                                                                                                                                                                           "tK*ꔵ銂u艗ԃ쿏∳ꄂ霫X3♢9y?=ⲭdЊb&xy}": [
+                                                                                                                                                                                                                                                                                            -4.097346784534325E-20,
+                                                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                                                            6016848468610144624,
+                                                                                                                                                                                                                                                                                            -8194387253692332861,
+                                                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                                                            {
+                                                                                                                                                                                                                                                                                             "(祬诀譕쯠娣c봝r?畄kT뼾⌘⎨?noV䏘쥝硎n?": [
+                                                                                                                                                                                                                                                                                              1.82679422844617293E18,
+                                                                                                                                                                                                                                                                                              [
+                                                                                                                                                                                                                                                                                               false,
+                                                                                                                                                                                                                                                                                               2.6849944122427694E18,
+                                                                                                                                                                                                                                                                                               true,
+                                                                                                                                                                                                                                                                                               [
+                                                                                                                                                                                                                                                                                                false,
+                                                                                                                                                                                                                                                                                                {
+                                                                                                                                                                                                                                                                                                 ";0z⭆;화$bਔ瀓\"衱^?잢ᢛ⣿~`ꕉ薸⌳໿湘腌'&:ryБꋥၼ꒥筙꬜긨?X": -3536753685245791530,
+                                                                                                                                                                                                                                                                                                 "c;Y7釚Uꃣ割J༨Y戣w}c峰뢨㽑㫈0N>R$䅒X觨l봜A刊8R梒',}u邩퉕?;91Ea䈈믁G⊶芔h袪&廣㺄j;㡏綽\u001bN頸쳘橆": -2272208444812560733,
+                                                                                                                                                                                                                                                                                                 "拑Wﵚj鵼駳Oࣿ)#㾅顂N傓纝y僱栜'Bꐍ-!KF*ꭇK¦?䈴^:啤wG逭w᧯": "xᣱmYe1ۏ@霄F$ě꧘푫O䤕퀐Pq52憬ꀜ兴㑗ᡚ?L鷝ퟐ뭐zJꑙ}╆ᅨJB]\"袌㺲u8䯆f",
+                                                                                                                                                                                                                                                                                                 "꿽၅㔂긱Ǧ?SI": -1669030251960539193,
+                                                                                                                                                                                                                                                                                                 "쇝ɨ`!葎>瞺瘡驷錶❤ﻮ酜=": -6961311505642101651,
+                                                                                                                                                                                                                                                                                                 "?f7♄꫄Jᡔ훮e읇퍾፣䭴KhखT;Qty}O\\|뫁IῒNe(5惁ꥶㆷY9ﮡ\\ oy⭖-䆩婁m#x봉>Y鈕E疣s驇↙ᙰm<": {"퉻:dꂁ&efᅫ쫢[\"돈늖꺙|Ô剐1͖-K:ʚ᭕/;쏖㷛]I痐职4g<Oꗢ뫺N쯂륬J╆.`ᇵP轆&fd$?苅o궓vO侃沲⍩嚅沗 E%⿰얦wi\\*趫": [
+                                                                                                                                                                                                                                                                                                  3504362220185634767,
+                                                                                                                                                                                                                                                                                                  false,
+                                                                                                                                                                                                                                                                                                  "qzX朝qT3軞T垈ꮲQ览ᚻ⻑쎎b驌䵆ꬠ5Fୗ䲁缿ꝁ蒇潇Ltᆄ钯蜀W欥ሺ",
+                                                                                                                                                                                                                                                                                                  "볰ɐ霬)젝鶼kwoc엷荁r \u001d쒷⎹8{%澡K늒?iﺩd=&皼倚J9s@3偛twὡgj䁠흪5⭉⨺役&놎cﺉ㺡N5",
+                                                                                                                                                                                                                                                                                                  false,
+                                                                                                                                                                                                                                                                                                  null,
+                                                                                                                                                                                                                                                                                                  "D0st[ni锹r*0k6ꀎ덇UX2⽼৞䃚粭#)Z桷36P]<\/`",
+                                                                                                                                                                                                                                                                                                  4281410120849816730,
+                                                                                                                                                                                                                                                                                                  null,
+                                                                                                                                                                                                                                                                                                  -3256922126984394461,
+                                                                                                                                                                                                                                                                                                  1.16174580369801549E18,
+                                                                                                                                                                                                                                                                                                  {
+                                                                                                                                                                                                                                                                                                   " ᆼꤗ~*TN긂<㡴턱℃酰^蘒涯잰淭傛2rൡet쾣䐇m*㸏y\"\\糮᧺qv쌜镜T@yg1譬ﭧﳭ\f": null,
+                                                                                                                                                                                                                                                                                                   "圾ᨿ0xᮛ禵ਗ਼D-㟻ẵ錚e\"赜.˶m)鴑B(I$<\/轴퉯揷⋏⏺*)宓쓌?*橯Lx\\f쩂㞼⇸\"ﺧ軂遳V\\땒\"캘c:G": null,
+                                                                                                                                                                                                                                                                                                   "?﵁_곢翸폈8㿠h열Q2㭛}RY㯕YT놂⽻e^B<\/맫ﻇ繱\u0017Gц⟊ᢑﵩS:jt櫣嗒⟰W㴚搦ᅉe[w䋺?藂翙Ⲱ芮䍘╢囥lpdu7r볺I 近qFyᗊ": [
+                                                                                                                                                                                                                                                                                                    "$b脬aᅠ襬育Bگ嵺Pw+'M<\/כֿn䚚v螁bN⒂}褺%lቦ阤\"ꓺᏗM牏,۞Ҷ!矬?ke9銊X괦)䈽틁脽ṫ䈞ᴆ^=Yᗿ遛4I귺⋥%",
+                                                                                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                                                                                    2.9444482723232051E18,
+                                                                                                                                                                                                                                                                                                    2072621064799640026,
+                                                                                                                                                                                                                                                                                                    "/_뇴뫢j㍒=Nꡦ↍Ժ赒❬톥䨞珯su*媸瀳鷔抡o흺-៳辏勷f绔:䵢搢2",
+                                                                                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                                                                                    "쒜 E䌐/큁\u0018懺_<\\隺&{wF⤊谼(<죽遠8?@*rᶊGd뻻갇&Ⳇq᣿e࢔t_ꩄ梸O詬C᧧Kꩠ풤9눙醅됞}竸rw?滨ӽK⥿ཊG魲']`๖5㄰",
+                                                                                                                                                                                                                                                                                                    -2375253967958699084,
+                                                                                                                                                                                                                                                                                                    {"嗱⿲\"f億ᝬ": {"v?䚑킡`◤k3,骥曘뒤Oᒱ㲹^圮᠀YT껛&촮P:G/T⣝#튣k3炩蠏k@橈䏷S䧕,熜晬k1鮥玸먚7䤡f绝嗚샴ᥒ~0q拮垑a뻱LⰖ_": [{
+                                                                                                                                                                                                                                                                                                     ":p尢": -6.688985172863383E17,
+                                                                                                                                                                                                                                                                                                     "A0\u0001疠ﻵ爻鼀湶I~W^岀mZx#㍈7r拣$Ꜷ疕≛⦒痋盩Vꬷ᭝ΩQꍪ療鈑A(劽詗ꭅo-獶鑺\"Ⓠ@$j탥;": [
+                                                                                                                                                                                                                                                                                                      8565614620787930994,
+                                                                                                                                                                                                                                                                                                      [
+                                                                                                                                                                                                                                                                                                       "嶗PC?උQ㪣$&j幾㾷h慑 즊慧⪉霄M窊ꁷ'鮕)䊏铨m趦䗲(g罣ЮKVﯦ鏮5囗ﰼ鿦",
+                                                                                                                                                                                                                                                                                                       -7168038789747526632,
+                                                                                                                                                                                                                                                                                                       null,
+                                                                                                                                                                                                                                                                                                       -7.8069738975270288E16,
+                                                                                                                                                                                                                                                                                                       2.25819579241348352E17,
+                                                                                                                                                                                                                                                                                                       -6.5597416611655936E18,
+                                                                                                                                                                                                                                                                                                       {
+                                                                                                                                                                                                                                                                                                        "瘕멦핓+?フZ귢z鍛V": {
+                                                                                                                                                                                                                                                                                                         "ᕾ": 1.7363275204701887E-19,
+                                                                                                                                                                                                                                                                                                         "㭌s뎹㳉": {"\u00187FI6Yf靺+UC쬸麁␲䂿긕R\\ᆮC?Φ耭\rOத际핅홦*베W㸫㯼᡹cㅜ|G㮗\u0013[o`?jHV앝?蒪꩚!퍫ᜦ㌇䚇鿘:@": [
+                                                                                                                                                                                                                                                                                                          "}푛Г콲<䟏C藐呈#2㓋#ྕ፟尿9q竓gI%랙mꍬoa睕贿J咿D_熏Zz皳験I豼B扳ḢQ≖㻹㱣D䝦練2'ᗍ㗣▌砲8罿%హF姦;0悇<\/\"p嚧",
+                                                                                                                                                                                                                                                                                                          -710184373154164247,
+                                                                                                                                                                                                                                                                                                          "Vo쫬⬾ꝫⴷŻ\u0004靎HBꅸ_aVBHbN>Z4⍜kเꛘZ⥺\\Bʫᇩ鄨魢弞&幟ᓮ2̊盜",
+                                                                                                                                                                                                                                                                                                          -9006004849098116748,
+                                                                                                                                                                                                                                                                                                          -3118404930403695681,
+                                                                                                                                                                                                                                                                                                          {
+                                                                                                                                                                                                                                                                                                           "_彃Y艘-\"Xx㤩㳷瑃?%2䐡鵛o<A?\"顜ᘌΈ;ⷅC洺L蚴蚀voq:,Oo4쪂)": 5719065258177391842,
+                                                                                                                                                                                                                                                                                                           "l륪맽耞塻論倐E㗑/㲕QM辬I\"qi酨玑㖪5q]尾魨鲡ƞY}⮯蠇%衟Fsf윔䐚찤i腳": {"ꢪ'a䣊糈": {"밑/♋S8s㼴5瓹O{댞\"9XﰇlJ近8}q{긧ⓈI᱑꿋腸D瀬H\"ﺬ'3?}\u0014#?丙㑯ᥨ圦',g鑠(樴턇?": [
+                                                                                                                                                                                                                                                                                                            2.5879275511391145E18,
+                                                                                                                                                                                                                                                                                                            null,
+                                                                                                                                                                                                                                                                                                            [
+                                                                                                                                                                                                                                                                                                             "3㼮ꔌ1Gẃ2W龙j͊{1囐㦭9x宠㑝oR䐕犽",
+                                                                                                                                                                                                                                                                                                             1268729930083267852,
+                                                                                                                                                                                                                                                                                                             "땕軚⿦7C",
+                                                                                                                                                                                                                                                                                                             [
+                                                                                                                                                                                                                                                                                                              -3.757935946502082E18,
+                                                                                                                                                                                                                                                                                                              "\"赌'糬_2뭾᝝b",
+                                                                                                                                                                                                                                                                                                              {
+                                                                                                                                                                                                                                                                                                               "(a䕎ጽjҰD4.ᴡ66ԃ畮<\/l`k癸\\㇋ࣆ욯R㫜픉녬挛;ڴ맺`.;焓q淞뮕ٹ趴r蔞ꯔ䟩v粏u5<\/pZ埖Skrvj帛=\u0005aa": null,
+                                                                                                                                                                                                                                                                                                               "璄≩ v몛ᘮ%?:1頌챀H㷪뉮k滘e": [
+                                                                                                                                                                                                                                                                                                                "ꤾ{`c샬왌펡[俊络vmz㪀悫⸹ᷥ5o'㾵 L蹦qjYIYណԠW냁剫<\/W嗂0,}",
+                                                                                                                                                                                                                                                                                                                2.4817616702666762E18,
+                                                                                                                                                                                                                                                                                                                false,
+                                                                                                                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                                                                                                                -8.6036958071260979E17,
+                                                                                                                                                                                                                                                                                                                null,
+                                                                                                                                                                                                                                                                                                                -1.2744078022652468E-19,
+                                                                                                                                                                                                                                                                                                                -4.4752020268429594E17,
+                                                                                                                                                                                                                                                                                                                1.13672865156637872E17,
+                                                                                                                                                                                                                                                                                                                [
+                                                                                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                                                                                 false,
+                                                                                                                                                                                                                                                                                                                 null,
+                                                                                                                                                                                                                                                                                                                 -4.178004168554046E-20,
+                                                                                                                                                                                                                                                                                                                 true,
+                                                                                                                                                                                                                                                                                                                 2927542512798605527,
+                                                                                                                                                                                                                                                                                                                 {
+                                                                                                                                                                                                                                                                                                                  ".ꔓ뉤1䵬cHy汼䊆賓ᐇƩ|樷❇醎㬅4\u0003赵}#yD5膏晹뱓9ꖁ虛J㺕 t䊛膎ؤ": {
+                                                                                                                                                                                                                                                                                                                   "rVtᓸ5^`েN⹻Yv᥋lꌫt拘?<鮰넿ZC?㒽^": {"␪k_:>귵옔夘v*탋职&㳈챗|O钧": [
+                                                                                                                                                                                                                                                                                                                    false,
+                                                                                                                                                                                                                                                                                                                    "daꧺdᗹ羞쯧H㍤鄳頳<型孒ン냆㹀f4㹰\u000f|C*ሟ鰠(O<ꨭ峹ipຠ*y೧4VQ蔔hV淬{?ᵌEfrI_",
+                                                                                                                                                                                                                                                                                                                    "j;ꗣ밷邍副]ᗓ",
+                                                                                                                                                                                                                                                                                                                    -4299029053086432759,
+                                                                                                                                                                                                                                                                                                                    -5610837526958786727,
+                                                                                                                                                                                                                                                                                                                    [
+                                                                                                                                                                                                                                                                                                                     null,
+                                                                                                                                                                                                                                                                                                                     [
+                                                                                                                                                                                                                                                                                                                      -1.3958390678662759E-19,
+                                                                                                                                                                                                                                                                                                                      {
+                                                                                                                                                                                                                                                                                                                       "lh좈T_믝Y\"伨\u001cꔌG爔겕ꫳ晚踍⿻읐T䯎]~e#฽燇\"5hٔ嶰`泯r;ᗜ쮪Q):/t筑,榄&5懶뎫狝(": [{
+                                                                                                                                                                                                                                                                                                                        "2ፁⓛ]r3C攟וּ9賵s⛔6'ஂ|\"ⵈ鶆䐹禝3\"痰ࢤ霏䵩옆䌀?栕r7O簂Isd?K᫜`^讶}z8?z얰T:X倫⨎ꑹ": -6731128077618251511,
+                                                                                                                                                                                                                                                                                                                        "|︦僰~m漿햭\\Y1'Vvخ굇ቍ챢c趖": [null]
+                                                                                                                                                                                                                                                                                                                       }],
+                                                                                                                                                                                                                                                                                                                       "虌魿閆5⛔煊뎰㞤ᗴꥰF䮥蘦䂪樳-K᝷-(^\u20dd_": 2.11318679791770592E17
+                                                                                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                                                                                                    ]
+                                                                                                                                                                                                                                                                                                                   ]},
+                                                                                                                                                                                                                                                                                                                   "묗E䀳㧯᳀逞GMc\b墹㓄끖Ơ&U??펌鑍 媋k))ᄊ": null,
+                                                                                                                                                                                                                                                                                                                   "묥7콽벼諌J_DɯﮪM殴䣏,煚ྼ`Y:씧<\/⩫%yf䦀!1Ჶk춎Q米W∠WC跉鬽*ᛱi<?,l<崣炂骵*?8푐៣ⰵ憉⎑.,Nw罣q+ο컆弎": false
+                                                                                                                                                                                                                                                                                                                  },
+                                                                                                                                                                                                                                                                                                                  "e[|଀+lꑸ㝈TT?뿿|ꫛ9`㱯䊸楋-곳賨?쳁k棽擋wQ餈⟐Nq[q霩䵀뷮锅ꚢ": 5753148631596678144,
+                                                                                                                                                                                                                                                                                                                  "sᓝ鴻߸d렶ὕ蜗ဟ툑!诉౿": false,
+                                                                                                                                                                                                                                                                                                                  "|4䕳鵻?䈔(]틍/Ui#湻{듲ーMዀt7潔泄Ch⸨}쏣`螧銚㋼壯kⰥQ戵峉갑x辙'첛": "jd䘯$䕌茷!auw眶ㅥ䁣ꆢ民i",
+                                                                                                                                                                                                                                                                                                                  "剖駰ꞫsM2]ᾴ2ࡷ祅拌Av狔꩛'ꓗ킧ꣁ0酜✘O'": false,
+                                                                                                                                                                                                                                                                                                                  "澩뢣ꀁeU~D\\ꮡ킠": "v^YC嚈ί\u0007죋h>㴕L꘻ꀏ쓪\"_g鿄'#t⽙?,Wg㥖|D鑆e⥏쪸僬h鯔咼ඡ;4TK聎졠嫞"
+                                                                                                                                                                                                                                                                                                                 }
+                                                                                                                                                                                                                                                                                                                ]
+                                                                                                                                                                                                                                                                                                               ]
+                                                                                                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                                                                                                             ]
+                                                                                                                                                                                                                                                                                                            ]
+                                                                                                                                                                                                                                                                                                           ]}}
+                                                                                                                                                                                                                                                                                                          }
+                                                                                                                                                                                                                                                                                                         ]}
+                                                                                                                                                                                                                                                                                                        },
+                                                                                                                                                                                                                                                                                                        "뿋뀾淣截䔲踀&XJ펖꙯^Xb訅ꫥgᬐ>棟S\"혧騾밫겁7-": "擹8C憎W\"쵮yR뢩浗絆䠣簿9䏈引Wcy䤶孖ꯥ;퐌]輩䍐3@{叝 뽸0ᡈ쵡Ⲇ\u001dL匁꧐2F~ݕ㪂@W^靽L襒ᦘ~沦zZ棸!꒲栬R"
+                                                                                                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                                                                                                      ]
+                                                                                                                                                                                                                                                                                                     ],
+                                                                                                                                                                                                                                                                                                     "Z:덃൛5Iz찇䅄駠㭧蓡K1": "e8᧤좱U%?ⵇ䯿鿝\u0013縮R∱骒EO\u000fg?幤@֗퉙vU`",
+                                                                                                                                                                                                                                                                                                     "䐃쪈埽້=Ij,쭗쓇చ": false
+                                                                                                                                                                                                                                                                                                    }]}}
+                                                                                                                                                                                                                                                                                                   ]
+                                                                                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                                                                                 ]}
+                                                                                                                                                                                                                                                                                                }
+                                                                                                                                                                                                                                                                                               ]
+                                                                                                                                                                                                                                                                                              ]
+                                                                                                                                                                                                                                                                                             ],
+                                                                                                                                                                                                                                                                                             "咰긖VM]᝼6䓑쇎琺etDҌ?㞏ꩄ퇫밉gj8蠃\"⩐5䛹1ࣚ㵪": "ക蹊?⎲⧘⾚̀I#\"䈈⦞돷`wo窭戕෱휾䃼)앷嵃꾞稧,Ⴆ윧9S?೗EMk3Მ3+e{⹔Te驨7䵒?타Ulg悳o43"
+                                                                                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                                                                                           ],
+                                                                                                                                                                                                                                                                                           "zQᤚ纂땺6#ٽ﹧v￿#ࠫ휊冟蹧텈ꃊʆ?&a䥯De潝|쿓pt瓞㭻啹^盚2Ꝋf醪,얏T窧\\Di䕎谄nn父ꋊE": -2914269627845628872,
+                                                                                                                                                                                                                                                                                           "䉩跐|㨻ᷢ㝉B{蓧瞸`I!℄욃힕#ೲᙾ竛ᔺCjk췒늕貭词\u0017署?W딚%(pꍁ⤼띳^=on뺲l䆼bzrﳨ[&j狸䠠=ᜑꦦ\u2061յnj=牲攑)M\\龏": false,
+                                                                                                                                                                                                                                                                                           "뎕y絬᫡⥮Ϙᯑ㌔/NF*˓.,QEzvK!Iwz?|쥾\"ꩻL꼗Bꔧ賴緜s뉣隤茛>ロ?(?^`>冺飒=噸泥⺭Ᲊ婓鎔븜z^坷裮êⓅ໗jM7ﶕ找\\O": 1.376745434746303E-19
+                                                                                                                                                                                                                                                                                          },
+                                                                                                                                                                                                                                                                                          "䐛r滖w㏤<k;l8ꡔጵ⮂ny辶⋃퍼僮z\"﮲X@t5෼暧퓞猋♅䦖QC鹮|픨( ,>,|Nዜ": false
+                                                                                                                                                                                                                                                                                         }
+                                                                                                                                                                                                                                                                                        ]],
+                                                                                                                                                                                                                                                                                        "@꿙?薕尬 gd晆(띄5躕ﻫS蔺4)떒錸瓍?~": 1665108992286702624,
+                                                                                                                                                                                                                                                                                        "w믍nᏠ=`঺ᅥC>'從됐槷䤝眷螄㎻揰扰XᅧC贽uჍ낟jKD03T!lDV쀉Ӊy뢖,袛!终캨G?鉮Q)⑗1쾅庅O4ꁉH7?d\u0010蠈줘월ސ粯Q!낇껉6텝|{": null,
+                                                                                                                                                                                                                                                                                        "~˷jg쿤촖쉯y": -5.5527605669177098E18,
+                                                                                                                                                                                                                                                                                        "펅Wᶺzꐆと푭e?4j仪열[D<鈑皶婆䵽ehS?袪;HꍨM뗎ば[(嗏M3q퍟g4y╸鰧茀[Bi盤~﫝唎鋆彺⦊q?B4쉓癚O洙킋툈䶯_?ퟲ": null
+                                                                                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                                                                                      ]
+                                                                                                                                                                                                                                                                                     ]]
+                                                                                                                                                                                                                                                                                    ]],
+                                                                                                                                                                                                                                                                                    "꟱Ԕ㍤7曁聯ಃ錐V䷰?v㪃૦~K\"$%请|ꇹn\"k䫛㏨鲨\u2023䄢\u0004[<S8ᐬ뭩脥7U.m࿹:D葍┆2蘸^U'w1젅;䠆ꋪB껮>︊VJ?䶟ាꮈ䗱=깘U빩": -4863152493797013264
+                                                                                                                                                                                                                                                                                   }
+                                                                                                                                                                                                                                                                                  ]}]}
+                                                                                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                                                                                }}}
+                                                                                                                                                                                                                                                                               ],
+                                                                                                                                                                                                                                                                               "쏷쐲۹퉃~aE唙a챑,9㮹gLHd'䔏|킗㍞䎥&KZYT맵7䥺N<Hp4ꕭ⹠꽐c~皽z": "课|ᖾ䡁廋萄䐪W\u0016&Jn괝b~摓M>ⱳ同莞鿧w\\༌疣n/+ꎥU\"封랾○ퟙAJᭌ?9䛝$?驔9讐짘魡T֯c藳`虉C읇쐦T"
+                                                                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                                                                             ],
+                                                                                                                                                                                                                                                                             "谶개gTR￐>ၵ͚dt晑䉇陏滺}9㉸P漄": -3350307268584339381
+                                                                                                                                                                                                                                                                            }]
+                                                                                                                                                                                                                                                                           ]
+                                                                                                                                                                                                                                                                          ]
+                                                                                                                                                                                                                                                                         ]]
+                                                                                                                                                                                                                                                                        ]
+                                                                                                                                                                                                                                                                       ],
+                                                                                                                                                                                                                                                                       "0y꟭馋X뱔瑇:䌚￐廿jg-懲鸭䷭垤㒬茭u賚찶ಽ+\\mT땱\u20821殑㐄J쩩䭛ꬿNS潔*d\\X,壠뒦e殟%LxG9:摸": 3737064585881894882,
+                                                                                                                                                                                                                                                                       "풵O^-⧧ⅶvѪ8廸鉵㈉ר↝Q㿴뺟EႳvNM:磇>w/៻唎뷭୥!냹D䯙i뵱貁C#⼉NH6`柴ʗ#\\!2䂗Ⱨf?諳.P덈-返I꘶6?8ꐘ": -8934657287877777844,
+                                                                                                                                                                                                                                                                       "溎-蘍寃i诖ര\"汵\"\ftl,?d⼡쾪⺋h匱[,෩I8MҧF{k瓿PA'橸ꩯ綷퉲翓": null
+                                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                                                    ],
+                                                                                                                                                                                                                                                                    "ោ係؁<元": 1.7926963090826924E-18
+                                                                                                                                                                                                                                                                   }}]
+                                                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                                                                ]]}]
+                                                                                                                                                                                                                                                               }]
+                                                                                                                                                                                                                                                              ]
+                                                                                                                                                                                                                                                             ]
+                                                                                                                                                                                                                                                            ]
+                                                                                                                                                                                                                                                           ],
+                                                                                                                                                                                                                                                           "ጩV<\"ڸsOᤘ": 2.0527167903723048E-19
+                                                                                                                                                                                                                                                          }]
+                                                                                                                                                                                                                                                         ]}
+                                                                                                                                                                                                                                                        ]
+                                                                                                                                                                                                                                                       ]],
+                                                                                                                                                                                                                                                       "∳㙰3젴p᧗䱙?`<U὇<\/意E[ᮚAj诂ᒽ阚uv徢ဎ떗尔Ᵹ훀쩑J䐴?⪏=륪ᆩ푰ஓ㐕?럽VK\"X?檨လ齿I/耉A(AWA~⏯稐蹫": false,
+                                                                                                                                                                                                                                                       "偒妝뾇}䀼链i⇃%⋜&璪Ix渥5涧qq棩ᥝ-⠫AA낇yY颕A*裦O|n?䭬혗F": null,
+                                                                                                                                                                                                                                                       "琭CL얭B혆Kॎ`鎃nrsZiժW砏)?p~K~A眱䲏QO妣\u001b\u001b]ᵆᆯ&㐋ᏹ豉뺘$ꭧ#j=C)祤⫢歑1o㒙諩": 7028426989382601021,
+                                                                                                                                                                                                                                                       "쳱冲&ဤ䌏앧h胺-齱H忱8왪RDKᅒ䬋ᔶS*J}ስ漵'㼹뮠9걢9p봋경ጕtởꚳT䶽瘙%춴`@nಆ4<d??#僜ᙤ钴=薔ꭂbLXNam蹈": "樭る蹿= Uurwkn뙧⌲%\"쑃牪\"cq윕o@",
+                                                                                                                                                                                                                                                       "溌[H]焎SLㅁ?뀼䫨災W": 1.1714289118497062E-19,
+                                                                                                                                                                                                                                                       "ﬢp븇剌燇kĔ尘㶿㴞睠꾘Ia;s❺^)$穮?sHᢥ폪l": null
+                                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                                   ]
+                                                                                                                                                                                                                                                  },
+                                                                                                                                                                                                                                                  "TKnzj5o<\/K㊗ꗣ藠⦪駇>yZA8Ez0,^ᙛ4_0븢\u001ft:~䎼s.bb룦明yNP8弆C偯;⪾짍'蕴뮛": -6976654157771105701,
+                                                                                                                                                                                                                                                  "큵ꦀ\\㇑:nv+뒤燻䀪ﴣ﷍9ᚈ኷K㚊誦撪䚛,ꮪxሲ쳊\u0005HSf?asg昱dqꬌVꙇ㼺'k*'㈈": -5.937042203633044E-20
+                                                                                                                                                                                                                                                 }
+                                                                                                                                                                                                                                                ]
+                                                                                                                                                                                                                                               }],
+                                                                                                                                                                                                                                               "?}\u20e0],s嶳菋@#2u쒴sQS䩗=ꥮ;烌,|ꘔ䘆": "ᅩ영N璠kZ먕眻?2ቲ芋眑D륟渂⸑ﴃIRE]啗`K'"
+                                                                                                                                                                                                                                              }},
+                                                                                                                                                                                                                                              "쨀jmV賂ﰊ姐䂦玞㬙ᏪM᪟Վ씜~`uOn*ॠ8\u000ef6??\\@/?9見d筜ﳋB|S䝬葫㽁o": true
+                                                                                                                                                                                                                                             },
+                                                                                                                                                                                                                                             "즛ꄤ酳艚␂㺘봿㎨iG৕ࡿ?1\"䘓您\u001fSኝ⺿溏zៀ뻤B\u0019?윐a䳵᭱䉺膷d:<\/": 3935553551038864272
+                                                                                                                                                                                                                                            }
+                                                                                                                                                                                                                                           ]
+                                                                                                                                                                                                                                          ]}
+                                                                                                                                                                                                                                         ]]
+                                                                                                                                                                                                                                        ]]
+                                                                                                                                                                                                                                       ]}
+                                                                                                                                                                                                                                      }
+                                                                                                                                                                                                                                     ]
+                                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                                   ]]}},
+                                                                                                                                                                                                                                   "᥺3h↛!ꋰy\"攜(ெl䪕oUkc1A㘞ᡲ촾ᣫ<\/䒌E㛝潨i{v?W౾H\\RჅpz蝬R脾;v:碽✘↯삞鷱o㸧瑠jcmK7㶧뾥찲n": true,
+                                                                                                                                                                                                                                   "ⶸ?x䊺⬝-䰅≁!e쩆2ꎿ准G踌XXᩯ1߁}0?.헀Z馟;稄\baDꟹ{-寪⚈ꉷ鮸_L7ƽᾚ<\u001bጨA䧆송뇵⨔\\礍뗔d设룱㶉cq{HyぱR㥽吢ſtp": -7985372423148569301,
+                                                                                                                                                                                                                                   "緫#콮IB6<\/=5Eh礹\t8럭@饹韠r㰛斣$甝LV췐a갵'请o0g:^": "䔨(.",
+                                                                                                                                                                                                                                   "띳℡圤pン௄ĝ倧訜B쁟G䙔\"Sb⓮;$$▏S1J뢙SF|赡g*\"Vu䲌y": "䪈&틐),\\kT鬜1풥;뷴'Zေ䩹@J鞽NぼM?坥eWb6榀ƩZڮ淽⺞삳煳xჿ絯8eⶍ羷V}ჿ쎱䄫R뱃9Z>'\u20f1ⓕ䏜齮"
+                                                                                                                                                                                                                                  }
+                                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                                ]]]
+                                                                                                                                                                                                                               }}
+                                                                                                                                                                                                                              }
+                                                                                                                                                                                                                             ]
+                                                                                                                                                                                                                            ]},
+                                                                                                                                                                                                                            "펮b.h粔폯2npX詫g錰鷇㇒<쐙S値bBi@?镬矉`剔}c2壧ଭfhY깨R()痩⺃a\\⍔?M&ﯟ<劜꺄멊ᄟA\"_=": null
+                                                                                                                                                                                                                           },
+                                                                                                                                                                                                                           "~潹Rqn榢㆓aR鬨侅?䜑亡V_翅㭔(䓷w劸ၳDp䀅<\/ﰎ鶊m䵱팱긽ꆘ<tD쇋>긓准D3掱;o:_ќ)껚콥8곤d矦8nP倥ꃸI": null,
+                                                                                                                                                                                                                           "뾎/Q㣩㫸벯➡㠦◕挮a鶧⋓偼\u00001뱓fm覞n?㛅\"": 2.8515592202045408E17
+                                                                                                                                                                                                                          }],
+                                                                                                                                                                                                                          ",": -5426918750465854828,
+                                                                                                                                                                                                                          "2櫫@0柡g䢻/gꆑ6演&D稒肩Y?艘/놘p{f투`飷ᒉ챻돎<늛䘍ﴡ줰쫄": false,
+                                                                                                                                                                                                                          "8(鸑嵀⵹ퟡ<9㣎Tߗ┘d슒ل蘯&㠦뮮eࠍk砝g 엻": false,
+                                                                                                                                                                                                                          "d-\u208b?0ﳮ嵙'(J`蔿d^踅⤔榥\\J⵲v7": 6.8002426206715341E17,
+                                                                                                                                                                                                                          "ཎ耰큓ꐕ㱷\u0013y=詽I\"盈xm{0쾽倻䉚ષso#鰑/8㸴짯%ꀄ떸b츟*\\鲷礬ZQ兩?np㋄椂榨kc᡹醅3": false,
+                                                                                                                                                                                                                          "싊j20": false
+                                                                                                                                                                                                                         }]]
+                                                                                                                                                                                                                        ]],
+                                                                                                                                                                                                                        "俛\u0017n緽Tu뫉蜍鼟烬.ꭠIⰓ\"Ἀ᜾uC쎆J@古%ꛍm뻨ᾀ画蛐휃T:錖㑸ዚ9죡$": true
+                                                                                                                                                                                                                       }
+                                                                                                                                                                                                                      ]
+                                                                                                                                                                                                                     ],
+                                                                                                                                                                                                                     "㍵⇘ꦖ辈s}㱮慀밒s`\"㞟j:`i픻Z<C1衽$\"-饧?℃\u0010⼒{p飗%R\"䲔\")칀\\%": true,
+                                                                                                                                                                                                                     "苧.8\u00120ݬ仓": 6912164821255417986,
+                                                                                                                                                                                                                     "떎顣俁X;.#Q틝.笂'p쟨唒퐏랩냆¦aⱍ{谐.b我$蜑SH\u000f琾=䟼⣼奔ᜏ攕B&挰繗㝔ꅂ-Qv\\0䶝䚥ぺio[㑮-ᇼ䬰컪ṼiY){데\u0010q螰掻~\n輚x\u0014罺)軴": 3.024364150712629E-20
+                                                                                                                                                                                                                    }
+                                                                                                                                                                                                                   ]
+                                                                                                                                                                                                                  ]
+                                                                                                                                                                                                                 ]
+                                                                                                                                                                                                                ]}
+                                                                                                                                                                                                               ]]
+                                                                                                                                                                                                              }
+                                                                                                                                                                                                             ]
+                                                                                                                                                                                                            ]]
+                                                                                                                                                                                                           ]
+                                                                                                                                                                                                          ]]]],
+                                                                                                                                                                                                          "\"凲o肉Iz絾豉J8?i~傠᫽䇂!WD溊J?ᡒvs菆嵹➒淴>섫^諎0Ok{켿歁෣胰a2﨤[탳뚬쎼嫭뉮m": 409440660915023105,
+                                                                                                                                                                                                          "w墄#*ᢄ峠밮jLa`ㆪ꺊漓Lで끎!Agk'ꁛ뢃㯐岬D#㒦": false,
+                                                                                                                                                                                                          "ଦPGI䕺L몥罭ꃑ궩﮶#⮈ᢓӢ䚬p7웼臧%~S菠␌힀6&t䳙y㪘냏\\*;鉏ᅧ鿵'嗕pa\"oL쇿꬈Cg": "㶽1灸D⟸䴅ᆤ뉎﷛渤csx 䝔цꬃ锚捬?ຽ+x~꘩uI࡞\u0007栲5呚ẓem?袝\")=㥴䨃pac!/揎Y",
+                                                                                                                                                                                                          "ᷱo\\||뎂몷r篙|#X䦜I#딌媸픕叞RD斳X4t⯩夬=[뭲r=绥jh뷱츝⪘%]⚋܈㖴スH텹m(WO曝劉0~K3c柢Ր㏉着逳~": false,
+                                                                                                                                                                                                          "煽_qb[첑\\륌wE❽ZtCNﭝ+餌ᕜOꛭ": "{ﳾ쉌&s惧ᭁⵆ3䢫;䨞팑꒪흘褀࢖Q䠿V5뭀䎂澻%받u5텸oA⮥U㎦;B䳌wz䕙$ឿ\\௅婺돵⪾퐆\\`Kyौꋟ._\u0006L챯l뇠Hi䧈偒5",
+                                                                                                                                                                                                          "艊佁ࣃ롇䱠爬!*;⨣捎慓q靓|儑ᨋL+迥=6㒺딉6弄3辅J-㕎뛄듘SG㆛(\noAzQꝱ䰩X*ぢO퀌%펠낌mo틮a^<\/F&_눊ᾉ㨦ы4\"8H": 2974648459619059400,
+                                                                                                                                                                                                          "鬙@뎣䫳ၮ끡?){y?5K;TA*k溱䫜J汃ꂯ싔썍\u001dA}룖(<\/^,": false,
+                                                                                                                                                                                                          "몏@QꋦFꊩᒐ뎶lXl垨4^郣|ꮇ;䝴ᝓ}쵲z珖": null
+                                                                                                                                                                                                         }
+                                                                                                                                                                                                        ]]]],
+                                                                                                                                                                                                        ":_=닧弗D䙋暨鏛. 㱻붘䂍J儒&ZK/녩䪜r囁⽯D喠죥7⹌䪥c\u001a\u2076￞妈朹oLk菮F౟覛쐧㮏7T;}蛙2{9\"崓bB<\/⡷룀;즮鿹)丒툃୤뷠5W⊢嶜(fb뭳갣": "E{响1WM"
+                                                                                                                                                                                                       }},
+                                                                                                                                                                                                       "䘨tjJ驳豨?y輊M*᳑梵瞻઻ofQG瑮e": 2.222802939724948E-19,
+                                                                                                                                                                                                       "䮴=❑➶T෋w䞜\"垦ꃼUt\u001dx;B$뵣䙶E↌艣ᡥ!᧟;䱀[䔯k쬃`੍8饙른熏'2_'袻tGf蒭J땟as꯳╖&啒zWࡇᒫYSᏬ\u0014ℑ첥鈤|cG~Pᓮ\">\"": "ႆl\f7V儊㦬nHꄬꨧC{쐢~C⮃⛓嶦vꄎ1w鰠嘩뿠魄&\"_qMⵖ釔녮ꝇ 㝚{糍J哋 cv?-jkﻯྌ鹑L舟r",
+                                                                                                                                                                                                       "龧葆yB✱H盋夔ﶉ?n*0(": "ꧣኆ㢓氥qZZ酒ຜ)鮢樛)X䣆gTSґG텞k.J圬疝롫쯭z L:\\ྤ@w炋塜쿖ᾳy뢀䶃뱝N䥨㚔勇겁#p",
+                                                                                                                                                                                                       "도畎Q娡\"@S/뼋:䵏!P衅촚fVHQs✜ᐫi㻑殡B䜇%믚k*U#濨낄~": "ꍟዕ쳸ꍈ敋&l妏\u0005憡멗瘌uPgᅪm<\/To쯬锩h뒓k"
+                                                                                                                                                                                                      }
+                                                                                                                                                                                                     ]
+                                                                                                                                                                                                    }],
+                                                                                                                                                                                                    "墥홞r绚<\/⸹ⰃB}<躅\\Y;๑@䔸>韫䜲뱀X뗩鿥쩗SI%ﴞ㳕䛇?<\/\u00018x\\&侂9鋙a[LR㋭W胕)⡿8㞙0JF,}?허d1cDMᐃ␛鄝ⱕ%X)!XQ": "ⳍꗳ=橇a;3t⦾꼑仈ူaᚯ⯋ꕃAs鴷N⍕_䎃ꙎAz\u0016䯷\\<࿫>8q{}キ?ᣰ}'0ᴕ펓B┦lF#趤厃T?㕊#撹圂䆲"
+                                                                                                                                                                                                   },
+                                                                                                                                                                                                   "܋닐龫論c웑": false,
+                                                                                                                                                                                                   "ㇿ/q\"6-co髨휝C큦#\u001b4~?3䐹E삇<<": 7.600917488140322E-20,
+                                                                                                                                                                                                   "䁝E6?㣖ꃁ间t祗*鑠{ḣV(浾h逇큞=W?ૉ?nꇽ8ꅉຉj으쮺@Ꚅ㰤u]Oyr": "v≁᫸_*όAඤԆl)ۓᦇQ}폠z༏q滚",
+                                                                                                                                                                                                   "ソ᥊/넺I": true
+                                                                                                                                                                                                  }]]
+                                                                                                                                                                                                 ]
+                                                                                                                                                                                                ]
+                                                                                                                                                                                               ]
+                                                                                                                                                                                              ]]
+                                                                                                                                                                                             },
+                                                                                                                                                                                             "䭑Ik攑\u0002QV烄:芩.麑㟴㘨≕": true,
+                                                                                                                                                                                             "坄꿕C쇻풉~崍%碼\\8\"䬦꣙": null,
+                                                                                                                                                                                             "欌L圬䅘Y8c(♺2?ON}o椳s宥2䉀eJ%闹r冁O^K諭%凞⺉⡻,掜?$ꥉ?略焕찳㯊艼誜4?\"﯎<゛XፈINT:詓 +": -1.0750456770694562E-19,
+                                                                                                                                                                                             "獒àc뜭싼ﺳ뎤K`]p隨LtE": null,
+                                                                                                                                                                                             "甙8䵊神EIꩤ鐯ᢀ,ﵮU䝑u疒ử驺䚿≚ഋ梶秓F`覤譐#짾蔀묊4<媍쬦靪_Yzgcࡶ4k紥`kc[Lﮗ簐*I瀑[⾰L殽鑥_mGȠ<\/|囹灠g桰iri": true,
+                                                                                                                                                                                             "챓ꖙꟻ좝菇ou,嗠0\\jK핻뜠qwQ?ഩ㼕3Y彦b\u009bJ榶N棨f?됦鏖綃6鳵M[OE봨u햏.Ꮁ癜蟳뽲ꩌ뻾rM豈R嗀羫 uDꎚ%": null
+                                                                                                                                                                                            },
+                                                                                                                                                                                            "V傜2<": 7175127699521359521
+                                                                                                                                                                                           }],
+                                                                                                                                                                                           "铫aG切<\/\"ী⊆e<^g࢛)D顝nאַ饼\u008c猪繩嵿ﱚCꡬ㻊g엺A엦\u000f暿_f꿤볝㦕桦`蒦䎔j甬%岝rj 糏": "䚢偎눴Au<4箞7礦Iﱔ坠eȧ䪸u䵁p|逹$嗫쨘ꖾ﷐!胠z寓팢^㨔|u8Nሇe텔ꅦ抷]،鹎㳁#༔繁 ",
+                                                                                                                                                                                           "낂乕ꃻ볨ϱ-ꇋ㖍fs⿫)zꜦ/K?솞♞ꑌ宭hJ᤭瑥Fu": false,
+                                                                                                                                                                                           "쟰ぜ魛G\u0003u?`㾕ℾ㣭5螠烶這趩ꖢ:@咕ꐶx뒘느m䰨b痃렐0鳊喵熬딃$摉_~7*ⱦ녯1錾GKhJ惎秴6'H妈Tᧅ窹㺒疄矤铟wላ": null,
+                                                                                                                                                                                           "쯆q4!3錕㲏ⵆ㇛꘷Z瑩뭆\\◪NH\u001d\\㽰U~㯶<\"쑣낞3ᵤ'峉eꢬ;鬹o꣒木X*長PXᘱu\"䠹n惞": null,
+                                                                                                                                                                                           "ᅸ祊\"&ꥴCjࢼ﴿?䡉`U效5殼㮞V昽ꏪ#ﺸ\\&t6x꠹盥꣰a[\u001aꪍSpe鎿蠹": -1.1564713893659811E-19
+                                                                                                                                                                                          }
+                                                                                                                                                                                         ]]
+                                                                                                                                                                                        ]
+                                                                                                                                                                                       ]
+                                                                                                                                                                                      ],
+                                                                                                                                                                                      "羵䥳H,6ⱎ겾|@t\"#햊1|稃 섭)띜=뻔ꡜ???櫎~*ῡ꫌/繣ﻠq": null
+                                                                                                                                                                                     }
+                                                                                                                                                                                    ]}
+                                                                                                                                                                                   ]},
+                                                                                                                                                                                   "츤": false
+                                                                                                                                                                                  }},
+                                                                                                                                                                                  "s": 3.7339341963399598E18
+                                                                                                                                                                                 }
+                                                                                                                                                                                ],
+                                                                                                                                                                                "N,I?1+㢓|ࣱ嶃쩥V2\u0012(4EE虪朶$|w颇v步": "~읢~_,Mzr㐫YB溓E淚\"ⅹ䈔ᏺ抙 b,nt5V㐒J檶ꏨ⻔?",
+                                                                                                                                                                                "Q껑ꡡ}$넎qH煔惍/ez^!ẳF댙䝌馻剁8": "梲;yt钰$i冄}AL%a j뜐奷걳뚾d꿽*ሬuDY3?뮟鼯뮟w㍪틱V",
+                                                                                                                                                                                "o{Q/K O胟㍏zUdꀐm&⨺J舕⾏魸訟㌥[T籨櫉唐킝 aṭ뱫촙莛>碶覆⧬짙쭰ׯdAiH໥벤퐥_恸[ 0e:죃TC弼荎뵁DA:w唵ꣁ": null,
+                                                                                                                                                                                "὏樎䵮軧|?౗aWH쩃1 ꅭsu": null
+                                                                                                                                                                               }
+                                                                                                                                                                              ]
+                                                                                                                                                                             },
+                                                                                                                                                                             "勂\\&m鰈J釮=Ⲽ鳋+䂡郑": null,
+                                                                                                                                                                             "殣b綊倶5㥗惢⳷萢ᑀ䬄镧M^ﱴ3⣢翣n櫻1㨵}ኯ뗙顖Z.Q➷ꮨ뗇\u0004": "ꔙ䁼>n^[GीA䨟AM琢ᒊS쨲w?d㶣젊嘶纝麓+愣a%気ྞSc됓ᔘ:8bM7Xd8㶑臌]Ꙥ0ꐭ쒙䫣挵C薽Dfⵃ떼᷸",
+                                                                                                                                                                             "?紡.셪_෨j\u0013Ox┠$Xᶨ-ᅇo薹-}軫;y毝㪜K㣁?.EV쮱4둽⛻䤜'2盡\u001f60(|e쐰㼎ᦀ㒧-$l@ﻑ坳\u0003䭱响巗WFo5c㧆T턁Y맸♤(": -2.50917882560589088E17
+                                                                                                                                                                            }}
+                                                                                                                                                                           ],
+                                                                                                                                                                           "侸\\릩.᳠뎠狣살cs项䭩畳H1s瀉븇19?.w骴崖㤊h痠볭㞳㞳䁮Ql怠㦵": "@䟴-=7f",
+                                                                                                                                                                           "鹟1x௢+d ;vi䭴FSDS\u0004hꎹ㚍?⒍⦏ў6u,扩@됷Su)Pag휛TᒗV痩!瞏釀ꖞ蘥&ೞ蘐ꭰꞇᝎ": "ah懱Ժ&\u20f7䵅♎඀䞧鿪굛ౕ湚粎蚵ᯋ幌YOE)५襦㊝Y*^\"R+ඈ咷蝶9ꥂ榨艦멎헦閝돶v좛咊E)K㓷ྭr",
+                                                                                                                                                                           "搆q쮦4綱켙셁.f4<\/g<籽늷?#蚴픘:fF\u00051㹉뀭.ᰖ풎f֦Hv蔎㧤.!䭽=鞽]음H:?\"-4": 8.740133984938656E-20
+                                                                                                                                                                          }]}
+                                                                                                                                                                         }
+                                                                                                                                                                        ],
+                                                                                                                                                                        "tVKn딩꘥⊾蹓᤹{\u0003lR꼽ᄲQFᅏ傅ﱋ猢⤊ᔁ,E㓒秤nTතv`♛I\u0000]꫔ṞD\"麵c踝杰X&濿또꣹깳౥葂鿎\\aꡨ?": 3900062609292104525
+                                                                                                                                                                       }
+                                                                                                                                                                      ],
+                                                                                                                                                                      "ਉ샒⊩Lu@S䧰^g": -1.1487677090371648E18,
+                                                                                                                                                                      "⎢k⑊꬗yᏫ7^err糎Dt\u000bJ礯확ㆍ沑サꋽe赔㝢^J\u0004笲㿋idra剰-᪉C錇/Ĝ䂾ညS지?~콮gR敉⬹'䧭": 1901472137232418266,
+                                                                                                                                                                      "灗k䶥:?촽贍쓉꓈㒸g獘[뵎\\胕?\u0014_榙p.j稶,$`糉妋0>Fᡰly㘽$?": "]ꙛO赎&#㠃돱剳\"<◆>0誉齐_|z|裵씪>ᐌ㼍\"Z[琕}O?G뚇諦cs⠜撺5cu痑U圲\u001c?鴴計l춥/╓哼䄗茏ꮅ뫈댽A돌롖뤫V窗讬sHd&\nOi;_u"
+                                                                                                                                                                     }
+                                                                                                                                                                    ],
+                                                                                                                                                                    "Uﺗ\\Y\\梷䄬~\u0002": null,
+                                                                                                                                                                    "k\"Y磓ᗔ휎@U冈<\/w컑)[": false,
+                                                                                                                                                                    "曏J蝷⌻덦\u001f㙳s꥓⍟邫P늮쥄c∬ྡྷ舆렮칤Z趣5콡넛A쳨\\뀙骫(棻.*&輛LiIfi{@EA婳KᬰTXT": -4.3088230431977587E17
+                                                                                                                                                                   }]}
+                                                                                                                                                                  ]
+                                                                                                                                                                 ],
+                                                                                                                                                                 "곃㲧<\/dఓꂟs其ࡧ&N葶=?c㠤Ჴ'횠숄臼#\u001a~": false
+                                                                                                                                                                }
+                                                                                                                                                               ]
+                                                                                                                                                              ]}]
+                                                                                                                                                             }]
+                                                                                                                                                            }}
+                                                                                                                                                           ],
+                                                                                                                                                           "2f`⽰E쵟>J笂裭!〛觬囀ۺ쟰#桊l鹛ⲋ|RA_Vx፭gE됓h﵀mfỐ|?juTU档[d⢼⺻p濚7E峿": 5613688852456817133
+                                                                                                                                                          },
+                                                                                                                                                          "濘끶g忮7㏵殬W팕Q曁 뫰)惃廊5%-蹚zYZ樭ﴷQ锘쯤崫gg": true,
+                                                                                                                                                          "絥ᇑ⦏쒓븣爚H.㗊߄o蘵貆ꂚ(쎔O᥉ﮓ]姨Wꁓ!RMA|o퉢THx轮7M껁U즨'i뾘舯o": "跥f꜃?"
+                                                                                                                                                         }}
+                                                                                                                                                        ],
+                                                                                                                                                        "鷰鹮K-9k;ﰰ?_ݦѷ-ꅣ䩨Zꥱ\"mꠟ屎/콑Y╘2&鸞脇㏢ꀇ࠺ⰼ拾喭틮L꽩bt俸墶 [l/웄\"꾦\u20d3iও-&+\u000fQ+໱뵞": -1.296494662286671E-19
+                                                                                                                                                       },
+                                                                                                                                                       "HX੹/⨇୕붷Uﮘ旧\\쾜͔3l鄈磣糂̖䟎Eᐳw橖b῀_딕hu葰窳闹вU颵|染H죶.fP䗮:j䫢\\b뎖i燕ꜚG⮠W-≚뉗l趕": "ଊ칭Oa᡺$IV㷧L\u0019脴셀붿餲햪$迳向쐯켂PqfT\" ?I屉鴼쿕@硙z^鏕㊵M}㚛T젣쓌-W⩐-g%⺵<뮱~빅╴瑿浂脬\u0005왦燲4Ⴭb|D堧 <\/oEQh",
+                                                                                                                                                       "䘶#㥘੐캔f巋ἡAJ䢚쭈ࣨ뫒*mᇊK,ࣺAꑱ\u000bR<\/A\"1a6鵌㯀bh곿w(\"$ꘁ*rಐ趣.d࿩k/抶면䒎9W⊃9": "漩b挋Sw藎\u0000",
+                                                                                                                                                       "畀e㨼mK꙼HglKb,\"'䤜": null
+                                                                                                                                                      }]}]
+                                                                                                                                                     ]
+                                                                                                                                                    ]
+                                                                                                                                                   }]
+                                                                                                                                                  ]}
+                                                                                                                                                 ]
+                                                                                                                                                ]}
+                                                                                                                                               ],
+                                                                                                                                               "歙>駿ꣂ숰Q`J΋方樛(d鱾뼣(뫖턭\u20f9lচ9歌8o]8윶l얶?镖G摄탗6폋폵+g:䱫홊<멀뀿/س|ꭺs걐跶稚W々c㫣⎖": "㣮蔊깚Cꓔ舊|XRf遻㆚︆'쾉췝\\&言",
+                                                                                                                                               "殭\"cށɨꝙ䞘:嬮e潽Y펪㳅/\"O@ࠗ겴]췖YǞ(t>R\"N?梳LD恭=n氯T豰2R諸#N}*灧4}㶊G䍣b얚": null,
+                                                                                                                                               "襞<\/啧 B|싞W瓇)6簭鼡艆lN쩝`|펭佡\\間邝[z릶&쭟愱ꅅ\\T᰽1鯯偐栈4̸s윜R7⒝/똽?치X": "⏊躖Cﱰ2Qẫ脐&இ?%냝悊",
+                                                                                                                                               ",鰧偵셣싹xᎹ힨᯳EṬH㹖9": -4604276727380542356
+                                                                                                                                              }
+                                                                                                                                             }
+                                                                                                                                            ]]]],
+                                                                                                                                            "웺㚑xs}q䭵䪠馯8?LB犯zK'os䚛HZ\"L?셎s^㿧㴘Cv2": null
+                                                                                                                                           }]
+                                                                                                                                          ]
+                                                                                                                                         ]
+                                                                                                                                        ],
+                                                                                                                                        "Kd2Kv+|z": 7367845130646124107,
+                                                                                                                                        "ᦂⶨ?ᝢ 祂些ഷ牢㋇操\"腭䙾㖪\\(y4cE뽺ㆷ쫺ᔖ%zfۻ$ў1柦,㶢9r漢": -3.133230960444846E-20,
+                                                                                                                                        "琘M焀q%㢟f鸯O⣏蓑맕鯊$O噷|)z褫^㢦⠮ꚯ꫞`毕1qꢚ{ĭ䎀বώT\"뱘3G൴?^^of": null
+                                                                                                                                       }
+                                                                                                                                      ],
+                                                                                                                                      "a8V᯺?:ﺃ/8ꉿBq|9啓댚;*i2": null,
+                                                                                                                                      "cpT瀇H珰Ừpೃi鎪Rr␣숬-鹸ҩ䠚z脚цGoN8入y%趌I┽2ឪЀiJNcN)槣/▟6S숆牟\"箑X僛G殱娇葱T%杻:J諹昰qV쨰": 8331037591040855245
+                                                                                                                                     }],
+                                                                                                                                     "G5ᩜ䄗巢껳": true
+                                                                                                                                    }
+                                                                                                                                   },
+                                                                                                                                   "Ồ巢ゕ@_譙A`碫鄐㡥砄㠓(^K": "?܃B혢▦@犑ὺD~T⧁|醁;o=J牌9냚⢽㨘{4觍蚔9#$∺\u0016p囅\\3Xk阖⪚\"UzA穕롬✎➁㭒춺C㣌ဉ\"2瓑员ᅽꝶ뫍}꽚ꞇ鶂舟彺]ꍽJC蝧銉",
+                                                                                                                                   "␆Ě膝\"b-퉐ACR言J謈53~V튥x䜢?ꃽɄY뮩ꚜ": "K/↾e萃}]Bs⾿q룅鷦-膋?m+死^魊镲6",
+                                                                                                                                   "粡霦c枋AHퟁo礼Ke?qWcA趸㡔ꂏ?\u000e춂8iতᦜ婪\u0015㢼nﵿꍻ!ᐴ関\u001d5j㨻gfῩUK5Ju丝tかTI'?㓏t>⼟o a>i}ᰗ;뤕ܝ": false,
+                                                                                                                                   "ꄮ匴껢ꂰ涽+䜨B蛹H䛓-k蕞fu7kL谖,'涃V~챳逋穞cT\"vQ쓕ObaCRQ㓡Ⲯ?轭⫦輢墳?vA餽=h䮇킵n폲퉅喙?\"'1疬V嬗Qd灗'Lự": "6v!s믁㭟㣯獃!磸餠ቂh0C뿯봗F鷭gꖶ~コkK<ᦈTt\\跓w㭣횋钘ᆹ듡䑚W䟾X'ꅔ4FL勉Vܴ邨y)2'〚쭉⽵-鞣E,Q.?块",
+                                                                                                                                   "?(˧쩯@崟吋歄K": null
+                                                                                                                                  },
+                                                                                                                                  "Gc럃녧>?2DYI鴿\\륨)澔0ᔬlx'觔7젘⤡縷螩%Sv׫묈/]↱&S h\u0006歋ᑛxi̘}ひY蔯_醨鯘煑橾8?䵎쨋z儬ꁏ*@츾:": null
+                                                                                                                                 }
+                                                                                                                                }
+                                                                                                                               }
+                                                                                                                              ]
+                                                                                                                             ]
+                                                                                                                            ]}
+                                                                                                                           },
+                                                                                                                           "HO츧G": 3.694949578823609E17,
+                                                                                                                           "QC\u0012(翻曇Tf㷟bGBJ옉53\\嚇ᛎD/\u001b夾၉4\"핀@祎)쫆yD\"i먎Vn㿿V1W᨝䶀": -6150931500380982286,
+                                                                                                                           "Z㓮P翸鍱鉼K䋞꘺튿⭁Y": -7704503411315138850,
+                                                                                                                           "]모开ꬖP븣c霤<[3aΠ\"黁䖖䰑뮋ꤦ秽∼㑷冹T+YUt\"싳F↭䖏&鋌": -2.7231911483181824E18,
+                                                                                                                           "tꎖ": -4.9517948741799555E-19,
+                                                                                                                           "䋘즊.⬅IꬃۣQ챢ꄑ黐|f?C⾺|兕읯sC鬸섾整腨솷V": "旆柩l<K髝M戶鯮t:wR2ꉱ`9'l픪*폍芦㊢Pjjo堡^  읇얛嶅있ষ0?F",
+                                                                                                                           "下9T挞\\$yᮇk쌋⼇,ਉ": true,
+                                                                                                                           "櫨:ㆣ,邍lr崕祜㐮烜Z,XXD蕼㉴ kM꯽?P0﹉릗": null,
+                                                                                                                           "gv솠歽閘4镳䗄2澾>쪦sᖸMy㦅울썉瘗㎜檵9ꍂ駓ૉᚿ/u3씅徐拉[Z䞸ࡗ1ꆱ&Q풘?ǂ8\u0011BCDY2볨;鸏": null,
+                                                                                                                           "幫 n煥s쁇펇 왊-$C\"衝:\u0014㣯舼.3뙗Yl⋇\"K迎멎[꽵s}9鉳UK8쐥\"掄㹖h㙈!얄સ?Ꜳ봺R伕UTD媚I䜘W鏨蔮": -4.150842714188901E-17,
+                                                                                                                           "ﺯ^㄄\b죵@fྉkf颡팋Ꞧ{/Pm0V둳⻿/落韒ꊔᚬ@5螺G\\咸a谆⊪ቧ慷绖?财(鷇u錝F=r၍橢ឳn:^iᴵtD볠覅N赴": null
+                                                                                                                          }]
+                                                                                                                         }]
+                                                                                                                        }
+                                                                                                                       ]
+                                                                                                                      ]}
+                                                                                                                     ]},
+                                                                                                                     "謯?w厓奰T李헗聝ឍ貖o⪇弒L!캶$ᆅ": -4299324168507841322,
+                                                                                                                     "뺊奉_垐浸延몏孄Z舰2i$q붿좾껇d▵餏\"v暜Ҭ섁m￴g>": -1.60911932510533427E18
+                                                                                                                    }
+                                                                                                                   ]
+                                                                                                                  }
+                                                                                                                 ]
+                                                                                                                ]],
+                                                                                                                "퉝꺔㠦楶Pꅱ": 7517896876489142899,
+                                                                                                                "": false
+                                                                                                               }
+                                                                                                              ]},
+                                                                                                              "是u&I狻餼|谖j\"7c됮sסּ-踳鉷`䣷쉄_A艣鳞凃*m⯾☦椿q㎭N溔铉tlㆈ^": 1.93547720203604352E18,
+                                                                                                              "kⲨ\\%vr#\u000bⒺY\\t<\/3﬌R訤='﹠8蝤Ꞵ렴曔r": false
+                                                                                                             }
+                                                                                                            ]},
+                                                                                                            "阨{c?C\u001d~K?鎌Ԭ8烫#뙣P초遗t㭱E­돒䆺}甗[R*1!\\~h㕅᰺@<9JꏏષI䳖栭6綘걹ᅩM\"▯是∔v鬽顭⋊譬": "운ﶁK敂(欖C취پ℄爦賾"
+                                                                                                           }
+                                                                                                          }}
+                                                                                                         }],
+                                                                                                         "鷨赼鸙+\\䭣t圙ڹx᜾ČN<\/踘\"S_맶a鷺漇T彚⎲i㈥LT-xA캔$\u001cUH=a0츺l릦": "溣㣂0濕=鉵氬駘>Pꌢpb솇쬤h힊줎獪㪬CrQ矠a&脍꼬爼M茴/΅\u0017弝轼y#Ꞡc6둴=?R崏뷠麖w?"
+                                                                                                        },
+                                                                                                        "閕ᘜ]CT)䵞l9z'xZF{:ؐI/躅匽졁:䟇AGF૸\u001cퟗ9)駬慟ꡒꆒRS״툋A<>\u0010\"ꂔ炃7g덚E৏bꅰ輤]o㱏_뷕ܘ暂\"u": "芢+U^+㢩^鱆8*1鈶鮀\u0002뺰9⬳ꪮlL䃣괟,G8\u20a8DF㉪錖0ㄤ瓶8Nଷd?眡GLc陓\\_죌V쁰ल二?c띦捱 \u0019JC\u0011b⤉zẒT볕\"绣蘨뚋cꡉkI\u001e鳴",
+                                                                                                        "ꃣI'{6u^㡃#཰Kq4逹y൒䧠䵮!㱙/n??{L풓ZET㙠퍿X2᩟綳跠葿㚙w཮x캽扳B唕S|尾}촕%N?o䪨": null,
+                                                                                                        "ⰴFjෟ셈[\u0018辷px?椯\\1<ﲻ栘ᣁ봢憠뉴p": -5263694954586507640
+                                                                                                       }
+                                                                                                      ]
+                                                                                                     ]]
+                                                                                                    ]}
+                                                                                                   ]}]
+                                                                                                  ]
+                                                                                                 ],
+                                                                                                 "?#癘82禩鋆ꊝty?&": -1.9419029518535086E-19
+                                                                                                }
+                                                                                               ]
+                                                                                              ]
+                                                                                             ]}
+                                                                                            ]
+                                                                                           ]
+                                                                                          ],
+                                                                                          "훊榲.|῕戄&.㚏Zꛦ2\"䢥ሆ⤢fV_摕婔?≍Fji冀탆꜕i㏬_ẑKᅢ꫄蔻XWc|饡Siẘ^㲦?羡2ぴ1縁ᙅ?쐉Ou": false
+                                                                                         }]]
+                                                                                        ]}}},
+                                                                                        "慂뗄卓蓔ᐓ匐嚖/颹蘯/翻ㆼL?뇊,텵<\\獷ごCボ": null
+                                                                                       },
+                                                                                       "p溉ᑟi짣z:䒤棇r^٫%G9缑r砌롧.물农g?0׼ሩ4ƸO㣥㯄쩞ጩ": null,
+                                                                                       "껎繥YxK\"F젷쨹뤤1wq轫o?鱑뜀瘊?뎃h灑\\ꛣ}K峐^ኖ⤐林ꉓhy": null
+                                                                                      }
+                                                                                     ],
+                                                                                     "᱀n肓ㄛ\"堻2>m殮'1橌%Ꞵ군=Ӳ鯨9耛<\/n據0u彘8㬇៩f᏿诙]嚊": "䋯쪦S럶匏ㅛ#)O`ሀX_鐪渲⛀㨻宅闩➈ꢙஶDR⪍"
+                                                                                    },
+                                                                                    "tA썓龇 ⋥bj왎录r땽✒롰;羋^\\?툳*┎?썀ma䵳넅U䳆૘〹䆀LQ0\b疀U~u$M}(鵸g⳾i抦뛹?䤈땚검.鹆?ꩡtⶥGĒ;!ቹHS峻B츪켏f5≺": 2366175040075384032,
+                                                                                    "전pJjleb]ួ": -7.5418493141528422E18,
+                                                                                    "n.鎖ጲ\n?,$䪘": true
+                                                                                   },
+                                                                                   "欈Ar㉣螵᪚茩?O)": null
+                                                                                  },
+                                                                                  "쫸M#x}D秱欐K=侫们丐.KꕾxẠ\u001e㿯䣛F܍캗qq8꟞ṢFD훎⵳簕꭛^鳜\u205c٫~⑟~冫ऊ2쫰<\/戲윱o<\"": true
+                                                                                 },
+                                                                                 "㷝聥/T뱂\u0010锕|内䞇x侁≦㭖:M?iM᣿IJe煜dG࣯尃⚩gPt*辂.{磼럾䝪@a\\袛?}ᓺB珼": true
+                                                                                }
+                                                                               }
+                                                                              ]]}]}},
+                                                                              "tn\"6ꫤ샾䄄;銞^%VBPwu묪`Y僑N.↺Ws?3C⤻9唩S䠮ᐴm;sᇷ냞඘B/;툥B?lB∤)G+O9m裢0kC햪䪤": -4.5941249382502277E18,
+                                                                              "ᚔt'\\愫?鵀@\\びꂕP큠<<]煹G-b!S?\nꖽ鼫,ݛ&頺y踦?E揆릱H}햧캡b@手.p탻>췽㣬ꒅ`qe佭P>ᓂ&?u}毚ᜉ蟶頳졪ᎏzl2wO": -2.53561440423275936E17
+                                                                             }]}
+                                                                            }
+                                                                           ]
+                                                                          ]],
+                                                                          "潈촒⿂叡": 5495738871964062986
+                                                                         }
+                                                                        ]]
+                                                                       }
+                                                                      ]
+                                                                     ]}
+                                                                    ]]
+                                                                   ]]
+                                                                  ]}
+                                                                 ]
+                                                                ]},
+                                                                "ႁq킍蓅R`謈蟐ᦏ儂槐僻ﹶ9婌櫞釈~\"%匹躾ɢ뤥>࢟瀴愅?殕节/냔O✬H鲽엢?ᮈੁ⋧d␽㫐zCe*": 2.15062231586689536E17,
+                                                                "㶵Ui曚珰鋪ᾼ臧P{䍏䷪쨑̟A뼿T渠誈䏚D1!잶<\/㡍7?)2l≣穷᛾稝{:;㡹nemיּ訊`G": null,
+                                                                "䀕\"飕辭p圁f#뫆䶷뛮;⛴ᩍ3灚덏ᰝ쎓⦷詵%᜖Մfs⇫(\u001e~P|ﭗCⲾផv湟W첋(텪બT<บSꏉ੗⋲X婵i ӵ⇮?L䬇|ꈏ?졸": 1.548341247351782E-19
+                                                               }
+                                                              ]
+                                                             },
+                                                             "t;:N\u0015q鐦Rt缆{ꮐC?஛㷱敪\\+鲊㉫㓪몗릙竏(氵kYS": "XᰂT?൮ô",
+                                                             "碕飦幑|+ 㚦鏶`镥ꁩ B<\/加륙": -4314053432419755959,
+                                                             "秌孳(p!G?V傫%8ሽ8w;5鲗㦙LI檸\u2098": "zG N볞䆭鎍흘\\ONK3횙<\/樚立圌Q튅k쩎Ff쁋aׂJK銆ઘ즐狩6༥✙䩜篥CzP(聻駇HHퟲ讃%,ά{렍p而刲vy䦅ክ^톺M楒鍢㹳]Mdg2>䤉洞",
+                                                             "踛M젧>忔芿㌜Zk": 2215369545966507819,
+                                                             "씐A`$槭頰퍻^U覒\bG毲aᣴU;8!팲f꜇E⸃_卵{嫏羃X쀳C7뗮m(嚼u N܁谟D劯9]#": true,
+                                                             "ﻩ!뵸-筚P᭛}ἰ履lPh?౮ⶹꆛ穉뎃g萑㑓溢CX뾇G㖬A錟]RKaꄘ]Yo+@䘁's섎襠$^홰}F": null
+                                                            },
+                                                            "粘ꪒ4HXᕘ蹵.$區\r\u001d묁77pPc^y笲Q<\/ꖶ 訍䃍ᨕG?*": 1.73773035935040224E17
+                                                           },
+                                                           "婅拳?bkU;#D矠❴vVN쩆t㜷A풃갮娪a%鮏絪3dAv룒#tm쑬⌛qYwc4|L8KZ;xU⓭㳔밆拓EZ7襨eD|隰ऌ䧼u9Ԣ+]贴P荿": 2.9628516456987075E18
+                                                          }]}}]
+                                                         ]}
+                                                        }}
+                                                       ]}]
+                                                      ],
+                                                      "|g翉F*湹̶\u0005⏐1脉̀eI쩓ᖂ㫱0碞l䴨ꑅ㵽7AtἈ턧yq䳥塑:z:遀ᄐX눔擉)`N3昛oQ셖y-ڨ⾶恢ꈵq^<\/": null,
+                                                      "菹\\랓G^璬x৴뭸ゆUS겧﮷Bꮤ ┉銜᯻0%N7}~f洋坄Xꔼ<\/4妟Vꄟ9:౟곡t킅冩䧉笭裟炂4봋ⱳ叺怊t+怯涗\"0㖈Hq": false,
+                                                      "졬믟'ﺇফ圪쓬멤m邸QLব䗁愍4jvs翙 ྍ꧀艳H-|": null,
+                                                      "컮襱⣱뗠 R毪/鹙꾀%헳8&": -5770986448525107020
+                                                     }
+                                                    ],
+                                                    "B䔚bꐻ뙏姓展槰T-똌鷺tc灿᫽^㓟䏀o3o$꘭趙萬I顩)뇭Ἑ䓝\f@{ᣨ`x3蔛": null
+                                                   }
+                                                  ]
+                                                 ]
+                                                }],
+                                                "⦖扚vWꃱ꥙㾠壢輓{-⎳鹷贏璿䜑bG倛⋐磎c皇皩7a~ﳫU╣Q࠭ꎉS摅姽OW.홌ೞ.": null,
+                                                "蚪eVlH献r}ᮏ믠ﰩꔄ@瑄ⲱ": null,
+                                                "퀭$JWoꩢg역쁍䖔㑺h&ୢtXX愰㱇?㾫I_6 OaB瑈q裿": null,
+                                                "꽦ﲼLyr纛Zdu珍B絟쬴糔?㕂짹䏵e": "ḱ\u2009cX9멀i䶛簆㳀k"
+                                               }
+                                              ]]]],
+                                              "(_ꏮg່澮?ᩑyM<艷\u001aꪽ\\庼뙭Z맷㰩Vm\\lY筺]3㋲2㌩㄀Eਟ䝵⨄쐨ᔟgङHn鐖⤇놋瓇Q탚單oY\"♆臾jHᶈ征ቄ??uㇰA?#1侓": null
+                                             },
+                                             "觓^~ሢ&iI띆g륎ḱ캀.ᓡꀮ胙鈉": 1.0664523593012836E-19,
+                                             "y詭Gbᔶऽs댁U:杜⤎ϲ쁗⮼D醄诿q뙰I#즧v蔎xHᵿt᡽[**?崮耖p缫쿃L菝,봬ꤦC쯵#=X1瞻@OZc鱗CQTx": null
+                                            }
+                                           ]
+                                          }}],
+                                          "剘紁\u0004\\Xn⊠6,တױ;嵣崇}讃iႽ)d1\\䔓": null
+                                         },
+                                         "脨z\"{X,1u찜<'k&@?1}Yn$\u0015Rd輲ーa쮂굄+B$l": true,
+                                         "諳>*쭮괐䵟Ґ+<箁}빀䅱⡔檏臒hIH脟ꩪC핝ଗP좕\"0i<\/C褻D۞恗+^5?'ꂱ䚫^7}㡠cq6\\쨪ꔞꥢ?纖䫀氮蒫侲빦敶q{A煲G": -6880961710038544266
+                                        }}]
+                                       },
+                                       "5s⨲JvಽῶꭂᄢI.a৊": null,
+                                       "?1q꽏쿻ꛋDR%U娝>DgN乭G": -1.2105047302732358E-19
+                                      }
+                                     ]
+                                    ]},
+                                    "qZz`撋뙹둣j碇쁏\\ꆥ\u0018@藴疰Wz)O{F䶛l᷂绘訥$]뮍夻䢋䩇萿獰樧猵⣭j萶q)$꬚⵷0馢W:Ⱍ!Qoe": -1666634370862219540,
+                                    "t": "=wp|~碎Q鬳Ӎ\\l-<\/^ﳊhn퐖}䍔t碵ḛ혷?靻䊗",
+                                    "邙쇡㯇%#=,E4勃驆V繚q[Y댻XV㡸[逹ᰏ葢B@u=JS5?bLRn얮㍉⏅ﰳ?a6[&큟!藈": 1.2722786745736667E-19
+                                   },
+                                   "X블땨4{ph鵋ꉯ웸 5p簂䦭s_E徔濧d稝~No穔噕뽲)뉈c5M윅>⚋[岦䲟懷恁?鎐꓆ฬ爋獠䜔s{\u001bm鐚儸煛%bﯿXT>ꗘ@8G": 1157841540507770724,
+                                   "媤娪Q杸\u0011SAyᡈ쿯": true,
+                                   "灚^ಸ%걁<\/蛯<O\"-刷㏠R(kO=䢊䅎l䰓팪A絫픧": "譔\\㚄 ?R7㔪G㋉⣰渆?\\#|gN⤴;W칷A׫癮଼ೣ㏳뒜7d恓꾲0扬S0ᆵi/贎ྡn䆋武",
+                                   "萇砇Gこ朦켋Wq`㞲攊*冁~霓L剢zI腧튴T繙Cঅ뫬╈뮜ㄾ䦧촄椘B⊬츩r2f㶱厊8eϬ{挚␯OM焄覤\\(Kӡ>?\"祴坓\\\\'흍": -3.4614808555942579E18,
+                                   "釴U:O湛㴑䀣렑縓\ta)<D8ﭳ槁髭D.L|xs斋敠\"띋早7wᎍ": true,
+                                   "쵈+쬎簨up䓬?q+~\u0019仇뵈᫯3ᵣ恘枰劫㪢u珘-퀭:컙:u`⌿A(9鄦!<珚nj3:Hࣨ巋䀁旸뎈맻v\"\\(곘vO㤰aZe<\/W鹙鄜;l厮둝": null,
+                                   "": -1.2019926774977002E-18,
+                                   "%者O7.Nꪍs梇接z蕜綛<\/䜭\"죊y<曋漵@Ś⹝sD⟓jݗᢜ?z/9ၲMa쨮긗贎8ᔮ㦛;6p뾥໭䭊0B찛+)(Y㿠鸁䕒^옥": "鬃뫤&痽舎J콮藐󽸰ᨨMꈫ髿v<N\\.삒껅я1ꭼ5䴷5쳬臨wj덥"
+                                  }],
+                                  "鷎'㳗@帚妇OAj' 谬f94ǯ(횡ヒ%io쪖삐좛>(j:숾却䗌gCiB뽬Oyuq輥厁/7)?今hY︺Q": null
+                                 }
+                                ]
+                               ]]]}]
+                              ],
+                              "I笔趠Ph!<ཛྷ㸞诘X$畉F\u0005笷菟.Esr릙!W☆䲖뗷莾뒭U\"䀸犜Uo3Gꯌx4r蔇᡹㧪쨢準<䂀%ࡡꟼ瑍8炝Xs0䀝销?fi쥱ꆝલBB": -8571484181158525797,
+                              "L⦁o#J|\"⽩-㱢d㌛8d\\㶤傩儻E[Y熯)r噤὘勇 }": "e(濨쓌K䧚僒㘍蠤Vᛸ\"络QJL2,嬓왍伢㋒䴿考澰@(㏾`kX$끑эE斡,蜍&~y",
+                              "vj.|统圪ᵮPL?2oŶ`밧\"勃+0ue%⿥绬췈체$6:qa렐Q;~晘3㙘鹑": true,
+                              "ශؙ4獄⶿c︋i⚅:ん閝Ⳙ苆籦kw{䙞셕pC췃ꍬ␜꟯ꚓ酄b힝hwk꭭M鬋8B耳쑘WQ\\偙ac'唀x᪌\u2048*h짎#ፇ鮠뾏ឿ뀌": false,
+                              "⎀jꄒ牺3Ⓝ컴~?親ꕽぼܓ喏瘘!@<튋㐌꿱⩦{a?Yv%⪧笯Uܱ栅E搚i뚬:ꄃx7䙳ꦋ&䓹vq☶I䁘ᾘ涜\\썉뺌Lr%Bc㍜3?ꝭ砿裞]": null,
+                              "⭤뙓z(㡂%亳K䌽꫿AԾ岺㦦㼴輞낚Vꦴw냟鬓㹈뽈+o3譻K1잞": 2091209026076965894,
+                              "ㇲ\t⋇轑ꠤ룫X긒\"zoY읇희wj梐쐑l侸`e%s": -9.9240075473576563E17,
+                              "啸ꮑ㉰!ᚓ}銏": -4.0694813896301194E18,
+                              ">]囋੽EK뇜>_ꀣ緳碖{쐐裔[<ನ\"䇅\"5L?#xTwv#罐\u0005래t应\\N?빗;": "v쮽瞭p뭃"
+                             }
+                            ]],
+                            "斴槾?Z翁\"~慍弞ﻆ=꜡o5鐋dw\"?K蠡i샾ogDﲰ_C*⬟iㇷ4nય蟏[㟉U꽌娛苸 ঢ়操贻洞펻)쿗૊許X⨪VY츚Z䍾㶭~튃ᵦ<\/E臭tve猑x嚢": null,
+                            "锡⛩<\/칥ꈙᬙ蝀&Ꚑ籬■865?_>L詏쿨䈌浿弥爫̫lj&zx<\/C쉾?覯n?": null,
+                            "꾳鑤/꼩d=ᘈn挫ᑩ䰬ZC": "3錢爋6Ƹ䴗v⪿Wr益G韠[\u0010屗9쁡钁u?殢c䳀蓃樄욂NAq赟c튒瘁렶Aૡɚ捍"
+                           }
+                          ]
+                         ]
+                        ]}
+                       ]
+                      ]
+                     }]]]}}
+                    ]}],
+                    "Ej䗳U<\/Q=灒샎䞦,堰頠@褙g_\u0003ꤾfⶽ?퇋!łB〙ד3CC䌴鈌U:뭔咎(Qો臃䡬荋BO7㢝䟸\"Yb": 2.36010731779814E-20,
+                    "逸'0岔j\u000e눘먷翌C츊秦=ꭣ棭ှ;鳸=麱$XP⩉駚橄A\\좱⛌jqv䰞3Ь踌v㳆¹gT┌gvLB賖烡m?@E঳i": null
+                   },
+                   "曺v찘ׁ?&绫O័": 9107241066550187880
+                  }
+                 ]
+                ],
+                "(e屄\u0019昜훕琖b蓘ᬄ0/۲묇Z蘮ဏ⨏蛘胯뢃@㘉8ሪWᨮ⦬ᅳ䅴HI၇쨳z囕陻엣1赳o": true,
+                ",b刈Z,ၠ晐T솝ŕB⩆ou'퐼≃绗雗d譊": null,
+                "a唥KB\"ﳝ肕$u\n^⅄P䟼냉䞸⩪u윗瀱ꔨ#yşs꒬=1|ﲤ爢`t౐튼쳫_Az(Ṋ擬㦷좕耈6": 2099309172767331582,
+                "?㴸U<\/䢔ꯡ阽扆㐤q鐋?f㔫wM嬙-;UV죫嚔픞G&\"Cᗍ䪏풊Q": "VM7疹+陕枡툩窲}翡䖶8欞čsT뮐}璤:jﺋ鎴}HfA൝⧻Zd#Qu茅J髒皣Y-︴[?-~쉜v딏璮㹚䅊﩯<-#\u000e걀h\u0004u抱﵊㼃U<㱷⊱IC進"
+               },
+               "숌dee節鏽邺p넱蹓+e罕U": true
+              }
+             ],
+             "b⧴룏??ᔠ3ぱ>%郿劃翐ꏬꠛW瞳᫏누躨狀ໄy੽\"ីuS=㨞馸k乆E": "トz݈^9R䬑<ﮛG<s~<\/?ⵆᏥ老熷u듷"
+            }}
+           ]
+          }
+         ]}
+        }
+       }
+      }
+     }},
+     "宩j鬅쳜QꝖјy獔Z᭵1v擖}䨿F%cֲ᫺贴m塼딚NP亪\"ᅨsa뺯ꘓ2:9뛓༂쌅䊈#>Rꨳ\u000fTT泠纷꽀MR<CBxP񱒫X쇤": -2.22390568492330598E18,
+     "?䯣ᄽ@Z鸅->ᴱ纊:㠭볮?%N56%鈕1䗍䜁a䲗j陇=뿻偂衋࿘ᓸ?ᕵZ+<\/}H耢b䀁z^f$&㝒LkꢳI脚뙛u": 5.694374481577558E-20
+    }]
+   }
+  ]],
+  "obj": {"key": "wrong value"},
+  "퓲꽪m{㶩/뇿#⼢&᭙硞㪔E嚉c樱㬇1a綑᝖DḾ䝩": null
+ }
+}
\ No newline at end of file
diff --git a/resources/3rdparty/modernjson/test/src/catch.hpp b/resources/3rdparty/modernjson/test/src/catch.hpp
new file mode 100755
index 000000000..5cc33a838
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/src/catch.hpp
@@ -0,0 +1,10359 @@
+/*
+ *  Catch v1.3.4
+ *  Generated: 2016-02-10 19:24:03.089683
+ *  ----------------------------------------------------------
+ *  This file has been merged from multiple headers. Please don't edit it directly
+ *  Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.
+ *
+ *  Distributed under the Boost Software License, Version 1.0. (See accompanying
+ *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
+#define TWOBLUECUBES_CATCH_HPP_INCLUDED
+
+#ifdef __clang__
+#    pragma clang system_header
+#elif defined __GNUC__
+#    pragma GCC system_header
+#endif
+
+// #included from: internal/catch_suppress_warnings.h
+
+#ifdef __clang__
+#   ifdef __ICC // icpc defines the __clang__ macro
+#       pragma warning(push)
+#       pragma warning(disable: 161 1682)
+#   else // __ICC
+#       pragma clang diagnostic ignored "-Wglobal-constructors"
+#       pragma clang diagnostic ignored "-Wvariadic-macros"
+#       pragma clang diagnostic ignored "-Wc99-extensions"
+#       pragma clang diagnostic ignored "-Wunused-variable"
+#       pragma clang diagnostic push
+#       pragma clang diagnostic ignored "-Wpadded"
+#       pragma clang diagnostic ignored "-Wc++98-compat"
+#       pragma clang diagnostic ignored "-Wc++98-compat-pedantic"
+#       pragma clang diagnostic ignored "-Wswitch-enum"
+#       pragma clang diagnostic ignored "-Wcovered-switch-default"
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic ignored "-Wvariadic-macros"
+#    pragma GCC diagnostic ignored "-Wunused-variable"
+#    pragma GCC diagnostic push
+#    pragma GCC diagnostic ignored "-Wpadded"
+#endif
+#if defined(CATCH_CONFIG_MAIN) || defined(CATCH_CONFIG_RUNNER)
+#  define CATCH_IMPL
+#endif
+
+#ifdef CATCH_IMPL
+#  ifndef CLARA_CONFIG_MAIN
+#    define CLARA_CONFIG_MAIN_NOT_DEFINED
+#    define CLARA_CONFIG_MAIN
+#  endif
+#endif
+
+// #included from: internal/catch_notimplemented_exception.h
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_H_INCLUDED
+
+// #included from: catch_common.h
+#define TWOBLUECUBES_CATCH_COMMON_H_INCLUDED
+
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line ) name##line
+#define INTERNAL_CATCH_UNIQUE_NAME_LINE( name, line ) INTERNAL_CATCH_UNIQUE_NAME_LINE2( name, line )
+#define INTERNAL_CATCH_UNIQUE_NAME( name ) INTERNAL_CATCH_UNIQUE_NAME_LINE( name, __LINE__ )
+
+#define INTERNAL_CATCH_STRINGIFY2( expr ) #expr
+#define INTERNAL_CATCH_STRINGIFY( expr ) INTERNAL_CATCH_STRINGIFY2( expr )
+
+#include <sstream>
+#include <stdexcept>
+#include <algorithm>
+
+// #included from: catch_compiler_capabilities.h
+#define TWOBLUECUBES_CATCH_COMPILER_CAPABILITIES_HPP_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CATCH_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CATCH_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CATCH_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CATCH_CONFIG_CPP11_IS_ENUM : std::is_enum is supported?
+// CATCH_CONFIG_CPP11_TUPLE : std::tuple is supported
+// CATCH_CONFIG_CPP11_LONG_LONG : is long long supported?
+// CATCH_CONFIG_CPP11_OVERRIDE : is override supported?
+// CATCH_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+
+// CATCH_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CATCH_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+
+// ****************
+// Note to maintainers: if new toggles are added please document them
+// in configuration.md, too
+// ****************
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CATCH_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CATCH_CONFIG_NO_CPP11
+
+#ifdef __clang__
+
+#  if __has_feature(cxx_nullptr)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  if __has_feature(cxx_noexcept)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// Borland
+#ifdef __BORLANDC__
+
+#endif // __BORLANDC__
+
+////////////////////////////////////////////////////////////////////////////////
+// EDG
+#ifdef __EDG_VERSION__
+
+#endif // __EDG_VERSION__
+
+////////////////////////////////////////////////////////////////////////////////
+// Digital Mars
+#ifdef __DMC__
+
+#endif // __DMC__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#   define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#   define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+
+// Use variadic macros if the compiler supports them
+#if ( defined _MSC_VER && _MSC_VER > 1400 && !defined __EDGE__) || \
+    ( defined __WAVE__ && __WAVE_HAS_VARIADICS ) || \
+    ( defined __GNUC__ && __GNUC__ >= 3 ) || \
+    ( !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L )
+
+#define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(__cplusplus) && __cplusplus >= 201103L
+
+#  define CATCH_CPP11_OR_GREATER
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_NULLPTR
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#    define CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#    define CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#    define CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#    define CATCH_INTERNAL_CONFIG_CPP11_TUPLE
+#  endif
+
+#  ifndef CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#    define CATCH_INTERNAL_CONFIG_VARIADIC_MACROS
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG)
+#    define CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG
+#  endif
+
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#    define CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE
+#  endif
+#  if !defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#    define CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#  endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NO_NULLPTR) && !defined(CATCH_CONFIG_CPP11_NULLPTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CATCH_CONFIG_CPP11_GENERATED_METHODS) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_NO_IS_ENUM) && !defined(CATCH_CONFIG_CPP11_IS_ENUM) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_IS_ENUM
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_CPP11_NO_TUPLE) && !defined(CATCH_CONFIG_CPP11_TUPLE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_TUPLE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_VARIADIC_MACROS) && !defined(CATCH_CONFIG_NO_VARIADIC_MACROS) && !defined(CATCH_CONFIG_VARIADIC_MACROS)
+#   define CATCH_CONFIG_VARIADIC_MACROS
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_LONG_LONG) && !defined(CATCH_CONFIG_CPP11_LONG_LONG) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_LONG_LONG
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_OVERRIDE) && !defined(CATCH_CONFIG_CPP11_OVERRIDE) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CATCH_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_UNIQUE_PTR) && !defined(CATCH_CONFIG_CPP11_UNIQUE_PTR) && !defined(CATCH_CONFIG_NO_CPP11)
+#   define CATCH_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+// noexcept support:
+#if defined(CATCH_CONFIG_CPP11_NOEXCEPT) && !defined(CATCH_NOEXCEPT)
+#  define CATCH_NOEXCEPT noexcept
+#  define CATCH_NOEXCEPT_IS(x) noexcept(x)
+#else
+#  define CATCH_NOEXCEPT throw()
+#  define CATCH_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+#   define CATCH_NULL nullptr
+#else
+#   define CATCH_NULL NULL
+#endif
+
+// override support
+#ifdef CATCH_CONFIG_CPP11_OVERRIDE
+#   define CATCH_OVERRIDE override
+#else
+#   define CATCH_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CATCH_CONFIG_CPP11_UNIQUE_PTR
+#   define CATCH_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CATCH_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+namespace Catch {
+
+    struct IConfig;
+
+    struct CaseSensitive { enum Choice {
+        Yes,
+        No
+    }; };
+
+    class NonCopyable {
+#ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        NonCopyable( NonCopyable const& )              = delete;
+        NonCopyable( NonCopyable && )                  = delete;
+        NonCopyable& operator = ( NonCopyable const& ) = delete;
+        NonCopyable& operator = ( NonCopyable && )     = delete;
+#else
+        NonCopyable( NonCopyable const& info );
+        NonCopyable& operator = ( NonCopyable const& );
+#endif
+
+    protected:
+        NonCopyable() {}
+        virtual ~NonCopyable();
+    };
+
+    class SafeBool {
+    public:
+        typedef void (SafeBool::*type)() const;
+
+        static type makeSafe( bool value ) {
+            return value ? &SafeBool::trueValue : 0;
+        }
+    private:
+        void trueValue() const {}
+    };
+
+    template<typename ContainerT>
+    inline void deleteAll( ContainerT& container ) {
+        typename ContainerT::const_iterator it = container.begin();
+        typename ContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete *it;
+    }
+    template<typename AssociativeContainerT>
+    inline void deleteAllValues( AssociativeContainerT& container ) {
+        typename AssociativeContainerT::const_iterator it = container.begin();
+        typename AssociativeContainerT::const_iterator itEnd = container.end();
+        for(; it != itEnd; ++it )
+            delete it->second;
+    }
+
+    bool startsWith( std::string const& s, std::string const& prefix );
+    bool endsWith( std::string const& s, std::string const& suffix );
+    bool contains( std::string const& s, std::string const& infix );
+    void toLowerInPlace( std::string& s );
+    std::string toLower( std::string const& s );
+    std::string trim( std::string const& str );
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis );
+
+    struct pluralise {
+        pluralise( std::size_t count, std::string const& label );
+
+        friend std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser );
+
+        std::size_t m_count;
+        std::string m_label;
+    };
+
+    struct SourceLineInfo {
+
+        SourceLineInfo();
+        SourceLineInfo( char const* _file, std::size_t _line );
+        SourceLineInfo( SourceLineInfo const& other );
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SourceLineInfo( SourceLineInfo && )                  = default;
+        SourceLineInfo& operator = ( SourceLineInfo const& ) = default;
+        SourceLineInfo& operator = ( SourceLineInfo && )     = default;
+#  endif
+        bool empty() const;
+        bool operator == ( SourceLineInfo const& other ) const;
+        bool operator < ( SourceLineInfo const& other ) const;
+
+        std::string file;
+        std::size_t line;
+    };
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info );
+
+    // This is just here to avoid compiler warnings with macro constants and boolean literals
+    inline bool isTrue( bool value ){ return value; }
+    inline bool alwaysTrue() { return true; }
+    inline bool alwaysFalse() { return false; }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo );
+
+    void seedRng( IConfig const& config );
+    unsigned int rngSeed();
+
+    // Use this in variadic streaming macros to allow
+    //    >> +StreamEndStop
+    // as well as
+    //    >> stuff +StreamEndStop
+    struct StreamEndStop {
+        std::string operator+() {
+            return std::string();
+        }
+    };
+    template<typename T>
+    T const& operator + ( T const& value, StreamEndStop ) {
+        return value;
+    }
+}
+
+#define CATCH_INTERNAL_LINEINFO ::Catch::SourceLineInfo( __FILE__, static_cast<std::size_t>( __LINE__ ) )
+#define CATCH_INTERNAL_ERROR( msg ) ::Catch::throwLogicError( msg, CATCH_INTERNAL_LINEINFO );
+
+#include <ostream>
+
+namespace Catch {
+
+    class NotImplementedException : public std::exception
+    {
+    public:
+        NotImplementedException( SourceLineInfo const& lineInfo );
+        NotImplementedException( NotImplementedException const& ) {}
+
+        virtual ~NotImplementedException() CATCH_NOEXCEPT {}
+
+        virtual const char* what() const CATCH_NOEXCEPT;
+
+    private:
+        std::string m_what;
+        SourceLineInfo m_lineInfo;
+    };
+
+} // end namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define CATCH_NOT_IMPLEMENTED throw Catch::NotImplementedException( CATCH_INTERNAL_LINEINFO )
+
+// #included from: internal/catch_context.h
+#define TWOBLUECUBES_CATCH_CONTEXT_H_INCLUDED
+
+// #included from: catch_interfaces_generators.h
+#define TWOBLUECUBES_CATCH_INTERFACES_GENERATORS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct IGeneratorInfo {
+        virtual ~IGeneratorInfo();
+        virtual bool moveNext() = 0;
+        virtual std::size_t getCurrentIndex() const = 0;
+    };
+
+    struct IGeneratorsForTest {
+        virtual ~IGeneratorsForTest();
+
+        virtual IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) = 0;
+        virtual bool moveNext() = 0;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest();
+
+} // end namespace Catch
+
+// #included from: catch_ptr.hpp
+#define TWOBLUECUBES_CATCH_PTR_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    // An intrusive reference counting smart pointer.
+    // T must implement addRef() and release() methods
+    // typically implementing the IShared interface
+    template<typename T>
+    class Ptr {
+    public:
+        Ptr() : m_p( CATCH_NULL ){}
+        Ptr( T* p ) : m_p( p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        Ptr( Ptr const& other ) : m_p( other.m_p ){
+            if( m_p )
+                m_p->addRef();
+        }
+        ~Ptr(){
+            if( m_p )
+                m_p->release();
+        }
+        void reset() {
+            if( m_p )
+                m_p->release();
+            m_p = CATCH_NULL;
+        }
+        Ptr& operator = ( T* p ){
+            Ptr temp( p );
+            swap( temp );
+            return *this;
+        }
+        Ptr& operator = ( Ptr const& other ){
+            Ptr temp( other );
+            swap( temp );
+            return *this;
+        }
+        void swap( Ptr& other ) { std::swap( m_p, other.m_p ); }
+        T* get() const{ return m_p; }
+        T& operator*() const { return *m_p; }
+        T* operator->() const { return m_p; }
+        bool operator !() const { return m_p == CATCH_NULL; }
+        operator SafeBool::type() const { return SafeBool::makeSafe( m_p != CATCH_NULL ); }
+
+    private:
+        T* m_p;
+    };
+
+    struct IShared : NonCopyable {
+        virtual ~IShared();
+        virtual void addRef() const = 0;
+        virtual void release() const = 0;
+    };
+
+    template<typename T = IShared>
+    struct SharedImpl : T {
+
+        SharedImpl() : m_rc( 0 ){}
+
+        virtual void addRef() const {
+            ++m_rc;
+        }
+        virtual void release() const {
+            if( --m_rc == 0 )
+                delete this;
+        }
+
+        mutable unsigned int m_rc;
+    };
+
+} // end namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#include <memory>
+#include <vector>
+#include <stdlib.h>
+
+namespace Catch {
+
+    class TestCase;
+    class Stream;
+    struct IResultCapture;
+    struct IRunner;
+    struct IGeneratorsForTest;
+    struct IConfig;
+
+    struct IContext
+    {
+        virtual ~IContext();
+
+        virtual IResultCapture* getResultCapture() = 0;
+        virtual IRunner* getRunner() = 0;
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) = 0;
+        virtual bool advanceGeneratorsForCurrentTest() = 0;
+        virtual Ptr<IConfig const> getConfig() const = 0;
+    };
+
+    struct IMutableContext : IContext
+    {
+        virtual ~IMutableContext();
+        virtual void setResultCapture( IResultCapture* resultCapture ) = 0;
+        virtual void setRunner( IRunner* runner ) = 0;
+        virtual void setConfig( Ptr<IConfig const> const& config ) = 0;
+    };
+
+    IContext& getCurrentContext();
+    IMutableContext& getCurrentMutableContext();
+    void cleanUpContext();
+    Stream createStream( std::string const& streamName );
+
+}
+
+// #included from: internal/catch_test_registry.hpp
+#define TWOBLUECUBES_CATCH_TEST_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_interfaces_testcase.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TESTCASE_H_INCLUDED
+
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec;
+
+    struct ITestCase : IShared {
+        virtual void invoke () const = 0;
+    protected:
+        virtual ~ITestCase();
+    };
+
+    class TestCase;
+    struct IConfig;
+
+    struct ITestCaseRegistry {
+        virtual ~ITestCaseRegistry();
+        virtual std::vector<TestCase> const& getAllTests() const = 0;
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const = 0;
+    };
+
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config );
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config );
+
+}
+
+namespace Catch {
+
+template<typename C>
+class MethodTestCase : public SharedImpl<ITestCase> {
+
+public:
+    MethodTestCase( void (C::*method)() ) : m_method( method ) {}
+
+    virtual void invoke() const {
+        C obj;
+        (obj.*m_method)();
+    }
+
+private:
+    virtual ~MethodTestCase() {}
+
+    void (C::*m_method)();
+};
+
+typedef void(*TestFunction)();
+
+struct NameAndDesc {
+    NameAndDesc( const char* _name = "", const char* _description= "" )
+    : name( _name ), description( _description )
+    {}
+
+    const char* name;
+    const char* description;
+};
+
+void registerTestCase
+    (   ITestCase* testCase,
+        char const* className,
+        NameAndDesc const& nameAndDesc,
+        SourceLineInfo const& lineInfo );
+
+struct AutoReg {
+
+    AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc );
+
+    template<typename C>
+    AutoReg
+        (   void (C::*method)(),
+            char const* className,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        registerTestCase
+            (   new MethodTestCase<C>( method ),
+                className,
+                nameAndDesc,
+                lineInfo );
+    }
+
+    ~AutoReg();
+
+private:
+    AutoReg( AutoReg const& );
+    void operator= ( AutoReg const& );
+};
+
+void registerTestCaseFunction
+    (   TestFunction function,
+        SourceLineInfo const& lineInfo,
+        NameAndDesc const& nameAndDesc );
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE( ... ) \
+        static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ ), CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) ); }\
+        static void INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ )()
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, ... ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, ... )\
+        namespace{ \
+            struct INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test, #ClassName, Catch::NameAndDesc( __VA_ARGS__ ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, ... ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( __VA_ARGS__ ) );
+
+#else
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TESTCASE( Name, Desc ) \
+        static void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )(); \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ ), CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) ); }\
+        static void INTERNAL_CATCH_UNIQUE_NAME(  ____C_A_T_C_H____T_E_S_T____ )()
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_METHOD_AS_TEST_CASE( QualifiedMethod, Name, Desc ) \
+        namespace{ Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar )( &QualifiedMethod, "&" #QualifiedMethod, Catch::NameAndDesc( Name, Desc ), CATCH_INTERNAL_LINEINFO ); }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_TEST_CASE_METHOD( ClassName, TestName, Desc )\
+        namespace{ \
+            struct INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ ) : ClassName{ \
+                void test(); \
+            }; \
+            Catch::AutoReg INTERNAL_CATCH_UNIQUE_NAME( autoRegistrar ) ( &INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test, #ClassName, Catch::NameAndDesc( TestName, Desc ), CATCH_INTERNAL_LINEINFO ); \
+        } \
+        void INTERNAL_CATCH_UNIQUE_NAME( ____C_A_T_C_H____T_E_S_T____ )::test()
+
+    ///////////////////////////////////////////////////////////////////////////////
+    #define INTERNAL_CATCH_REGISTER_TESTCASE( Function, Name, Desc ) \
+        Catch::AutoReg( Function, CATCH_INTERNAL_LINEINFO, Catch::NameAndDesc( Name, Desc ) );
+#endif
+
+// #included from: internal/catch_capture.hpp
+#define TWOBLUECUBES_CATCH_CAPTURE_HPP_INCLUDED
+
+// #included from: catch_result_builder.h
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_H_INCLUDED
+
+// #included from: catch_result_type.h
+#define TWOBLUECUBES_CATCH_RESULT_TYPE_H_INCLUDED
+
+namespace Catch {
+
+    // ResultWas::OfType enum
+    struct ResultWas { enum OfType {
+        Unknown = -1,
+        Ok = 0,
+        Info = 1,
+        Warning = 2,
+
+        FailureBit = 0x10,
+
+        ExpressionFailed = FailureBit | 1,
+        ExplicitFailure = FailureBit | 2,
+
+        Exception = 0x100 | FailureBit,
+
+        ThrewException = Exception | 1,
+        DidntThrowException = Exception | 2,
+
+        FatalErrorCondition = 0x200 | FailureBit
+
+    }; };
+
+    inline bool isOk( ResultWas::OfType resultType ) {
+        return ( resultType & ResultWas::FailureBit ) == 0;
+    }
+    inline bool isJustInfo( int flags ) {
+        return flags == ResultWas::Info;
+    }
+
+    // ResultDisposition::Flags enum
+    struct ResultDisposition { enum Flags {
+        Normal = 0x01,
+
+        ContinueOnFailure = 0x02,   // Failures fail test, but execution continues
+        FalseTest = 0x04,           // Prefix expression with !
+        SuppressFail = 0x08         // Failures are reported but do not fail the test
+    }; };
+
+    inline ResultDisposition::Flags operator | ( ResultDisposition::Flags lhs, ResultDisposition::Flags rhs ) {
+        return static_cast<ResultDisposition::Flags>( static_cast<int>( lhs ) | static_cast<int>( rhs ) );
+    }
+
+    inline bool shouldContinueOnFailure( int flags )    { return ( flags & ResultDisposition::ContinueOnFailure ) != 0; }
+    inline bool isFalseTest( int flags )                { return ( flags & ResultDisposition::FalseTest ) != 0; }
+    inline bool shouldSuppressFailure( int flags )      { return ( flags & ResultDisposition::SuppressFail ) != 0; }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.h
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct AssertionInfo
+    {
+        AssertionInfo() {}
+        AssertionInfo(  std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        std::string const& _capturedExpression,
+                        ResultDisposition::Flags _resultDisposition );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        std::string capturedExpression;
+        ResultDisposition::Flags resultDisposition;
+    };
+
+    struct AssertionResultData
+    {
+        AssertionResultData() : resultType( ResultWas::Unknown ) {}
+
+        std::string reconstructedExpression;
+        std::string message;
+        ResultWas::OfType resultType;
+    };
+
+    class AssertionResult {
+    public:
+        AssertionResult();
+        AssertionResult( AssertionInfo const& info, AssertionResultData const& data );
+        ~AssertionResult();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+         AssertionResult( AssertionResult const& )              = default;
+         AssertionResult( AssertionResult && )                  = default;
+         AssertionResult& operator = ( AssertionResult const& ) = default;
+         AssertionResult& operator = ( AssertionResult && )     = default;
+#  endif
+
+        bool isOk() const;
+        bool succeeded() const;
+        ResultWas::OfType getResultType() const;
+        bool hasExpression() const;
+        bool hasMessage() const;
+        std::string getExpression() const;
+        std::string getExpressionInMacro() const;
+        bool hasExpandedExpression() const;
+        std::string getExpandedExpression() const;
+        std::string getMessage() const;
+        SourceLineInfo getSourceInfo() const;
+        std::string getTestMacroName() const;
+
+    protected:
+        AssertionInfo m_info;
+        AssertionResultData m_resultData;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_matchers.hpp
+#define TWOBLUECUBES_CATCH_MATCHERS_HPP_INCLUDED
+
+namespace Catch {
+namespace Matchers {
+    namespace Impl {
+
+    namespace Generic {
+        template<typename ExpressionT> class AllOf;
+        template<typename ExpressionT> class AnyOf;
+        template<typename ExpressionT> class Not;
+    }
+
+    template<typename ExpressionT>
+    struct Matcher : SharedImpl<IShared>
+    {
+        typedef ExpressionT ExpressionType;
+
+        virtual ~Matcher() {}
+        virtual Ptr<Matcher> clone() const = 0;
+        virtual bool match( ExpressionT const& expr ) const = 0;
+        virtual std::string toString() const = 0;
+
+        Generic::AllOf<ExpressionT> operator && ( Matcher<ExpressionT> const& other ) const;
+        Generic::AnyOf<ExpressionT> operator || ( Matcher<ExpressionT> const& other ) const;
+        Generic::Not<ExpressionT> operator ! () const;
+    };
+
+    template<typename DerivedT, typename ExpressionT>
+    struct MatcherImpl : Matcher<ExpressionT> {
+
+        virtual Ptr<Matcher<ExpressionT> > clone() const {
+            return Ptr<Matcher<ExpressionT> >( new DerivedT( static_cast<DerivedT const&>( *this ) ) );
+        }
+    };
+
+    namespace Generic {
+        template<typename ExpressionT>
+        class Not : public MatcherImpl<Not<ExpressionT>, ExpressionT> {
+        public:
+            explicit Not( Matcher<ExpressionT> const& matcher ) : m_matcher(matcher.clone()) {}
+            Not( Not const& other ) : m_matcher( other.m_matcher ) {}
+
+            virtual bool match( ExpressionT const& expr ) const CATCH_OVERRIDE {
+                return !m_matcher->match( expr );
+            }
+
+            virtual std::string toString() const CATCH_OVERRIDE {
+                return "not " + m_matcher->toString();
+            }
+        private:
+            Ptr< Matcher<ExpressionT> > m_matcher;
+        };
+
+        template<typename ExpressionT>
+        class AllOf : public MatcherImpl<AllOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AllOf() {}
+            AllOf( AllOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AllOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( !m_matchers[i]->match( expr ) )
+                        return false;
+                return true;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " and ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AllOf operator && ( Matcher<ExpressionT> const& other ) const {
+                AllOf allOfExpr( *this );
+                allOfExpr.add( other );
+                return allOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+        template<typename ExpressionT>
+        class AnyOf : public MatcherImpl<AnyOf<ExpressionT>, ExpressionT> {
+        public:
+
+            AnyOf() {}
+            AnyOf( AnyOf const& other ) : m_matchers( other.m_matchers ) {}
+
+            AnyOf& add( Matcher<ExpressionT> const& matcher ) {
+                m_matchers.push_back( matcher.clone() );
+                return *this;
+            }
+            virtual bool match( ExpressionT const& expr ) const
+            {
+                for( std::size_t i = 0; i < m_matchers.size(); ++i )
+                    if( m_matchers[i]->match( expr ) )
+                        return true;
+                return false;
+            }
+            virtual std::string toString() const {
+                std::ostringstream oss;
+                oss << "( ";
+                for( std::size_t i = 0; i < m_matchers.size(); ++i ) {
+                    if( i != 0 )
+                        oss << " or ";
+                    oss << m_matchers[i]->toString();
+                }
+                oss << " )";
+                return oss.str();
+            }
+
+            AnyOf operator || ( Matcher<ExpressionT> const& other ) const {
+                AnyOf anyOfExpr( *this );
+                anyOfExpr.add( other );
+                return anyOfExpr;
+            }
+
+        private:
+            std::vector<Ptr<Matcher<ExpressionT> > > m_matchers;
+        };
+
+    } // namespace Generic
+
+    template<typename ExpressionT>
+    Generic::AllOf<ExpressionT> Matcher<ExpressionT>::operator && ( Matcher<ExpressionT> const& other ) const {
+        Generic::AllOf<ExpressionT> allOfExpr;
+        allOfExpr.add( *this );
+        allOfExpr.add( other );
+        return allOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::AnyOf<ExpressionT> Matcher<ExpressionT>::operator || ( Matcher<ExpressionT> const& other ) const {
+        Generic::AnyOf<ExpressionT> anyOfExpr;
+        anyOfExpr.add( *this );
+        anyOfExpr.add( other );
+        return anyOfExpr;
+    }
+
+    template<typename ExpressionT>
+    Generic::Not<ExpressionT> Matcher<ExpressionT>::operator ! () const {
+        return Generic::Not<ExpressionT>( *this );
+    }
+
+    namespace StdString {
+
+        inline std::string makeString( std::string const& str ) { return str; }
+        inline std::string makeString( const char* str ) { return str ? std::string( str ) : std::string(); }
+
+        struct CasedString
+        {
+            CasedString( std::string const& str, CaseSensitive::Choice caseSensitivity )
+            :   m_caseSensitivity( caseSensitivity ),
+                m_str( adjustString( str ) )
+            {}
+            std::string adjustString( std::string const& str ) const {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? toLower( str )
+                    : str;
+
+            }
+            std::string toStringSuffix() const
+            {
+                return m_caseSensitivity == CaseSensitive::No
+                    ? " (case insensitive)"
+                    : "";
+            }
+            CaseSensitive::Choice m_caseSensitivity;
+            std::string m_str;
+        };
+
+        struct Equals : MatcherImpl<Equals, std::string> {
+            Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            :   m_data( str, caseSensitivity )
+            {}
+            Equals( Equals const& other ) : m_data( other.m_data ){}
+
+            virtual ~Equals();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.m_str == m_data.adjustString( expr );;
+            }
+            virtual std::string toString() const {
+                return "equals: \"" + m_data.m_str + "\"" + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct Contains : MatcherImpl<Contains, std::string> {
+            Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            Contains( Contains const& other ) : m_data( other.m_data ){}
+
+            virtual ~Contains();
+
+            virtual bool match( std::string const& expr ) const {
+                return m_data.adjustString( expr ).find( m_data.m_str ) != std::string::npos;
+            }
+            virtual std::string toString() const {
+                return "contains: \"" + m_data.m_str  + "\"" + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct StartsWith : MatcherImpl<StartsWith, std::string> {
+            StartsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+
+            StartsWith( StartsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~StartsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return startsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "starts with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+
+        struct EndsWith : MatcherImpl<EndsWith, std::string> {
+            EndsWith( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes )
+            : m_data( substr, caseSensitivity ){}
+            EndsWith( EndsWith const& other ) : m_data( other.m_data ){}
+
+            virtual ~EndsWith();
+
+            virtual bool match( std::string const& expr ) const {
+                return endsWith( m_data.adjustString( expr ), m_data.m_str );
+            }
+            virtual std::string toString() const {
+                return "ends with: \"" + m_data.m_str + "\"" + m_data.toStringSuffix();
+            }
+
+            CasedString m_data;
+        };
+    } // namespace StdString
+    } // namespace Impl
+
+    // The following functions create the actual matcher objects.
+    // This allows the types to be inferred
+    template<typename ExpressionT>
+    inline Impl::Generic::Not<ExpressionT> Not( Impl::Matcher<ExpressionT> const& m ) {
+        return Impl::Generic::Not<ExpressionT>( m );
+    }
+
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AllOf<ExpressionT> AllOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AllOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 );
+    }
+    template<typename ExpressionT>
+    inline Impl::Generic::AnyOf<ExpressionT> AnyOf( Impl::Matcher<ExpressionT> const& m1,
+                                                    Impl::Matcher<ExpressionT> const& m2,
+                                                    Impl::Matcher<ExpressionT> const& m3 ) {
+        return Impl::Generic::AnyOf<ExpressionT>().add( m1 ).add( m2 ).add( m3 );
+    }
+
+    inline Impl::StdString::Equals      Equals( std::string const& str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( str, caseSensitivity );
+    }
+    inline Impl::StdString::Equals      Equals( const char* str, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Equals( Impl::StdString::makeString( str ), caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( std::string const& substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( substr, caseSensitivity );
+    }
+    inline Impl::StdString::Contains    Contains( const char* substr, CaseSensitive::Choice caseSensitivity = CaseSensitive::Yes ) {
+        return Impl::StdString::Contains( Impl::StdString::makeString( substr ), caseSensitivity );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( std::string const& substr ) {
+        return Impl::StdString::StartsWith( substr );
+    }
+    inline Impl::StdString::StartsWith  StartsWith( const char* substr ) {
+        return Impl::StdString::StartsWith( Impl::StdString::makeString( substr ) );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( std::string const& substr ) {
+        return Impl::StdString::EndsWith( substr );
+    }
+    inline Impl::StdString::EndsWith    EndsWith( const char* substr ) {
+        return Impl::StdString::EndsWith( Impl::StdString::makeString( substr ) );
+    }
+
+} // namespace Matchers
+
+using namespace Matchers;
+
+} // namespace Catch
+
+namespace Catch {
+
+    struct TestFailureException{};
+
+    template<typename T> class ExpressionLhs;
+
+    struct STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison;
+
+    struct CopyableStream {
+        CopyableStream() {}
+        CopyableStream( CopyableStream const& other ) {
+            oss << other.oss.str();
+        }
+        CopyableStream& operator=( CopyableStream const& other ) {
+            oss.str("");
+            oss << other.oss.str();
+            return *this;
+        }
+        std::ostringstream oss;
+    };
+
+    class ResultBuilder {
+    public:
+        ResultBuilder(  char const* macroName,
+                        SourceLineInfo const& lineInfo,
+                        char const* capturedExpression,
+                        ResultDisposition::Flags resultDisposition,
+                        char const* secondArg = "" );
+
+        template<typename T>
+        ExpressionLhs<T const&> operator <= ( T const& operand );
+        ExpressionLhs<bool> operator <= ( bool value );
+
+        template<typename T>
+        ResultBuilder& operator << ( T const& value ) {
+            m_stream.oss << value;
+            return *this;
+        }
+
+        template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& );
+        template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& );
+
+        ResultBuilder& setResultType( ResultWas::OfType result );
+        ResultBuilder& setResultType( bool result );
+        ResultBuilder& setLhs( std::string const& lhs );
+        ResultBuilder& setRhs( std::string const& rhs );
+        ResultBuilder& setOp( std::string const& op );
+
+        void endExpression();
+
+        std::string reconstructExpression() const;
+        AssertionResult build() const;
+
+        void useActiveException( ResultDisposition::Flags resultDisposition = ResultDisposition::Normal );
+        void captureResult( ResultWas::OfType resultType );
+        void captureExpression();
+        void captureExpectedException( std::string const& expectedMessage );
+        void captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher );
+        void handleResult( AssertionResult const& result );
+        void react();
+        bool shouldDebugBreak() const;
+        bool allowThrows() const;
+
+    private:
+        AssertionInfo m_assertionInfo;
+        AssertionResultData m_data;
+        struct ExprComponents {
+            ExprComponents() : testFalse( false ) {}
+            bool testFalse;
+            std::string lhs, rhs, op;
+        } m_exprComponents;
+        CopyableStream m_stream;
+
+        bool m_shouldDebugBreak;
+        bool m_shouldThrow;
+    };
+
+} // namespace Catch
+
+// Include after due to circular dependency:
+// #included from: catch_expression_lhs.hpp
+#define TWOBLUECUBES_CATCH_EXPRESSION_LHS_HPP_INCLUDED
+
+// #included from: catch_evaluate.hpp
+#define TWOBLUECUBES_CATCH_EVALUATE_HPP_INCLUDED
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4389) // '==' : signed/unsigned mismatch
+#endif
+
+#include <cstddef>
+
+namespace Catch {
+namespace Internal {
+
+    enum Operator {
+        IsEqualTo,
+        IsNotEqualTo,
+        IsLessThan,
+        IsGreaterThan,
+        IsLessThanOrEqualTo,
+        IsGreaterThanOrEqualTo
+    };
+
+    template<Operator Op> struct OperatorTraits             { static const char* getName(){ return "*error*"; } };
+    template<> struct OperatorTraits<IsEqualTo>             { static const char* getName(){ return "=="; } };
+    template<> struct OperatorTraits<IsNotEqualTo>          { static const char* getName(){ return "!="; } };
+    template<> struct OperatorTraits<IsLessThan>            { static const char* getName(){ return "<"; } };
+    template<> struct OperatorTraits<IsGreaterThan>         { static const char* getName(){ return ">"; } };
+    template<> struct OperatorTraits<IsLessThanOrEqualTo>   { static const char* getName(){ return "<="; } };
+    template<> struct OperatorTraits<IsGreaterThanOrEqualTo>{ static const char* getName(){ return ">="; } };
+
+    template<typename T>
+    inline T& opCast(T const& t) { return const_cast<T&>(t); }
+
+// nullptr_t support based on pull request #154 from Konstantin Baumann
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    inline std::nullptr_t opCast(std::nullptr_t) { return nullptr; }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+    // So the compare overloads can be operator agnostic we convey the operator as a template
+    // enum, which is used to specialise an Evaluator for doing the comparison.
+    template<typename T1, typename T2, Operator Op>
+    class Evaluator{};
+
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs) {
+            return opCast( lhs ) ==  opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsNotEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) != opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) < opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThan> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) > opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsGreaterThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) >= opCast( rhs );
+        }
+    };
+    template<typename T1, typename T2>
+    struct Evaluator<T1, T2, IsLessThanOrEqualTo> {
+        static bool evaluate( T1 const& lhs, T2 const& rhs ) {
+            return opCast( lhs ) <= opCast( rhs );
+        }
+    };
+
+    template<Operator Op, typename T1, typename T2>
+    bool applyEvaluator( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // This level of indirection allows us to specialise for integer types
+    // to avoid signed/ unsigned warnings
+
+    // "base" overload
+    template<Operator Op, typename T1, typename T2>
+    bool compare( T1 const& lhs, T2 const& rhs ) {
+        return Evaluator<T1, T2, Op>::evaluate( lhs, rhs );
+    }
+
+    // unsigned X to int
+    template<Operator Op> bool compare( unsigned int lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, int rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned int>( rhs ) );
+    }
+
+    // unsigned X to long
+    template<Operator Op> bool compare( unsigned int lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned long lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+    template<Operator Op> bool compare( unsigned char lhs, long rhs ) {
+        return applyEvaluator<Op>( lhs, static_cast<unsigned long>( rhs ) );
+    }
+
+    // int to unsigned X
+    template<Operator Op> bool compare( int lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( int lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned int>( lhs ), rhs );
+    }
+
+    // long to unsigned X
+    template<Operator Op> bool compare( long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // pointer to long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+    // pointer to int (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( int lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, int rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+    // long long to unsigned X
+    template<Operator Op> bool compare( long long lhs, unsigned int rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned long long rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( long long lhs, unsigned char rhs ) {
+        return applyEvaluator<Op>( static_cast<unsigned long>( lhs ), rhs );
+    }
+
+    // unsigned long long to X
+    template<Operator Op> bool compare( unsigned long long lhs, int rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, long long rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+    template<Operator Op> bool compare( unsigned long long lhs, char rhs ) {
+        return applyEvaluator<Op>( static_cast<long>( lhs ), rhs );
+    }
+
+    // pointer to long long (when comparing against NULL)
+    template<Operator Op, typename T> bool compare( long long lhs, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( reinterpret_cast<T*>( lhs ), rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, long long rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, reinterpret_cast<T*>( rhs ) );
+    }
+#endif // CATCH_CONFIG_CPP11_LONG_LONG
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+    // pointer to nullptr_t (when comparing against nullptr)
+    template<Operator Op, typename T> bool compare( std::nullptr_t, T* rhs ) {
+        return Evaluator<T*, T*, Op>::evaluate( nullptr, rhs );
+    }
+    template<Operator Op, typename T> bool compare( T* lhs, std::nullptr_t ) {
+        return Evaluator<T*, T*, Op>::evaluate( lhs, nullptr );
+    }
+#endif // CATCH_CONFIG_CPP11_NULLPTR
+
+} // end of namespace Internal
+} // end of namespace Catch
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+// #included from: catch_tostring.h
+#define TWOBLUECUBES_CATCH_TOSTRING_H_INCLUDED
+
+#include <sstream>
+#include <iomanip>
+#include <limits>
+#include <vector>
+#include <cstddef>
+
+#ifdef __OBJC__
+// #included from: catch_objc_arc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_ARC_HPP_INCLUDED
+
+#import <Foundation/Foundation.h>
+
+#ifdef __has_feature
+#define CATCH_ARC_ENABLED __has_feature(objc_arc)
+#else
+#define CATCH_ARC_ENABLED 0
+#endif
+
+void arcSafeRelease( NSObject* obj );
+id performOptionalSelector( id obj, SEL sel );
+
+#if !CATCH_ARC_ENABLED
+inline void arcSafeRelease( NSObject* obj ) {
+    [obj release];
+}
+inline id performOptionalSelector( id obj, SEL sel ) {
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED
+#define CATCH_ARC_STRONG
+#else
+inline void arcSafeRelease( NSObject* ){}
+inline id performOptionalSelector( id obj, SEL sel ) {
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
+#endif
+    if( [obj respondsToSelector: sel] )
+        return [obj performSelector: sel];
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+    return nil;
+}
+#define CATCH_UNSAFE_UNRETAINED __unsafe_unretained
+#define CATCH_ARC_STRONG __strong
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+#include <tuple>
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_IS_ENUM
+#include <type_traits>
+#endif
+
+namespace Catch {
+
+// Why we're here.
+template<typename T>
+std::string toString( T const& value );
+
+// Built in overloads
+
+std::string toString( std::string const& value );
+std::string toString( std::wstring const& value );
+std::string toString( const char* const value );
+std::string toString( char* const value );
+std::string toString( const wchar_t* const value );
+std::string toString( wchar_t* const value );
+std::string toString( int value );
+std::string toString( unsigned long value );
+std::string toString( unsigned int value );
+std::string toString( const double value );
+std::string toString( const float value );
+std::string toString( bool value );
+std::string toString( char value );
+std::string toString( signed char value );
+std::string toString( unsigned char value );
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value );
+std::string toString( unsigned long long value );
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t );
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring );
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring );
+    std::string toString( NSObject* const& nsObject );
+#endif
+
+namespace Detail {
+
+    extern const std::string unprintableString;
+
+    struct BorgType {
+        template<typename T> BorgType( T const& );
+    };
+
+    struct TrueType { char sizer[1]; };
+    struct FalseType { char sizer[2]; };
+
+    TrueType& testStreamable( std::ostream& );
+    FalseType testStreamable( FalseType );
+
+    FalseType operator<<( std::ostream const&, BorgType const& );
+
+    template<typename T>
+    struct IsStreamInsertable {
+        static std::ostream &s;
+        static T  const&t;
+        enum { value = sizeof( testStreamable(s << t) ) == sizeof( TrueType ) };
+    };
+
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+    template<typename T,
+             bool IsEnum = std::is_enum<T>::value
+             >
+    struct EnumStringMaker
+    {
+        static std::string convert( T const& ) { return unprintableString; }
+    };
+
+    template<typename T>
+    struct EnumStringMaker<T,true>
+    {
+        static std::string convert( T const& v )
+        {
+            return ::Catch::toString(
+                static_cast<typename std::underlying_type<T>::type>(v)
+                );
+        }
+    };
+#endif
+    template<bool C>
+    struct StringMakerBase {
+#if defined(CATCH_CONFIG_CPP11_IS_ENUM)
+        template<typename T>
+        static std::string convert( T const& v )
+        {
+            return EnumStringMaker<T>::convert( v );
+        }
+#else
+        template<typename T>
+        static std::string convert( T const& ) { return unprintableString; }
+#endif
+    };
+
+    template<>
+    struct StringMakerBase<true> {
+        template<typename T>
+        static std::string convert( T const& _value ) {
+            std::ostringstream oss;
+            oss << _value;
+            return oss.str();
+        }
+    };
+
+    std::string rawMemoryToString( const void *object, std::size_t size );
+
+    template<typename T>
+    inline std::string rawMemoryToString( const T& object ) {
+      return rawMemoryToString( &object, sizeof(object) );
+    }
+
+} // end namespace Detail
+
+template<typename T>
+struct StringMaker :
+    Detail::StringMakerBase<Detail::IsStreamInsertable<T>::value> {};
+
+template<typename T>
+struct StringMaker<T*> {
+    template<typename U>
+    static std::string convert( U* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+template<typename R, typename C>
+struct StringMaker<R C::*> {
+    static std::string convert( R C::* p ) {
+        if( !p )
+            return "NULL";
+        else
+            return Detail::rawMemoryToString( p );
+    }
+};
+
+namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last );
+}
+
+//template<typename T, typename Allocator>
+//struct StringMaker<std::vector<T, Allocator> > {
+//    static std::string convert( std::vector<T,Allocator> const& v ) {
+//        return Detail::rangeToString( v.begin(), v.end() );
+//    }
+//};
+
+template<typename T, typename Allocator>
+std::string toString( std::vector<T,Allocator> const& v ) {
+    return Detail::rangeToString( v.begin(), v.end() );
+}
+
+#ifdef CATCH_CONFIG_CPP11_TUPLE
+
+// toString for tuples
+namespace TupleDetail {
+  template<
+      typename Tuple,
+      std::size_t N = 0,
+      bool = (N < std::tuple_size<Tuple>::value)
+      >
+  struct ElementPrinter {
+      static void print( const Tuple& tuple, std::ostream& os )
+      {
+          os << ( N ? ", " : " " )
+             << Catch::toString(std::get<N>(tuple));
+          ElementPrinter<Tuple,N+1>::print(tuple,os);
+      }
+  };
+
+  template<
+      typename Tuple,
+      std::size_t N
+      >
+  struct ElementPrinter<Tuple,N,false> {
+      static void print( const Tuple&, std::ostream& ) {}
+  };
+
+}
+
+template<typename ...Types>
+struct StringMaker<std::tuple<Types...>> {
+
+    static std::string convert( const std::tuple<Types...>& tuple )
+    {
+        std::ostringstream os;
+        os << '{';
+        TupleDetail::ElementPrinter<std::tuple<Types...>>::print( tuple, os );
+        os << " }";
+        return os.str();
+    }
+};
+#endif // CATCH_CONFIG_CPP11_TUPLE
+
+namespace Detail {
+    template<typename T>
+    std::string makeString( T const& value ) {
+        return StringMaker<T>::convert( value );
+    }
+} // end namespace Detail
+
+/// \brief converts any type to a string
+///
+/// The default template forwards on to ostringstream - except when an
+/// ostringstream overload does not exist - in which case it attempts to detect
+/// that and writes {?}.
+/// Overload (not specialise) this template for custom typs that you don't want
+/// to provide an ostream overload for.
+template<typename T>
+std::string toString( T const& value ) {
+    return StringMaker<T>::convert( value );
+}
+
+    namespace Detail {
+    template<typename InputIterator>
+    std::string rangeToString( InputIterator first, InputIterator last ) {
+        std::ostringstream oss;
+        oss << "{ ";
+        if( first != last ) {
+            oss << Catch::toString( *first );
+            for( ++first ; first != last ; ++first )
+                oss << ", " << Catch::toString( *first );
+        }
+        oss << " }";
+        return oss.str();
+    }
+}
+
+} // end namespace Catch
+
+namespace Catch {
+
+// Wraps the LHS of an expression and captures the operator and RHS (if any) -
+// wrapping them all in a ResultBuilder object
+template<typename T>
+class ExpressionLhs {
+    ExpressionLhs& operator = ( ExpressionLhs const& );
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+    ExpressionLhs& operator = ( ExpressionLhs && ) = delete;
+#  endif
+
+public:
+    ExpressionLhs( ResultBuilder& rb, T lhs ) : m_rb( rb ), m_lhs( lhs ) {}
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+    ExpressionLhs( ExpressionLhs const& ) = default;
+    ExpressionLhs( ExpressionLhs && )     = default;
+#  endif
+
+    template<typename RhsT>
+    ResultBuilder& operator == ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator != ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator < ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThan>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator > ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThan>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator <= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsLessThanOrEqualTo>( rhs );
+    }
+
+    template<typename RhsT>
+    ResultBuilder& operator >= ( RhsT const& rhs ) {
+        return captureExpression<Internal::IsGreaterThanOrEqualTo>( rhs );
+    }
+
+    ResultBuilder& operator == ( bool rhs ) {
+        return captureExpression<Internal::IsEqualTo>( rhs );
+    }
+
+    ResultBuilder& operator != ( bool rhs ) {
+        return captureExpression<Internal::IsNotEqualTo>( rhs );
+    }
+
+    void endExpression() {
+        bool value = m_lhs ? true : false;
+        m_rb
+            .setLhs( Catch::toString( value ) )
+            .setResultType( value )
+            .endExpression();
+    }
+
+    // Only simple binary expressions are allowed on the LHS.
+    // If more complex compositions are required then place the sub expression in parentheses
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator + ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator - ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator / ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator * ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator && ( RhsT const& );
+    template<typename RhsT> STATIC_ASSERT_Expression_Too_Complex_Please_Rewrite_As_Binary_Comparison& operator || ( RhsT const& );
+
+private:
+    template<Internal::Operator Op, typename RhsT>
+    ResultBuilder& captureExpression( RhsT const& rhs ) {
+        return m_rb
+            .setResultType( Internal::compare<Op>( m_lhs, rhs ) )
+            .setLhs( Catch::toString( m_lhs ) )
+            .setRhs( Catch::toString( rhs ) )
+            .setOp( Internal::OperatorTraits<Op>::getName() );
+    }
+
+private:
+    ResultBuilder& m_rb;
+    T m_lhs;
+};
+
+} // end namespace Catch
+
+
+namespace Catch {
+
+    template<typename T>
+    inline ExpressionLhs<T const&> ResultBuilder::operator <= ( T const& operand ) {
+        return ExpressionLhs<T const&>( *this, operand );
+    }
+
+    inline ExpressionLhs<bool> ResultBuilder::operator <= ( bool value ) {
+        return ExpressionLhs<bool>( *this, value );
+    }
+
+} // namespace Catch
+
+// #included from: catch_message.h
+#define TWOBLUECUBES_CATCH_MESSAGE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct MessageInfo {
+        MessageInfo(    std::string const& _macroName,
+                        SourceLineInfo const& _lineInfo,
+                        ResultWas::OfType _type );
+
+        std::string macroName;
+        SourceLineInfo lineInfo;
+        ResultWas::OfType type;
+        std::string message;
+        unsigned int sequence;
+
+        bool operator == ( MessageInfo const& other ) const {
+            return sequence == other.sequence;
+        }
+        bool operator < ( MessageInfo const& other ) const {
+            return sequence < other.sequence;
+        }
+    private:
+        static unsigned int globalCount;
+    };
+
+    struct MessageBuilder {
+        MessageBuilder( std::string const& macroName,
+                        SourceLineInfo const& lineInfo,
+                        ResultWas::OfType type )
+        : m_info( macroName, lineInfo, type )
+        {}
+
+        template<typename T>
+        MessageBuilder& operator << ( T const& value ) {
+            m_stream << value;
+            return *this;
+        }
+
+        MessageInfo m_info;
+        std::ostringstream m_stream;
+    };
+
+    class ScopedMessage {
+    public:
+        ScopedMessage( MessageBuilder const& builder );
+        ScopedMessage( ScopedMessage const& other );
+        ~ScopedMessage();
+
+        MessageInfo m_info;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_capture.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CAPTURE_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    class AssertionResult;
+    struct AssertionInfo;
+    struct SectionInfo;
+    struct SectionEndInfo;
+    struct MessageInfo;
+    class ScopedMessageBuilder;
+    struct Counts;
+
+    struct IResultCapture {
+
+        virtual ~IResultCapture();
+
+        virtual void assertionEnded( AssertionResult const& result ) = 0;
+        virtual bool sectionStarted(    SectionInfo const& sectionInfo,
+                                        Counts& assertions ) = 0;
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) = 0;
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) = 0;
+        virtual void pushScopedMessage( MessageInfo const& message ) = 0;
+        virtual void popScopedMessage( MessageInfo const& message ) = 0;
+
+        virtual std::string getCurrentTestName() const = 0;
+        virtual const AssertionResult* getLastResult() const = 0;
+
+        virtual void handleFatalErrorCondition( std::string const& message ) = 0;
+    };
+
+    IResultCapture& getResultCapture();
+}
+
+// #included from: catch_debugger.h
+#define TWOBLUECUBES_CATCH_DEBUGGER_H_INCLUDED
+
+// #included from: catch_platform.h
+#define TWOBLUECUBES_CATCH_PLATFORM_H_INCLUDED
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+#define CATCH_PLATFORM_MAC
+#elif  defined(__IPHONE_OS_VERSION_MIN_REQUIRED)
+#define CATCH_PLATFORM_IPHONE
+#elif defined(WIN32) || defined(__WIN32__) || defined(_WIN32) || defined(_MSC_VER)
+#define CATCH_PLATFORM_WINDOWS
+#endif
+
+#include <string>
+
+namespace Catch{
+
+    bool isDebuggerActive();
+    void writeToDebugConsole( std::string const& text );
+}
+
+#ifdef CATCH_PLATFORM_MAC
+
+    // The following code snippet based on:
+    // http://cocoawithlove.com/2008/03/break-into-debugger.html
+    #ifdef DEBUG
+        #if defined(__ppc64__) || defined(__ppc__)
+            #define CATCH_BREAK_INTO_DEBUGGER() \
+                if( Catch::isDebuggerActive() ) { \
+                    __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
+                    : : : "memory","r0","r3","r4" ); \
+                }
+        #else
+            #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) {__asm__("int $3\n" : : );}
+        #endif
+    #endif
+
+#elif defined(_MSC_VER)
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { __debugbreak(); }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) void __stdcall DebugBreak();
+    #define CATCH_BREAK_INTO_DEBUGGER() if( Catch::isDebuggerActive() ) { DebugBreak(); }
+#endif
+
+#ifndef CATCH_BREAK_INTO_DEBUGGER
+#define CATCH_BREAK_INTO_DEBUGGER() Catch::alwaysTrue();
+#endif
+
+// #included from: catch_interfaces_runner.h
+#define TWOBLUECUBES_CATCH_INTERFACES_RUNNER_H_INCLUDED
+
+namespace Catch {
+    class TestCase;
+
+    struct IRunner {
+        virtual ~IRunner();
+        virtual bool aborting() const = 0;
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// In the event of a failure works out if the debugger needs to be invoked
+// and/or an exception thrown and takes appropriate action.
+// This needs to be done as a macro so the debugger will stop in the user
+// source code rather than in Catch library code
+#define INTERNAL_CATCH_REACT( resultBuilder ) \
+    if( resultBuilder.shouldDebugBreak() ) CATCH_BREAK_INTO_DEBUGGER(); \
+    resultBuilder.react();
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            ( __catchResult <= expr ).endExpression(); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( Catch::ResultDisposition::Normal ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::isTrue( false && static_cast<bool>(expr) ) ) // expr here is never evaluated at runtime but it forces the compiler to give it a look
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_IF( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_ELSE( expr, resultDisposition, macroName ) \
+    INTERNAL_CATCH_TEST( expr, resultDisposition, macroName ); \
+    if( !Catch::getResultCapture().getLastResult()->succeeded() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_NO_THROW( expr, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        try { \
+            expr; \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        } \
+        catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS( expr, resultDisposition, matcher, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition, #matcher ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                expr; \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( ... ) { \
+                __catchResult.captureExpectedException( matcher ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_THROWS_AS( expr, exceptionType, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #expr, resultDisposition ); \
+        if( __catchResult.allowThrows() ) \
+            try { \
+                expr; \
+                __catchResult.captureResult( Catch::ResultWas::DidntThrowException ); \
+            } \
+            catch( exceptionType ) { \
+                __catchResult.captureResult( Catch::ResultWas::Ok ); \
+            } \
+            catch( ... ) { \
+                __catchResult.useActiveException( resultDisposition ); \
+            } \
+        else \
+            __catchResult.captureResult( Catch::ResultWas::Ok ); \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+///////////////////////////////////////////////////////////////////////////////
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, ... ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << __VA_ARGS__ + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#else
+    #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \
+        do { \
+            Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, "", resultDisposition ); \
+            __catchResult << log + ::Catch::StreamEndStop(); \
+            __catchResult.captureResult( messageType ); \
+            INTERNAL_CATCH_REACT( __catchResult ) \
+        } while( Catch::alwaysFalse() )
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_INFO( log, macroName ) \
+    Catch::ScopedMessage INTERNAL_CATCH_UNIQUE_NAME( scopedMessage ) = Catch::MessageBuilder( macroName, CATCH_INTERNAL_LINEINFO, Catch::ResultWas::Info ) << log;
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CHECK_THAT( arg, matcher, resultDisposition, macroName ) \
+    do { \
+        Catch::ResultBuilder __catchResult( macroName, CATCH_INTERNAL_LINEINFO, #arg ", " #matcher, resultDisposition ); \
+        try { \
+            std::string matcherAsString = (matcher).toString(); \
+            __catchResult \
+                .setLhs( Catch::toString( arg ) ) \
+                .setRhs( matcherAsString == Catch::Detail::unprintableString ? #matcher : matcherAsString ) \
+                .setOp( "matches" ) \
+                .setResultType( (matcher).match( arg ) ); \
+            __catchResult.captureExpression(); \
+        } catch( ... ) { \
+            __catchResult.useActiveException( resultDisposition | Catch::ResultDisposition::ContinueOnFailure ); \
+        } \
+        INTERNAL_CATCH_REACT( __catchResult ) \
+    } while( Catch::alwaysFalse() )
+
+// #included from: internal/catch_section.h
+#define TWOBLUECUBES_CATCH_SECTION_H_INCLUDED
+
+// #included from: catch_section_info.h
+#define TWOBLUECUBES_CATCH_SECTION_INFO_H_INCLUDED
+
+// #included from: catch_totals.hpp
+#define TWOBLUECUBES_CATCH_TOTALS_HPP_INCLUDED
+
+#include <cstddef>
+
+namespace Catch {
+
+    struct Counts {
+        Counts() : passed( 0 ), failed( 0 ), failedButOk( 0 ) {}
+
+        Counts operator - ( Counts const& other ) const {
+            Counts diff;
+            diff.passed = passed - other.passed;
+            diff.failed = failed - other.failed;
+            diff.failedButOk = failedButOk - other.failedButOk;
+            return diff;
+        }
+        Counts& operator += ( Counts const& other ) {
+            passed += other.passed;
+            failed += other.failed;
+            failedButOk += other.failedButOk;
+            return *this;
+        }
+
+        std::size_t total() const {
+            return passed + failed + failedButOk;
+        }
+        bool allPassed() const {
+            return failed == 0 && failedButOk == 0;
+        }
+        bool allOk() const {
+            return failed == 0;
+        }
+
+        std::size_t passed;
+        std::size_t failed;
+        std::size_t failedButOk;
+    };
+
+    struct Totals {
+
+        Totals operator - ( Totals const& other ) const {
+            Totals diff;
+            diff.assertions = assertions - other.assertions;
+            diff.testCases = testCases - other.testCases;
+            return diff;
+        }
+
+        Totals delta( Totals const& prevTotals ) const {
+            Totals diff = *this - prevTotals;
+            if( diff.assertions.failed > 0 )
+                ++diff.testCases.failed;
+            else if( diff.assertions.failedButOk > 0 )
+                ++diff.testCases.failedButOk;
+            else
+                ++diff.testCases.passed;
+            return diff;
+        }
+
+        Totals& operator += ( Totals const& other ) {
+            assertions += other.assertions;
+            testCases += other.testCases;
+            return *this;
+        }
+
+        Counts assertions;
+        Counts testCases;
+    };
+}
+
+namespace Catch {
+
+    struct SectionInfo {
+        SectionInfo
+            (   SourceLineInfo const& _lineInfo,
+                std::string const& _name,
+                std::string const& _description = std::string() );
+
+        std::string name;
+        std::string description;
+        SourceLineInfo lineInfo;
+    };
+
+    struct SectionEndInfo {
+        SectionEndInfo( SectionInfo const& _sectionInfo, Counts const& _prevAssertions, double _durationInSeconds )
+        : sectionInfo( _sectionInfo ), prevAssertions( _prevAssertions ), durationInSeconds( _durationInSeconds )
+        {}
+
+        SectionInfo sectionInfo;
+        Counts prevAssertions;
+        double durationInSeconds;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_timer.h
+#define TWOBLUECUBES_CATCH_TIMER_H_INCLUDED
+
+#ifdef CATCH_PLATFORM_WINDOWS
+typedef unsigned long long uint64_t;
+#else
+#include <stdint.h>
+#endif
+
+namespace Catch {
+
+    class Timer {
+    public:
+        Timer() : m_ticks( 0 ) {}
+        void start();
+        unsigned int getElapsedMicroseconds() const;
+        unsigned int getElapsedMilliseconds() const;
+        double getElapsedSeconds() const;
+
+    private:
+        uint64_t m_ticks;
+    };
+
+} // namespace Catch
+
+#include <string>
+
+namespace Catch {
+
+    class Section : NonCopyable {
+    public:
+        Section( SectionInfo const& info );
+        ~Section();
+
+        // This indicates whether the section should be executed or not
+        operator bool() const;
+
+    private:
+        SectionInfo m_info;
+
+        std::string m_name;
+        Counts m_assertions;
+        bool m_sectionIncluded;
+        Timer m_timer;
+    };
+
+} // end namespace Catch
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define INTERNAL_CATCH_SECTION( ... ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, __VA_ARGS__ ) )
+#else
+    #define INTERNAL_CATCH_SECTION( name, desc ) \
+        if( Catch::Section const& INTERNAL_CATCH_UNIQUE_NAME( catch_internal_Section ) = Catch::SectionInfo( CATCH_INTERNAL_LINEINFO, name, desc ) )
+#endif
+
+// #included from: internal/catch_generators.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_HPP_INCLUDED
+
+#include <iterator>
+#include <vector>
+#include <string>
+#include <stdlib.h>
+
+namespace Catch {
+
+template<typename T>
+struct IGenerator {
+    virtual ~IGenerator() {}
+    virtual T getValue( std::size_t index ) const = 0;
+    virtual std::size_t size () const = 0;
+};
+
+template<typename T>
+class BetweenGenerator : public IGenerator<T> {
+public:
+    BetweenGenerator( T from, T to ) : m_from( from ), m_to( to ){}
+
+    virtual T getValue( std::size_t index ) const {
+        return m_from+static_cast<int>( index );
+    }
+
+    virtual std::size_t size() const {
+        return static_cast<std::size_t>( 1+m_to-m_from );
+    }
+
+private:
+
+    T m_from;
+    T m_to;
+};
+
+template<typename T>
+class ValuesGenerator : public IGenerator<T> {
+public:
+    ValuesGenerator(){}
+
+    void add( T value ) {
+        m_values.push_back( value );
+    }
+
+    virtual T getValue( std::size_t index ) const {
+        return m_values[index];
+    }
+
+    virtual std::size_t size() const {
+        return m_values.size();
+    }
+
+private:
+    std::vector<T> m_values;
+};
+
+template<typename T>
+class CompositeGenerator {
+public:
+    CompositeGenerator() : m_totalSize( 0 ) {}
+
+    // *** Move semantics, similar to auto_ptr ***
+    CompositeGenerator( CompositeGenerator& other )
+    :   m_fileInfo( other.m_fileInfo ),
+        m_totalSize( 0 )
+    {
+        move( other );
+    }
+
+    CompositeGenerator& setFileInfo( const char* fileInfo ) {
+        m_fileInfo = fileInfo;
+        return *this;
+    }
+
+    ~CompositeGenerator() {
+        deleteAll( m_composed );
+    }
+
+    operator T () const {
+        size_t overallIndex = getCurrentContext().getGeneratorIndex( m_fileInfo, m_totalSize );
+
+        typename std::vector<const IGenerator<T>*>::const_iterator it = m_composed.begin();
+        typename std::vector<const IGenerator<T>*>::const_iterator itEnd = m_composed.end();
+        for( size_t index = 0; it != itEnd; ++it )
+        {
+            const IGenerator<T>* generator = *it;
+            if( overallIndex >= index && overallIndex < index + generator->size() )
+            {
+                return generator->getValue( overallIndex-index );
+            }
+            index += generator->size();
+        }
+        CATCH_INTERNAL_ERROR( "Indexed past end of generated range" );
+        return T(); // Suppress spurious "not all control paths return a value" warning in Visual Studio - if you know how to fix this please do so
+    }
+
+    void add( const IGenerator<T>* generator ) {
+        m_totalSize += generator->size();
+        m_composed.push_back( generator );
+    }
+
+    CompositeGenerator& then( CompositeGenerator& other ) {
+        move( other );
+        return *this;
+    }
+
+    CompositeGenerator& then( T value ) {
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( value );
+        add( valuesGen );
+        return *this;
+    }
+
+private:
+
+    void move( CompositeGenerator& other ) {
+        std::copy( other.m_composed.begin(), other.m_composed.end(), std::back_inserter( m_composed ) );
+        m_totalSize += other.m_totalSize;
+        other.m_composed.clear();
+    }
+
+    std::vector<const IGenerator<T>*> m_composed;
+    std::string m_fileInfo;
+    size_t m_totalSize;
+};
+
+namespace Generators
+{
+    template<typename T>
+    CompositeGenerator<T> between( T from, T to ) {
+        CompositeGenerator<T> generators;
+        generators.add( new BetweenGenerator<T>( from, to ) );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3 ){
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+    template<typename T>
+    CompositeGenerator<T> values( T val1, T val2, T val3, T val4 ) {
+        CompositeGenerator<T> generators;
+        ValuesGenerator<T>* valuesGen = new ValuesGenerator<T>();
+        valuesGen->add( val1 );
+        valuesGen->add( val2 );
+        valuesGen->add( val3 );
+        valuesGen->add( val4 );
+        generators.add( valuesGen );
+        return generators;
+    }
+
+} // end namespace Generators
+
+using namespace Generators;
+
+} // end namespace Catch
+
+#define INTERNAL_CATCH_LINESTR2( line ) #line
+#define INTERNAL_CATCH_LINESTR( line ) INTERNAL_CATCH_LINESTR2( line )
+
+#define INTERNAL_CATCH_GENERATE( expr ) expr.setFileInfo( __FILE__ "(" INTERNAL_CATCH_LINESTR( __LINE__ ) ")" )
+
+// #included from: internal/catch_interfaces_exception.h
+#define TWOBLUECUBES_CATCH_INTERFACES_EXCEPTION_H_INCLUDED
+
+#include <string>
+#include <vector>
+
+// #included from: catch_interfaces_registry_hub.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REGISTRY_HUB_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    class TestCase;
+    struct ITestCaseRegistry;
+    struct IExceptionTranslatorRegistry;
+    struct IExceptionTranslator;
+    struct IReporterRegistry;
+    struct IReporterFactory;
+
+    struct IRegistryHub {
+        virtual ~IRegistryHub();
+
+        virtual IReporterRegistry const& getReporterRegistry() const = 0;
+        virtual ITestCaseRegistry const& getTestCaseRegistry() const = 0;
+        virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() = 0;
+    };
+
+    struct IMutableRegistryHub {
+        virtual ~IMutableRegistryHub();
+        virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerListener( Ptr<IReporterFactory> const& factory ) = 0;
+        virtual void registerTest( TestCase const& testInfo ) = 0;
+        virtual void registerTranslator( const IExceptionTranslator* translator ) = 0;
+    };
+
+    IRegistryHub& getRegistryHub();
+    IMutableRegistryHub& getMutableRegistryHub();
+    void cleanUp();
+    std::string translateActiveException();
+
+}
+
+namespace Catch {
+
+    typedef std::string(*exceptionTranslateFunction)();
+
+    struct IExceptionTranslator;
+    typedef std::vector<const IExceptionTranslator*> ExceptionTranslators;
+
+    struct IExceptionTranslator {
+        virtual ~IExceptionTranslator();
+        virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const = 0;
+    };
+
+    struct IExceptionTranslatorRegistry {
+        virtual ~IExceptionTranslatorRegistry();
+
+        virtual std::string translateActiveException() const = 0;
+    };
+
+    class ExceptionTranslatorRegistrar {
+        template<typename T>
+        class ExceptionTranslator : public IExceptionTranslator {
+        public:
+
+            ExceptionTranslator( std::string(*translateFunction)( T& ) )
+            : m_translateFunction( translateFunction )
+            {}
+
+            virtual std::string translate( ExceptionTranslators::const_iterator it, ExceptionTranslators::const_iterator itEnd ) const CATCH_OVERRIDE {
+                try {
+                    if( it == itEnd )
+                        throw;
+                    else
+                        return (*it)->translate( it+1, itEnd );
+                }
+                catch( T& ex ) {
+                    return m_translateFunction( ex );
+                }
+            }
+
+        protected:
+            std::string(*m_translateFunction)( T& );
+        };
+
+    public:
+        template<typename T>
+        ExceptionTranslatorRegistrar( std::string(*translateFunction)( T& ) ) {
+            getMutableRegistryHub().registerTranslator
+                ( new ExceptionTranslator<T>( translateFunction ) );
+        }
+    };
+}
+
+///////////////////////////////////////////////////////////////////////////////
+#define INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature ) \
+    static std::string INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator )( signature ); \
+    namespace{ Catch::ExceptionTranslatorRegistrar INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionRegistrar )( &INTERNAL_CATCH_UNIQUE_NAME( catch_internal_ExceptionTranslator ) ); }\
+    static std::string INTERNAL_CATCH_UNIQUE_NAME(  catch_internal_ExceptionTranslator )( signature )
+
+// #included from: internal/catch_approx.hpp
+#define TWOBLUECUBES_CATCH_APPROX_HPP_INCLUDED
+
+#include <cmath>
+#include <limits>
+
+namespace Catch {
+namespace Detail {
+
+    class Approx {
+    public:
+        explicit Approx ( double value )
+        :   m_epsilon( std::numeric_limits<float>::epsilon()*100 ),
+            m_scale( 1.0 ),
+            m_value( value )
+        {}
+
+        Approx( Approx const& other )
+        :   m_epsilon( other.m_epsilon ),
+            m_scale( other.m_scale ),
+            m_value( other.m_value )
+        {}
+
+        static Approx custom() {
+            return Approx( 0 );
+        }
+
+        Approx operator()( double value ) {
+            Approx approx( value );
+            approx.epsilon( m_epsilon );
+            approx.scale( m_scale );
+            return approx;
+        }
+
+        friend bool operator == ( double lhs, Approx const& rhs ) {
+            // Thanks to Richard Harris for his help refining this formula
+            return fabs( lhs - rhs.m_value ) < rhs.m_epsilon * (rhs.m_scale + (std::max)( fabs(lhs), fabs(rhs.m_value) ) );
+        }
+
+        friend bool operator == ( Approx const& lhs, double rhs ) {
+            return operator==( rhs, lhs );
+        }
+
+        friend bool operator != ( double lhs, Approx const& rhs ) {
+            return !operator==( lhs, rhs );
+        }
+
+        friend bool operator != ( Approx const& lhs, double rhs ) {
+            return !operator==( rhs, lhs );
+        }
+
+        Approx& epsilon( double newEpsilon ) {
+            m_epsilon = newEpsilon;
+            return *this;
+        }
+
+        Approx& scale( double newScale ) {
+            m_scale = newScale;
+            return *this;
+        }
+
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << "Approx( " << Catch::toString( m_value ) << " )";
+            return oss.str();
+        }
+
+    private:
+        double m_epsilon;
+        double m_scale;
+        double m_value;
+    };
+}
+
+template<>
+inline std::string toString<Detail::Approx>( Detail::Approx const& value ) {
+    return value.toString();
+}
+
+} // end namespace Catch
+
+// #included from: internal/catch_interfaces_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_INTERFACES_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+// #included from: catch_tag_alias.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_H_INCLUDED
+
+#include <string>
+
+namespace Catch {
+
+    struct TagAlias {
+        TagAlias( std::string _tag, SourceLineInfo _lineInfo ) : tag( _tag ), lineInfo( _lineInfo ) {}
+
+        std::string tag;
+        SourceLineInfo lineInfo;
+    };
+
+    struct RegistrarForTagAliases {
+        RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+    };
+
+} // end namespace Catch
+
+#define CATCH_REGISTER_TAG_ALIAS( alias, spec ) namespace{ Catch::RegistrarForTagAliases INTERNAL_CATCH_UNIQUE_NAME( AutoRegisterTagAlias )( alias, spec, CATCH_INTERNAL_LINEINFO ); }
+// #included from: catch_option.hpp
+#define TWOBLUECUBES_CATCH_OPTION_HPP_INCLUDED
+
+namespace Catch {
+
+    // An optional type
+    template<typename T>
+    class Option {
+    public:
+        Option() : nullableValue( CATCH_NULL ) {}
+        Option( T const& _value )
+        : nullableValue( new( storage ) T( _value ) )
+        {}
+        Option( Option const& _other )
+        : nullableValue( _other ? new( storage ) T( *_other ) : CATCH_NULL )
+        {}
+
+        ~Option() {
+            reset();
+        }
+
+        Option& operator= ( Option const& _other ) {
+            if( &_other != this ) {
+                reset();
+                if( _other )
+                    nullableValue = new( storage ) T( *_other );
+            }
+            return *this;
+        }
+        Option& operator = ( T const& _value ) {
+            reset();
+            nullableValue = new( storage ) T( _value );
+            return *this;
+        }
+
+        void reset() {
+            if( nullableValue )
+                nullableValue->~T();
+            nullableValue = CATCH_NULL;
+        }
+
+        T& operator*() { return *nullableValue; }
+        T const& operator*() const { return *nullableValue; }
+        T* operator->() { return nullableValue; }
+        const T* operator->() const { return nullableValue; }
+
+        T valueOr( T const& defaultValue ) const {
+            return nullableValue ? *nullableValue : defaultValue;
+        }
+
+        bool some() const { return nullableValue != CATCH_NULL; }
+        bool none() const { return nullableValue == CATCH_NULL; }
+
+        bool operator !() const { return nullableValue == CATCH_NULL; }
+        operator SafeBool::type() const {
+            return SafeBool::makeSafe( some() );
+        }
+
+    private:
+        T* nullableValue;
+        char storage[sizeof(T)];
+    };
+
+} // end namespace Catch
+
+namespace Catch {
+
+    struct ITagAliasRegistry {
+        virtual ~ITagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const = 0;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const = 0;
+
+        static ITagAliasRegistry const& get();
+    };
+
+} // end namespace Catch
+
+// These files are included here so the single_include script doesn't put them
+// in the conditionally compiled sections
+// #included from: internal/catch_test_case_info.h
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_H_INCLUDED
+
+#include <string>
+#include <set>
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+namespace Catch {
+
+    struct ITestCase;
+
+    struct TestCaseInfo {
+        enum SpecialProperties{
+            None = 0,
+            IsHidden = 1 << 1,
+            ShouldFail = 1 << 2,
+            MayFail = 1 << 3,
+            Throws = 1 << 4
+        };
+
+        TestCaseInfo(   std::string const& _name,
+                        std::string const& _className,
+                        std::string const& _description,
+                        std::set<std::string> const& _tags,
+                        SourceLineInfo const& _lineInfo );
+
+        TestCaseInfo( TestCaseInfo const& other );
+
+        friend void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags );
+
+        bool isHidden() const;
+        bool throws() const;
+        bool okToFail() const;
+        bool expectedToFail() const;
+
+        std::string name;
+        std::string className;
+        std::string description;
+        std::set<std::string> tags;
+        std::set<std::string> lcaseTags;
+        std::string tagsAsString;
+        SourceLineInfo lineInfo;
+        SpecialProperties properties;
+    };
+
+    class TestCase : public TestCaseInfo {
+    public:
+
+        TestCase( ITestCase* testCase, TestCaseInfo const& info );
+        TestCase( TestCase const& other );
+
+        TestCase withName( std::string const& _newName ) const;
+
+        void invoke() const;
+
+        TestCaseInfo const& getTestCaseInfo() const;
+
+        void swap( TestCase& other );
+        bool operator == ( TestCase const& other ) const;
+        bool operator < ( TestCase const& other ) const;
+        TestCase& operator = ( TestCase const& other );
+
+    private:
+        Ptr<ITestCase> test;
+    };
+
+    TestCase makeTestCase(  ITestCase* testCase,
+                            std::string const& className,
+                            std::string const& name,
+                            std::string const& description,
+                            SourceLineInfo const& lineInfo );
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+
+#ifdef __OBJC__
+// #included from: internal/catch_objc.hpp
+#define TWOBLUECUBES_CATCH_OBJC_HPP_INCLUDED
+
+#import <objc/runtime.h>
+
+#include <string>
+
+// NB. Any general catch headers included here must be included
+// in catch.hpp first to make sure they are included by the single
+// header for non obj-usage
+
+///////////////////////////////////////////////////////////////////////////////
+// This protocol is really only here for (self) documenting purposes, since
+// all its methods are optional.
+@protocol OcFixture
+
+@optional
+
+-(void) setUp;
+-(void) tearDown;
+
+@end
+
+namespace Catch {
+
+    class OcMethod : public SharedImpl<ITestCase> {
+
+    public:
+        OcMethod( Class cls, SEL sel ) : m_cls( cls ), m_sel( sel ) {}
+
+        virtual void invoke() const {
+            id obj = [[m_cls alloc] init];
+
+            performOptionalSelector( obj, @selector(setUp)  );
+            performOptionalSelector( obj, m_sel );
+            performOptionalSelector( obj, @selector(tearDown)  );
+
+            arcSafeRelease( obj );
+        }
+    private:
+        virtual ~OcMethod() {}
+
+        Class m_cls;
+        SEL m_sel;
+    };
+
+    namespace Detail{
+
+        inline std::string getAnnotation(   Class cls,
+                                            std::string const& annotationName,
+                                            std::string const& testCaseName ) {
+            NSString* selStr = [[NSString alloc] initWithFormat:@"Catch_%s_%s", annotationName.c_str(), testCaseName.c_str()];
+            SEL sel = NSSelectorFromString( selStr );
+            arcSafeRelease( selStr );
+            id value = performOptionalSelector( cls, sel );
+            if( value )
+                return [(NSString*)value UTF8String];
+            return "";
+        }
+    }
+
+    inline size_t registerTestMethods() {
+        size_t noTestMethods = 0;
+        int noClasses = objc_getClassList( CATCH_NULL, 0 );
+
+        Class* classes = (CATCH_UNSAFE_UNRETAINED Class *)malloc( sizeof(Class) * noClasses);
+        objc_getClassList( classes, noClasses );
+
+        for( int c = 0; c < noClasses; c++ ) {
+            Class cls = classes[c];
+            {
+                u_int count;
+                Method* methods = class_copyMethodList( cls, &count );
+                for( u_int m = 0; m < count ; m++ ) {
+                    SEL selector = method_getName(methods[m]);
+                    std::string methodName = sel_getName(selector);
+                    if( startsWith( methodName, "Catch_TestCase_" ) ) {
+                        std::string testCaseName = methodName.substr( 15 );
+                        std::string name = Detail::getAnnotation( cls, "Name", testCaseName );
+                        std::string desc = Detail::getAnnotation( cls, "Description", testCaseName );
+                        const char* className = class_getName( cls );
+
+                        getMutableRegistryHub().registerTest( makeTestCase( new OcMethod( cls, selector ), className, name.c_str(), desc.c_str(), SourceLineInfo() ) );
+                        noTestMethods++;
+                    }
+                }
+                free(methods);
+            }
+        }
+        return noTestMethods;
+    }
+
+    namespace Matchers {
+        namespace Impl {
+        namespace NSStringMatchers {
+
+            template<typename MatcherT>
+            struct StringHolder : MatcherImpl<MatcherT, NSString*>{
+                StringHolder( NSString* substr ) : m_substr( [substr copy] ){}
+                StringHolder( StringHolder const& other ) : m_substr( [other.m_substr copy] ){}
+                StringHolder() {
+                    arcSafeRelease( m_substr );
+                }
+
+                NSString* m_substr;
+            };
+
+            struct Equals : StringHolder<Equals> {
+                Equals( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str isEqualToString:m_substr];
+                }
+
+                virtual std::string toString() const {
+                    return "equals string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct Contains : StringHolder<Contains> {
+                Contains( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location != NSNotFound;
+                }
+
+                virtual std::string toString() const {
+                    return "contains string: " + Catch::toString( m_substr );
+                }
+            };
+
+            struct StartsWith : StringHolder<StartsWith> {
+                StartsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == 0;
+                }
+
+                virtual std::string toString() const {
+                    return "starts with: " + Catch::toString( m_substr );
+                }
+            };
+            struct EndsWith : StringHolder<EndsWith> {
+                EndsWith( NSString* substr ) : StringHolder( substr ){}
+
+                virtual bool match( ExpressionType const& str ) const {
+                    return  (str != nil || m_substr == nil ) &&
+                            [str rangeOfString:m_substr].location == [str length] - [m_substr length];
+                }
+
+                virtual std::string toString() const {
+                    return "ends with: " + Catch::toString( m_substr );
+                }
+            };
+
+        } // namespace NSStringMatchers
+        } // namespace Impl
+
+        inline Impl::NSStringMatchers::Equals
+            Equals( NSString* substr ){ return Impl::NSStringMatchers::Equals( substr ); }
+
+        inline Impl::NSStringMatchers::Contains
+            Contains( NSString* substr ){ return Impl::NSStringMatchers::Contains( substr ); }
+
+        inline Impl::NSStringMatchers::StartsWith
+            StartsWith( NSString* substr ){ return Impl::NSStringMatchers::StartsWith( substr ); }
+
+        inline Impl::NSStringMatchers::EndsWith
+            EndsWith( NSString* substr ){ return Impl::NSStringMatchers::EndsWith( substr ); }
+
+    } // namespace Matchers
+
+    using namespace Matchers;
+
+} // namespace Catch
+
+///////////////////////////////////////////////////////////////////////////////
+#define OC_TEST_CASE( name, desc )\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Name_test ) \
+{\
+return @ name; \
+}\
++(NSString*) INTERNAL_CATCH_UNIQUE_NAME( Catch_Description_test ) \
+{ \
+return @ desc; \
+} \
+-(void) INTERNAL_CATCH_UNIQUE_NAME( Catch_TestCase_test )
+
+#endif
+
+#ifdef CATCH_IMPL
+// #included from: internal/catch_impl.hpp
+#define TWOBLUECUBES_CATCH_IMPL_HPP_INCLUDED
+
+// Collect all the implementation files together here
+// These are the equivalent of what would usually be cpp files
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wweak-vtables"
+#endif
+
+// #included from: ../catch_session.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_HPP_INCLUDED
+
+// #included from: internal/catch_commandline.hpp
+#define TWOBLUECUBES_CATCH_COMMANDLINE_HPP_INCLUDED
+
+// #included from: catch_config.hpp
+#define TWOBLUECUBES_CATCH_CONFIG_HPP_INCLUDED
+
+// #included from: catch_test_spec_parser.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_PARSER_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_test_spec.hpp
+#define TWOBLUECUBES_CATCH_TEST_SPEC_HPP_INCLUDED
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wpadded"
+#endif
+
+// #included from: catch_wildcard_pattern.hpp
+#define TWOBLUECUBES_CATCH_WILDCARD_PATTERN_HPP_INCLUDED
+
+namespace Catch
+{
+    class WildcardPattern {
+        enum WildcardPosition {
+            NoWildcard = 0,
+            WildcardAtStart = 1,
+            WildcardAtEnd = 2,
+            WildcardAtBothEnds = WildcardAtStart | WildcardAtEnd
+        };
+
+    public:
+
+        WildcardPattern( std::string const& pattern, CaseSensitive::Choice caseSensitivity )
+        :   m_caseSensitivity( caseSensitivity ),
+            m_wildcard( NoWildcard ),
+            m_pattern( adjustCase( pattern ) )
+        {
+            if( startsWith( m_pattern, "*" ) ) {
+                m_pattern = m_pattern.substr( 1 );
+                m_wildcard = WildcardAtStart;
+            }
+            if( endsWith( m_pattern, "*" ) ) {
+                m_pattern = m_pattern.substr( 0, m_pattern.size()-1 );
+                m_wildcard = static_cast<WildcardPosition>( m_wildcard | WildcardAtEnd );
+            }
+        }
+        virtual ~WildcardPattern();
+        virtual bool matches( std::string const& str ) const {
+            switch( m_wildcard ) {
+                case NoWildcard:
+                    return m_pattern == adjustCase( str );
+                case WildcardAtStart:
+                    return endsWith( adjustCase( str ), m_pattern );
+                case WildcardAtEnd:
+                    return startsWith( adjustCase( str ), m_pattern );
+                case WildcardAtBothEnds:
+                    return contains( adjustCase( str ), m_pattern );
+            }
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+#endif
+            throw std::logic_error( "Unknown enum" );
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+        }
+    private:
+        std::string adjustCase( std::string const& str ) const {
+            return m_caseSensitivity == CaseSensitive::No ? toLower( str ) : str;
+        }
+        CaseSensitive::Choice m_caseSensitivity;
+        WildcardPosition m_wildcard;
+        std::string m_pattern;
+    };
+}
+
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    class TestSpec {
+        struct Pattern : SharedImpl<> {
+            virtual ~Pattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const = 0;
+        };
+        class NamePattern : public Pattern {
+        public:
+            NamePattern( std::string const& name )
+            : m_wildcardPattern( toLower( name ), CaseSensitive::No )
+            {}
+            virtual ~NamePattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return m_wildcardPattern.matches( toLower( testCase.name ) );
+            }
+        private:
+            WildcardPattern m_wildcardPattern;
+        };
+
+        class TagPattern : public Pattern {
+        public:
+            TagPattern( std::string const& tag ) : m_tag( toLower( tag ) ) {}
+            virtual ~TagPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const {
+                return testCase.lcaseTags.find( m_tag ) != testCase.lcaseTags.end();
+            }
+        private:
+            std::string m_tag;
+        };
+
+        class ExcludedPattern : public Pattern {
+        public:
+            ExcludedPattern( Ptr<Pattern> const& underlyingPattern ) : m_underlyingPattern( underlyingPattern ) {}
+            virtual ~ExcludedPattern();
+            virtual bool matches( TestCaseInfo const& testCase ) const { return !m_underlyingPattern->matches( testCase ); }
+        private:
+            Ptr<Pattern> m_underlyingPattern;
+        };
+
+        struct Filter {
+            std::vector<Ptr<Pattern> > m_patterns;
+
+            bool matches( TestCaseInfo const& testCase ) const {
+                // All patterns in a filter must match for the filter to be a match
+                for( std::vector<Ptr<Pattern> >::const_iterator it = m_patterns.begin(), itEnd = m_patterns.end(); it != itEnd; ++it )
+                    if( !(*it)->matches( testCase ) )
+                        return false;
+                    return true;
+            }
+        };
+
+    public:
+        bool hasFilters() const {
+            return !m_filters.empty();
+        }
+        bool matches( TestCaseInfo const& testCase ) const {
+            // A TestSpec matches if any filter matches
+            for( std::vector<Filter>::const_iterator it = m_filters.begin(), itEnd = m_filters.end(); it != itEnd; ++it )
+                if( it->matches( testCase ) )
+                    return true;
+            return false;
+        }
+
+    private:
+        std::vector<Filter> m_filters;
+
+        friend class TestSpecParser;
+    };
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+namespace Catch {
+
+    class TestSpecParser {
+        enum Mode{ None, Name, QuotedName, Tag };
+        Mode m_mode;
+        bool m_exclusion;
+        std::size_t m_start, m_pos;
+        std::string m_arg;
+        TestSpec::Filter m_currentFilter;
+        TestSpec m_testSpec;
+        ITagAliasRegistry const* m_tagAliases;
+
+    public:
+        TestSpecParser( ITagAliasRegistry const& tagAliases ) : m_tagAliases( &tagAliases ) {}
+
+        TestSpecParser& parse( std::string const& arg ) {
+            m_mode = None;
+            m_exclusion = false;
+            m_start = std::string::npos;
+            m_arg = m_tagAliases->expandAliases( arg );
+            for( m_pos = 0; m_pos < m_arg.size(); ++m_pos )
+                visitChar( m_arg[m_pos] );
+            if( m_mode == Name )
+                addPattern<TestSpec::NamePattern>();
+            return *this;
+        }
+        TestSpec testSpec() {
+            addFilter();
+            return m_testSpec;
+        }
+    private:
+        void visitChar( char c ) {
+            if( m_mode == None ) {
+                switch( c ) {
+                case ' ': return;
+                case '~': m_exclusion = true; return;
+                case '[': return startNewMode( Tag, ++m_pos );
+                case '"': return startNewMode( QuotedName, ++m_pos );
+                default: startNewMode( Name, m_pos ); break;
+                }
+            }
+            if( m_mode == Name ) {
+                if( c == ',' ) {
+                    addPattern<TestSpec::NamePattern>();
+                    addFilter();
+                }
+                else if( c == '[' ) {
+                    if( subString() == "exclude:" )
+                        m_exclusion = true;
+                    else
+                        addPattern<TestSpec::NamePattern>();
+                    startNewMode( Tag, ++m_pos );
+                }
+            }
+            else if( m_mode == QuotedName && c == '"' )
+                addPattern<TestSpec::NamePattern>();
+            else if( m_mode == Tag && c == ']' )
+                addPattern<TestSpec::TagPattern>();
+        }
+        void startNewMode( Mode mode, std::size_t start ) {
+            m_mode = mode;
+            m_start = start;
+        }
+        std::string subString() const { return m_arg.substr( m_start, m_pos - m_start ); }
+        template<typename T>
+        void addPattern() {
+            std::string token = subString();
+            if( startsWith( token, "exclude:" ) ) {
+                m_exclusion = true;
+                token = token.substr( 8 );
+            }
+            if( !token.empty() ) {
+                Ptr<TestSpec::Pattern> pattern = new T( token );
+                if( m_exclusion )
+                    pattern = new TestSpec::ExcludedPattern( pattern );
+                m_currentFilter.m_patterns.push_back( pattern );
+            }
+            m_exclusion = false;
+            m_mode = None;
+        }
+        void addFilter() {
+            if( !m_currentFilter.m_patterns.empty() ) {
+                m_testSpec.m_filters.push_back( m_currentFilter );
+                m_currentFilter = TestSpec::Filter();
+            }
+        }
+    };
+    inline TestSpec parseTestSpec( std::string const& arg ) {
+        return TestSpecParser( ITagAliasRegistry::get() ).parse( arg ).testSpec();
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+// #included from: catch_interfaces_config.h
+#define TWOBLUECUBES_CATCH_INTERFACES_CONFIG_H_INCLUDED
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+namespace Catch {
+
+    struct Verbosity { enum Level {
+        NoOutput = 0,
+        Quiet,
+        Normal
+    }; };
+
+    struct WarnAbout { enum What {
+        Nothing = 0x00,
+        NoAssertions = 0x01
+    }; };
+
+    struct ShowDurations { enum OrNot {
+        DefaultForReporter,
+        Always,
+        Never
+    }; };
+    struct RunTests { enum InWhatOrder {
+        InDeclarationOrder,
+        InLexicographicalOrder,
+        InRandomOrder
+    }; };
+
+    class TestSpec;
+
+    struct IConfig : IShared {
+
+        virtual ~IConfig();
+
+        virtual bool allowThrows() const = 0;
+        virtual std::ostream& stream() const = 0;
+        virtual std::string name() const = 0;
+        virtual bool includeSuccessfulResults() const = 0;
+        virtual bool shouldDebugBreak() const = 0;
+        virtual bool warnAboutMissingAssertions() const = 0;
+        virtual int abortAfter() const = 0;
+        virtual bool showInvisibles() const = 0;
+        virtual ShowDurations::OrNot showDurations() const = 0;
+        virtual TestSpec const& testSpec() const = 0;
+        virtual RunTests::InWhatOrder runOrder() const = 0;
+        virtual unsigned int rngSeed() const = 0;
+        virtual bool forceColour() const = 0;
+    };
+}
+
+// #included from: catch_stream.h
+#define TWOBLUECUBES_CATCH_STREAM_H_INCLUDED
+
+// #included from: catch_streambuf.h
+#define TWOBLUECUBES_CATCH_STREAMBUF_H_INCLUDED
+
+#include <streambuf>
+
+namespace Catch {
+
+    class StreamBufBase : public std::streambuf {
+    public:
+        virtual ~StreamBufBase() CATCH_NOEXCEPT;
+    };
+}
+
+#include <streambuf>
+#include <ostream>
+#include <fstream>
+
+namespace Catch {
+
+    std::ostream& cout();
+    std::ostream& cerr();
+
+    struct IStream {
+        virtual ~IStream() CATCH_NOEXCEPT;
+        virtual std::ostream& stream() const = 0;
+    };
+
+    class FileStream : public IStream {
+        mutable std::ofstream m_ofs;
+    public:
+        FileStream( std::string const& filename );
+        virtual ~FileStream() CATCH_NOEXCEPT;
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class CoutStream : public IStream {
+        mutable std::ostream m_os;
+    public:
+        CoutStream();
+        virtual ~CoutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+
+    class DebugOutStream : public IStream {
+        std::auto_ptr<StreamBufBase> m_streamBuf;
+        mutable std::ostream m_os;
+    public:
+        DebugOutStream();
+        virtual ~DebugOutStream() CATCH_NOEXCEPT;
+
+    public: // IStream
+        virtual std::ostream& stream() const CATCH_OVERRIDE;
+    };
+}
+
+#include <memory>
+#include <vector>
+#include <string>
+#include <iostream>
+#include <ctime>
+
+#ifndef CATCH_CONFIG_CONSOLE_WIDTH
+#define CATCH_CONFIG_CONSOLE_WIDTH 80
+#endif
+
+namespace Catch {
+
+    struct ConfigData {
+
+        ConfigData()
+        :   listTests( false ),
+            listTags( false ),
+            listReporters( false ),
+            listTestNamesOnly( false ),
+            showSuccessfulTests( false ),
+            shouldDebugBreak( false ),
+            noThrow( false ),
+            showHelp( false ),
+            showInvisibles( false ),
+            forceColour( false ),
+            filenamesAsTags( false ),
+            abortAfter( -1 ),
+            rngSeed( 0 ),
+            verbosity( Verbosity::Normal ),
+            warnings( WarnAbout::Nothing ),
+            showDurations( ShowDurations::DefaultForReporter ),
+            runOrder( RunTests::InDeclarationOrder )
+        {}
+
+        bool listTests;
+        bool listTags;
+        bool listReporters;
+        bool listTestNamesOnly;
+
+        bool showSuccessfulTests;
+        bool shouldDebugBreak;
+        bool noThrow;
+        bool showHelp;
+        bool showInvisibles;
+        bool forceColour;
+        bool filenamesAsTags;
+
+        int abortAfter;
+        unsigned int rngSeed;
+
+        Verbosity::Level verbosity;
+        WarnAbout::What warnings;
+        ShowDurations::OrNot showDurations;
+        RunTests::InWhatOrder runOrder;
+
+        std::string outputFilename;
+        std::string name;
+        std::string processName;
+
+        std::vector<std::string> reporterNames;
+        std::vector<std::string> testsOrTags;
+    };
+
+    class Config : public SharedImpl<IConfig> {
+    private:
+        Config( Config const& other );
+        Config& operator = ( Config const& other );
+        virtual void dummy();
+    public:
+
+        Config()
+        {}
+
+        Config( ConfigData const& data )
+        :   m_data( data ),
+            m_stream( openStream() )
+        {
+            if( !data.testsOrTags.empty() ) {
+                TestSpecParser parser( ITagAliasRegistry::get() );
+                for( std::size_t i = 0; i < data.testsOrTags.size(); ++i )
+                    parser.parse( data.testsOrTags[i] );
+                m_testSpec = parser.testSpec();
+            }
+        }
+
+        virtual ~Config() {
+        }
+
+        std::string const& getFilename() const {
+            return m_data.outputFilename ;
+        }
+
+        bool listTests() const { return m_data.listTests; }
+        bool listTestNamesOnly() const { return m_data.listTestNamesOnly; }
+        bool listTags() const { return m_data.listTags; }
+        bool listReporters() const { return m_data.listReporters; }
+
+        std::string getProcessName() const { return m_data.processName; }
+
+        bool shouldDebugBreak() const { return m_data.shouldDebugBreak; }
+
+        std::vector<std::string> getReporterNames() const { return m_data.reporterNames; }
+
+        int abortAfter() const { return m_data.abortAfter; }
+
+        TestSpec const& testSpec() const { return m_testSpec; }
+
+        bool showHelp() const { return m_data.showHelp; }
+        bool showInvisibles() const { return m_data.showInvisibles; }
+
+        // IConfig interface
+        virtual bool allowThrows() const        { return !m_data.noThrow; }
+        virtual std::ostream& stream() const    { return m_stream->stream(); }
+        virtual std::string name() const        { return m_data.name.empty() ? m_data.processName : m_data.name; }
+        virtual bool includeSuccessfulResults() const   { return m_data.showSuccessfulTests; }
+        virtual bool warnAboutMissingAssertions() const { return m_data.warnings & WarnAbout::NoAssertions; }
+        virtual ShowDurations::OrNot showDurations() const { return m_data.showDurations; }
+        virtual RunTests::InWhatOrder runOrder() const  { return m_data.runOrder; }
+        virtual unsigned int rngSeed() const    { return m_data.rngSeed; }
+        virtual bool forceColour() const { return m_data.forceColour; }
+
+    private:
+
+        IStream const* openStream() {
+            if( m_data.outputFilename.empty() )
+                return new CoutStream();
+            else if( m_data.outputFilename[0] == '%' ) {
+                if( m_data.outputFilename == "%debug" )
+                    return new DebugOutStream();
+                else
+                    throw std::domain_error( "Unrecognised stream: " + m_data.outputFilename );
+            }
+            else
+                return new FileStream( m_data.outputFilename );
+        }
+        ConfigData m_data;
+
+        std::auto_ptr<IStream const> m_stream;
+        TestSpec m_testSpec;
+    };
+
+} // end namespace Catch
+
+// #included from: catch_clara.h
+#define TWOBLUECUBES_CATCH_CLARA_H_INCLUDED
+
+// Use Catch's value for console width (store Clara's off to the side, if present)
+#ifdef CLARA_CONFIG_CONSOLE_WIDTH
+#define CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH CLARA_CONFIG_CONSOLE_WIDTH
+#undef CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+// Declare Clara inside the Catch namespace
+#define STITCH_CLARA_OPEN_NAMESPACE namespace Catch {
+// #included from: ../external/clara.h
+
+// Version 0.0.1.1
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TWOBLUECUBES_CLARA_H_INCLUDED) || defined(STITCH_CLARA_OPEN_NAMESPACE)
+
+#ifndef STITCH_CLARA_OPEN_NAMESPACE
+#define TWOBLUECUBES_CLARA_H_INCLUDED
+#define STITCH_CLARA_OPEN_NAMESPACE
+#define STITCH_CLARA_CLOSE_NAMESPACE
+#else
+#define STITCH_CLARA_CLOSE_NAMESPACE }
+#endif
+
+#define STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE STITCH_CLARA_OPEN_NAMESPACE
+
+// ----------- #included from tbc_text_format.h -----------
+
+// Only use header guard if we are not using an outer namespace
+#if !defined(TBC_TEXT_FORMAT_H_INCLUDED) || defined(STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE)
+#ifndef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+#define TBC_TEXT_FORMAT_H_INCLUDED
+#endif
+
+#include <string>
+#include <vector>
+#include <sstream>
+#include <algorithm>
+
+// Use optional outer namespace
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef STITCH_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TBC_TEXT_FORMAT_H_INCLUDED
+
+// ----------- end of #include from tbc_text_format.h -----------
+// ........... back in clara.h
+
+#undef STITCH_TBC_TEXT_FORMAT_OPEN_NAMESPACE
+
+// ----------- #included from clara_compilers.h -----------
+
+#ifndef TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+#define TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// Detect a number of compiler features - mostly C++11/14 conformance - by compiler
+// The following features are defined:
+//
+// CLARA_CONFIG_CPP11_NULLPTR : is nullptr supported?
+// CLARA_CONFIG_CPP11_NOEXCEPT : is noexcept supported?
+// CLARA_CONFIG_CPP11_GENERATED_METHODS : The delete and default keywords for compiler generated methods
+// CLARA_CONFIG_CPP11_OVERRIDE : is override supported?
+// CLARA_CONFIG_CPP11_UNIQUE_PTR : is unique_ptr supported (otherwise use auto_ptr)
+
+// CLARA_CONFIG_CPP11_OR_GREATER : Is C++11 supported?
+
+// CLARA_CONFIG_VARIADIC_MACROS : are variadic macros supported?
+
+// In general each macro has a _NO_<feature name> form
+// (e.g. CLARA_CONFIG_CPP11_NO_NULLPTR) which disables the feature.
+// Many features, at point of detection, define an _INTERNAL_ macro, so they
+// can be combined, en-mass, with the _NO_ forms later.
+
+// All the C++11 features can be disabled with CLARA_CONFIG_NO_CPP11
+
+#ifdef __clang__
+
+#if __has_feature(cxx_nullptr)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#if __has_feature(cxx_noexcept)
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#endif // __clang__
+
+////////////////////////////////////////////////////////////////////////////////
+// GCC
+#ifdef __GNUC__
+
+#if __GNUC__ == 4 && __GNUC_MINOR__ >= 6 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+// - otherwise more recent versions define __cplusplus >= 201103L
+// and will get picked up below
+
+#endif // __GNUC__
+
+////////////////////////////////////////////////////////////////////////////////
+// Visual C++
+#ifdef _MSC_VER
+
+#if (_MSC_VER >= 1600)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#if (_MSC_VER >= 1900 ) // (VC++ 13 (VS2015))
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#endif // _MSC_VER
+
+////////////////////////////////////////////////////////////////////////////////
+// C++ language feature support
+
+// catch all support for C++11
+#if defined(__cplusplus) && __cplusplus >= 201103L
+
+#define CLARA_CPP11_OR_GREATER
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_NULLPTR
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#define CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT
+#endif
+
+#ifndef CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#define CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS
+#endif
+
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE)
+#define CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE
+#endif
+#if !defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR)
+#define CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+#endif // __cplusplus >= 201103L
+
+// Now set the actual defines based on the above + anything the user has configured
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NO_NULLPTR) && !defined(CLARA_CONFIG_CPP11_NULLPTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NULLPTR
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NO_NOEXCEPT) && !defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_NOEXCEPT
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_NO_GENERATED_METHODS) && !defined(CLARA_CONFIG_CPP11_GENERATED_METHODS) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_GENERATED_METHODS
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_OVERRIDE) && !defined(CLARA_CONFIG_CPP11_OVERRIDE) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_OVERRIDE
+#endif
+#if defined(CLARA_INTERNAL_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_UNIQUE_PTR) && !defined(CLARA_CONFIG_CPP11_UNIQUE_PTR) && !defined(CLARA_CONFIG_NO_CPP11)
+#define CLARA_CONFIG_CPP11_UNIQUE_PTR
+#endif
+
+// noexcept support:
+#if defined(CLARA_CONFIG_CPP11_NOEXCEPT) && !defined(CLARA_NOEXCEPT)
+#define CLARA_NOEXCEPT noexcept
+#  define CLARA_NOEXCEPT_IS(x) noexcept(x)
+#else
+#define CLARA_NOEXCEPT throw()
+#  define CLARA_NOEXCEPT_IS(x)
+#endif
+
+// nullptr support
+#ifdef CLARA_CONFIG_CPP11_NULLPTR
+#define CLARA_NULL nullptr
+#else
+#define CLARA_NULL NULL
+#endif
+
+// override support
+#ifdef CLARA_CONFIG_CPP11_OVERRIDE
+#define CLARA_OVERRIDE override
+#else
+#define CLARA_OVERRIDE
+#endif
+
+// unique_ptr support
+#ifdef CLARA_CONFIG_CPP11_UNIQUE_PTR
+#   define CLARA_AUTO_PTR( T ) std::unique_ptr<T>
+#else
+#   define CLARA_AUTO_PTR( T ) std::auto_ptr<T>
+#endif
+
+#endif // TWOBLUECUBES_CLARA_COMPILERS_H_INCLUDED
+
+// ----------- end of #include from clara_compilers.h -----------
+// ........... back in clara.h
+
+#include <map>
+#include <stdexcept>
+#include <memory>
+
+// Use optional outer namespace
+#ifdef STITCH_CLARA_OPEN_NAMESPACE
+STITCH_CLARA_OPEN_NAMESPACE
+#endif
+
+namespace Clara {
+
+    struct UnpositionalTag {};
+
+    extern UnpositionalTag _;
+
+#ifdef CLARA_CONFIG_MAIN
+    UnpositionalTag _;
+#endif
+
+    namespace Detail {
+
+#ifdef CLARA_CONSOLE_WIDTH
+    const unsigned int consoleWidth = CLARA_CONFIG_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+        // Use this to try and stop compiler from warning about unreachable code
+        inline bool isTrue( bool value ) { return value; }
+
+        using namespace Tbc;
+
+        inline bool startsWith( std::string const& str, std::string const& prefix ) {
+            return str.size() >= prefix.size() && str.substr( 0, prefix.size() ) == prefix;
+        }
+
+        template<typename T> struct RemoveConstRef{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const&>{ typedef T type; };
+        template<typename T> struct RemoveConstRef<T const>{ typedef T type; };
+
+        template<typename T>    struct IsBool       { static const bool value = false; };
+        template<>              struct IsBool<bool> { static const bool value = true; };
+
+        template<typename T>
+        void convertInto( std::string const& _source, T& _dest ) {
+            std::stringstream ss;
+            ss << _source;
+            ss >> _dest;
+            if( ss.fail() )
+                throw std::runtime_error( "Unable to convert " + _source + " to destination type" );
+        }
+        inline void convertInto( std::string const& _source, std::string& _dest ) {
+            _dest = _source;
+        }
+        inline void convertInto( std::string const& _source, bool& _dest ) {
+            std::string sourceLC = _source;
+            std::transform( sourceLC.begin(), sourceLC.end(), sourceLC.begin(), ::tolower );
+            if( sourceLC == "y" || sourceLC == "1" || sourceLC == "true" || sourceLC == "yes" || sourceLC == "on" )
+                _dest = true;
+            else if( sourceLC == "n" || sourceLC == "0" || sourceLC == "false" || sourceLC == "no" || sourceLC == "off" )
+                _dest = false;
+            else
+                throw std::runtime_error( "Expected a boolean value but did not recognise:\n  '" + _source + "'" );
+        }
+        inline void convertInto( bool _source, bool& _dest ) {
+            _dest = _source;
+        }
+        template<typename T>
+        inline void convertInto( bool, T& ) {
+            if( isTrue( true ) )
+                throw std::runtime_error( "Invalid conversion" );
+        }
+
+        template<typename ConfigT>
+        struct IArgFunction {
+            virtual ~IArgFunction() {}
+#ifdef CLARA_CONFIG_CPP11_GENERATED_METHODS
+            IArgFunction()                      = default;
+            IArgFunction( IArgFunction const& ) = default;
+#endif
+            virtual void set( ConfigT& config, std::string const& value ) const = 0;
+            virtual void setFlag( ConfigT& config ) const = 0;
+            virtual bool takesArg() const = 0;
+            virtual IArgFunction* clone() const = 0;
+        };
+
+        template<typename ConfigT>
+        class BoundArgFunction {
+        public:
+            BoundArgFunction() : functionObj( CLARA_NULL ) {}
+            BoundArgFunction( IArgFunction<ConfigT>* _functionObj ) : functionObj( _functionObj ) {}
+            BoundArgFunction( BoundArgFunction const& other ) : functionObj( other.functionObj ? other.functionObj->clone() : CLARA_NULL ) {}
+            BoundArgFunction& operator = ( BoundArgFunction const& other ) {
+                IArgFunction<ConfigT>* newFunctionObj = other.functionObj ? other.functionObj->clone() : CLARA_NULL;
+                delete functionObj;
+                functionObj = newFunctionObj;
+                return *this;
+            }
+            ~BoundArgFunction() { delete functionObj; }
+
+            void set( ConfigT& config, std::string const& value ) const {
+                functionObj->set( config, value );
+            }
+            void setFlag( ConfigT& config ) const {
+                functionObj->setFlag( config );
+            }
+            bool takesArg() const { return functionObj->takesArg(); }
+
+            bool isSet() const {
+                return functionObj != CLARA_NULL;
+            }
+        private:
+            IArgFunction<ConfigT>* functionObj;
+        };
+
+        template<typename C>
+        struct NullBinder : IArgFunction<C>{
+            virtual void set( C&, std::string const& ) const {}
+            virtual void setFlag( C& ) const {}
+            virtual bool takesArg() const { return true; }
+            virtual IArgFunction<C>* clone() const { return new NullBinder( *this ); }
+        };
+
+        template<typename C, typename M>
+        struct BoundDataMember : IArgFunction<C>{
+            BoundDataMember( M C::* _member ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                convertInto( stringValue, p.*member );
+            }
+            virtual void setFlag( C& p ) const {
+                convertInto( true, p.*member );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundDataMember( *this ); }
+            M C::* member;
+        };
+        template<typename C, typename M>
+        struct BoundUnaryMethod : IArgFunction<C>{
+            BoundUnaryMethod( void (C::*_member)( M ) ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( stringValue, value );
+                (p.*member)( value );
+            }
+            virtual void setFlag( C& p ) const {
+                typename RemoveConstRef<M>::type value;
+                convertInto( true, value );
+                (p.*member)( value );
+            }
+            virtual bool takesArg() const { return !IsBool<M>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryMethod( *this ); }
+            void (C::*member)( M );
+        };
+        template<typename C>
+        struct BoundNullaryMethod : IArgFunction<C>{
+            BoundNullaryMethod( void (C::*_member)() ) : member( _member ) {}
+            virtual void set( C& p, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    (p.*member)();
+            }
+            virtual void setFlag( C& p ) const {
+                (p.*member)();
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundNullaryMethod( *this ); }
+            void (C::*member)();
+        };
+
+        template<typename C>
+        struct BoundUnaryFunction : IArgFunction<C>{
+            BoundUnaryFunction( void (*_function)( C& ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                bool value;
+                convertInto( stringValue, value );
+                if( value )
+                    function( obj );
+            }
+            virtual void setFlag( C& p ) const {
+                function( p );
+            }
+            virtual bool takesArg() const { return false; }
+            virtual IArgFunction<C>* clone() const { return new BoundUnaryFunction( *this ); }
+            void (*function)( C& );
+        };
+
+        template<typename C, typename T>
+        struct BoundBinaryFunction : IArgFunction<C>{
+            BoundBinaryFunction( void (*_function)( C&, T ) ) : function( _function ) {}
+            virtual void set( C& obj, std::string const& stringValue ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( stringValue, value );
+                function( obj, value );
+            }
+            virtual void setFlag( C& obj ) const {
+                typename RemoveConstRef<T>::type value;
+                convertInto( true, value );
+                function( obj, value );
+            }
+            virtual bool takesArg() const { return !IsBool<T>::value; }
+            virtual IArgFunction<C>* clone() const { return new BoundBinaryFunction( *this ); }
+            void (*function)( C&, T );
+        };
+
+    } // namespace Detail
+
+    struct Parser {
+        Parser() : separators( " \t=:" ) {}
+
+        struct Token {
+            enum Type { Positional, ShortOpt, LongOpt };
+            Token( Type _type, std::string const& _data ) : type( _type ), data( _data ) {}
+            Type type;
+            std::string data;
+        };
+
+        void parseIntoTokens( int argc, char const* const argv[], std::vector<Parser::Token>& tokens ) const {
+            const std::string doubleDash = "--";
+            for( int i = 1; i < argc && argv[i] != doubleDash; ++i )
+                parseIntoTokens( argv[i] , tokens);
+        }
+        void parseIntoTokens( std::string arg, std::vector<Parser::Token>& tokens ) const {
+            while( !arg.empty() ) {
+                Parser::Token token( Parser::Token::Positional, arg );
+                arg = "";
+                if( token.data[0] == '-' ) {
+                    if( token.data.size() > 1 && token.data[1] == '-' ) {
+                        token = Parser::Token( Parser::Token::LongOpt, token.data.substr( 2 ) );
+                    }
+                    else {
+                        token = Parser::Token( Parser::Token::ShortOpt, token.data.substr( 1 ) );
+                        if( token.data.size() > 1 && separators.find( token.data[1] ) == std::string::npos ) {
+                            arg = "-" + token.data.substr( 1 );
+                            token.data = token.data.substr( 0, 1 );
+                        }
+                    }
+                }
+                if( token.type != Parser::Token::Positional ) {
+                    std::size_t pos = token.data.find_first_of( separators );
+                    if( pos != std::string::npos ) {
+                        arg = token.data.substr( pos+1 );
+                        token.data = token.data.substr( 0, pos );
+                    }
+                }
+                tokens.push_back( token );
+            }
+        }
+        std::string separators;
+    };
+
+    template<typename ConfigT>
+    struct CommonArgProperties {
+        CommonArgProperties() {}
+        CommonArgProperties( Detail::BoundArgFunction<ConfigT> const& _boundField ) : boundField( _boundField ) {}
+
+        Detail::BoundArgFunction<ConfigT> boundField;
+        std::string description;
+        std::string detail;
+        std::string placeholder; // Only value if boundField takes an arg
+
+        bool takesArg() const {
+            return !placeholder.empty();
+        }
+        void validate() const {
+            if( !boundField.isSet() )
+                throw std::logic_error( "option not bound" );
+        }
+    };
+    struct OptionArgProperties {
+        std::vector<std::string> shortNames;
+        std::string longName;
+
+        bool hasShortName( std::string const& shortName ) const {
+            return std::find( shortNames.begin(), shortNames.end(), shortName ) != shortNames.end();
+        }
+        bool hasLongName( std::string const& _longName ) const {
+            return _longName == longName;
+        }
+    };
+    struct PositionalArgProperties {
+        PositionalArgProperties() : position( -1 ) {}
+        int position; // -1 means non-positional (floating)
+
+        bool isFixedPositional() const {
+            return position != -1;
+        }
+    };
+
+    template<typename ConfigT>
+    class CommandLine {
+
+        struct Arg : CommonArgProperties<ConfigT>, OptionArgProperties, PositionalArgProperties {
+            Arg() {}
+            Arg( Detail::BoundArgFunction<ConfigT> const& _boundField ) : CommonArgProperties<ConfigT>( _boundField ) {}
+
+            using CommonArgProperties<ConfigT>::placeholder; // !TBD
+
+            std::string dbgName() const {
+                if( !longName.empty() )
+                    return "--" + longName;
+                if( !shortNames.empty() )
+                    return "-" + shortNames[0];
+                return "positional args";
+            }
+            std::string commands() const {
+                std::ostringstream oss;
+                bool first = true;
+                std::vector<std::string>::const_iterator it = shortNames.begin(), itEnd = shortNames.end();
+                for(; it != itEnd; ++it ) {
+                    if( first )
+                        first = false;
+                    else
+                        oss << ", ";
+                    oss << "-" << *it;
+                }
+                if( !longName.empty() ) {
+                    if( !first )
+                        oss << ", ";
+                    oss << "--" << longName;
+                }
+                if( !placeholder.empty() )
+                    oss << " <" << placeholder << ">";
+                return oss.str();
+            }
+        };
+
+        typedef CLARA_AUTO_PTR( Arg ) ArgAutoPtr;
+
+        friend void addOptName( Arg& arg, std::string const& optName )
+        {
+            if( optName.empty() )
+                return;
+            if( Detail::startsWith( optName, "--" ) ) {
+                if( !arg.longName.empty() )
+                    throw std::logic_error( "Only one long opt may be specified. '"
+                        + arg.longName
+                        + "' already specified, now attempting to add '"
+                        + optName + "'" );
+                arg.longName = optName.substr( 2 );
+            }
+            else if( Detail::startsWith( optName, "-" ) )
+                arg.shortNames.push_back( optName.substr( 1 ) );
+            else
+                throw std::logic_error( "option must begin with - or --. Option was: '" + optName + "'" );
+        }
+        friend void setPositionalArg( Arg& arg, int position )
+        {
+            arg.position = position;
+        }
+
+        class ArgBuilder {
+        public:
+            ArgBuilder( Arg* arg ) : m_arg( arg ) {}
+
+            // Bind a non-boolean data member (requires placeholder string)
+            template<typename C, typename M>
+            void bind( M C::* field, std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,M>( field );
+                m_arg->placeholder = placeholder;
+            }
+            // Bind a boolean data member (no placeholder required)
+            template<typename C>
+            void bind( bool C::* field ) {
+                m_arg->boundField = new Detail::BoundDataMember<C,bool>( field );
+            }
+
+            // Bind a method taking a single, non-boolean argument (requires a placeholder string)
+            template<typename C, typename M>
+            void bind( void (C::* unaryMethod)( M ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,M>( unaryMethod );
+                m_arg->placeholder = placeholder;
+            }
+
+            // Bind a method taking a single, boolean argument (no placeholder string required)
+            template<typename C>
+            void bind( void (C::* unaryMethod)( bool ) ) {
+                m_arg->boundField = new Detail::BoundUnaryMethod<C,bool>( unaryMethod );
+            }
+
+            // Bind a method that takes no arguments (will be called if opt is present)
+            template<typename C>
+            void bind( void (C::* nullaryMethod)() ) {
+                m_arg->boundField = new Detail::BoundNullaryMethod<C>( nullaryMethod );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (no placeholder string required)
+            template<typename C>
+            void bind( void (* unaryFunction)( C& ) ) {
+                m_arg->boundField = new Detail::BoundUnaryFunction<C>( unaryFunction );
+            }
+
+            // Bind a free function taking a single argument - the object to operate on (requires a placeholder string)
+            template<typename C, typename T>
+            void bind( void (* binaryFunction)( C&, T ), std::string const& placeholder ) {
+                m_arg->boundField = new Detail::BoundBinaryFunction<C, T>( binaryFunction );
+                m_arg->placeholder = placeholder;
+            }
+
+            ArgBuilder& describe( std::string const& description ) {
+                m_arg->description = description;
+                return *this;
+            }
+            ArgBuilder& detail( std::string const& detail ) {
+                m_arg->detail = detail;
+                return *this;
+            }
+
+        protected:
+            Arg* m_arg;
+        };
+
+        class OptBuilder : public ArgBuilder {
+        public:
+            OptBuilder( Arg* arg ) : ArgBuilder( arg ) {}
+            OptBuilder( OptBuilder& other ) : ArgBuilder( other ) {}
+
+            OptBuilder& operator[]( std::string const& optName ) {
+                addOptName( *ArgBuilder::m_arg, optName );
+                return *this;
+            }
+        };
+
+    public:
+
+        CommandLine()
+        :   m_boundProcessName( new Detail::NullBinder<ConfigT>() ),
+            m_highestSpecifiedArgPosition( 0 ),
+            m_throwOnUnrecognisedTokens( false )
+        {}
+        CommandLine( CommandLine const& other )
+        :   m_boundProcessName( other.m_boundProcessName ),
+            m_options ( other.m_options ),
+            m_positionalArgs( other.m_positionalArgs ),
+            m_highestSpecifiedArgPosition( other.m_highestSpecifiedArgPosition ),
+            m_throwOnUnrecognisedTokens( other.m_throwOnUnrecognisedTokens )
+        {
+            if( other.m_floatingArg.get() )
+                m_floatingArg.reset( new Arg( *other.m_floatingArg ) );
+        }
+
+        CommandLine& setThrowOnUnrecognisedTokens( bool shouldThrow = true ) {
+            m_throwOnUnrecognisedTokens = shouldThrow;
+            return *this;
+        }
+
+        OptBuilder operator[]( std::string const& optName ) {
+            m_options.push_back( Arg() );
+            addOptName( m_options.back(), optName );
+            OptBuilder builder( &m_options.back() );
+            return builder;
+        }
+
+        ArgBuilder operator[]( int position ) {
+            m_positionalArgs.insert( std::make_pair( position, Arg() ) );
+            if( position > m_highestSpecifiedArgPosition )
+                m_highestSpecifiedArgPosition = position;
+            setPositionalArg( m_positionalArgs[position], position );
+            ArgBuilder builder( &m_positionalArgs[position] );
+            return builder;
+        }
+
+        // Invoke this with the _ instance
+        ArgBuilder operator[]( UnpositionalTag ) {
+            if( m_floatingArg.get() )
+                throw std::logic_error( "Only one unpositional argument can be added" );
+            m_floatingArg.reset( new Arg() );
+            ArgBuilder builder( m_floatingArg.get() );
+            return builder;
+        }
+
+        template<typename C, typename M>
+        void bindProcessName( M C::* field ) {
+            m_boundProcessName = new Detail::BoundDataMember<C,M>( field );
+        }
+        template<typename C, typename M>
+        void bindProcessName( void (C::*_unaryMethod)( M ) ) {
+            m_boundProcessName = new Detail::BoundUnaryMethod<C,M>( _unaryMethod );
+        }
+
+        void optUsage( std::ostream& os, std::size_t indent = 0, std::size_t width = Detail::consoleWidth ) const {
+            typename std::vector<Arg>::const_iterator itBegin = m_options.begin(), itEnd = m_options.end(), it;
+            std::size_t maxWidth = 0;
+            for( it = itBegin; it != itEnd; ++it )
+                maxWidth = (std::max)( maxWidth, it->commands().size() );
+
+            for( it = itBegin; it != itEnd; ++it ) {
+                Detail::Text usage( it->commands(), Detail::TextAttributes()
+                                                        .setWidth( maxWidth+indent )
+                                                        .setIndent( indent ) );
+                Detail::Text desc( it->description, Detail::TextAttributes()
+                                                        .setWidth( width - maxWidth - 3 ) );
+
+                for( std::size_t i = 0; i < (std::max)( usage.size(), desc.size() ); ++i ) {
+                    std::string usageCol = i < usage.size() ? usage[i] : "";
+                    os << usageCol;
+
+                    if( i < desc.size() && !desc[i].empty() )
+                        os  << std::string( indent + 2 + maxWidth - usageCol.size(), ' ' )
+                            << desc[i];
+                    os << "\n";
+                }
+            }
+        }
+        std::string optUsage() const {
+            std::ostringstream oss;
+            optUsage( oss );
+            return oss.str();
+        }
+
+        void argSynopsis( std::ostream& os ) const {
+            for( int i = 1; i <= m_highestSpecifiedArgPosition; ++i ) {
+                if( i > 1 )
+                    os << " ";
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( i );
+                if( it != m_positionalArgs.end() )
+                    os << "<" << it->second.placeholder << ">";
+                else if( m_floatingArg.get() )
+                    os << "<" << m_floatingArg->placeholder << ">";
+                else
+                    throw std::logic_error( "non consecutive positional arguments with no floating args" );
+            }
+            // !TBD No indication of mandatory args
+            if( m_floatingArg.get() ) {
+                if( m_highestSpecifiedArgPosition > 1 )
+                    os << " ";
+                os << "[<" << m_floatingArg->placeholder << "> ...]";
+            }
+        }
+        std::string argSynopsis() const {
+            std::ostringstream oss;
+            argSynopsis( oss );
+            return oss.str();
+        }
+
+        void usage( std::ostream& os, std::string const& procName ) const {
+            validate();
+            os << "usage:\n  " << procName << " ";
+            argSynopsis( os );
+            if( !m_options.empty() ) {
+                os << " [options]\n\nwhere options are: \n";
+                optUsage( os, 2 );
+            }
+            os << "\n";
+        }
+        std::string usage( std::string const& procName ) const {
+            std::ostringstream oss;
+            usage( oss, procName );
+            return oss.str();
+        }
+
+        ConfigT parse( int argc, char const* const argv[] ) const {
+            ConfigT config;
+            parseInto( argc, argv, config );
+            return config;
+        }
+
+        std::vector<Parser::Token> parseInto( int argc, char const* argv[], ConfigT& config ) const {
+            std::string processName = argv[0];
+            std::size_t lastSlash = processName.find_last_of( "/\\" );
+            if( lastSlash != std::string::npos )
+                processName = processName.substr( lastSlash+1 );
+            m_boundProcessName.set( config, processName );
+            std::vector<Parser::Token> tokens;
+            Parser parser;
+            parser.parseIntoTokens( argc, argv, tokens );
+            return populate( tokens, config );
+        }
+
+        std::vector<Parser::Token> populate( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            validate();
+            std::vector<Parser::Token> unusedTokens = populateOptions( tokens, config );
+            unusedTokens = populateFixedArgs( unusedTokens, config );
+            unusedTokens = populateFloatingArgs( unusedTokens, config );
+            return unusedTokens;
+        }
+
+        std::vector<Parser::Token> populateOptions( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            std::vector<std::string> errors;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::vector<Arg>::const_iterator it = m_options.begin(), itEnd = m_options.end();
+                for(; it != itEnd; ++it ) {
+                    Arg const& arg = *it;
+
+                    try {
+                        if( ( token.type == Parser::Token::ShortOpt && arg.hasShortName( token.data ) ) ||
+                            ( token.type == Parser::Token::LongOpt && arg.hasLongName( token.data ) ) ) {
+                            if( arg.takesArg() ) {
+                                if( i == tokens.size()-1 || tokens[i+1].type != Parser::Token::Positional )
+                                    errors.push_back( "Expected argument to option: " + token.data );
+                                else
+                                    arg.boundField.set( config, tokens[++i].data );
+                            }
+                            else {
+                                arg.boundField.setFlag( config );
+                            }
+                            break;
+                        }
+                    }
+                    catch( std::exception& ex ) {
+                        errors.push_back( std::string( ex.what() ) + "\n- while parsing: (" + arg.commands() + ")" );
+                    }
+                }
+                if( it == itEnd ) {
+                    if( token.type == Parser::Token::Positional || !m_throwOnUnrecognisedTokens )
+                        unusedTokens.push_back( token );
+                    else if( errors.empty() && m_throwOnUnrecognisedTokens )
+                        errors.push_back( "unrecognised option: " + token.data );
+                }
+            }
+            if( !errors.empty() ) {
+                std::ostringstream oss;
+                for( std::vector<std::string>::const_iterator it = errors.begin(), itEnd = errors.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it != errors.begin() )
+                        oss << "\n";
+                    oss << *it;
+                }
+                throw std::runtime_error( oss.str() );
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFixedArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            std::vector<Parser::Token> unusedTokens;
+            int position = 1;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                typename std::map<int, Arg>::const_iterator it = m_positionalArgs.find( position );
+                if( it != m_positionalArgs.end() )
+                    it->second.boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+                if( token.type == Parser::Token::Positional )
+                    position++;
+            }
+            return unusedTokens;
+        }
+        std::vector<Parser::Token> populateFloatingArgs( std::vector<Parser::Token> const& tokens, ConfigT& config ) const {
+            if( !m_floatingArg.get() )
+                return tokens;
+            std::vector<Parser::Token> unusedTokens;
+            for( std::size_t i = 0; i < tokens.size(); ++i ) {
+                Parser::Token const& token = tokens[i];
+                if( token.type == Parser::Token::Positional )
+                    m_floatingArg->boundField.set( config, token.data );
+                else
+                    unusedTokens.push_back( token );
+            }
+            return unusedTokens;
+        }
+
+        void validate() const
+        {
+            if( m_options.empty() && m_positionalArgs.empty() && !m_floatingArg.get() )
+                throw std::logic_error( "No options or arguments specified" );
+
+            for( typename std::vector<Arg>::const_iterator  it = m_options.begin(),
+                                                            itEnd = m_options.end();
+                    it != itEnd; ++it )
+                it->validate();
+        }
+
+    private:
+        Detail::BoundArgFunction<ConfigT> m_boundProcessName;
+        std::vector<Arg> m_options;
+        std::map<int, Arg> m_positionalArgs;
+        ArgAutoPtr m_floatingArg;
+        int m_highestSpecifiedArgPosition;
+        bool m_throwOnUnrecognisedTokens;
+    };
+
+} // end namespace Clara
+
+STITCH_CLARA_CLOSE_NAMESPACE
+#undef STITCH_CLARA_OPEN_NAMESPACE
+#undef STITCH_CLARA_CLOSE_NAMESPACE
+
+#endif // TWOBLUECUBES_CLARA_H_INCLUDED
+#undef STITCH_CLARA_OPEN_NAMESPACE
+
+// Restore Clara's value for console width, if present
+#ifdef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#define CLARA_CONFIG_CONSOLE_WIDTH CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#undef CATCH_TEMP_CLARA_CONFIG_CONSOLE_WIDTH
+#endif
+
+#include <fstream>
+
+namespace Catch {
+
+    inline void abortAfterFirst( ConfigData& config ) { config.abortAfter = 1; }
+    inline void abortAfterX( ConfigData& config, int x ) {
+        if( x < 1 )
+            throw std::runtime_error( "Value after -x or --abortAfter must be greater than zero" );
+        config.abortAfter = x;
+    }
+    inline void addTestOrTags( ConfigData& config, std::string const& _testSpec ) { config.testsOrTags.push_back( _testSpec ); }
+    inline void addReporterName( ConfigData& config, std::string const& _reporterName ) { config.reporterNames.push_back( _reporterName ); }
+
+    inline void addWarning( ConfigData& config, std::string const& _warning ) {
+        if( _warning == "NoAssertions" )
+            config.warnings = static_cast<WarnAbout::What>( config.warnings | WarnAbout::NoAssertions );
+        else
+            throw std::runtime_error( "Unrecognised warning: '" + _warning + "'" );
+    }
+    inline void setOrder( ConfigData& config, std::string const& order ) {
+        if( startsWith( "declared", order ) )
+            config.runOrder = RunTests::InDeclarationOrder;
+        else if( startsWith( "lexical", order ) )
+            config.runOrder = RunTests::InLexicographicalOrder;
+        else if( startsWith( "random", order ) )
+            config.runOrder = RunTests::InRandomOrder;
+        else
+            throw std::runtime_error( "Unrecognised ordering: '" + order + "'" );
+    }
+    inline void setRngSeed( ConfigData& config, std::string const& seed ) {
+        if( seed == "time" ) {
+            config.rngSeed = static_cast<unsigned int>( std::time(0) );
+        }
+        else {
+            std::stringstream ss;
+            ss << seed;
+            ss >> config.rngSeed;
+            if( ss.fail() )
+                throw std::runtime_error( "Argment to --rng-seed should be the word 'time' or a number" );
+        }
+    }
+    inline void setVerbosity( ConfigData& config, int level ) {
+        // !TBD: accept strings?
+        config.verbosity = static_cast<Verbosity::Level>( level );
+    }
+    inline void setShowDurations( ConfigData& config, bool _showDurations ) {
+        config.showDurations = _showDurations
+            ? ShowDurations::Always
+            : ShowDurations::Never;
+    }
+    inline void loadTestNamesFromFile( ConfigData& config, std::string const& _filename ) {
+        std::ifstream f( _filename.c_str() );
+        if( !f.is_open() )
+            throw std::domain_error( "Unable to load input file: " + _filename );
+
+        std::string line;
+        while( std::getline( f, line ) ) {
+            line = trim(line);
+            if( !line.empty() && !startsWith( line, "#" ) )
+                addTestOrTags( config, "\"" + line + "\"," );
+        }
+    }
+
+    inline Clara::CommandLine<ConfigData> makeCommandLineParser() {
+
+        using namespace Clara;
+        CommandLine<ConfigData> cli;
+
+        cli.bindProcessName( &ConfigData::processName );
+
+        cli["-?"]["-h"]["--help"]
+            .describe( "display usage information" )
+            .bind( &ConfigData::showHelp );
+
+        cli["-l"]["--list-tests"]
+            .describe( "list all/matching test cases" )
+            .bind( &ConfigData::listTests );
+
+        cli["-t"]["--list-tags"]
+            .describe( "list all/matching tags" )
+            .bind( &ConfigData::listTags );
+
+        cli["-s"]["--success"]
+            .describe( "include successful tests in output" )
+            .bind( &ConfigData::showSuccessfulTests );
+
+        cli["-b"]["--break"]
+            .describe( "break into debugger on failure" )
+            .bind( &ConfigData::shouldDebugBreak );
+
+        cli["-e"]["--nothrow"]
+            .describe( "skip exception tests" )
+            .bind( &ConfigData::noThrow );
+
+        cli["-i"]["--invisibles"]
+            .describe( "show invisibles (tabs, newlines)" )
+            .bind( &ConfigData::showInvisibles );
+
+        cli["-o"]["--out"]
+            .describe( "output filename" )
+            .bind( &ConfigData::outputFilename, "filename" );
+
+        cli["-r"]["--reporter"]
+//            .placeholder( "name[:filename]" )
+            .describe( "reporter to use (defaults to console)" )
+            .bind( &addReporterName, "name" );
+
+        cli["-n"]["--name"]
+            .describe( "suite name" )
+            .bind( &ConfigData::name, "name" );
+
+        cli["-a"]["--abort"]
+            .describe( "abort at first failure" )
+            .bind( &abortAfterFirst );
+
+        cli["-x"]["--abortx"]
+            .describe( "abort after x failures" )
+            .bind( &abortAfterX, "no. failures" );
+
+        cli["-w"]["--warn"]
+            .describe( "enable warnings" )
+            .bind( &addWarning, "warning name" );
+
+// - needs updating if reinstated
+//        cli.into( &setVerbosity )
+//            .describe( "level of verbosity (0=no output)" )
+//            .shortOpt( "v")
+//            .longOpt( "verbosity" )
+//            .placeholder( "level" );
+
+        cli[_]
+            .describe( "which test or tests to use" )
+            .bind( &addTestOrTags, "test name, pattern or tags" );
+
+        cli["-d"]["--durations"]
+            .describe( "show test durations" )
+            .bind( &setShowDurations, "yes/no" );
+
+        cli["-f"]["--input-file"]
+            .describe( "load test names to run from a file" )
+            .bind( &loadTestNamesFromFile, "filename" );
+
+        cli["-#"]["--filenames-as-tags"]
+            .describe( "adds a tag for the filename" )
+            .bind( &ConfigData::filenamesAsTags );
+
+        // Less common commands which don't have a short form
+        cli["--list-test-names-only"]
+            .describe( "list all/matching test cases names only" )
+            .bind( &ConfigData::listTestNamesOnly );
+
+        cli["--list-reporters"]
+            .describe( "list all reporters" )
+            .bind( &ConfigData::listReporters );
+
+        cli["--order"]
+            .describe( "test case order (defaults to decl)" )
+            .bind( &setOrder, "decl|lex|rand" );
+
+        cli["--rng-seed"]
+            .describe( "set a specific seed for random numbers" )
+            .bind( &setRngSeed, "'time'|number" );
+
+        cli["--force-colour"]
+            .describe( "force colourised output" )
+            .bind( &ConfigData::forceColour );
+
+        return cli;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_list.hpp
+#define TWOBLUECUBES_CATCH_LIST_HPP_INCLUDED
+
+// #included from: catch_text.h
+#define TWOBLUECUBES_CATCH_TEXT_H_INCLUDED
+
+#define TBC_TEXT_FORMAT_CONSOLE_WIDTH CATCH_CONFIG_CONSOLE_WIDTH
+
+#define CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE Catch
+// #included from: ../external/tbc_text_format.h
+// Only use header guard if we are not using an outer namespace
+#ifndef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+# ifdef TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+#  ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#   define TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#  endif
+# else
+#  define TWOBLUECUBES_TEXT_FORMAT_H_INCLUDED
+# endif
+#endif
+#ifndef TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#include <string>
+#include <vector>
+#include <sstream>
+
+// Use optional outer namespace
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+namespace CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE {
+#endif
+
+namespace Tbc {
+
+#ifdef TBC_TEXT_FORMAT_CONSOLE_WIDTH
+    const unsigned int consoleWidth = TBC_TEXT_FORMAT_CONSOLE_WIDTH;
+#else
+    const unsigned int consoleWidth = 80;
+#endif
+
+    struct TextAttributes {
+        TextAttributes()
+        :   initialIndent( std::string::npos ),
+            indent( 0 ),
+            width( consoleWidth-1 ),
+            tabChar( '\t' )
+        {}
+
+        TextAttributes& setInitialIndent( std::size_t _value )  { initialIndent = _value; return *this; }
+        TextAttributes& setIndent( std::size_t _value )         { indent = _value; return *this; }
+        TextAttributes& setWidth( std::size_t _value )          { width = _value; return *this; }
+        TextAttributes& setTabChar( char _value )               { tabChar = _value; return *this; }
+
+        std::size_t initialIndent;  // indent of first line, or npos
+        std::size_t indent;         // indent of subsequent lines, or all if initialIndent is npos
+        std::size_t width;          // maximum width of text, including indent. Longer text will wrap
+        char tabChar;               // If this char is seen the indent is changed to current pos
+    };
+
+    class Text {
+    public:
+        Text( std::string const& _str, TextAttributes const& _attr = TextAttributes() )
+        : attr( _attr )
+        {
+            std::string wrappableChars = " [({.,/|\\-";
+            std::size_t indent = _attr.initialIndent != std::string::npos
+                ? _attr.initialIndent
+                : _attr.indent;
+            std::string remainder = _str;
+
+            while( !remainder.empty() ) {
+                if( lines.size() >= 1000 ) {
+                    lines.push_back( "... message truncated due to excessive size" );
+                    return;
+                }
+                std::size_t tabPos = std::string::npos;
+                std::size_t width = (std::min)( remainder.size(), _attr.width - indent );
+                std::size_t pos = remainder.find_first_of( '\n' );
+                if( pos <= width ) {
+                    width = pos;
+                }
+                pos = remainder.find_last_of( _attr.tabChar, width );
+                if( pos != std::string::npos ) {
+                    tabPos = pos;
+                    if( remainder[width] == '\n' )
+                        width--;
+                    remainder = remainder.substr( 0, tabPos ) + remainder.substr( tabPos+1 );
+                }
+
+                if( width == remainder.size() ) {
+                    spliceLine( indent, remainder, width );
+                }
+                else if( remainder[width] == '\n' ) {
+                    spliceLine( indent, remainder, width );
+                    if( width <= 1 || remainder.size() != 1 )
+                        remainder = remainder.substr( 1 );
+                    indent = _attr.indent;
+                }
+                else {
+                    pos = remainder.find_last_of( wrappableChars, width );
+                    if( pos != std::string::npos && pos > 0 ) {
+                        spliceLine( indent, remainder, pos );
+                        if( remainder[0] == ' ' )
+                            remainder = remainder.substr( 1 );
+                    }
+                    else {
+                        spliceLine( indent, remainder, width-1 );
+                        lines.back() += "-";
+                    }
+                    if( lines.size() == 1 )
+                        indent = _attr.indent;
+                    if( tabPos != std::string::npos )
+                        indent += tabPos;
+                }
+            }
+        }
+
+        void spliceLine( std::size_t _indent, std::string& _remainder, std::size_t _pos ) {
+            lines.push_back( std::string( _indent, ' ' ) + _remainder.substr( 0, _pos ) );
+            _remainder = _remainder.substr( _pos );
+        }
+
+        typedef std::vector<std::string>::const_iterator const_iterator;
+
+        const_iterator begin() const { return lines.begin(); }
+        const_iterator end() const { return lines.end(); }
+        std::string const& last() const { return lines.back(); }
+        std::size_t size() const { return lines.size(); }
+        std::string const& operator[]( std::size_t _index ) const { return lines[_index]; }
+        std::string toString() const {
+            std::ostringstream oss;
+            oss << *this;
+            return oss.str();
+        }
+
+        inline friend std::ostream& operator << ( std::ostream& _stream, Text const& _text ) {
+            for( Text::const_iterator it = _text.begin(), itEnd = _text.end();
+                it != itEnd; ++it ) {
+                if( it != _text.begin() )
+                    _stream << "\n";
+                _stream << *it;
+            }
+            return _stream;
+        }
+
+    private:
+        std::string str;
+        TextAttributes attr;
+        std::vector<std::string> lines;
+    };
+
+} // end namespace Tbc
+
+#ifdef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+} // end outer namespace
+#endif
+
+#endif // TWOBLUECUBES_TEXT_FORMAT_H_ALREADY_INCLUDED
+#undef CLICHE_TBC_TEXT_FORMAT_OUTER_NAMESPACE
+
+namespace Catch {
+    using Tbc::Text;
+    using Tbc::TextAttributes;
+}
+
+// #included from: catch_console_colour.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_HPP_INCLUDED
+
+namespace Catch {
+
+    struct Colour {
+        enum Code {
+            None = 0,
+
+            White,
+            Red,
+            Green,
+            Blue,
+            Cyan,
+            Yellow,
+            Grey,
+
+            Bright = 0x10,
+
+            BrightRed = Bright | Red,
+            BrightGreen = Bright | Green,
+            LightGrey = Bright | Grey,
+            BrightWhite = Bright | White,
+
+            // By intention
+            FileName = LightGrey,
+            Warning = Yellow,
+            ResultError = BrightRed,
+            ResultSuccess = BrightGreen,
+            ResultExpectedFailure = Warning,
+
+            Error = BrightRed,
+            Success = Green,
+
+            OriginalExpression = Cyan,
+            ReconstructedExpression = Yellow,
+
+            SecondaryText = LightGrey,
+            Headers = White
+        };
+
+        // Use constructed object for RAII guard
+        Colour( Code _colourCode );
+        Colour( Colour const& other );
+        ~Colour();
+
+        // Use static method for one-shot changes
+        static void use( Code _colourCode );
+
+    private:
+        bool m_moved;
+    };
+
+    inline std::ostream& operator << ( std::ostream& os, Colour const& ) { return os; }
+
+} // end namespace Catch
+
+// #included from: catch_interfaces_reporter.h
+#define TWOBLUECUBES_CATCH_INTERFACES_REPORTER_H_INCLUDED
+
+#include <string>
+#include <ostream>
+#include <map>
+#include <assert.h>
+
+namespace Catch
+{
+    struct ReporterConfig {
+        explicit ReporterConfig( Ptr<IConfig const> const& _fullConfig )
+        :   m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
+
+        ReporterConfig( Ptr<IConfig const> const& _fullConfig, std::ostream& _stream )
+        :   m_stream( &_stream ), m_fullConfig( _fullConfig ) {}
+
+        std::ostream& stream() const    { return *m_stream; }
+        Ptr<IConfig const> fullConfig() const { return m_fullConfig; }
+
+    private:
+        std::ostream* m_stream;
+        Ptr<IConfig const> m_fullConfig;
+    };
+
+    struct ReporterPreferences {
+        ReporterPreferences()
+        : shouldRedirectStdOut( false )
+        {}
+
+        bool shouldRedirectStdOut;
+    };
+
+    template<typename T>
+    struct LazyStat : Option<T> {
+        LazyStat() : used( false ) {}
+        LazyStat& operator=( T const& _value ) {
+            Option<T>::operator=( _value );
+            used = false;
+            return *this;
+        }
+        void reset() {
+            Option<T>::reset();
+            used = false;
+        }
+        bool used;
+    };
+
+    struct TestRunInfo {
+        TestRunInfo( std::string const& _name ) : name( _name ) {}
+        std::string name;
+    };
+    struct GroupInfo {
+        GroupInfo(  std::string const& _name,
+                    std::size_t _groupIndex,
+                    std::size_t _groupsCount )
+        :   name( _name ),
+            groupIndex( _groupIndex ),
+            groupsCounts( _groupsCount )
+        {}
+
+        std::string name;
+        std::size_t groupIndex;
+        std::size_t groupsCounts;
+    };
+
+    struct AssertionStats {
+        AssertionStats( AssertionResult const& _assertionResult,
+                        std::vector<MessageInfo> const& _infoMessages,
+                        Totals const& _totals )
+        :   assertionResult( _assertionResult ),
+            infoMessages( _infoMessages ),
+            totals( _totals )
+        {
+            if( assertionResult.hasMessage() ) {
+                // Copy message into messages list.
+                // !TBD This should have been done earlier, somewhere
+                MessageBuilder builder( assertionResult.getTestMacroName(), assertionResult.getSourceInfo(), assertionResult.getResultType() );
+                builder << assertionResult.getMessage();
+                builder.m_info.message = builder.m_stream.str();
+
+                infoMessages.push_back( builder.m_info );
+            }
+        }
+        virtual ~AssertionStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        AssertionStats( AssertionStats const& )              = default;
+        AssertionStats( AssertionStats && )                  = default;
+        AssertionStats& operator = ( AssertionStats const& ) = default;
+        AssertionStats& operator = ( AssertionStats && )     = default;
+#  endif
+
+        AssertionResult assertionResult;
+        std::vector<MessageInfo> infoMessages;
+        Totals totals;
+    };
+
+    struct SectionStats {
+        SectionStats(   SectionInfo const& _sectionInfo,
+                        Counts const& _assertions,
+                        double _durationInSeconds,
+                        bool _missingAssertions )
+        :   sectionInfo( _sectionInfo ),
+            assertions( _assertions ),
+            durationInSeconds( _durationInSeconds ),
+            missingAssertions( _missingAssertions )
+        {}
+        virtual ~SectionStats();
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        SectionStats( SectionStats const& )              = default;
+        SectionStats( SectionStats && )                  = default;
+        SectionStats& operator = ( SectionStats const& ) = default;
+        SectionStats& operator = ( SectionStats && )     = default;
+#  endif
+
+        SectionInfo sectionInfo;
+        Counts assertions;
+        double durationInSeconds;
+        bool missingAssertions;
+    };
+
+    struct TestCaseStats {
+        TestCaseStats(  TestCaseInfo const& _testInfo,
+                        Totals const& _totals,
+                        std::string const& _stdOut,
+                        std::string const& _stdErr,
+                        bool _aborting )
+        : testInfo( _testInfo ),
+            totals( _totals ),
+            stdOut( _stdOut ),
+            stdErr( _stdErr ),
+            aborting( _aborting )
+        {}
+        virtual ~TestCaseStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestCaseStats( TestCaseStats const& )              = default;
+        TestCaseStats( TestCaseStats && )                  = default;
+        TestCaseStats& operator = ( TestCaseStats const& ) = default;
+        TestCaseStats& operator = ( TestCaseStats && )     = default;
+#  endif
+
+        TestCaseInfo testInfo;
+        Totals totals;
+        std::string stdOut;
+        std::string stdErr;
+        bool aborting;
+    };
+
+    struct TestGroupStats {
+        TestGroupStats( GroupInfo const& _groupInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   groupInfo( _groupInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        TestGroupStats( GroupInfo const& _groupInfo )
+        :   groupInfo( _groupInfo ),
+            aborting( false )
+        {}
+        virtual ~TestGroupStats();
+
+#  ifdef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestGroupStats( TestGroupStats const& )              = default;
+        TestGroupStats( TestGroupStats && )                  = default;
+        TestGroupStats& operator = ( TestGroupStats const& ) = default;
+        TestGroupStats& operator = ( TestGroupStats && )     = default;
+#  endif
+
+        GroupInfo groupInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct TestRunStats {
+        TestRunStats(   TestRunInfo const& _runInfo,
+                        Totals const& _totals,
+                        bool _aborting )
+        :   runInfo( _runInfo ),
+            totals( _totals ),
+            aborting( _aborting )
+        {}
+        virtual ~TestRunStats();
+
+#  ifndef CATCH_CONFIG_CPP11_GENERATED_METHODS
+        TestRunStats( TestRunStats const& _other )
+        :   runInfo( _other.runInfo ),
+            totals( _other.totals ),
+            aborting( _other.aborting )
+        {}
+#  else
+        TestRunStats( TestRunStats const& )              = default;
+        TestRunStats( TestRunStats && )                  = default;
+        TestRunStats& operator = ( TestRunStats const& ) = default;
+        TestRunStats& operator = ( TestRunStats && )     = default;
+#  endif
+
+        TestRunInfo runInfo;
+        Totals totals;
+        bool aborting;
+    };
+
+    struct IStreamingReporter : IShared {
+        virtual ~IStreamingReporter();
+
+        // Implementing class must also provide the following static method:
+        // static std::string getDescription();
+
+        virtual ReporterPreferences getPreferences() const = 0;
+
+        virtual void noMatchingTestCases( std::string const& spec ) = 0;
+
+        virtual void testRunStarting( TestRunInfo const& testRunInfo ) = 0;
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) = 0;
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) = 0;
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) = 0;
+
+        virtual void assertionStarting( AssertionInfo const& assertionInfo ) = 0;
+
+        // The return value indicates if the messages buffer should be cleared:
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) = 0;
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) = 0;
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) = 0;
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) = 0;
+        virtual void testRunEnded( TestRunStats const& testRunStats ) = 0;
+
+        virtual void skipTest( TestCaseInfo const& testInfo ) = 0;
+    };
+
+    struct IReporterFactory : IShared {
+        virtual ~IReporterFactory();
+        virtual IStreamingReporter* create( ReporterConfig const& config ) const = 0;
+        virtual std::string getDescription() const = 0;
+    };
+
+    struct IReporterRegistry {
+        typedef std::map<std::string, Ptr<IReporterFactory> > FactoryMap;
+        typedef std::vector<Ptr<IReporterFactory> > Listeners;
+
+        virtual ~IReporterRegistry();
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const = 0;
+        virtual FactoryMap const& getFactories() const = 0;
+        virtual Listeners const& getListeners() const = 0;
+    };
+
+    Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter );
+
+}
+
+#include <limits>
+#include <algorithm>
+
+namespace Catch {
+
+    inline std::size_t listTests( Config const& config ) {
+
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Matching test cases:\n";
+        else {
+            Catch::cout() << "All available test cases:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::size_t matchedTests = 0;
+        TextAttributes nameAttr, tagsAttr;
+        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
+        tagsAttr.setIndent( 6 );
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Colour::Code colour = testCaseInfo.isHidden()
+                ? Colour::SecondaryText
+                : Colour::None;
+            Colour colourGuard( colour );
+
+            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
+            if( !testCaseInfo.tags.empty() )
+                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
+        }
+
+        if( !config.testSpec().hasFilters() )
+            Catch::cout() << pluralise( matchedTests, "test case" ) << "\n" << std::endl;
+        else
+            Catch::cout() << pluralise( matchedTests, "matching test case" ) << "\n" << std::endl;
+        return matchedTests;
+    }
+
+    inline std::size_t listTestsNamesOnly( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( !config.testSpec().hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        std::size_t matchedTests = 0;
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            matchedTests++;
+            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
+            Catch::cout() << testCaseInfo.name << std::endl;
+        }
+        return matchedTests;
+    }
+
+    struct TagInfo {
+        TagInfo() : count ( 0 ) {}
+        void add( std::string const& spelling ) {
+            ++count;
+            spellings.insert( spelling );
+        }
+        std::string all() const {
+            std::string out;
+            for( std::set<std::string>::const_iterator it = spellings.begin(), itEnd = spellings.end();
+                        it != itEnd;
+                        ++it )
+                out += "[" + *it + "]";
+            return out;
+        }
+        std::set<std::string> spellings;
+        std::size_t count;
+    };
+
+    inline std::size_t listTags( Config const& config ) {
+        TestSpec testSpec = config.testSpec();
+        if( config.testSpec().hasFilters() )
+            Catch::cout() << "Tags for matching test cases:\n";
+        else {
+            Catch::cout() << "All available tags:\n";
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
+        }
+
+        std::map<std::string, TagInfo> tagCounts;
+
+        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
+        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
+                it != itEnd;
+                ++it ) {
+            for( std::set<std::string>::const_iterator  tagIt = it->getTestCaseInfo().tags.begin(),
+                                                        tagItEnd = it->getTestCaseInfo().tags.end();
+                    tagIt != tagItEnd;
+                    ++tagIt ) {
+                std::string tagName = *tagIt;
+                std::string lcaseTagName = toLower( tagName );
+                std::map<std::string, TagInfo>::iterator countIt = tagCounts.find( lcaseTagName );
+                if( countIt == tagCounts.end() )
+                    countIt = tagCounts.insert( std::make_pair( lcaseTagName, TagInfo() ) ).first;
+                countIt->second.add( tagName );
+            }
+        }
+
+        for( std::map<std::string, TagInfo>::const_iterator countIt = tagCounts.begin(),
+                                                            countItEnd = tagCounts.end();
+                countIt != countItEnd;
+                ++countIt ) {
+            std::ostringstream oss;
+            oss << "  " << std::setw(2) << countIt->second.count << "  ";
+            Text wrapper( countIt->second.all(), TextAttributes()
+                                                    .setInitialIndent( 0 )
+                                                    .setIndent( oss.str().size() )
+                                                    .setWidth( CATCH_CONFIG_CONSOLE_WIDTH-10 ) );
+            Catch::cout() << oss.str() << wrapper << "\n";
+        }
+        Catch::cout() << pluralise( tagCounts.size(), "tag" ) << "\n" << std::endl;
+        return tagCounts.size();
+    }
+
+    inline std::size_t listReporters( Config const& /*config*/ ) {
+        Catch::cout() << "Available reporters:\n";
+        IReporterRegistry::FactoryMap const& factories = getRegistryHub().getReporterRegistry().getFactories();
+        IReporterRegistry::FactoryMap::const_iterator itBegin = factories.begin(), itEnd = factories.end(), it;
+        std::size_t maxNameLen = 0;
+        for(it = itBegin; it != itEnd; ++it )
+            maxNameLen = (std::max)( maxNameLen, it->first.size() );
+
+        for(it = itBegin; it != itEnd; ++it ) {
+            Text wrapper( it->second->getDescription(), TextAttributes()
+                                                        .setInitialIndent( 0 )
+                                                        .setIndent( 7+maxNameLen )
+                                                        .setWidth( CATCH_CONFIG_CONSOLE_WIDTH - maxNameLen-8 ) );
+            Catch::cout() << "  "
+                    << it->first
+                    << ":"
+                    << std::string( maxNameLen - it->first.size() + 2, ' ' )
+                    << wrapper << "\n";
+        }
+        Catch::cout() << std::endl;
+        return factories.size();
+    }
+
+    inline Option<std::size_t> list( Config const& config ) {
+        Option<std::size_t> listedCount;
+        if( config.listTests() )
+            listedCount = listedCount.valueOr(0) + listTests( config );
+        if( config.listTestNamesOnly() )
+            listedCount = listedCount.valueOr(0) + listTestsNamesOnly( config );
+        if( config.listTags() )
+            listedCount = listedCount.valueOr(0) + listTags( config );
+        if( config.listReporters() )
+            listedCount = listedCount.valueOr(0) + listReporters( config );
+        return listedCount;
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_run_context.hpp
+#define TWOBLUECUBES_CATCH_RUNNER_IMPL_HPP_INCLUDED
+
+// #included from: catch_test_case_tracker.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_TRACKER_HPP_INCLUDED
+
+#include <map>
+#include <string>
+#include <assert.h>
+#include <vector>
+
+namespace Catch {
+namespace TestCaseTracking {
+
+    struct ITracker : SharedImpl<> {
+        virtual ~ITracker();
+
+        // static queries
+        virtual std::string name() const = 0;
+
+        // dynamic queries
+        virtual bool isComplete() const = 0; // Successfully completed or failed
+        virtual bool isSuccessfullyCompleted() const = 0;
+        virtual bool isOpen() const = 0; // Started but not complete
+        virtual bool hasChildren() const = 0;
+
+        virtual ITracker& parent() = 0;
+
+        // actions
+        virtual void close() = 0; // Successfully complete
+        virtual void fail() = 0;
+        virtual void markAsNeedingAnotherRun() = 0;
+
+        virtual void addChild( Ptr<ITracker> const& child ) = 0;
+        virtual ITracker* findChild( std::string const& name ) = 0;
+        virtual void openChild() = 0;
+    };
+
+    class TrackerContext {
+
+        enum RunState {
+            NotStarted,
+            Executing,
+            CompletedCycle
+        };
+
+        Ptr<ITracker> m_rootTracker;
+        ITracker* m_currentTracker;
+        RunState m_runState;
+
+    public:
+
+        static TrackerContext& instance() {
+            static TrackerContext s_instance;
+            return s_instance;
+        }
+
+        TrackerContext()
+        :   m_currentTracker( CATCH_NULL ),
+            m_runState( NotStarted )
+        {}
+
+        ITracker& startRun();
+
+        void endRun() {
+            m_rootTracker.reset();
+            m_currentTracker = CATCH_NULL;
+            m_runState = NotStarted;
+        }
+
+        void startCycle() {
+            m_currentTracker = m_rootTracker.get();
+            m_runState = Executing;
+        }
+        void completeCycle() {
+            m_runState = CompletedCycle;
+        }
+
+        bool completedCycle() const {
+            return m_runState == CompletedCycle;
+        }
+        ITracker& currentTracker() {
+            return *m_currentTracker;
+        }
+        void setCurrentTracker( ITracker* tracker ) {
+            m_currentTracker = tracker;
+        }
+    };
+
+    class TrackerBase : public ITracker {
+    protected:
+        enum CycleState {
+            NotStarted,
+            Executing,
+            ExecutingChildren,
+            NeedsAnotherRun,
+            CompletedSuccessfully,
+            Failed
+        };
+        class TrackerHasName {
+            std::string m_name;
+        public:
+            TrackerHasName( std::string const& name ) : m_name( name ) {}
+            bool operator ()( Ptr<ITracker> const& tracker ) {
+                return tracker->name() == m_name;
+            }
+        };
+        typedef std::vector<Ptr<ITracker> > Children;
+        std::string m_name;
+        TrackerContext& m_ctx;
+        ITracker* m_parent;
+        Children m_children;
+        CycleState m_runState;
+    public:
+        TrackerBase( std::string const& name, TrackerContext& ctx, ITracker* parent )
+        :   m_name( name ),
+            m_ctx( ctx ),
+            m_parent( parent ),
+            m_runState( NotStarted )
+        {}
+        virtual ~TrackerBase();
+
+        virtual std::string name() const CATCH_OVERRIDE {
+            return m_name;
+        }
+        virtual bool isComplete() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully || m_runState == Failed;
+        }
+        virtual bool isSuccessfullyCompleted() const CATCH_OVERRIDE {
+            return m_runState == CompletedSuccessfully;
+        }
+        virtual bool isOpen() const CATCH_OVERRIDE {
+            return m_runState != NotStarted && !isComplete();
+        }
+        virtual bool hasChildren() const CATCH_OVERRIDE {
+            return !m_children.empty();
+        }
+
+        virtual void addChild( Ptr<ITracker> const& child ) CATCH_OVERRIDE {
+            m_children.push_back( child );
+        }
+
+        virtual ITracker* findChild( std::string const& name ) CATCH_OVERRIDE {
+            Children::const_iterator it = std::find_if( m_children.begin(), m_children.end(), TrackerHasName( name ) );
+            return( it != m_children.end() )
+                ? it->get()
+                : CATCH_NULL;
+        }
+        virtual ITracker& parent() CATCH_OVERRIDE {
+            assert( m_parent ); // Should always be non-null except for root
+            return *m_parent;
+        }
+
+        virtual void openChild() CATCH_OVERRIDE {
+            if( m_runState != ExecutingChildren ) {
+                m_runState = ExecutingChildren;
+                if( m_parent )
+                    m_parent->openChild();
+            }
+        }
+        void open() {
+            m_runState = Executing;
+            moveToThis();
+            if( m_parent )
+                m_parent->openChild();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+
+            // Close any still open children (e.g. generators)
+            while( &m_ctx.currentTracker() != this )
+                m_ctx.currentTracker().close();
+
+            switch( m_runState ) {
+                case NotStarted:
+                case CompletedSuccessfully:
+                case Failed:
+                    throw std::logic_error( "Illogical state" );
+
+                case NeedsAnotherRun:
+                    break;;
+
+                case Executing:
+                    m_runState = CompletedSuccessfully;
+                    break;
+                case ExecutingChildren:
+                    if( m_children.empty() || m_children.back()->isComplete() )
+                        m_runState = CompletedSuccessfully;
+                    break;
+
+                default:
+                    throw std::logic_error( "Unexpected state" );
+            }
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void fail() CATCH_OVERRIDE {
+            m_runState = Failed;
+            if( m_parent )
+                m_parent->markAsNeedingAnotherRun();
+            moveToParent();
+            m_ctx.completeCycle();
+        }
+        virtual void markAsNeedingAnotherRun() CATCH_OVERRIDE {
+            m_runState = NeedsAnotherRun;
+        }
+    private:
+        void moveToParent() {
+            assert( m_parent );
+            m_ctx.setCurrentTracker( m_parent );
+        }
+        void moveToThis() {
+            m_ctx.setCurrentTracker( this );
+        }
+    };
+
+    class SectionTracker : public TrackerBase {
+    public:
+        SectionTracker( std::string const& name, TrackerContext& ctx, ITracker* parent )
+        :   TrackerBase( name, ctx, parent )
+        {}
+        virtual ~SectionTracker();
+
+        static SectionTracker& acquire( TrackerContext& ctx, std::string const& name ) {
+            SectionTracker* section = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( name ) ) {
+                section = dynamic_cast<SectionTracker*>( childTracker );
+                assert( section );
+            }
+            else {
+                section = new SectionTracker( name, ctx, &currentTracker );
+                currentTracker.addChild( section );
+            }
+            if( !ctx.completedCycle() && !section->isComplete() ) {
+
+                section->open();
+            }
+            return *section;
+        }
+    };
+
+    class IndexTracker : public TrackerBase {
+        int m_size;
+        int m_index;
+    public:
+        IndexTracker( std::string const& name, TrackerContext& ctx, ITracker* parent, int size )
+        :   TrackerBase( name, ctx, parent ),
+            m_size( size ),
+            m_index( -1 )
+        {}
+        virtual ~IndexTracker();
+
+        static IndexTracker& acquire( TrackerContext& ctx, std::string const& name, int size ) {
+            IndexTracker* tracker = CATCH_NULL;
+
+            ITracker& currentTracker = ctx.currentTracker();
+            if( ITracker* childTracker = currentTracker.findChild( name ) ) {
+                tracker = dynamic_cast<IndexTracker*>( childTracker );
+                assert( tracker );
+            }
+            else {
+                tracker = new IndexTracker( name, ctx, &currentTracker, size );
+                currentTracker.addChild( tracker );
+            }
+
+            if( !ctx.completedCycle() && !tracker->isComplete() ) {
+                if( tracker->m_runState != ExecutingChildren && tracker->m_runState != NeedsAnotherRun )
+                    tracker->moveNext();
+                tracker->open();
+            }
+
+            return *tracker;
+        }
+
+        int index() const { return m_index; }
+
+        void moveNext() {
+            m_index++;
+            m_children.clear();
+        }
+
+        virtual void close() CATCH_OVERRIDE {
+            TrackerBase::close();
+            if( m_runState == CompletedSuccessfully && m_index < m_size-1 )
+                m_runState = Executing;
+        }
+    };
+
+    inline ITracker& TrackerContext::startRun() {
+        m_rootTracker = new SectionTracker( "{root}", *this, CATCH_NULL );
+        m_currentTracker = CATCH_NULL;
+        m_runState = Executing;
+        return *m_rootTracker;
+    }
+
+} // namespace TestCaseTracking
+
+using TestCaseTracking::ITracker;
+using TestCaseTracking::TrackerContext;
+using TestCaseTracking::SectionTracker;
+using TestCaseTracking::IndexTracker;
+
+} // namespace Catch
+
+// #included from: catch_fatal_condition.hpp
+#define TWOBLUECUBES_CATCH_FATAL_CONDITION_H_INCLUDED
+
+namespace Catch {
+
+    // Report the error condition then exit the process
+    inline void fatal( std::string const& message, int exitCode ) {
+        IContext& context = Catch::getCurrentContext();
+        IResultCapture* resultCapture = context.getResultCapture();
+        resultCapture->handleFatalErrorCondition( message );
+
+		if( Catch::alwaysTrue() ) // avoids "no return" warnings
+            exit( exitCode );
+    }
+
+} // namespace Catch
+
+#if defined ( CATCH_PLATFORM_WINDOWS ) /////////////////////////////////////////
+
+namespace Catch {
+
+    struct FatalConditionHandler {
+		void reset() {}
+	};
+
+} // namespace Catch
+
+#else // Not Windows - assumed to be POSIX compatible //////////////////////////
+
+#include <signal.h>
+
+namespace Catch {
+
+    struct SignalDefs { int id; const char* name; };
+    extern SignalDefs signalDefs[];
+    SignalDefs signalDefs[] = {
+            { SIGINT,  "SIGINT - Terminal interrupt signal" },
+            { SIGILL,  "SIGILL - Illegal instruction signal" },
+            { SIGFPE,  "SIGFPE - Floating point error signal" },
+            { SIGSEGV, "SIGSEGV - Segmentation violation signal" },
+            { SIGTERM, "SIGTERM - Termination request signal" },
+            { SIGABRT, "SIGABRT - Abort (abnormal termination) signal" }
+        };
+
+    struct FatalConditionHandler {
+
+        static void handleSignal( int sig ) {
+            for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
+                if( sig == signalDefs[i].id )
+                    fatal( signalDefs[i].name, -sig );
+            fatal( "<unknown signal>", -sig );
+        }
+
+        FatalConditionHandler() : m_isSet( true ) {
+            for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
+                signal( signalDefs[i].id, handleSignal );
+        }
+        ~FatalConditionHandler() {
+            reset();
+        }
+        void reset() {
+            if( m_isSet ) {
+                for( std::size_t i = 0; i < sizeof(signalDefs)/sizeof(SignalDefs); ++i )
+                    signal( signalDefs[i].id, SIG_DFL );
+                m_isSet = false;
+            }
+        }
+
+        bool m_isSet;
+    };
+
+} // namespace Catch
+
+#endif // not Windows
+
+#include <set>
+#include <string>
+
+namespace Catch {
+
+    class StreamRedirect {
+
+    public:
+        StreamRedirect( std::ostream& stream, std::string& targetString )
+        :   m_stream( stream ),
+            m_prevBuf( stream.rdbuf() ),
+            m_targetString( targetString )
+        {
+            stream.rdbuf( m_oss.rdbuf() );
+        }
+
+        ~StreamRedirect() {
+            m_targetString += m_oss.str();
+            m_stream.rdbuf( m_prevBuf );
+        }
+
+    private:
+        std::ostream& m_stream;
+        std::streambuf* m_prevBuf;
+        std::ostringstream m_oss;
+        std::string& m_targetString;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class RunContext : public IResultCapture, public IRunner {
+
+        RunContext( RunContext const& );
+        void operator =( RunContext const& );
+
+    public:
+
+        explicit RunContext( Ptr<IConfig const> const& _config, Ptr<IStreamingReporter> const& reporter )
+        :   m_runInfo( _config->name() ),
+            m_context( getCurrentMutableContext() ),
+            m_activeTestCase( CATCH_NULL ),
+            m_config( _config ),
+            m_reporter( reporter )
+        {
+            m_context.setRunner( this );
+            m_context.setConfig( m_config );
+            m_context.setResultCapture( this );
+            m_reporter->testRunStarting( m_runInfo );
+        }
+
+        virtual ~RunContext() {
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, aborting() ) );
+        }
+
+        void testGroupStarting( std::string const& testSpec, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupStarting( GroupInfo( testSpec, groupIndex, groupsCount ) );
+        }
+        void testGroupEnded( std::string const& testSpec, Totals const& totals, std::size_t groupIndex, std::size_t groupsCount ) {
+            m_reporter->testGroupEnded( TestGroupStats( GroupInfo( testSpec, groupIndex, groupsCount ), totals, aborting() ) );
+        }
+
+        Totals runTest( TestCase const& testCase ) {
+            Totals prevTotals = m_totals;
+
+            std::string redirectedCout;
+            std::string redirectedCerr;
+
+            TestCaseInfo testInfo = testCase.getTestCaseInfo();
+
+            m_reporter->testCaseStarting( testInfo );
+
+            m_activeTestCase = &testCase;
+
+            do {
+                m_trackerContext.startRun();
+                do {
+                    m_trackerContext.startCycle();
+                    m_testCaseTracker = &SectionTracker::acquire( m_trackerContext, testInfo.name );
+                    runCurrentTest( redirectedCout, redirectedCerr );
+                }
+                while( !m_testCaseTracker->isSuccessfullyCompleted() && !aborting() );
+            }
+            // !TBD: deprecated - this will be replaced by indexed trackers
+            while( getCurrentContext().advanceGeneratorsForCurrentTest() && !aborting() );
+
+            Totals deltaTotals = m_totals.delta( prevTotals );
+            m_totals.testCases += deltaTotals.testCases;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        redirectedCout,
+                                                        redirectedCerr,
+                                                        aborting() ) );
+
+            m_activeTestCase = CATCH_NULL;
+            m_testCaseTracker = CATCH_NULL;
+
+            return deltaTotals;
+        }
+
+        Ptr<IConfig const> config() const {
+            return m_config;
+        }
+
+    private: // IResultCapture
+
+        virtual void assertionEnded( AssertionResult const& result ) {
+            if( result.getResultType() == ResultWas::Ok ) {
+                m_totals.assertions.passed++;
+            }
+            else if( !result.isOk() ) {
+                m_totals.assertions.failed++;
+            }
+
+            if( m_reporter->assertionEnded( AssertionStats( result, m_messages, m_totals ) ) )
+                m_messages.clear();
+
+            // Reset working state
+            m_lastAssertionInfo = AssertionInfo( "", m_lastAssertionInfo.lineInfo, "{Unknown expression after the reported line}" , m_lastAssertionInfo.resultDisposition );
+            m_lastResult = result;
+        }
+
+        virtual bool sectionStarted (
+            SectionInfo const& sectionInfo,
+            Counts& assertions
+        )
+        {
+            std::ostringstream oss;
+            oss << sectionInfo.name << "@" << sectionInfo.lineInfo;
+
+            ITracker& sectionTracker = SectionTracker::acquire( m_trackerContext, oss.str() );
+            if( !sectionTracker.isOpen() )
+                return false;
+            m_activeSections.push_back( &sectionTracker );
+
+            m_lastAssertionInfo.lineInfo = sectionInfo.lineInfo;
+
+            m_reporter->sectionStarting( sectionInfo );
+
+            assertions = m_totals.assertions;
+
+            return true;
+        }
+        bool testForMissingAssertions( Counts& assertions ) {
+            if( assertions.total() != 0 )
+                return false;
+            if( !m_config->warnAboutMissingAssertions() )
+                return false;
+            if( m_trackerContext.currentTracker().hasChildren() )
+                return false;
+            m_totals.assertions.failed++;
+            assertions.failed++;
+            return true;
+        }
+
+        virtual void sectionEnded( SectionEndInfo const& endInfo ) {
+            Counts assertions = m_totals.assertions - endInfo.prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( !m_activeSections.empty() ) {
+                m_activeSections.back()->close();
+                m_activeSections.pop_back();
+            }
+
+            m_reporter->sectionEnded( SectionStats( endInfo.sectionInfo, assertions, endInfo.durationInSeconds, missingAssertions ) );
+            m_messages.clear();
+        }
+
+        virtual void sectionEndedEarly( SectionEndInfo const& endInfo ) {
+            if( m_unfinishedSections.empty() )
+                m_activeSections.back()->fail();
+            else
+                m_activeSections.back()->close();
+            m_activeSections.pop_back();
+
+            m_unfinishedSections.push_back( endInfo );
+        }
+
+        virtual void pushScopedMessage( MessageInfo const& message ) {
+            m_messages.push_back( message );
+        }
+
+        virtual void popScopedMessage( MessageInfo const& message ) {
+            m_messages.erase( std::remove( m_messages.begin(), m_messages.end(), message ), m_messages.end() );
+        }
+
+        virtual std::string getCurrentTestName() const {
+            return m_activeTestCase
+                ? m_activeTestCase->getTestCaseInfo().name
+                : "";
+        }
+
+        virtual const AssertionResult* getLastResult() const {
+            return &m_lastResult;
+        }
+
+        virtual void handleFatalErrorCondition( std::string const& message ) {
+            ResultBuilder resultBuilder = makeUnexpectedResultBuilder();
+            resultBuilder.setResultType( ResultWas::FatalErrorCondition );
+            resultBuilder << message;
+            resultBuilder.captureExpression();
+
+            handleUnfinishedSections();
+
+            // Recreate section for test case (as we will lose the one that was in scope)
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+
+            Counts assertions;
+            assertions.failed = 1;
+            SectionStats testCaseSectionStats( testCaseSection, assertions, 0, false );
+            m_reporter->sectionEnded( testCaseSectionStats );
+
+            TestCaseInfo testInfo = m_activeTestCase->getTestCaseInfo();
+
+            Totals deltaTotals;
+            deltaTotals.testCases.failed = 1;
+            m_reporter->testCaseEnded( TestCaseStats(   testInfo,
+                                                        deltaTotals,
+                                                        "",
+                                                        "",
+                                                        false ) );
+            m_totals.testCases.failed++;
+            testGroupEnded( "", m_totals, 1, 1 );
+            m_reporter->testRunEnded( TestRunStats( m_runInfo, m_totals, false ) );
+        }
+
+    public:
+        // !TBD We need to do this another way!
+        bool aborting() const {
+            return m_totals.assertions.failed == static_cast<std::size_t>( m_config->abortAfter() );
+        }
+
+    private:
+
+        void runCurrentTest( std::string& redirectedCout, std::string& redirectedCerr ) {
+            TestCaseInfo const& testCaseInfo = m_activeTestCase->getTestCaseInfo();
+            SectionInfo testCaseSection( testCaseInfo.lineInfo, testCaseInfo.name, testCaseInfo.description );
+            m_reporter->sectionStarting( testCaseSection );
+            Counts prevAssertions = m_totals.assertions;
+            double duration = 0;
+            try {
+                m_lastAssertionInfo = AssertionInfo( "TEST_CASE", testCaseInfo.lineInfo, "", ResultDisposition::Normal );
+
+                seedRng( *m_config );
+
+                Timer timer;
+                timer.start();
+                if( m_reporter->getPreferences().shouldRedirectStdOut ) {
+                    StreamRedirect coutRedir( Catch::cout(), redirectedCout );
+                    StreamRedirect cerrRedir( Catch::cerr(), redirectedCerr );
+                    invokeActiveTestCase();
+                }
+                else {
+                    invokeActiveTestCase();
+                }
+                duration = timer.getElapsedSeconds();
+            }
+            catch( TestFailureException& ) {
+                // This just means the test was aborted due to failure
+            }
+            catch(...) {
+                makeUnexpectedResultBuilder().useActiveException();
+            }
+            m_testCaseTracker->close();
+            handleUnfinishedSections();
+            m_messages.clear();
+
+            Counts assertions = m_totals.assertions - prevAssertions;
+            bool missingAssertions = testForMissingAssertions( assertions );
+
+            if( testCaseInfo.okToFail() ) {
+                std::swap( assertions.failedButOk, assertions.failed );
+                m_totals.assertions.failed -= assertions.failedButOk;
+                m_totals.assertions.failedButOk += assertions.failedButOk;
+            }
+
+            SectionStats testCaseSectionStats( testCaseSection, assertions, duration, missingAssertions );
+            m_reporter->sectionEnded( testCaseSectionStats );
+        }
+
+        void invokeActiveTestCase() {
+            FatalConditionHandler fatalConditionHandler; // Handle signals
+            m_activeTestCase->invoke();
+            fatalConditionHandler.reset();
+        }
+
+    private:
+
+        ResultBuilder makeUnexpectedResultBuilder() const {
+            return ResultBuilder(   m_lastAssertionInfo.macroName.c_str(),
+                                    m_lastAssertionInfo.lineInfo,
+                                    m_lastAssertionInfo.capturedExpression.c_str(),
+                                    m_lastAssertionInfo.resultDisposition );
+        }
+
+        void handleUnfinishedSections() {
+            // If sections ended prematurely due to an exception we stored their
+            // infos here so we can tear them down outside the unwind process.
+            for( std::vector<SectionEndInfo>::const_reverse_iterator it = m_unfinishedSections.rbegin(),
+                        itEnd = m_unfinishedSections.rend();
+                    it != itEnd;
+                    ++it )
+                sectionEnded( *it );
+            m_unfinishedSections.clear();
+        }
+
+        TestRunInfo m_runInfo;
+        IMutableContext& m_context;
+        TestCase const* m_activeTestCase;
+        ITracker* m_testCaseTracker;
+        ITracker* m_currentSectionTracker;
+        AssertionResult m_lastResult;
+
+        Ptr<IConfig const> m_config;
+        Totals m_totals;
+        Ptr<IStreamingReporter> m_reporter;
+        std::vector<MessageInfo> m_messages;
+        AssertionInfo m_lastAssertionInfo;
+        std::vector<SectionEndInfo> m_unfinishedSections;
+        std::vector<ITracker*> m_activeSections;
+        TrackerContext m_trackerContext;
+    };
+
+    IResultCapture& getResultCapture() {
+        if( IResultCapture* capture = getCurrentContext().getResultCapture() )
+            return *capture;
+        else
+            throw std::logic_error( "No result capture instance" );
+    }
+
+} // end namespace Catch
+
+// #included from: internal/catch_version.h
+#define TWOBLUECUBES_CATCH_VERSION_H_INCLUDED
+
+namespace Catch {
+
+    // Versioning information
+    struct Version {
+        Version(    unsigned int _majorVersion,
+                    unsigned int _minorVersion,
+                    unsigned int _patchNumber,
+                    std::string const& _branchName,
+                    unsigned int _buildNumber );
+
+        unsigned int const majorVersion;
+        unsigned int const minorVersion;
+        unsigned int const patchNumber;
+
+        // buildNumber is only used if branchName is not null
+        std::string const branchName;
+        unsigned int const buildNumber;
+
+        friend std::ostream& operator << ( std::ostream& os, Version const& version );
+
+    private:
+        void operator=( Version const& );
+    };
+
+    extern Version libraryVersion;
+}
+
+#include <fstream>
+#include <stdlib.h>
+#include <limits>
+
+namespace Catch {
+
+    Ptr<IStreamingReporter> createReporter( std::string const& reporterName, Ptr<Config> const& config ) {
+        Ptr<IStreamingReporter> reporter = getRegistryHub().getReporterRegistry().create( reporterName, config.get() );
+        if( !reporter ) {
+            std::ostringstream oss;
+            oss << "No reporter registered with name: '" << reporterName << "'";
+            throw std::domain_error( oss.str() );
+        }
+        return reporter;
+    }
+
+    Ptr<IStreamingReporter> makeReporter( Ptr<Config> const& config ) {
+        std::vector<std::string> reporters = config->getReporterNames();
+        if( reporters.empty() )
+            reporters.push_back( "console" );
+
+        Ptr<IStreamingReporter> reporter;
+        for( std::vector<std::string>::const_iterator it = reporters.begin(), itEnd = reporters.end();
+                it != itEnd;
+                ++it )
+            reporter = addReporter( reporter, createReporter( *it, config ) );
+        return reporter;
+    }
+    Ptr<IStreamingReporter> addListeners( Ptr<IConfig const> const& config, Ptr<IStreamingReporter> reporters ) {
+        IReporterRegistry::Listeners listeners = getRegistryHub().getReporterRegistry().getListeners();
+        for( IReporterRegistry::Listeners::const_iterator it = listeners.begin(), itEnd = listeners.end();
+                it != itEnd;
+                ++it )
+            reporters = addReporter(reporters, (*it)->create( ReporterConfig( config ) ) );
+        return reporters;
+    }
+
+    Totals runTests( Ptr<Config> const& config ) {
+
+        Ptr<IConfig const> iconfig = config.get();
+
+        Ptr<IStreamingReporter> reporter = makeReporter( config );
+        reporter = addListeners( iconfig, reporter );
+
+        RunContext context( iconfig, reporter );
+
+        Totals totals;
+
+        context.testGroupStarting( config->name(), 1, 1 );
+
+        TestSpec testSpec = config->testSpec();
+        if( !testSpec.hasFilters() )
+            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "~[.]" ).testSpec(); // All not hidden tests
+
+        std::vector<TestCase> const& allTestCases = getAllTestCasesSorted( *iconfig );
+        for( std::vector<TestCase>::const_iterator it = allTestCases.begin(), itEnd = allTestCases.end();
+                it != itEnd;
+                ++it ) {
+            if( !context.aborting() && matchTest( *it, testSpec, *iconfig ) )
+                totals += context.runTest( *it );
+            else
+                reporter->skipTest( *it );
+        }
+
+        context.testGroupEnded( iconfig->name(), totals, 1, 1 );
+        return totals;
+    }
+
+    void applyFilenamesAsTags( IConfig const& config ) {
+        std::vector<TestCase> const& tests = getAllTestCasesSorted( config );
+        for(std::size_t i = 0; i < tests.size(); ++i ) {
+            TestCase& test = const_cast<TestCase&>( tests[i] );
+            std::set<std::string> tags = test.tags;
+
+            std::string filename = test.lineInfo.file;
+            std::string::size_type lastSlash = filename.find_last_of( "\\/" );
+            if( lastSlash != std::string::npos )
+                filename = filename.substr( lastSlash+1 );
+
+            std::string::size_type lastDot = filename.find_last_of( "." );
+            if( lastDot != std::string::npos )
+                filename = filename.substr( 0, lastDot );
+
+            tags.insert( "#" + filename );
+            setTags( test, tags );
+        }
+    }
+
+    class Session : NonCopyable {
+        static bool alreadyInstantiated;
+
+    public:
+
+        struct OnUnusedOptions { enum DoWhat { Ignore, Fail }; };
+
+        Session()
+        : m_cli( makeCommandLineParser() ) {
+            if( alreadyInstantiated ) {
+                std::string msg = "Only one instance of Catch::Session can ever be used";
+                Catch::cerr() << msg << std::endl;
+                throw std::logic_error( msg );
+            }
+            alreadyInstantiated = true;
+        }
+        ~Session() {
+            Catch::cleanUp();
+        }
+
+        void showHelp( std::string const& processName ) {
+            Catch::cout() << "\nCatch v" << libraryVersion << "\n";
+
+            m_cli.usage( Catch::cout(), processName );
+            Catch::cout() << "For more detail usage please see the project docs\n" << std::endl;
+        }
+
+        int applyCommandLine( int argc, char const* argv[], OnUnusedOptions::DoWhat unusedOptionBehaviour = OnUnusedOptions::Fail ) {
+            try {
+                m_cli.setThrowOnUnrecognisedTokens( unusedOptionBehaviour == OnUnusedOptions::Fail );
+                m_unusedTokens = m_cli.parseInto( argc, argv, m_configData );
+                if( m_configData.showHelp )
+                    showHelp( m_configData.processName );
+                m_config.reset();
+            }
+            catch( std::exception& ex ) {
+                {
+                    Colour colourGuard( Colour::Red );
+                    Catch::cerr()
+                        << "\nError(s) in input:\n"
+                        << Text( ex.what(), TextAttributes().setIndent(2) )
+                        << "\n\n";
+                }
+                m_cli.usage( Catch::cout(), m_configData.processName );
+                return (std::numeric_limits<int>::max)();
+            }
+            return 0;
+        }
+
+        void useConfigData( ConfigData const& _configData ) {
+            m_configData = _configData;
+            m_config.reset();
+        }
+
+        int run( int argc, char const* argv[] ) {
+
+            int returnCode = applyCommandLine( argc, argv );
+            if( returnCode == 0 )
+                returnCode = run();
+            return returnCode;
+        }
+        int run( int argc, char* argv[] ) {
+            return run( argc, const_cast<char const**>( argv ) );
+        }
+
+        int run() {
+            if( m_configData.showHelp )
+                return 0;
+
+            try
+            {
+                config(); // Force config to be constructed
+
+                seedRng( *m_config );
+
+                if( m_configData.filenamesAsTags )
+                    applyFilenamesAsTags( *m_config );
+
+                // Handle list request
+                if( Option<std::size_t> listed = list( config() ) )
+                    return static_cast<int>( *listed );
+
+                return static_cast<int>( runTests( m_config ).assertions.failed );
+            }
+            catch( std::exception& ex ) {
+                Catch::cerr() << ex.what() << std::endl;
+                return (std::numeric_limits<int>::max)();
+            }
+        }
+
+        Clara::CommandLine<ConfigData> const& cli() const {
+            return m_cli;
+        }
+        std::vector<Clara::Parser::Token> const& unusedTokens() const {
+            return m_unusedTokens;
+        }
+        ConfigData& configData() {
+            return m_configData;
+        }
+        Config& config() {
+            if( !m_config )
+                m_config = new Config( m_configData );
+            return *m_config;
+        }
+    private:
+        Clara::CommandLine<ConfigData> m_cli;
+        std::vector<Clara::Parser::Token> m_unusedTokens;
+        ConfigData m_configData;
+        Ptr<Config> m_config;
+    };
+
+    bool Session::alreadyInstantiated = false;
+
+} // end namespace Catch
+
+// #included from: catch_registry_hub.hpp
+#define TWOBLUECUBES_CATCH_REGISTRY_HUB_HPP_INCLUDED
+
+// #included from: catch_test_case_registry_impl.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_REGISTRY_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <set>
+#include <sstream>
+#include <iostream>
+#include <algorithm>
+
+namespace Catch {
+
+    struct LexSort {
+        bool operator() (TestCase i,TestCase j) const { return (i<j);}
+    };
+    struct RandomNumberGenerator {
+        int operator()( int n ) const { return std::rand() % n; }
+    };
+
+    inline std::vector<TestCase> sortTests( IConfig const& config, std::vector<TestCase> const& unsortedTestCases ) {
+
+        std::vector<TestCase> sorted = unsortedTestCases;
+
+        switch( config.runOrder() ) {
+            case RunTests::InLexicographicalOrder:
+                std::sort( sorted.begin(), sorted.end(), LexSort() );
+                break;
+            case RunTests::InRandomOrder:
+                {
+                    seedRng( config );
+
+                    RandomNumberGenerator rng;
+                    std::random_shuffle( sorted.begin(), sorted.end(), rng );
+                }
+                break;
+            case RunTests::InDeclarationOrder:
+                // already in declaration order
+                break;
+        }
+        return sorted;
+    }
+    bool matchTest( TestCase const& testCase, TestSpec const& testSpec, IConfig const& config ) {
+        return testSpec.matches( testCase ) && ( config.allowThrows() || !testCase.throws() );
+    }
+
+    void enforceNoDuplicateTestCases( std::vector<TestCase> const& functions ) {
+        std::set<TestCase> seenFunctions;
+        for( std::vector<TestCase>::const_iterator it = functions.begin(), itEnd = functions.end();
+            it != itEnd;
+            ++it ) {
+            std::pair<std::set<TestCase>::const_iterator, bool> prev = seenFunctions.insert( *it );
+            if( !prev.second ){
+                Catch::cerr()
+                << Colour( Colour::Red )
+                << "error: TEST_CASE( \"" << it->name << "\" ) already defined.\n"
+                << "\tFirst seen at " << prev.first->getTestCaseInfo().lineInfo << "\n"
+                << "\tRedefined at " << it->getTestCaseInfo().lineInfo << std::endl;
+                exit(1);
+            }
+        }
+    }
+
+    std::vector<TestCase> filterTests( std::vector<TestCase> const& testCases, TestSpec const& testSpec, IConfig const& config ) {
+        std::vector<TestCase> filtered;
+        filtered.reserve( testCases.size() );
+        for( std::vector<TestCase>::const_iterator it = testCases.begin(), itEnd = testCases.end();
+                it != itEnd;
+                ++it )
+            if( matchTest( *it, testSpec, config ) )
+                filtered.push_back( *it );
+        return filtered;
+    }
+    std::vector<TestCase> const& getAllTestCasesSorted( IConfig const& config ) {
+        return getRegistryHub().getTestCaseRegistry().getAllTestsSorted( config );
+    }
+
+    class TestRegistry : public ITestCaseRegistry {
+    public:
+        TestRegistry()
+        :   m_currentSortOrder( RunTests::InDeclarationOrder ),
+            m_unnamedCount( 0 )
+        {}
+        virtual ~TestRegistry();
+
+        virtual void registerTest( TestCase const& testCase ) {
+            std::string name = testCase.getTestCaseInfo().name;
+            if( name == "" ) {
+                std::ostringstream oss;
+                oss << "Anonymous test case " << ++m_unnamedCount;
+                return registerTest( testCase.withName( oss.str() ) );
+            }
+            m_functions.push_back( testCase );
+        }
+
+        virtual std::vector<TestCase> const& getAllTests() const {
+            return m_functions;
+        }
+        virtual std::vector<TestCase> const& getAllTestsSorted( IConfig const& config ) const {
+            if( m_sortedFunctions.empty() )
+                enforceNoDuplicateTestCases( m_functions );
+
+            if(  m_currentSortOrder != config.runOrder() || m_sortedFunctions.empty() ) {
+                m_sortedFunctions = sortTests( config, m_functions );
+                m_currentSortOrder = config.runOrder();
+            }
+            return m_sortedFunctions;
+        }
+
+    private:
+        std::vector<TestCase> m_functions;
+        mutable RunTests::InWhatOrder m_currentSortOrder;
+        mutable std::vector<TestCase> m_sortedFunctions;
+        size_t m_unnamedCount;
+        std::ios_base::Init m_ostreamInit; // Forces cout/ cerr to be initialised
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class FreeFunctionTestCase : public SharedImpl<ITestCase> {
+    public:
+
+        FreeFunctionTestCase( TestFunction fun ) : m_fun( fun ) {}
+
+        virtual void invoke() const {
+            m_fun();
+        }
+
+    private:
+        virtual ~FreeFunctionTestCase();
+
+        TestFunction m_fun;
+    };
+
+    inline std::string extractClassName( std::string const& classOrQualifiedMethodName ) {
+        std::string className = classOrQualifiedMethodName;
+        if( startsWith( className, "&" ) )
+        {
+            std::size_t lastColons = className.rfind( "::" );
+            std::size_t penultimateColons = className.rfind( "::", lastColons-1 );
+            if( penultimateColons == std::string::npos )
+                penultimateColons = 1;
+            className = className.substr( penultimateColons, lastColons-penultimateColons );
+        }
+        return className;
+    }
+
+    void registerTestCase
+        (   ITestCase* testCase,
+            char const* classOrQualifiedMethodName,
+            NameAndDesc const& nameAndDesc,
+            SourceLineInfo const& lineInfo ) {
+
+        getMutableRegistryHub().registerTest
+            ( makeTestCase
+                (   testCase,
+                    extractClassName( classOrQualifiedMethodName ),
+                    nameAndDesc.name,
+                    nameAndDesc.description,
+                    lineInfo ) );
+    }
+    void registerTestCaseFunction
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCase( new FreeFunctionTestCase( function ), "", nameAndDesc, lineInfo );
+    }
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    AutoReg::AutoReg
+        (   TestFunction function,
+            SourceLineInfo const& lineInfo,
+            NameAndDesc const& nameAndDesc ) {
+        registerTestCaseFunction( function, lineInfo, nameAndDesc );
+    }
+
+    AutoReg::~AutoReg() {}
+
+} // end namespace Catch
+
+// #included from: catch_reporter_registry.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRY_HPP_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class ReporterRegistry : public IReporterRegistry {
+
+    public:
+
+        virtual ~ReporterRegistry() CATCH_OVERRIDE {}
+
+        virtual IStreamingReporter* create( std::string const& name, Ptr<IConfig const> const& config ) const CATCH_OVERRIDE {
+            FactoryMap::const_iterator it =  m_factories.find( name );
+            if( it == m_factories.end() )
+                return CATCH_NULL;
+            return it->second->create( ReporterConfig( config ) );
+        }
+
+        void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) {
+            m_factories.insert( std::make_pair( name, factory ) );
+        }
+        void registerListener( Ptr<IReporterFactory> const& factory ) {
+            m_listeners.push_back( factory );
+        }
+
+        virtual FactoryMap const& getFactories() const CATCH_OVERRIDE {
+            return m_factories;
+        }
+        virtual Listeners const& getListeners() const CATCH_OVERRIDE {
+            return m_listeners;
+        }
+
+    private:
+        FactoryMap m_factories;
+        Listeners m_listeners;
+    };
+}
+
+// #included from: catch_exception_translator_registry.hpp
+#define TWOBLUECUBES_CATCH_EXCEPTION_TRANSLATOR_REGISTRY_HPP_INCLUDED
+
+#ifdef __OBJC__
+#import "Foundation/Foundation.h"
+#endif
+
+namespace Catch {
+
+    class ExceptionTranslatorRegistry : public IExceptionTranslatorRegistry {
+    public:
+        ~ExceptionTranslatorRegistry() {
+            deleteAll( m_translators );
+        }
+
+        virtual void registerTranslator( const IExceptionTranslator* translator ) {
+            m_translators.push_back( translator );
+        }
+
+        virtual std::string translateActiveException() const {
+            try {
+#ifdef __OBJC__
+                // In Objective-C try objective-c exceptions first
+                @try {
+                    return tryTranslators();
+                }
+                @catch (NSException *exception) {
+                    return Catch::toString( [exception description] );
+                }
+#else
+                return tryTranslators();
+#endif
+            }
+            catch( TestFailureException& ) {
+                throw;
+            }
+            catch( std::exception& ex ) {
+                return ex.what();
+            }
+            catch( std::string& msg ) {
+                return msg;
+            }
+            catch( const char* msg ) {
+                return msg;
+            }
+            catch(...) {
+                return "Unknown exception";
+            }
+        }
+
+        std::string tryTranslators() const {
+            if( m_translators.empty() )
+                throw;
+            else
+                return m_translators[0]->translate( m_translators.begin()+1, m_translators.end() );
+        }
+
+    private:
+        std::vector<const IExceptionTranslator*> m_translators;
+    };
+}
+
+namespace Catch {
+
+    namespace {
+
+        class RegistryHub : public IRegistryHub, public IMutableRegistryHub {
+
+            RegistryHub( RegistryHub const& );
+            void operator=( RegistryHub const& );
+
+        public: // IRegistryHub
+            RegistryHub() {
+            }
+            virtual IReporterRegistry const& getReporterRegistry() const CATCH_OVERRIDE {
+                return m_reporterRegistry;
+            }
+            virtual ITestCaseRegistry const& getTestCaseRegistry() const CATCH_OVERRIDE {
+                return m_testCaseRegistry;
+            }
+            virtual IExceptionTranslatorRegistry& getExceptionTranslatorRegistry() CATCH_OVERRIDE {
+                return m_exceptionTranslatorRegistry;
+            }
+
+        public: // IMutableRegistryHub
+            virtual void registerReporter( std::string const& name, Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerReporter( name, factory );
+            }
+            virtual void registerListener( Ptr<IReporterFactory> const& factory ) CATCH_OVERRIDE {
+                m_reporterRegistry.registerListener( factory );
+            }
+            virtual void registerTest( TestCase const& testInfo ) CATCH_OVERRIDE {
+                m_testCaseRegistry.registerTest( testInfo );
+            }
+            virtual void registerTranslator( const IExceptionTranslator* translator ) CATCH_OVERRIDE {
+                m_exceptionTranslatorRegistry.registerTranslator( translator );
+            }
+
+        private:
+            TestRegistry m_testCaseRegistry;
+            ReporterRegistry m_reporterRegistry;
+            ExceptionTranslatorRegistry m_exceptionTranslatorRegistry;
+        };
+
+        // Single, global, instance
+        inline RegistryHub*& getTheRegistryHub() {
+            static RegistryHub* theRegistryHub = CATCH_NULL;
+            if( !theRegistryHub )
+                theRegistryHub = new RegistryHub();
+            return theRegistryHub;
+        }
+    }
+
+    IRegistryHub& getRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    IMutableRegistryHub& getMutableRegistryHub() {
+        return *getTheRegistryHub();
+    }
+    void cleanUp() {
+        delete getTheRegistryHub();
+        getTheRegistryHub() = CATCH_NULL;
+        cleanUpContext();
+    }
+    std::string translateActiveException() {
+        return getRegistryHub().getExceptionTranslatorRegistry().translateActiveException();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_notimplemented_exception.hpp
+#define TWOBLUECUBES_CATCH_NOTIMPLEMENTED_EXCEPTION_HPP_INCLUDED
+
+#include <ostream>
+
+namespace Catch {
+
+    NotImplementedException::NotImplementedException( SourceLineInfo const& lineInfo )
+    :   m_lineInfo( lineInfo ) {
+        std::ostringstream oss;
+        oss << lineInfo << ": function ";
+        oss << "not implemented";
+        m_what = oss.str();
+    }
+
+    const char* NotImplementedException::what() const CATCH_NOEXCEPT {
+        return m_what.c_str();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_context_impl.hpp
+#define TWOBLUECUBES_CATCH_CONTEXT_IMPL_HPP_INCLUDED
+
+// #included from: catch_stream.hpp
+#define TWOBLUECUBES_CATCH_STREAM_HPP_INCLUDED
+
+#include <stdexcept>
+#include <cstdio>
+#include <iostream>
+
+namespace Catch {
+
+    template<typename WriterF, size_t bufferSize=256>
+    class StreamBufImpl : public StreamBufBase {
+        char data[bufferSize];
+        WriterF m_writer;
+
+    public:
+        StreamBufImpl() {
+            setp( data, data + sizeof(data) );
+        }
+
+        ~StreamBufImpl() CATCH_NOEXCEPT {
+            sync();
+        }
+
+    private:
+        int overflow( int c ) {
+            sync();
+
+            if( c != EOF ) {
+                if( pbase() == epptr() )
+                    m_writer( std::string( 1, static_cast<char>( c ) ) );
+                else
+                    sputc( static_cast<char>( c ) );
+            }
+            return 0;
+        }
+
+        int sync() {
+            if( pbase() != pptr() ) {
+                m_writer( std::string( pbase(), static_cast<std::string::size_type>( pptr() - pbase() ) ) );
+                setp( pbase(), epptr() );
+            }
+            return 0;
+        }
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    FileStream::FileStream( std::string const& filename ) {
+        m_ofs.open( filename.c_str() );
+        if( m_ofs.fail() ) {
+            std::ostringstream oss;
+            oss << "Unable to open file: '" << filename << "'";
+            throw std::domain_error( oss.str() );
+        }
+    }
+
+    std::ostream& FileStream::stream() const {
+        return m_ofs;
+    }
+
+    struct OutputDebugWriter {
+
+        void operator()( std::string const&str ) {
+            writeToDebugConsole( str );
+        }
+    };
+
+    DebugOutStream::DebugOutStream()
+    :   m_streamBuf( new StreamBufImpl<OutputDebugWriter>() ),
+        m_os( m_streamBuf.get() )
+    {}
+
+    std::ostream& DebugOutStream::stream() const {
+        return m_os;
+    }
+
+    // Store the streambuf from cout up-front because
+    // cout may get redirected when running tests
+    CoutStream::CoutStream()
+    :   m_os( Catch::cout().rdbuf() )
+    {}
+
+    std::ostream& CoutStream::stream() const {
+        return m_os;
+    }
+
+#ifndef CATCH_CONFIG_NOSTDOUT // If you #define this you must implement these functions
+    std::ostream& cout() {
+        return std::cout;
+    }
+    std::ostream& cerr() {
+        return std::cerr;
+    }
+#endif
+}
+
+namespace Catch {
+
+    class Context : public IMutableContext {
+
+        Context() : m_config( CATCH_NULL ), m_runner( CATCH_NULL ), m_resultCapture( CATCH_NULL ) {}
+        Context( Context const& );
+        void operator=( Context const& );
+
+    public: // IContext
+        virtual IResultCapture* getResultCapture() {
+            return m_resultCapture;
+        }
+        virtual IRunner* getRunner() {
+            return m_runner;
+        }
+        virtual size_t getGeneratorIndex( std::string const& fileInfo, size_t totalSize ) {
+            return getGeneratorsForCurrentTest()
+            .getGeneratorInfo( fileInfo, totalSize )
+            .getCurrentIndex();
+        }
+        virtual bool advanceGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            return generators && generators->moveNext();
+        }
+
+        virtual Ptr<IConfig const> getConfig() const {
+            return m_config;
+        }
+
+    public: // IMutableContext
+        virtual void setResultCapture( IResultCapture* resultCapture ) {
+            m_resultCapture = resultCapture;
+        }
+        virtual void setRunner( IRunner* runner ) {
+            m_runner = runner;
+        }
+        virtual void setConfig( Ptr<IConfig const> const& config ) {
+            m_config = config;
+        }
+
+        friend IMutableContext& getCurrentMutableContext();
+
+    private:
+        IGeneratorsForTest* findGeneratorsForCurrentTest() {
+            std::string testName = getResultCapture()->getCurrentTestName();
+
+            std::map<std::string, IGeneratorsForTest*>::const_iterator it =
+                m_generatorsByTestName.find( testName );
+            return it != m_generatorsByTestName.end()
+                ? it->second
+                : CATCH_NULL;
+        }
+
+        IGeneratorsForTest& getGeneratorsForCurrentTest() {
+            IGeneratorsForTest* generators = findGeneratorsForCurrentTest();
+            if( !generators ) {
+                std::string testName = getResultCapture()->getCurrentTestName();
+                generators = createGeneratorsForTest();
+                m_generatorsByTestName.insert( std::make_pair( testName, generators ) );
+            }
+            return *generators;
+        }
+
+    private:
+        Ptr<IConfig const> m_config;
+        IRunner* m_runner;
+        IResultCapture* m_resultCapture;
+        std::map<std::string, IGeneratorsForTest*> m_generatorsByTestName;
+    };
+
+    namespace {
+        Context* currentContext = CATCH_NULL;
+    }
+    IMutableContext& getCurrentMutableContext() {
+        if( !currentContext )
+            currentContext = new Context();
+        return *currentContext;
+    }
+    IContext& getCurrentContext() {
+        return getCurrentMutableContext();
+    }
+
+    void cleanUpContext() {
+        delete currentContext;
+        currentContext = CATCH_NULL;
+    }
+}
+
+// #included from: catch_console_colour_impl.hpp
+#define TWOBLUECUBES_CATCH_CONSOLE_COLOUR_IMPL_HPP_INCLUDED
+
+namespace Catch {
+    namespace {
+
+        struct IColourImpl {
+            virtual ~IColourImpl() {}
+            virtual void use( Colour::Code _colourCode ) = 0;
+        };
+
+        struct NoColourImpl : IColourImpl {
+            void use( Colour::Code ) {}
+
+            static IColourImpl* instance() {
+                static NoColourImpl s_instance;
+                return &s_instance;
+            }
+        };
+
+    } // anon namespace
+} // namespace Catch
+
+#if !defined( CATCH_CONFIG_COLOUR_NONE ) && !defined( CATCH_CONFIG_COLOUR_WINDOWS ) && !defined( CATCH_CONFIG_COLOUR_ANSI )
+#   ifdef CATCH_PLATFORM_WINDOWS
+#       define CATCH_CONFIG_COLOUR_WINDOWS
+#   else
+#       define CATCH_CONFIG_COLOUR_ANSI
+#   endif
+#endif
+
+#if defined ( CATCH_CONFIG_COLOUR_WINDOWS ) /////////////////////////////////////////
+
+#ifndef NOMINMAX
+#define NOMINMAX
+#endif
+
+#ifdef __AFXDLL
+#include <AfxWin.h>
+#else
+#include <windows.h>
+#endif
+
+namespace Catch {
+namespace {
+
+    class Win32ColourImpl : public IColourImpl {
+    public:
+        Win32ColourImpl() : stdoutHandle( GetStdHandle(STD_OUTPUT_HANDLE) )
+        {
+            CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
+            GetConsoleScreenBufferInfo( stdoutHandle, &csbiInfo );
+            originalForegroundAttributes = csbiInfo.wAttributes & ~( BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_BLUE | BACKGROUND_INTENSITY );
+            originalBackgroundAttributes = csbiInfo.wAttributes & ~( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
+        }
+
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:      return setTextAttribute( originalForegroundAttributes );
+                case Colour::White:     return setTextAttribute( FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+                case Colour::Red:       return setTextAttribute( FOREGROUND_RED );
+                case Colour::Green:     return setTextAttribute( FOREGROUND_GREEN );
+                case Colour::Blue:      return setTextAttribute( FOREGROUND_BLUE );
+                case Colour::Cyan:      return setTextAttribute( FOREGROUND_BLUE | FOREGROUND_GREEN );
+                case Colour::Yellow:    return setTextAttribute( FOREGROUND_RED | FOREGROUND_GREEN );
+                case Colour::Grey:      return setTextAttribute( 0 );
+
+                case Colour::LightGrey:     return setTextAttribute( FOREGROUND_INTENSITY );
+                case Colour::BrightRed:     return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_RED );
+                case Colour::BrightGreen:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN );
+                case Colour::BrightWhite:   return setTextAttribute( FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_BLUE );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+
+    private:
+        void setTextAttribute( WORD _textAttribute ) {
+            SetConsoleTextAttribute( stdoutHandle, _textAttribute | originalBackgroundAttributes );
+        }
+        HANDLE stdoutHandle;
+        WORD originalForegroundAttributes;
+        WORD originalBackgroundAttributes;
+    };
+
+    IColourImpl* platformColourInstance() {
+        static Win32ColourImpl s_instance;
+        return &s_instance;
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#elif defined( CATCH_CONFIG_COLOUR_ANSI ) //////////////////////////////////////
+
+#include <unistd.h>
+
+namespace Catch {
+namespace {
+
+    // use POSIX/ ANSI console terminal codes
+    // Thanks to Adam Strzelecki for original contribution
+    // (http://github.com/nanoant)
+    // https://github.com/philsquared/Catch/pull/131
+    class PosixColourImpl : public IColourImpl {
+    public:
+        virtual void use( Colour::Code _colourCode ) {
+            switch( _colourCode ) {
+                case Colour::None:
+                case Colour::White:     return setColour( "[0m" );
+                case Colour::Red:       return setColour( "[0;31m" );
+                case Colour::Green:     return setColour( "[0;32m" );
+                case Colour::Blue:      return setColour( "[0:34m" );
+                case Colour::Cyan:      return setColour( "[0;36m" );
+                case Colour::Yellow:    return setColour( "[0;33m" );
+                case Colour::Grey:      return setColour( "[1;30m" );
+
+                case Colour::LightGrey:     return setColour( "[0;37m" );
+                case Colour::BrightRed:     return setColour( "[1;31m" );
+                case Colour::BrightGreen:   return setColour( "[1;32m" );
+                case Colour::BrightWhite:   return setColour( "[1;37m" );
+
+                case Colour::Bright: throw std::logic_error( "not a colour" );
+            }
+        }
+        static IColourImpl* instance() {
+            static PosixColourImpl s_instance;
+            return &s_instance;
+        }
+
+    private:
+        void setColour( const char* _escapeCode ) {
+            Catch::cout() << '\033' << _escapeCode;
+        }
+    };
+
+    IColourImpl* platformColourInstance() {
+        Ptr<IConfig const> config = getCurrentContext().getConfig();
+        return (config && config->forceColour()) || isatty(STDOUT_FILENO)
+            ? PosixColourImpl::instance()
+            : NoColourImpl::instance();
+    }
+
+} // end anon namespace
+} // end namespace Catch
+
+#else  // not Windows or ANSI ///////////////////////////////////////////////
+
+namespace Catch {
+
+    static IColourImpl* platformColourInstance() { return NoColourImpl::instance(); }
+
+} // end namespace Catch
+
+#endif // Windows/ ANSI/ None
+
+namespace Catch {
+
+    Colour::Colour( Code _colourCode ) : m_moved( false ) { use( _colourCode ); }
+    Colour::Colour( Colour const& _other ) : m_moved( false ) { const_cast<Colour&>( _other ).m_moved = true; }
+    Colour::~Colour(){ if( !m_moved ) use( None ); }
+
+    void Colour::use( Code _colourCode ) {
+        static IColourImpl* impl = isDebuggerActive()
+            ? NoColourImpl::instance()
+            : platformColourInstance();
+        impl->use( _colourCode );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_generators_impl.hpp
+#define TWOBLUECUBES_CATCH_GENERATORS_IMPL_HPP_INCLUDED
+
+#include <vector>
+#include <string>
+#include <map>
+
+namespace Catch {
+
+    struct GeneratorInfo : IGeneratorInfo {
+
+        GeneratorInfo( std::size_t size )
+        :   m_size( size ),
+            m_currentIndex( 0 )
+        {}
+
+        bool moveNext() {
+            if( ++m_currentIndex == m_size ) {
+                m_currentIndex = 0;
+                return false;
+            }
+            return true;
+        }
+
+        std::size_t getCurrentIndex() const {
+            return m_currentIndex;
+        }
+
+        std::size_t m_size;
+        std::size_t m_currentIndex;
+    };
+
+    ///////////////////////////////////////////////////////////////////////////
+
+    class GeneratorsForTest : public IGeneratorsForTest {
+
+    public:
+        ~GeneratorsForTest() {
+            deleteAll( m_generatorsInOrder );
+        }
+
+        IGeneratorInfo& getGeneratorInfo( std::string const& fileInfo, std::size_t size ) {
+            std::map<std::string, IGeneratorInfo*>::const_iterator it = m_generatorsByName.find( fileInfo );
+            if( it == m_generatorsByName.end() ) {
+                IGeneratorInfo* info = new GeneratorInfo( size );
+                m_generatorsByName.insert( std::make_pair( fileInfo, info ) );
+                m_generatorsInOrder.push_back( info );
+                return *info;
+            }
+            return *it->second;
+        }
+
+        bool moveNext() {
+            std::vector<IGeneratorInfo*>::const_iterator it = m_generatorsInOrder.begin();
+            std::vector<IGeneratorInfo*>::const_iterator itEnd = m_generatorsInOrder.end();
+            for(; it != itEnd; ++it ) {
+                if( (*it)->moveNext() )
+                    return true;
+            }
+            return false;
+        }
+
+    private:
+        std::map<std::string, IGeneratorInfo*> m_generatorsByName;
+        std::vector<IGeneratorInfo*> m_generatorsInOrder;
+    };
+
+    IGeneratorsForTest* createGeneratorsForTest()
+    {
+        return new GeneratorsForTest();
+    }
+
+} // end namespace Catch
+
+// #included from: catch_assertionresult.hpp
+#define TWOBLUECUBES_CATCH_ASSERTIONRESULT_HPP_INCLUDED
+
+namespace Catch {
+
+    AssertionInfo::AssertionInfo(   std::string const& _macroName,
+                                    SourceLineInfo const& _lineInfo,
+                                    std::string const& _capturedExpression,
+                                    ResultDisposition::Flags _resultDisposition )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        capturedExpression( _capturedExpression ),
+        resultDisposition( _resultDisposition )
+    {}
+
+    AssertionResult::AssertionResult() {}
+
+    AssertionResult::AssertionResult( AssertionInfo const& info, AssertionResultData const& data )
+    :   m_info( info ),
+        m_resultData( data )
+    {}
+
+    AssertionResult::~AssertionResult() {}
+
+    // Result was a success
+    bool AssertionResult::succeeded() const {
+        return Catch::isOk( m_resultData.resultType );
+    }
+
+    // Result was a success, or failure is suppressed
+    bool AssertionResult::isOk() const {
+        return Catch::isOk( m_resultData.resultType ) || shouldSuppressFailure( m_info.resultDisposition );
+    }
+
+    ResultWas::OfType AssertionResult::getResultType() const {
+        return m_resultData.resultType;
+    }
+
+    bool AssertionResult::hasExpression() const {
+        return !m_info.capturedExpression.empty();
+    }
+
+    bool AssertionResult::hasMessage() const {
+        return !m_resultData.message.empty();
+    }
+
+    std::string AssertionResult::getExpression() const {
+        if( isFalseTest( m_info.resultDisposition ) )
+            return "!" + m_info.capturedExpression;
+        else
+            return m_info.capturedExpression;
+    }
+    std::string AssertionResult::getExpressionInMacro() const {
+        if( m_info.macroName.empty() )
+            return m_info.capturedExpression;
+        else
+            return m_info.macroName + "( " + m_info.capturedExpression + " )";
+    }
+
+    bool AssertionResult::hasExpandedExpression() const {
+        return hasExpression() && getExpandedExpression() != getExpression();
+    }
+
+    std::string AssertionResult::getExpandedExpression() const {
+        return m_resultData.reconstructedExpression;
+    }
+
+    std::string AssertionResult::getMessage() const {
+        return m_resultData.message;
+    }
+    SourceLineInfo AssertionResult::getSourceInfo() const {
+        return m_info.lineInfo;
+    }
+
+    std::string AssertionResult::getTestMacroName() const {
+        return m_info.macroName;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_test_case_info.hpp
+#define TWOBLUECUBES_CATCH_TEST_CASE_INFO_HPP_INCLUDED
+
+namespace Catch {
+
+    inline TestCaseInfo::SpecialProperties parseSpecialTag( std::string const& tag ) {
+        if( startsWith( tag, "." ) ||
+            tag == "hide" ||
+            tag == "!hide" )
+            return TestCaseInfo::IsHidden;
+        else if( tag == "!throws" )
+            return TestCaseInfo::Throws;
+        else if( tag == "!shouldfail" )
+            return TestCaseInfo::ShouldFail;
+        else if( tag == "!mayfail" )
+            return TestCaseInfo::MayFail;
+        else
+            return TestCaseInfo::None;
+    }
+    inline bool isReservedTag( std::string const& tag ) {
+        return parseSpecialTag( tag ) == TestCaseInfo::None && tag.size() > 0 && !isalnum( tag[0] );
+    }
+    inline void enforceNotReservedTag( std::string const& tag, SourceLineInfo const& _lineInfo ) {
+        if( isReservedTag( tag ) ) {
+            {
+                Colour colourGuard( Colour::Red );
+                Catch::cerr()
+                    << "Tag name [" << tag << "] not allowed.\n"
+                    << "Tag names starting with non alpha-numeric characters are reserved\n";
+            }
+            {
+                Colour colourGuard( Colour::FileName );
+                Catch::cerr() << _lineInfo << std::endl;
+            }
+            exit(1);
+        }
+    }
+
+    TestCase makeTestCase(  ITestCase* _testCase,
+                            std::string const& _className,
+                            std::string const& _name,
+                            std::string const& _descOrTags,
+                            SourceLineInfo const& _lineInfo )
+    {
+        bool isHidden( startsWith( _name, "./" ) ); // Legacy support
+
+        // Parse out tags
+        std::set<std::string> tags;
+        std::string desc, tag;
+        bool inTag = false;
+        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
+            char c = _descOrTags[i];
+            if( !inTag ) {
+                if( c == '[' )
+                    inTag = true;
+                else
+                    desc += c;
+            }
+            else {
+                if( c == ']' ) {
+                    TestCaseInfo::SpecialProperties prop = parseSpecialTag( tag );
+                    if( prop == TestCaseInfo::IsHidden )
+                        isHidden = true;
+                    else if( prop == TestCaseInfo::None )
+                        enforceNotReservedTag( tag, _lineInfo );
+
+                    tags.insert( tag );
+                    tag.clear();
+                    inTag = false;
+                }
+                else
+                    tag += c;
+            }
+        }
+        if( isHidden ) {
+            tags.insert( "hide" );
+            tags.insert( "." );
+        }
+
+        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
+        return TestCase( _testCase, info );
+    }
+
+    void setTags( TestCaseInfo& testCaseInfo, std::set<std::string> const& tags )
+    {
+        testCaseInfo.tags = tags;
+        testCaseInfo.lcaseTags.clear();
+
+        std::ostringstream oss;
+        for( std::set<std::string>::const_iterator it = tags.begin(), itEnd = tags.end(); it != itEnd; ++it ) {
+            oss << "[" << *it << "]";
+            std::string lcaseTag = toLower( *it );
+            testCaseInfo.properties = static_cast<TestCaseInfo::SpecialProperties>( testCaseInfo.properties | parseSpecialTag( lcaseTag ) );
+            testCaseInfo.lcaseTags.insert( lcaseTag );
+        }
+        testCaseInfo.tagsAsString = oss.str();
+    }
+
+    TestCaseInfo::TestCaseInfo( std::string const& _name,
+                                std::string const& _className,
+                                std::string const& _description,
+                                std::set<std::string> const& _tags,
+                                SourceLineInfo const& _lineInfo )
+    :   name( _name ),
+        className( _className ),
+        description( _description ),
+        lineInfo( _lineInfo ),
+        properties( None )
+    {
+        setTags( *this, _tags );
+    }
+
+    TestCaseInfo::TestCaseInfo( TestCaseInfo const& other )
+    :   name( other.name ),
+        className( other.className ),
+        description( other.description ),
+        tags( other.tags ),
+        lcaseTags( other.lcaseTags ),
+        tagsAsString( other.tagsAsString ),
+        lineInfo( other.lineInfo ),
+        properties( other.properties )
+    {}
+
+    bool TestCaseInfo::isHidden() const {
+        return ( properties & IsHidden ) != 0;
+    }
+    bool TestCaseInfo::throws() const {
+        return ( properties & Throws ) != 0;
+    }
+    bool TestCaseInfo::okToFail() const {
+        return ( properties & (ShouldFail | MayFail ) ) != 0;
+    }
+    bool TestCaseInfo::expectedToFail() const {
+        return ( properties & (ShouldFail ) ) != 0;
+    }
+
+    TestCase::TestCase( ITestCase* testCase, TestCaseInfo const& info ) : TestCaseInfo( info ), test( testCase ) {}
+
+    TestCase::TestCase( TestCase const& other )
+    :   TestCaseInfo( other ),
+        test( other.test )
+    {}
+
+    TestCase TestCase::withName( std::string const& _newName ) const {
+        TestCase other( *this );
+        other.name = _newName;
+        return other;
+    }
+
+    void TestCase::swap( TestCase& other ) {
+        test.swap( other.test );
+        name.swap( other.name );
+        className.swap( other.className );
+        description.swap( other.description );
+        tags.swap( other.tags );
+        lcaseTags.swap( other.lcaseTags );
+        tagsAsString.swap( other.tagsAsString );
+        std::swap( TestCaseInfo::properties, static_cast<TestCaseInfo&>( other ).properties );
+        std::swap( lineInfo, other.lineInfo );
+    }
+
+    void TestCase::invoke() const {
+        test->invoke();
+    }
+
+    bool TestCase::operator == ( TestCase const& other ) const {
+        return  test.get() == other.test.get() &&
+                name == other.name &&
+                className == other.className;
+    }
+
+    bool TestCase::operator < ( TestCase const& other ) const {
+        return name < other.name;
+    }
+    TestCase& TestCase::operator = ( TestCase const& other ) {
+        TestCase temp( other );
+        swap( temp );
+        return *this;
+    }
+
+    TestCaseInfo const& TestCase::getTestCaseInfo() const
+    {
+        return *this;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_version.hpp
+#define TWOBLUECUBES_CATCH_VERSION_HPP_INCLUDED
+
+namespace Catch {
+
+    Version::Version
+        (   unsigned int _majorVersion,
+            unsigned int _minorVersion,
+            unsigned int _patchNumber,
+            std::string const& _branchName,
+            unsigned int _buildNumber )
+    :   majorVersion( _majorVersion ),
+        minorVersion( _minorVersion ),
+        patchNumber( _patchNumber ),
+        branchName( _branchName ),
+        buildNumber( _buildNumber )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, Version const& version ) {
+        os  << version.majorVersion << "."
+            << version.minorVersion << "."
+            << version.patchNumber;
+
+        if( !version.branchName.empty() ) {
+            os  << "-" << version.branchName
+                << "." << version.buildNumber;
+        }
+        return os;
+    }
+
+    Version libraryVersion( 1, 3, 4, "", 0 );
+
+}
+
+// #included from: catch_message.hpp
+#define TWOBLUECUBES_CATCH_MESSAGE_HPP_INCLUDED
+
+namespace Catch {
+
+    MessageInfo::MessageInfo(   std::string const& _macroName,
+                                SourceLineInfo const& _lineInfo,
+                                ResultWas::OfType _type )
+    :   macroName( _macroName ),
+        lineInfo( _lineInfo ),
+        type( _type ),
+        sequence( ++globalCount )
+    {}
+
+    // This may need protecting if threading support is added
+    unsigned int MessageInfo::globalCount = 0;
+
+    ////////////////////////////////////////////////////////////////////////////
+
+    ScopedMessage::ScopedMessage( MessageBuilder const& builder )
+    : m_info( builder.m_info )
+    {
+        m_info.message = builder.m_stream.str();
+        getResultCapture().pushScopedMessage( m_info );
+    }
+    ScopedMessage::ScopedMessage( ScopedMessage const& other )
+    : m_info( other.m_info )
+    {}
+
+    ScopedMessage::~ScopedMessage() {
+        getResultCapture().popScopedMessage( m_info );
+    }
+
+} // end namespace Catch
+
+// #included from: catch_legacy_reporter_adapter.hpp
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_HPP_INCLUDED
+
+// #included from: catch_legacy_reporter_adapter.h
+#define TWOBLUECUBES_CATCH_LEGACY_REPORTER_ADAPTER_H_INCLUDED
+
+namespace Catch
+{
+    // Deprecated
+    struct IReporter : IShared {
+        virtual ~IReporter();
+
+        virtual bool shouldRedirectStdout() const = 0;
+
+        virtual void StartTesting() = 0;
+        virtual void EndTesting( Totals const& totals ) = 0;
+        virtual void StartGroup( std::string const& groupName ) = 0;
+        virtual void EndGroup( std::string const& groupName, Totals const& totals ) = 0;
+        virtual void StartTestCase( TestCaseInfo const& testInfo ) = 0;
+        virtual void EndTestCase( TestCaseInfo const& testInfo, Totals const& totals, std::string const& stdOut, std::string const& stdErr ) = 0;
+        virtual void StartSection( std::string const& sectionName, std::string const& description ) = 0;
+        virtual void EndSection( std::string const& sectionName, Counts const& assertions ) = 0;
+        virtual void NoAssertionsInSection( std::string const& sectionName ) = 0;
+        virtual void NoAssertionsInTestCase( std::string const& testName ) = 0;
+        virtual void Aborted() = 0;
+        virtual void Result( AssertionResult const& result ) = 0;
+    };
+
+    class LegacyReporterAdapter : public SharedImpl<IStreamingReporter>
+    {
+    public:
+        LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter );
+        virtual ~LegacyReporterAdapter();
+
+        virtual ReporterPreferences getPreferences() const;
+        virtual void noMatchingTestCases( std::string const& );
+        virtual void testRunStarting( TestRunInfo const& );
+        virtual void testGroupStarting( GroupInfo const& groupInfo );
+        virtual void testCaseStarting( TestCaseInfo const& testInfo );
+        virtual void sectionStarting( SectionInfo const& sectionInfo );
+        virtual void assertionStarting( AssertionInfo const& );
+        virtual bool assertionEnded( AssertionStats const& assertionStats );
+        virtual void sectionEnded( SectionStats const& sectionStats );
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats );
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats );
+        virtual void testRunEnded( TestRunStats const& testRunStats );
+        virtual void skipTest( TestCaseInfo const& );
+
+    private:
+        Ptr<IReporter> m_legacyReporter;
+    };
+}
+
+namespace Catch
+{
+    LegacyReporterAdapter::LegacyReporterAdapter( Ptr<IReporter> const& legacyReporter )
+    :   m_legacyReporter( legacyReporter )
+    {}
+    LegacyReporterAdapter::~LegacyReporterAdapter() {}
+
+    ReporterPreferences LegacyReporterAdapter::getPreferences() const {
+        ReporterPreferences prefs;
+        prefs.shouldRedirectStdOut = m_legacyReporter->shouldRedirectStdout();
+        return prefs;
+    }
+
+    void LegacyReporterAdapter::noMatchingTestCases( std::string const& ) {}
+    void LegacyReporterAdapter::testRunStarting( TestRunInfo const& ) {
+        m_legacyReporter->StartTesting();
+    }
+    void LegacyReporterAdapter::testGroupStarting( GroupInfo const& groupInfo ) {
+        m_legacyReporter->StartGroup( groupInfo.name );
+    }
+    void LegacyReporterAdapter::testCaseStarting( TestCaseInfo const& testInfo ) {
+        m_legacyReporter->StartTestCase( testInfo );
+    }
+    void LegacyReporterAdapter::sectionStarting( SectionInfo const& sectionInfo ) {
+        m_legacyReporter->StartSection( sectionInfo.name, sectionInfo.description );
+    }
+    void LegacyReporterAdapter::assertionStarting( AssertionInfo const& ) {
+        // Not on legacy interface
+    }
+
+    bool LegacyReporterAdapter::assertionEnded( AssertionStats const& assertionStats ) {
+        if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+            for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                    it != itEnd;
+                    ++it ) {
+                if( it->type == ResultWas::Info ) {
+                    ResultBuilder rb( it->macroName.c_str(), it->lineInfo, "", ResultDisposition::Normal );
+                    rb << it->message;
+                    rb.setResultType( ResultWas::Info );
+                    AssertionResult result = rb.build();
+                    m_legacyReporter->Result( result );
+                }
+            }
+        }
+        m_legacyReporter->Result( assertionStats.assertionResult );
+        return true;
+    }
+    void LegacyReporterAdapter::sectionEnded( SectionStats const& sectionStats ) {
+        if( sectionStats.missingAssertions )
+            m_legacyReporter->NoAssertionsInSection( sectionStats.sectionInfo.name );
+        m_legacyReporter->EndSection( sectionStats.sectionInfo.name, sectionStats.assertions );
+    }
+    void LegacyReporterAdapter::testCaseEnded( TestCaseStats const& testCaseStats ) {
+        m_legacyReporter->EndTestCase
+            (   testCaseStats.testInfo,
+                testCaseStats.totals,
+                testCaseStats.stdOut,
+                testCaseStats.stdErr );
+    }
+    void LegacyReporterAdapter::testGroupEnded( TestGroupStats const& testGroupStats ) {
+        if( testGroupStats.aborting )
+            m_legacyReporter->Aborted();
+        m_legacyReporter->EndGroup( testGroupStats.groupInfo.name, testGroupStats.totals );
+    }
+    void LegacyReporterAdapter::testRunEnded( TestRunStats const& testRunStats ) {
+        m_legacyReporter->EndTesting( testRunStats.totals );
+    }
+    void LegacyReporterAdapter::skipTest( TestCaseInfo const& ) {
+    }
+}
+
+// #included from: catch_timer.hpp
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wc++11-long-long"
+#endif
+
+#ifdef CATCH_PLATFORM_WINDOWS
+#include <windows.h>
+#else
+#include <sys/time.h>
+#endif
+
+namespace Catch {
+
+    namespace {
+#ifdef CATCH_PLATFORM_WINDOWS
+        uint64_t getCurrentTicks() {
+            static uint64_t hz=0, hzo=0;
+            if (!hz) {
+                QueryPerformanceFrequency( reinterpret_cast<LARGE_INTEGER*>( &hz ) );
+                QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &hzo ) );
+            }
+            uint64_t t;
+            QueryPerformanceCounter( reinterpret_cast<LARGE_INTEGER*>( &t ) );
+            return ((t-hzo)*1000000)/hz;
+        }
+#else
+        uint64_t getCurrentTicks() {
+            timeval t;
+            gettimeofday(&t,CATCH_NULL);
+            return static_cast<uint64_t>( t.tv_sec ) * 1000000ull + static_cast<uint64_t>( t.tv_usec );
+        }
+#endif
+    }
+
+    void Timer::start() {
+        m_ticks = getCurrentTicks();
+    }
+    unsigned int Timer::getElapsedMicroseconds() const {
+        return static_cast<unsigned int>(getCurrentTicks() - m_ticks);
+    }
+    unsigned int Timer::getElapsedMilliseconds() const {
+        return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
+    }
+    double Timer::getElapsedSeconds() const {
+        return getElapsedMicroseconds()/1000000.0;
+    }
+
+} // namespace Catch
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+// #included from: catch_common.hpp
+#define TWOBLUECUBES_CATCH_COMMON_HPP_INCLUDED
+
+namespace Catch {
+
+    bool startsWith( std::string const& s, std::string const& prefix ) {
+        return s.size() >= prefix.size() && s.substr( 0, prefix.size() ) == prefix;
+    }
+    bool endsWith( std::string const& s, std::string const& suffix ) {
+        return s.size() >= suffix.size() && s.substr( s.size()-suffix.size(), suffix.size() ) == suffix;
+    }
+    bool contains( std::string const& s, std::string const& infix ) {
+        return s.find( infix ) != std::string::npos;
+    }
+    void toLowerInPlace( std::string& s ) {
+        std::transform( s.begin(), s.end(), s.begin(), ::tolower );
+    }
+    std::string toLower( std::string const& s ) {
+        std::string lc = s;
+        toLowerInPlace( lc );
+        return lc;
+    }
+    std::string trim( std::string const& str ) {
+        static char const* whitespaceChars = "\n\r\t ";
+        std::string::size_type start = str.find_first_not_of( whitespaceChars );
+        std::string::size_type end = str.find_last_not_of( whitespaceChars );
+
+        return start != std::string::npos ? str.substr( start, 1+end-start ) : "";
+    }
+
+    bool replaceInPlace( std::string& str, std::string const& replaceThis, std::string const& withThis ) {
+        bool replaced = false;
+        std::size_t i = str.find( replaceThis );
+        while( i != std::string::npos ) {
+            replaced = true;
+            str = str.substr( 0, i ) + withThis + str.substr( i+replaceThis.size() );
+            if( i < str.size()-withThis.size() )
+                i = str.find( replaceThis, i+withThis.size() );
+            else
+                i = std::string::npos;
+        }
+        return replaced;
+    }
+
+    pluralise::pluralise( std::size_t count, std::string const& label )
+    :   m_count( count ),
+        m_label( label )
+    {}
+
+    std::ostream& operator << ( std::ostream& os, pluralise const& pluraliser ) {
+        os << pluraliser.m_count << " " << pluraliser.m_label;
+        if( pluraliser.m_count != 1 )
+            os << "s";
+        return os;
+    }
+
+    SourceLineInfo::SourceLineInfo() : line( 0 ){}
+    SourceLineInfo::SourceLineInfo( char const* _file, std::size_t _line )
+    :   file( _file ),
+        line( _line )
+    {}
+    SourceLineInfo::SourceLineInfo( SourceLineInfo const& other )
+    :   file( other.file ),
+        line( other.line )
+    {}
+    bool SourceLineInfo::empty() const {
+        return file.empty();
+    }
+    bool SourceLineInfo::operator == ( SourceLineInfo const& other ) const {
+        return line == other.line && file == other.file;
+    }
+    bool SourceLineInfo::operator < ( SourceLineInfo const& other ) const {
+        return line < other.line || ( line == other.line  && file < other.file );
+    }
+
+    void seedRng( IConfig const& config ) {
+        if( config.rngSeed() != 0 )
+            std::srand( config.rngSeed() );
+    }
+    unsigned int rngSeed() {
+        return getCurrentContext().getConfig()->rngSeed();
+    }
+
+    std::ostream& operator << ( std::ostream& os, SourceLineInfo const& info ) {
+#ifndef __GNUG__
+        os << info.file << "(" << info.line << ")";
+#else
+        os << info.file << ":" << info.line;
+#endif
+        return os;
+    }
+
+    void throwLogicError( std::string const& message, SourceLineInfo const& locationInfo ) {
+        std::ostringstream oss;
+        oss << locationInfo << ": Internal Catch error: '" << message << "'";
+        if( alwaysTrue() )
+            throw std::logic_error( oss.str() );
+    }
+}
+
+// #included from: catch_section.hpp
+#define TWOBLUECUBES_CATCH_SECTION_HPP_INCLUDED
+
+namespace Catch {
+
+    SectionInfo::SectionInfo
+        (   SourceLineInfo const& _lineInfo,
+            std::string const& _name,
+            std::string const& _description )
+    :   name( _name ),
+        description( _description ),
+        lineInfo( _lineInfo )
+    {}
+
+    Section::Section( SectionInfo const& info )
+    :   m_info( info ),
+        m_sectionIncluded( getResultCapture().sectionStarted( m_info, m_assertions ) )
+    {
+        m_timer.start();
+    }
+
+    Section::~Section() {
+        if( m_sectionIncluded ) {
+            SectionEndInfo endInfo( m_info, m_assertions, m_timer.getElapsedSeconds() );
+            if( std::uncaught_exception() )
+                getResultCapture().sectionEndedEarly( endInfo );
+            else
+                getResultCapture().sectionEnded( endInfo );
+        }
+    }
+
+    // This indicates whether the section should be executed or not
+    Section::operator bool() const {
+        return m_sectionIncluded;
+    }
+
+} // end namespace Catch
+
+// #included from: catch_debugger.hpp
+#define TWOBLUECUBES_CATCH_DEBUGGER_HPP_INCLUDED
+
+#include <iostream>
+
+#ifdef CATCH_PLATFORM_MAC
+
+    #include <assert.h>
+    #include <stdbool.h>
+    #include <sys/types.h>
+    #include <unistd.h>
+    #include <sys/sysctl.h>
+
+    namespace Catch{
+
+        // The following function is taken directly from the following technical note:
+        // http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
+
+        // Returns true if the current process is being debugged (either
+        // running under the debugger or has a debugger attached post facto).
+        bool isDebuggerActive(){
+
+            int                 mib[4];
+            struct kinfo_proc   info;
+            size_t              size;
+
+            // Initialize the flags so that, if sysctl fails for some bizarre
+            // reason, we get a predictable result.
+
+            info.kp_proc.p_flag = 0;
+
+            // Initialize mib, which tells sysctl the info we want, in this case
+            // we're looking for information about a specific process ID.
+
+            mib[0] = CTL_KERN;
+            mib[1] = KERN_PROC;
+            mib[2] = KERN_PROC_PID;
+            mib[3] = getpid();
+
+            // Call sysctl.
+
+            size = sizeof(info);
+            if( sysctl(mib, sizeof(mib) / sizeof(*mib), &info, &size, CATCH_NULL, 0) != 0 ) {
+                Catch::cerr() << "\n** Call to sysctl failed - unable to determine if debugger is active **\n" << std::endl;
+                return false;
+            }
+
+            // We're being debugged if the P_TRACED flag is set.
+
+            return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
+        }
+    } // namespace Catch
+
+#elif defined(_MSC_VER)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#elif defined(__MINGW32__)
+    extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent();
+    namespace Catch {
+        bool isDebuggerActive() {
+            return IsDebuggerPresent() != 0;
+        }
+    }
+#else
+    namespace Catch {
+       inline bool isDebuggerActive() { return false; }
+    }
+#endif // Platform
+
+#ifdef CATCH_PLATFORM_WINDOWS
+    extern "C" __declspec(dllimport) void __stdcall OutputDebugStringA( const char* );
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            ::OutputDebugStringA( text.c_str() );
+        }
+    }
+#else
+    namespace Catch {
+        void writeToDebugConsole( std::string const& text ) {
+            // !TBD: Need a version for Mac/ XCode and other IDEs
+            Catch::cout() << text;
+        }
+    }
+#endif // Platform
+
+// #included from: catch_tostring.hpp
+#define TWOBLUECUBES_CATCH_TOSTRING_HPP_INCLUDED
+
+namespace Catch {
+
+namespace Detail {
+
+    const std::string unprintableString = "{?}";
+
+    namespace {
+        const int hexThreshold = 255;
+
+        struct Endianness {
+            enum Arch { Big, Little };
+
+            static Arch which() {
+                union _{
+                    int asInt;
+                    char asChar[sizeof (int)];
+                } u;
+
+                u.asInt = 1;
+                return ( u.asChar[sizeof(int)-1] == 1 ) ? Big : Little;
+            }
+        };
+    }
+
+    std::string rawMemoryToString( const void *object, std::size_t size )
+    {
+        // Reverse order for little endian architectures
+        int i = 0, end = static_cast<int>( size ), inc = 1;
+        if( Endianness::which() == Endianness::Little ) {
+            i = end-1;
+            end = inc = -1;
+        }
+
+        unsigned char const *bytes = static_cast<unsigned char const *>(object);
+        std::ostringstream os;
+        os << "0x" << std::setfill('0') << std::hex;
+        for( ; i != end; i += inc )
+             os << std::setw(2) << static_cast<unsigned>(bytes[i]);
+       return os.str();
+    }
+}
+
+std::string toString( std::string const& value ) {
+    std::string s = value;
+    if( getCurrentContext().getConfig()->showInvisibles() ) {
+        for(size_t i = 0; i < s.size(); ++i ) {
+            std::string subs;
+            switch( s[i] ) {
+            case '\n': subs = "\\n"; break;
+            case '\t': subs = "\\t"; break;
+            default: break;
+            }
+            if( !subs.empty() ) {
+                s = s.substr( 0, i ) + subs + s.substr( i+1 );
+                ++i;
+            }
+        }
+    }
+    return "\"" + s + "\"";
+}
+std::string toString( std::wstring const& value ) {
+
+    std::string s;
+    s.reserve( value.size() );
+    for(size_t i = 0; i < value.size(); ++i )
+        s += value[i] <= 0xff ? static_cast<char>( value[i] ) : '?';
+    return Catch::toString( s );
+}
+
+std::string toString( const char* const value ) {
+    return value ? Catch::toString( std::string( value ) ) : std::string( "{null string}" );
+}
+
+std::string toString( char* const value ) {
+    return Catch::toString( static_cast<const char*>( value ) );
+}
+
+std::string toString( const wchar_t* const value )
+{
+	return value ? Catch::toString( std::wstring(value) ) : std::string( "{null string}" );
+}
+
+std::string toString( wchar_t* const value )
+{
+	return Catch::toString( static_cast<const wchar_t*>( value ) );
+}
+
+std::string toString( int value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ")";
+    return oss.str();
+}
+
+std::string toString( unsigned long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ")";
+    return oss.str();
+}
+
+std::string toString( unsigned int value ) {
+    return Catch::toString( static_cast<unsigned long>( value ) );
+}
+
+template<typename T>
+std::string fpToString( T value, int precision ) {
+    std::ostringstream oss;
+    oss << std::setprecision( precision )
+        << std::fixed
+        << value;
+    std::string d = oss.str();
+    std::size_t i = d.find_last_not_of( '0' );
+    if( i != std::string::npos && i != d.size()-1 ) {
+        if( d[i] == '.' )
+            i++;
+        d = d.substr( 0, i+1 );
+    }
+    return d;
+}
+
+std::string toString( const double value ) {
+    return fpToString( value, 10 );
+}
+std::string toString( const float value ) {
+    return fpToString( value, 5 ) + "f";
+}
+
+std::string toString( bool value ) {
+    return value ? "true" : "false";
+}
+
+std::string toString( char value ) {
+    return value < ' '
+        ? toString( static_cast<unsigned int>( value ) )
+        : Detail::makeString( value );
+}
+
+std::string toString( signed char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+std::string toString( unsigned char value ) {
+    return toString( static_cast<char>( value ) );
+}
+
+#ifdef CATCH_CONFIG_CPP11_LONG_LONG
+std::string toString( long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ")";
+    return oss.str();
+}
+std::string toString( unsigned long long value ) {
+    std::ostringstream oss;
+    oss << value;
+    if( value > Detail::hexThreshold )
+        oss << " (0x" << std::hex << value << ")";
+    return oss.str();
+}
+#endif
+
+#ifdef CATCH_CONFIG_CPP11_NULLPTR
+std::string toString( std::nullptr_t ) {
+    return "nullptr";
+}
+#endif
+
+#ifdef __OBJC__
+    std::string toString( NSString const * const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSString * CATCH_ARC_STRONG const& nsstring ) {
+        if( !nsstring )
+            return "nil";
+        return "@" + toString([nsstring UTF8String]);
+    }
+    std::string toString( NSObject* const& nsObject ) {
+        return toString( [nsObject description] );
+    }
+#endif
+
+} // end namespace Catch
+
+// #included from: catch_result_builder.hpp
+#define TWOBLUECUBES_CATCH_RESULT_BUILDER_HPP_INCLUDED
+
+namespace Catch {
+
+    std::string capturedExpressionWithSecondArgument( std::string const& capturedExpression, std::string const& secondArg ) {
+        return secondArg.empty() || secondArg == "\"\""
+            ? capturedExpression
+            : capturedExpression + ", " + secondArg;
+    }
+    ResultBuilder::ResultBuilder(   char const* macroName,
+                                    SourceLineInfo const& lineInfo,
+                                    char const* capturedExpression,
+                                    ResultDisposition::Flags resultDisposition,
+                                    char const* secondArg )
+    :   m_assertionInfo( macroName, lineInfo, capturedExpressionWithSecondArgument( capturedExpression, secondArg ), resultDisposition ),
+        m_shouldDebugBreak( false ),
+        m_shouldThrow( false )
+    {}
+
+    ResultBuilder& ResultBuilder::setResultType( ResultWas::OfType result ) {
+        m_data.resultType = result;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setResultType( bool result ) {
+        m_data.resultType = result ? ResultWas::Ok : ResultWas::ExpressionFailed;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setLhs( std::string const& lhs ) {
+        m_exprComponents.lhs = lhs;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setRhs( std::string const& rhs ) {
+        m_exprComponents.rhs = rhs;
+        return *this;
+    }
+    ResultBuilder& ResultBuilder::setOp( std::string const& op ) {
+        m_exprComponents.op = op;
+        return *this;
+    }
+
+    void ResultBuilder::endExpression() {
+        m_exprComponents.testFalse = isFalseTest( m_assertionInfo.resultDisposition );
+        captureExpression();
+    }
+
+    void ResultBuilder::useActiveException( ResultDisposition::Flags resultDisposition ) {
+        m_assertionInfo.resultDisposition = resultDisposition;
+        m_stream.oss << Catch::translateActiveException();
+        captureResult( ResultWas::ThrewException );
+    }
+
+    void ResultBuilder::captureResult( ResultWas::OfType resultType ) {
+        setResultType( resultType );
+        captureExpression();
+    }
+    void ResultBuilder::captureExpectedException( std::string const& expectedMessage ) {
+        if( expectedMessage.empty() )
+            captureExpectedException( Matchers::Impl::Generic::AllOf<std::string>() );
+        else
+            captureExpectedException( Matchers::Equals( expectedMessage ) );
+    }
+
+    void ResultBuilder::captureExpectedException( Matchers::Impl::Matcher<std::string> const& matcher ) {
+
+        assert( m_exprComponents.testFalse == false );
+        AssertionResultData data = m_data;
+        data.resultType = ResultWas::Ok;
+        data.reconstructedExpression = m_assertionInfo.capturedExpression;
+
+        std::string actualMessage = Catch::translateActiveException();
+        if( !matcher.match( actualMessage ) ) {
+            data.resultType = ResultWas::ExpressionFailed;
+            data.reconstructedExpression = actualMessage;
+        }
+        AssertionResult result( m_assertionInfo, data );
+        handleResult( result );
+    }
+
+    void ResultBuilder::captureExpression() {
+        AssertionResult result = build();
+        handleResult( result );
+    }
+    void ResultBuilder::handleResult( AssertionResult const& result )
+    {
+        getResultCapture().assertionEnded( result );
+
+        if( !result.isOk() ) {
+            if( getCurrentContext().getConfig()->shouldDebugBreak() )
+                m_shouldDebugBreak = true;
+            if( getCurrentContext().getRunner()->aborting() || (m_assertionInfo.resultDisposition & ResultDisposition::Normal) )
+                m_shouldThrow = true;
+        }
+    }
+    void ResultBuilder::react() {
+        if( m_shouldThrow )
+            throw Catch::TestFailureException();
+    }
+
+    bool ResultBuilder::shouldDebugBreak() const { return m_shouldDebugBreak; }
+    bool ResultBuilder::allowThrows() const { return getCurrentContext().getConfig()->allowThrows(); }
+
+    AssertionResult ResultBuilder::build() const
+    {
+        assert( m_data.resultType != ResultWas::Unknown );
+
+        AssertionResultData data = m_data;
+
+        // Flip bool results if testFalse is set
+        if( m_exprComponents.testFalse ) {
+            if( data.resultType == ResultWas::Ok )
+                data.resultType = ResultWas::ExpressionFailed;
+            else if( data.resultType == ResultWas::ExpressionFailed )
+                data.resultType = ResultWas::Ok;
+        }
+
+        data.message = m_stream.oss.str();
+        data.reconstructedExpression = reconstructExpression();
+        if( m_exprComponents.testFalse ) {
+            if( m_exprComponents.op == "" )
+                data.reconstructedExpression = "!" + data.reconstructedExpression;
+            else
+                data.reconstructedExpression = "!(" + data.reconstructedExpression + ")";
+        }
+        return AssertionResult( m_assertionInfo, data );
+    }
+    std::string ResultBuilder::reconstructExpression() const {
+        if( m_exprComponents.op == "" )
+            return m_exprComponents.lhs.empty() ? m_assertionInfo.capturedExpression : m_exprComponents.op + m_exprComponents.lhs;
+        else if( m_exprComponents.op == "matches" )
+            return m_exprComponents.lhs + " " + m_exprComponents.rhs;
+        else if( m_exprComponents.op != "!" ) {
+            if( m_exprComponents.lhs.size() + m_exprComponents.rhs.size() < 40 &&
+                m_exprComponents.lhs.find("\n") == std::string::npos &&
+                m_exprComponents.rhs.find("\n") == std::string::npos )
+                return m_exprComponents.lhs + " " + m_exprComponents.op + " " + m_exprComponents.rhs;
+            else
+                return m_exprComponents.lhs + "\n" + m_exprComponents.op + "\n" + m_exprComponents.rhs;
+        }
+        else
+            return "{can't expand - use " + m_assertionInfo.macroName + "_FALSE( " + m_assertionInfo.capturedExpression.substr(1) + " ) instead of " + m_assertionInfo.macroName + "( " + m_assertionInfo.capturedExpression + " ) for better diagnostics}";
+    }
+
+} // end namespace Catch
+
+// #included from: catch_tag_alias_registry.hpp
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_HPP_INCLUDED
+
+// #included from: catch_tag_alias_registry.h
+#define TWOBLUECUBES_CATCH_TAG_ALIAS_REGISTRY_H_INCLUDED
+
+#include <map>
+
+namespace Catch {
+
+    class TagAliasRegistry : public ITagAliasRegistry {
+    public:
+        virtual ~TagAliasRegistry();
+        virtual Option<TagAlias> find( std::string const& alias ) const;
+        virtual std::string expandAliases( std::string const& unexpandedTestSpec ) const;
+        void add( char const* alias, char const* tag, SourceLineInfo const& lineInfo );
+        static TagAliasRegistry& get();
+
+    private:
+        std::map<std::string, TagAlias> m_registry;
+    };
+
+} // end namespace Catch
+
+#include <map>
+#include <iostream>
+
+namespace Catch {
+
+    TagAliasRegistry::~TagAliasRegistry() {}
+
+    Option<TagAlias> TagAliasRegistry::find( std::string const& alias ) const {
+        std::map<std::string, TagAlias>::const_iterator it = m_registry.find( alias );
+        if( it != m_registry.end() )
+            return it->second;
+        else
+            return Option<TagAlias>();
+    }
+
+    std::string TagAliasRegistry::expandAliases( std::string const& unexpandedTestSpec ) const {
+        std::string expandedTestSpec = unexpandedTestSpec;
+        for( std::map<std::string, TagAlias>::const_iterator it = m_registry.begin(), itEnd = m_registry.end();
+                it != itEnd;
+                ++it ) {
+            std::size_t pos = expandedTestSpec.find( it->first );
+            if( pos != std::string::npos ) {
+                expandedTestSpec =  expandedTestSpec.substr( 0, pos ) +
+                                    it->second.tag +
+                                    expandedTestSpec.substr( pos + it->first.size() );
+            }
+        }
+        return expandedTestSpec;
+    }
+
+    void TagAliasRegistry::add( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+
+        if( !startsWith( alias, "[@" ) || !endsWith( alias, "]" ) ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" is not of the form [@alias name].\n" << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+        if( !m_registry.insert( std::make_pair( alias, TagAlias( tag, lineInfo ) ) ).second ) {
+            std::ostringstream oss;
+            oss << "error: tag alias, \"" << alias << "\" already registered.\n"
+                << "\tFirst seen at " << find(alias)->lineInfo << "\n"
+                << "\tRedefined at " << lineInfo;
+            throw std::domain_error( oss.str().c_str() );
+        }
+    }
+
+    TagAliasRegistry& TagAliasRegistry::get() {
+        static TagAliasRegistry instance;
+        return instance;
+
+    }
+
+    ITagAliasRegistry::~ITagAliasRegistry() {}
+    ITagAliasRegistry const& ITagAliasRegistry::get() { return TagAliasRegistry::get(); }
+
+    RegistrarForTagAliases::RegistrarForTagAliases( char const* alias, char const* tag, SourceLineInfo const& lineInfo ) {
+        try {
+            TagAliasRegistry::get().add( alias, tag, lineInfo );
+        }
+        catch( std::exception& ex ) {
+            Colour colourGuard( Colour::Red );
+            Catch::cerr() << ex.what() << std::endl;
+            exit(1);
+        }
+    }
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_multi.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_MULTI_HPP_INCLUDED
+
+namespace Catch {
+
+class MultipleReporters : public SharedImpl<IStreamingReporter> {
+    typedef std::vector<Ptr<IStreamingReporter> > Reporters;
+    Reporters m_reporters;
+
+public:
+    void add( Ptr<IStreamingReporter> const& reporter ) {
+        m_reporters.push_back( reporter );
+    }
+
+public: // IStreamingReporter
+
+    virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+        return m_reporters[0]->getPreferences();
+    }
+
+    virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->noMatchingTestCases( spec );
+    }
+
+    virtual void testRunStarting( TestRunInfo const& testRunInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunStarting( testRunInfo );
+    }
+
+    virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupStarting( groupInfo );
+    }
+
+    virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseStarting( testInfo );
+    }
+
+    virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionStarting( sectionInfo );
+    }
+
+    virtual void assertionStarting( AssertionInfo const& assertionInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->assertionStarting( assertionInfo );
+    }
+
+    // The return value indicates if the messages buffer should be cleared:
+    virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+        bool clearBuffer = false;
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            clearBuffer |= (*it)->assertionEnded( assertionStats );
+        return clearBuffer;
+    }
+
+    virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->sectionEnded( sectionStats );
+    }
+
+    virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testCaseEnded( testCaseStats );
+    }
+
+    virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testGroupEnded( testGroupStats );
+    }
+
+    virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->testRunEnded( testRunStats );
+    }
+
+    virtual void skipTest( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+        for( Reporters::const_iterator it = m_reporters.begin(), itEnd = m_reporters.end();
+                it != itEnd;
+                ++it )
+            (*it)->skipTest( testInfo );
+    }
+};
+
+Ptr<IStreamingReporter> addReporter( Ptr<IStreamingReporter> const& existingReporter, Ptr<IStreamingReporter> const& additionalReporter ) {
+    Ptr<IStreamingReporter> resultingReporter;
+
+    if( existingReporter ) {
+        MultipleReporters* multi = dynamic_cast<MultipleReporters*>( existingReporter.get() );
+        if( !multi ) {
+            multi = new MultipleReporters;
+            resultingReporter = Ptr<IStreamingReporter>( multi );
+            if( existingReporter )
+                multi->add( existingReporter );
+        }
+        else
+            resultingReporter = existingReporter;
+        multi->add( additionalReporter );
+    }
+    else
+        resultingReporter = additionalReporter;
+
+    return resultingReporter;
+}
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_xml.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_XML_HPP_INCLUDED
+
+// #included from: catch_reporter_bases.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_BASES_HPP_INCLUDED
+
+#include <cstring>
+
+namespace Catch {
+
+    struct StreamingReporterBase : SharedImpl<IStreamingReporter> {
+
+        StreamingReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual ~StreamingReporterBase() CATCH_OVERRIDE;
+
+        virtual void noMatchingTestCases( std::string const& ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& _testRunInfo ) CATCH_OVERRIDE {
+            currentTestRunInfo = _testRunInfo;
+        }
+        virtual void testGroupStarting( GroupInfo const& _groupInfo ) CATCH_OVERRIDE {
+            currentGroupInfo = _groupInfo;
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& _testInfo ) CATCH_OVERRIDE {
+            currentTestCaseInfo = _testInfo;
+        }
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_sectionStack.push_back( _sectionInfo );
+        }
+
+        virtual void sectionEnded( SectionStats const& /* _sectionStats */ ) CATCH_OVERRIDE {
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& /* _testCaseStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+        }
+        virtual void testGroupEnded( TestGroupStats const& /* _testGroupStats */ ) CATCH_OVERRIDE {
+            currentGroupInfo.reset();
+        }
+        virtual void testRunEnded( TestRunStats const& /* _testRunStats */ ) CATCH_OVERRIDE {
+            currentTestCaseInfo.reset();
+            currentGroupInfo.reset();
+            currentTestRunInfo.reset();
+        }
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {
+            // Don't do anything with this by default.
+            // It can optionally be overridden in the derived class.
+        }
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+
+        LazyStat<TestRunInfo> currentTestRunInfo;
+        LazyStat<GroupInfo> currentGroupInfo;
+        LazyStat<TestCaseInfo> currentTestCaseInfo;
+
+        std::vector<SectionInfo> m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+    };
+
+    struct CumulativeReporterBase : SharedImpl<IStreamingReporter> {
+        template<typename T, typename ChildNodeT>
+        struct Node : SharedImpl<> {
+            explicit Node( T const& _value ) : value( _value ) {}
+            virtual ~Node() {}
+
+            typedef std::vector<Ptr<ChildNodeT> > ChildNodes;
+            T value;
+            ChildNodes children;
+        };
+        struct SectionNode : SharedImpl<> {
+            explicit SectionNode( SectionStats const& _stats ) : stats( _stats ) {}
+            virtual ~SectionNode();
+
+            bool operator == ( SectionNode const& other ) const {
+                return stats.sectionInfo.lineInfo == other.stats.sectionInfo.lineInfo;
+            }
+            bool operator == ( Ptr<SectionNode> const& other ) const {
+                return operator==( *other );
+            }
+
+            SectionStats stats;
+            typedef std::vector<Ptr<SectionNode> > ChildSections;
+            typedef std::vector<AssertionStats> Assertions;
+            ChildSections childSections;
+            Assertions assertions;
+            std::string stdOut;
+            std::string stdErr;
+        };
+
+        struct BySectionInfo {
+            BySectionInfo( SectionInfo const& other ) : m_other( other ) {}
+			BySectionInfo( BySectionInfo const& other ) : m_other( other.m_other ) {}
+            bool operator() ( Ptr<SectionNode> const& node ) const {
+                return node->stats.sectionInfo.lineInfo == m_other.lineInfo;
+            }
+        private:
+			void operator=( BySectionInfo const& );
+            SectionInfo const& m_other;
+        };
+
+        typedef Node<TestCaseStats, SectionNode> TestCaseNode;
+        typedef Node<TestGroupStats, TestCaseNode> TestGroupNode;
+        typedef Node<TestRunStats, TestGroupNode> TestRunNode;
+
+        CumulativeReporterBase( ReporterConfig const& _config )
+        :   m_config( _config.fullConfig() ),
+            stream( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = false;
+        }
+        ~CumulativeReporterBase();
+
+        virtual ReporterPreferences getPreferences() const CATCH_OVERRIDE {
+            return m_reporterPrefs;
+        }
+
+        virtual void testRunStarting( TestRunInfo const& ) CATCH_OVERRIDE {}
+        virtual void testGroupStarting( GroupInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void testCaseStarting( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            SectionStats incompleteStats( sectionInfo, Counts(), 0, false );
+            Ptr<SectionNode> node;
+            if( m_sectionStack.empty() ) {
+                if( !m_rootSection )
+                    m_rootSection = new SectionNode( incompleteStats );
+                node = m_rootSection;
+            }
+            else {
+                SectionNode& parentNode = *m_sectionStack.back();
+                SectionNode::ChildSections::const_iterator it =
+                    std::find_if(   parentNode.childSections.begin(),
+                                    parentNode.childSections.end(),
+                                    BySectionInfo( sectionInfo ) );
+                if( it == parentNode.childSections.end() ) {
+                    node = new SectionNode( incompleteStats );
+                    parentNode.childSections.push_back( node );
+                }
+                else
+                    node = *it;
+            }
+            m_sectionStack.push_back( node );
+            m_deepestSection = node;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) {
+            assert( !m_sectionStack.empty() );
+            SectionNode& sectionNode = *m_sectionStack.back();
+            sectionNode.assertions.push_back( assertionStats );
+            return true;
+        }
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            assert( !m_sectionStack.empty() );
+            SectionNode& node = *m_sectionStack.back();
+            node.stats = sectionStats;
+            m_sectionStack.pop_back();
+        }
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            Ptr<TestCaseNode> node = new TestCaseNode( testCaseStats );
+            assert( m_sectionStack.size() == 0 );
+            node->children.push_back( m_rootSection );
+            m_testCases.push_back( node );
+            m_rootSection.reset();
+
+            assert( m_deepestSection );
+            m_deepestSection->stdOut = testCaseStats.stdOut;
+            m_deepestSection->stdErr = testCaseStats.stdErr;
+        }
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            Ptr<TestGroupNode> node = new TestGroupNode( testGroupStats );
+            node->children.swap( m_testCases );
+            m_testGroups.push_back( node );
+        }
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            Ptr<TestRunNode> node = new TestRunNode( testRunStats );
+            node->children.swap( m_testGroups );
+            m_testRuns.push_back( node );
+            testRunEndedCumulative();
+        }
+        virtual void testRunEndedCumulative() = 0;
+
+        virtual void skipTest( TestCaseInfo const& ) CATCH_OVERRIDE {}
+
+        Ptr<IConfig const> m_config;
+        std::ostream& stream;
+        std::vector<AssertionStats> m_assertions;
+        std::vector<std::vector<Ptr<SectionNode> > > m_sections;
+        std::vector<Ptr<TestCaseNode> > m_testCases;
+        std::vector<Ptr<TestGroupNode> > m_testGroups;
+
+        std::vector<Ptr<TestRunNode> > m_testRuns;
+
+        Ptr<SectionNode> m_rootSection;
+        Ptr<SectionNode> m_deepestSection;
+        std::vector<Ptr<SectionNode> > m_sectionStack;
+        ReporterPreferences m_reporterPrefs;
+
+    };
+
+    template<char C>
+    char const* getLineOfChars() {
+        static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0};
+        if( !*line ) {
+            memset( line, C, CATCH_CONFIG_CONSOLE_WIDTH-1 );
+            line[CATCH_CONFIG_CONSOLE_WIDTH-1] = 0;
+        }
+        return line;
+    }
+
+    struct TestEventListenerBase : StreamingReporterBase {
+        TestEventListenerBase( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config )
+        {}
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {}
+        virtual bool assertionEnded( AssertionStats const& ) CATCH_OVERRIDE {
+            return false;
+        }
+    };
+
+} // end namespace Catch
+
+// #included from: ../internal/catch_reporter_registrars.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_REGISTRARS_HPP_INCLUDED
+
+namespace Catch {
+
+    template<typename T>
+    class LegacyReporterRegistrar {
+
+        class ReporterFactory : public IReporterFactory {
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new LegacyReporterAdapter( new T( config ) );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        LegacyReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ReporterRegistrar {
+
+        class ReporterFactory : public SharedImpl<IReporterFactory> {
+
+            // *** Please Note ***:
+            // - If you end up here looking at a compiler error because it's trying to register
+            // your custom reporter class be aware that the native reporter interface has changed
+            // to IStreamingReporter. The "legacy" interface, IReporter, is still supported via
+            // an adapter. Just use REGISTER_LEGACY_REPORTER to take advantage of the adapter.
+            // However please consider updating to the new interface as the old one is now
+            // deprecated and will probably be removed quite soon!
+            // Please contact me via github if you have any questions at all about this.
+            // In fact, ideally, please contact me anyway to let me know you've hit this - as I have
+            // no idea who is actually using custom reporters at all (possibly no-one!).
+            // The new interface is designed to minimise exposure to interface changes in the future.
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+
+            virtual std::string getDescription() const {
+                return T::getDescription();
+            }
+        };
+
+    public:
+
+        ReporterRegistrar( std::string const& name ) {
+            getMutableRegistryHub().registerReporter( name, new ReporterFactory() );
+        }
+    };
+
+    template<typename T>
+    class ListenerRegistrar {
+
+        class ListenerFactory : public SharedImpl<IReporterFactory> {
+
+            virtual IStreamingReporter* create( ReporterConfig const& config ) const {
+                return new T( config );
+            }
+            virtual std::string getDescription() const {
+                return "";
+            }
+        };
+
+    public:
+
+        ListenerRegistrar() {
+            getMutableRegistryHub().registerListener( new ListenerFactory() );
+        }
+    };
+}
+
+#define INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) \
+    namespace{ Catch::LegacyReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType ) \
+    namespace{ Catch::ReporterRegistrar<reporterType> catch_internal_RegistrarFor##reporterType( name ); }
+
+#define INTERNAL_CATCH_REGISTER_LISTENER( listenerType ) \
+    namespace{ Catch::ListenerRegistrar<listenerType> catch_internal_RegistrarFor##listenerType; }
+
+// #included from: ../internal/catch_xmlwriter.hpp
+#define TWOBLUECUBES_CATCH_XMLWRITER_HPP_INCLUDED
+
+#include <sstream>
+#include <string>
+#include <vector>
+#include <iomanip>
+
+namespace Catch {
+
+    class XmlEncode {
+    public:
+        enum ForWhat { ForTextNodes, ForAttributes };
+
+        XmlEncode( std::string const& str, ForWhat forWhat = ForTextNodes )
+        :   m_str( str ),
+            m_forWhat( forWhat )
+        {}
+
+        void encodeTo( std::ostream& os ) const {
+
+            // Apostrophe escaping not necessary if we always use " to write attributes
+            // (see: http://www.w3.org/TR/xml/#syntax)
+
+            for( std::size_t i = 0; i < m_str.size(); ++ i ) {
+                char c = m_str[i];
+                switch( c ) {
+                    case '<':   os << "&lt;"; break;
+                    case '&':   os << "&amp;"; break;
+
+                    case '>':
+                        // See: http://www.w3.org/TR/xml/#syntax
+                        if( i > 2 && m_str[i-1] == ']' && m_str[i-2] == ']' )
+                            os << "&gt;";
+                        else
+                            os << c;
+                        break;
+
+                    case '\"':
+                        if( m_forWhat == ForAttributes )
+                            os << "&quot;";
+                        else
+                            os << c;
+                        break;
+
+                    default:
+                        // Escape control chars - based on contribution by @espenalb in PR #465
+                        if ( ( c < '\x09' ) || ( c > '\x0D' && c < '\x20') || c=='\x7F' )
+                            os << "&#x" << std::uppercase << std::hex << static_cast<int>( c );
+                        else
+                            os << c;
+                }
+            }
+        }
+
+        friend std::ostream& operator << ( std::ostream& os, XmlEncode const& xmlEncode ) {
+            xmlEncode.encodeTo( os );
+            return os;
+        }
+
+    private:
+        std::string m_str;
+        ForWhat m_forWhat;
+    };
+
+    class XmlWriter {
+    public:
+
+        class ScopedElement {
+        public:
+            ScopedElement( XmlWriter* writer )
+            :   m_writer( writer )
+            {}
+
+            ScopedElement( ScopedElement const& other )
+            :   m_writer( other.m_writer ){
+                other.m_writer = CATCH_NULL;
+            }
+
+            ~ScopedElement() {
+                if( m_writer )
+                    m_writer->endElement();
+            }
+
+            ScopedElement& writeText( std::string const& text, bool indent = true ) {
+                m_writer->writeText( text, indent );
+                return *this;
+            }
+
+            template<typename T>
+            ScopedElement& writeAttribute( std::string const& name, T const& attribute ) {
+                m_writer->writeAttribute( name, attribute );
+                return *this;
+            }
+
+        private:
+            mutable XmlWriter* m_writer;
+        };
+
+        XmlWriter()
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( &Catch::cout() )
+        {}
+
+        XmlWriter( std::ostream& os )
+        :   m_tagIsOpen( false ),
+            m_needsNewline( false ),
+            m_os( &os )
+        {}
+
+        ~XmlWriter() {
+            while( !m_tags.empty() )
+                endElement();
+        }
+
+        XmlWriter& startElement( std::string const& name ) {
+            ensureTagClosed();
+            newlineIfNecessary();
+            stream() << m_indent << "<" << name;
+            m_tags.push_back( name );
+            m_indent += "  ";
+            m_tagIsOpen = true;
+            return *this;
+        }
+
+        ScopedElement scopedElement( std::string const& name ) {
+            ScopedElement scoped( this );
+            startElement( name );
+            return scoped;
+        }
+
+        XmlWriter& endElement() {
+            newlineIfNecessary();
+            m_indent = m_indent.substr( 0, m_indent.size()-2 );
+            if( m_tagIsOpen ) {
+                stream() << "/>\n";
+                m_tagIsOpen = false;
+            }
+            else {
+                stream() << m_indent << "</" << m_tags.back() << ">\n";
+            }
+            m_tags.pop_back();
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, std::string const& attribute ) {
+            if( !name.empty() && !attribute.empty() )
+                stream() << " " << name << "=\"" << XmlEncode( attribute, XmlEncode::ForAttributes ) << "\"";
+            return *this;
+        }
+
+        XmlWriter& writeAttribute( std::string const& name, bool attribute ) {
+            stream() << " " << name << "=\"" << ( attribute ? "true" : "false" ) << "\"";
+            return *this;
+        }
+
+        template<typename T>
+        XmlWriter& writeAttribute( std::string const& name, T const& attribute ) {
+            std::ostringstream oss;
+            oss << attribute;
+            return writeAttribute( name, oss.str() );
+        }
+
+        XmlWriter& writeText( std::string const& text, bool indent = true ) {
+            if( !text.empty() ){
+                bool tagWasOpen = m_tagIsOpen;
+                ensureTagClosed();
+                if( tagWasOpen && indent )
+                    stream() << m_indent;
+                stream() << XmlEncode( text );
+                m_needsNewline = true;
+            }
+            return *this;
+        }
+
+        XmlWriter& writeComment( std::string const& text ) {
+            ensureTagClosed();
+            stream() << m_indent << "<!--" << text << "-->";
+            m_needsNewline = true;
+            return *this;
+        }
+
+        XmlWriter& writeBlankLine() {
+            ensureTagClosed();
+            stream() << "\n";
+            return *this;
+        }
+
+        void setStream( std::ostream& os ) {
+            m_os = &os;
+        }
+
+    private:
+        XmlWriter( XmlWriter const& );
+        void operator=( XmlWriter const& );
+
+        std::ostream& stream() {
+            return *m_os;
+        }
+
+        void ensureTagClosed() {
+            if( m_tagIsOpen ) {
+                stream() << ">\n";
+                m_tagIsOpen = false;
+            }
+        }
+
+        void newlineIfNecessary() {
+            if( m_needsNewline ) {
+                stream() << "\n";
+                m_needsNewline = false;
+            }
+        }
+
+        bool m_tagIsOpen;
+        bool m_needsNewline;
+        std::vector<std::string> m_tags;
+        std::string m_indent;
+        std::ostream* m_os;
+    };
+
+}
+// #included from: catch_reenable_warnings.h
+
+#define TWOBLUECUBES_CATCH_REENABLE_WARNINGS_H_INCLUDED
+
+#ifdef __clang__
+#    ifdef __ICC // icpc defines the __clang__ macro
+#        pragma warning(pop)
+#    else
+#        pragma clang diagnostic pop
+#    endif
+#elif defined __GNUC__
+#    pragma GCC diagnostic pop
+#endif
+
+
+namespace Catch {
+    class XmlReporter : public StreamingReporterBase {
+    public:
+        XmlReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_sectionDepth( 0 )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~XmlReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results as an XML document";
+        }
+
+    public: // StreamingReporterBase
+
+        virtual void noMatchingTestCases( std::string const& s ) CATCH_OVERRIDE {
+            StreamingReporterBase::noMatchingTestCases( s );
+        }
+
+        virtual void testRunStarting( TestRunInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunStarting( testInfo );
+            m_xml.setStream( stream );
+            m_xml.startElement( "Catch" );
+            if( !m_config->name().empty() )
+                m_xml.writeAttribute( "name", m_config->name() );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupStarting( groupInfo );
+            m_xml.startElement( "Group" )
+                .writeAttribute( "name", groupInfo.name );
+        }
+
+        virtual void testCaseStarting( TestCaseInfo const& testInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseStarting(testInfo);
+            m_xml.startElement( "TestCase" ).writeAttribute( "name", trim( testInfo.name ) );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                m_testCaseTimer.start();
+        }
+
+        virtual void sectionStarting( SectionInfo const& sectionInfo ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionStarting( sectionInfo );
+            if( m_sectionDepth++ > 0 ) {
+                m_xml.startElement( "Section" )
+                    .writeAttribute( "name", trim( sectionInfo.name ) )
+                    .writeAttribute( "description", sectionInfo.description );
+            }
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE { }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            const AssertionResult& assertionResult = assertionStats.assertionResult;
+
+            // Print any info messages in <Info> tags.
+            if( assertionStats.assertionResult.getResultType() != ResultWas::Ok ) {
+                for( std::vector<MessageInfo>::const_iterator it = assertionStats.infoMessages.begin(), itEnd = assertionStats.infoMessages.end();
+                        it != itEnd;
+                        ++it ) {
+                    if( it->type == ResultWas::Info ) {
+                        m_xml.scopedElement( "Info" )
+                            .writeText( it->message );
+                    } else if ( it->type == ResultWas::Warning ) {
+                        m_xml.scopedElement( "Warning" )
+                            .writeText( it->message );
+                    }
+                }
+            }
+
+            // Drop out if result was successful but we're not printing them.
+            if( !m_config->includeSuccessfulResults() && isOk(assertionResult.getResultType()) )
+                return true;
+
+            // Print the expression if there is one.
+            if( assertionResult.hasExpression() ) {
+                m_xml.startElement( "Expression" )
+                    .writeAttribute( "success", assertionResult.succeeded() )
+					.writeAttribute( "type", assertionResult.getTestMacroName() )
+                    .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                    .writeAttribute( "line", assertionResult.getSourceInfo().line );
+
+                m_xml.scopedElement( "Original" )
+                    .writeText( assertionResult.getExpression() );
+                m_xml.scopedElement( "Expanded" )
+                    .writeText( assertionResult.getExpandedExpression() );
+            }
+
+            // And... Print a result applicable to each result type.
+            switch( assertionResult.getResultType() ) {
+                case ResultWas::ThrewException:
+                    m_xml.scopedElement( "Exception" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::FatalErrorCondition:
+                    m_xml.scopedElement( "Fatal Error Condition" )
+                        .writeAttribute( "filename", assertionResult.getSourceInfo().file )
+                        .writeAttribute( "line", assertionResult.getSourceInfo().line )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Info:
+                    m_xml.scopedElement( "Info" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                case ResultWas::Warning:
+                    // Warning will already have been written
+                    break;
+                case ResultWas::ExplicitFailure:
+                    m_xml.scopedElement( "Failure" )
+                        .writeText( assertionResult.getMessage() );
+                    break;
+                default:
+                    break;
+            }
+
+            if( assertionResult.hasExpression() )
+                m_xml.endElement();
+
+            return true;
+        }
+
+        virtual void sectionEnded( SectionStats const& sectionStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::sectionEnded( sectionStats );
+            if( --m_sectionDepth > 0 ) {
+                XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResults" );
+                e.writeAttribute( "successes", sectionStats.assertions.passed );
+                e.writeAttribute( "failures", sectionStats.assertions.failed );
+                e.writeAttribute( "expectedFailures", sectionStats.assertions.failedButOk );
+
+                if ( m_config->showDurations() == ShowDurations::Always )
+                    e.writeAttribute( "durationInSeconds", sectionStats.durationInSeconds );
+
+                m_xml.endElement();
+            }
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( testCaseStats );
+            XmlWriter::ScopedElement e = m_xml.scopedElement( "OverallResult" );
+            e.writeAttribute( "success", testCaseStats.totals.assertions.allOk() );
+
+            if ( m_config->showDurations() == ShowDurations::Always )
+                e.writeAttribute( "durationInSeconds", m_testCaseTimer.getElapsedSeconds() );
+
+            m_xml.endElement();
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testGroupEnded( testGroupStats );
+            // TODO: Check testGroupStats.aborting and act accordingly.
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testGroupStats.totals.assertions.passed )
+                .writeAttribute( "failures", testGroupStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testGroupStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+        virtual void testRunEnded( TestRunStats const& testRunStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testRunEnded( testRunStats );
+            m_xml.scopedElement( "OverallResults" )
+                .writeAttribute( "successes", testRunStats.totals.assertions.passed )
+                .writeAttribute( "failures", testRunStats.totals.assertions.failed )
+                .writeAttribute( "expectedFailures", testRunStats.totals.assertions.failedButOk );
+            m_xml.endElement();
+        }
+
+    private:
+        Timer m_testCaseTimer;
+        XmlWriter m_xml;
+        int m_sectionDepth;
+    };
+
+     INTERNAL_CATCH_REGISTER_REPORTER( "xml", XmlReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_junit.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_JUNIT_HPP_INCLUDED
+
+#include <assert.h>
+
+namespace Catch {
+
+    class JunitReporter : public CumulativeReporterBase {
+    public:
+        JunitReporter( ReporterConfig const& _config )
+        :   CumulativeReporterBase( _config ),
+            xml( _config.stream() )
+        {
+            m_reporterPrefs.shouldRedirectStdOut = true;
+        }
+
+        virtual ~JunitReporter() CATCH_OVERRIDE;
+
+        static std::string getDescription() {
+            return "Reports test results in an XML format that looks like Ant's junitreport target";
+        }
+
+        virtual void noMatchingTestCases( std::string const& /*spec*/ ) CATCH_OVERRIDE {}
+
+        virtual void testRunStarting( TestRunInfo const& runInfo ) CATCH_OVERRIDE {
+            CumulativeReporterBase::testRunStarting( runInfo );
+            xml.startElement( "testsuites" );
+        }
+
+        virtual void testGroupStarting( GroupInfo const& groupInfo ) CATCH_OVERRIDE {
+            suiteTimer.start();
+            stdOutForSuite.str("");
+            stdErrForSuite.str("");
+            unexpectedExceptions = 0;
+            CumulativeReporterBase::testGroupStarting( groupInfo );
+        }
+
+        virtual bool assertionEnded( AssertionStats const& assertionStats ) CATCH_OVERRIDE {
+            if( assertionStats.assertionResult.getResultType() == ResultWas::ThrewException )
+                unexpectedExceptions++;
+            return CumulativeReporterBase::assertionEnded( assertionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& testCaseStats ) CATCH_OVERRIDE {
+            stdOutForSuite << testCaseStats.stdOut;
+            stdErrForSuite << testCaseStats.stdErr;
+            CumulativeReporterBase::testCaseEnded( testCaseStats );
+        }
+
+        virtual void testGroupEnded( TestGroupStats const& testGroupStats ) CATCH_OVERRIDE {
+            double suiteTime = suiteTimer.getElapsedSeconds();
+            CumulativeReporterBase::testGroupEnded( testGroupStats );
+            writeGroup( *m_testGroups.back(), suiteTime );
+        }
+
+        virtual void testRunEndedCumulative() CATCH_OVERRIDE {
+            xml.endElement();
+        }
+
+        void writeGroup( TestGroupNode const& groupNode, double suiteTime ) {
+            XmlWriter::ScopedElement e = xml.scopedElement( "testsuite" );
+            TestGroupStats const& stats = groupNode.value;
+            xml.writeAttribute( "name", stats.groupInfo.name );
+            xml.writeAttribute( "errors", unexpectedExceptions );
+            xml.writeAttribute( "failures", stats.totals.assertions.failed-unexpectedExceptions );
+            xml.writeAttribute( "tests", stats.totals.assertions.total() );
+            xml.writeAttribute( "hostname", "tbd" ); // !TBD
+            if( m_config->showDurations() == ShowDurations::Never )
+                xml.writeAttribute( "time", "" );
+            else
+                xml.writeAttribute( "time", suiteTime );
+            xml.writeAttribute( "timestamp", "tbd" ); // !TBD
+
+            // Write test cases
+            for( TestGroupNode::ChildNodes::const_iterator
+                    it = groupNode.children.begin(), itEnd = groupNode.children.end();
+                    it != itEnd;
+                    ++it )
+                writeTestCase( **it );
+
+            xml.scopedElement( "system-out" ).writeText( trim( stdOutForSuite.str() ), false );
+            xml.scopedElement( "system-err" ).writeText( trim( stdErrForSuite.str() ), false );
+        }
+
+        void writeTestCase( TestCaseNode const& testCaseNode ) {
+            TestCaseStats const& stats = testCaseNode.value;
+
+            // All test cases have exactly one section - which represents the
+            // test case itself. That section may have 0-n nested sections
+            assert( testCaseNode.children.size() == 1 );
+            SectionNode const& rootSection = *testCaseNode.children.front();
+
+            std::string className = stats.testInfo.className;
+
+            if( className.empty() ) {
+                if( rootSection.childSections.empty() )
+                    className = "global";
+            }
+            writeSection( className, "", rootSection );
+        }
+
+        void writeSection(  std::string const& className,
+                            std::string const& rootName,
+                            SectionNode const& sectionNode ) {
+            std::string name = trim( sectionNode.stats.sectionInfo.name );
+            if( !rootName.empty() )
+                name = rootName + "/" + name;
+
+            if( !sectionNode.assertions.empty() ||
+                !sectionNode.stdOut.empty() ||
+                !sectionNode.stdErr.empty() ) {
+                XmlWriter::ScopedElement e = xml.scopedElement( "testcase" );
+                if( className.empty() ) {
+                    xml.writeAttribute( "classname", name );
+                    xml.writeAttribute( "name", "root" );
+                }
+                else {
+                    xml.writeAttribute( "classname", className );
+                    xml.writeAttribute( "name", name );
+                }
+                xml.writeAttribute( "time", Catch::toString( sectionNode.stats.durationInSeconds ) );
+
+                writeAssertions( sectionNode );
+
+                if( !sectionNode.stdOut.empty() )
+                    xml.scopedElement( "system-out" ).writeText( trim( sectionNode.stdOut ), false );
+                if( !sectionNode.stdErr.empty() )
+                    xml.scopedElement( "system-err" ).writeText( trim( sectionNode.stdErr ), false );
+            }
+            for( SectionNode::ChildSections::const_iterator
+                    it = sectionNode.childSections.begin(),
+                    itEnd = sectionNode.childSections.end();
+                    it != itEnd;
+                    ++it )
+                if( className.empty() )
+                    writeSection( name, "", **it );
+                else
+                    writeSection( className, name, **it );
+        }
+
+        void writeAssertions( SectionNode const& sectionNode ) {
+            for( SectionNode::Assertions::const_iterator
+                    it = sectionNode.assertions.begin(), itEnd = sectionNode.assertions.end();
+                    it != itEnd;
+                    ++it )
+                writeAssertion( *it );
+        }
+        void writeAssertion( AssertionStats const& stats ) {
+            AssertionResult const& result = stats.assertionResult;
+            if( !result.isOk() ) {
+                std::string elementName;
+                switch( result.getResultType() ) {
+                    case ResultWas::ThrewException:
+                    case ResultWas::FatalErrorCondition:
+                        elementName = "error";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        elementName = "failure";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        elementName = "failure";
+                        break;
+
+                    // We should never see these here:
+                    case ResultWas::Info:
+                    case ResultWas::Warning:
+                    case ResultWas::Ok:
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        elementName = "internalError";
+                        break;
+                }
+
+                XmlWriter::ScopedElement e = xml.scopedElement( elementName );
+
+                xml.writeAttribute( "message", result.getExpandedExpression() );
+                xml.writeAttribute( "type", result.getTestMacroName() );
+
+                std::ostringstream oss;
+                if( !result.getMessage().empty() )
+                    oss << result.getMessage() << "\n";
+                for( std::vector<MessageInfo>::const_iterator
+                        it = stats.infoMessages.begin(),
+                        itEnd = stats.infoMessages.end();
+                            it != itEnd;
+                            ++it )
+                    if( it->type == ResultWas::Info )
+                        oss << it->message << "\n";
+
+                oss << "at " << result.getSourceInfo();
+                xml.writeText( oss.str(), false );
+            }
+        }
+
+        XmlWriter xml;
+        Timer suiteTimer;
+        std::ostringstream stdOutForSuite;
+        std::ostringstream stdErrForSuite;
+        unsigned int unexpectedExceptions;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "junit", JunitReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_console.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_CONSOLE_HPP_INCLUDED
+
+namespace Catch {
+
+    struct ConsoleReporter : StreamingReporterBase {
+        ConsoleReporter( ReporterConfig const& _config )
+        :   StreamingReporterBase( _config ),
+            m_headerPrinted( false )
+        {}
+
+        virtual ~ConsoleReporter() CATCH_OVERRIDE;
+        static std::string getDescription() {
+            return "Reports test results as plain lines of text";
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) CATCH_OVERRIDE {
+            stream << "No test cases matched '" << spec << "'" << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) CATCH_OVERRIDE {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) CATCH_OVERRIDE {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            lazyPrint();
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void sectionStarting( SectionInfo const& _sectionInfo ) CATCH_OVERRIDE {
+            m_headerPrinted = false;
+            StreamingReporterBase::sectionStarting( _sectionInfo );
+        }
+        virtual void sectionEnded( SectionStats const& _sectionStats ) CATCH_OVERRIDE {
+            if( _sectionStats.missingAssertions ) {
+                lazyPrint();
+                Colour colour( Colour::ResultError );
+                if( m_sectionStack.size() > 1 )
+                    stream << "\nNo assertions in section";
+                else
+                    stream << "\nNo assertions in test case";
+                stream << " '" << _sectionStats.sectionInfo.name << "'\n" << std::endl;
+            }
+            if( m_headerPrinted ) {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << "Completed in " << _sectionStats.durationInSeconds << "s" << std::endl;
+                m_headerPrinted = false;
+            }
+            else {
+                if( m_config->showDurations() == ShowDurations::Always )
+                    stream << _sectionStats.sectionInfo.name << " completed in " << _sectionStats.durationInSeconds << "s" << std::endl;
+            }
+            StreamingReporterBase::sectionEnded( _sectionStats );
+        }
+
+        virtual void testCaseEnded( TestCaseStats const& _testCaseStats ) CATCH_OVERRIDE {
+            StreamingReporterBase::testCaseEnded( _testCaseStats );
+            m_headerPrinted = false;
+        }
+        virtual void testGroupEnded( TestGroupStats const& _testGroupStats ) CATCH_OVERRIDE {
+            if( currentGroupInfo.used ) {
+                printSummaryDivider();
+                stream << "Summary for group '" << _testGroupStats.groupInfo.name << "':\n";
+                printTotals( _testGroupStats.totals );
+                stream << "\n" << std::endl;
+            }
+            StreamingReporterBase::testGroupEnded( _testGroupStats );
+        }
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) CATCH_OVERRIDE {
+            printTotalsDivider( _testRunStats.totals );
+            printTotals( _testRunStats.totals );
+            stream << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            :   stream( _stream ),
+                stats( _stats ),
+                result( _stats.assertionResult ),
+                colour( Colour::None ),
+                message( result.getMessage() ),
+                messages( _stats.infoMessages ),
+                printInfoMessages( _printInfoMessages )
+            {
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        colour = Colour::Success;
+                        passOrFail = "PASSED";
+                        //if( result.hasMessage() )
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() ) {
+                            colour = Colour::Success;
+                            passOrFail = "FAILED - but was ok";
+                        }
+                        else {
+                            colour = Colour::Error;
+                            passOrFail = "FAILED";
+                        }
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "with messages";
+                        break;
+                    case ResultWas::ThrewException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to unexpected exception with message";
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "due to a fatal error condition";
+                        break;
+                    case ResultWas::DidntThrowException:
+                        colour = Colour::Error;
+                        passOrFail = "FAILED";
+                        messageLabel = "because no exception was thrown where one was expected";
+                        break;
+                    case ResultWas::Info:
+                        messageLabel = "info";
+                        break;
+                    case ResultWas::Warning:
+                        messageLabel = "warning";
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        passOrFail = "FAILED";
+                        colour = Colour::Error;
+                        if( _stats.infoMessages.size() == 1 )
+                            messageLabel = "explicitly with message";
+                        if( _stats.infoMessages.size() > 1 )
+                            messageLabel = "explicitly with messages";
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        passOrFail = "** internal error **";
+                        colour = Colour::Error;
+                        break;
+                }
+            }
+
+            void print() const {
+                printSourceInfo();
+                if( stats.totals.assertions.total() > 0 ) {
+                    if( result.isOk() )
+                        stream << "\n";
+                    printResultType();
+                    printOriginalExpression();
+                    printReconstructedExpression();
+                }
+                else {
+                    stream << "\n";
+                }
+                printMessage();
+            }
+
+        private:
+            void printResultType() const {
+                if( !passOrFail.empty() ) {
+                    Colour colourGuard( colour );
+                    stream << passOrFail << ":\n";
+                }
+            }
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    Colour colourGuard( Colour::OriginalExpression );
+                    stream  << "  ";
+                    stream << result.getExpressionInMacro();
+                    stream << "\n";
+                }
+            }
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    stream << "with expansion:\n";
+                    Colour colourGuard( Colour::ReconstructedExpression );
+                    stream << Text( result.getExpandedExpression(), TextAttributes().setIndent(2) ) << "\n";
+                }
+            }
+            void printMessage() const {
+                if( !messageLabel.empty() )
+                    stream << messageLabel << ":" << "\n";
+                for( std::vector<MessageInfo>::const_iterator it = messages.begin(), itEnd = messages.end();
+                        it != itEnd;
+                        ++it ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || it->type != ResultWas::Info )
+                        stream << Text( it->message, TextAttributes().setIndent(2) ) << "\n";
+                }
+            }
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ": ";
+            }
+
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            Colour::Code colour;
+            std::string passOrFail;
+            std::string messageLabel;
+            std::string message;
+            std::vector<MessageInfo> messages;
+            bool printInfoMessages;
+        };
+
+        void lazyPrint() {
+
+            if( !currentTestRunInfo.used )
+                lazyPrintRunInfo();
+            if( !currentGroupInfo.used )
+                lazyPrintGroupInfo();
+
+            if( !m_headerPrinted ) {
+                printTestCaseAndSectionHeader();
+                m_headerPrinted = true;
+            }
+        }
+        void lazyPrintRunInfo() {
+            stream  << "\n" << getLineOfChars<'~'>() << "\n";
+            Colour colour( Colour::SecondaryText );
+            stream  << currentTestRunInfo->name
+                    << " is a Catch v"  << libraryVersion << " host application.\n"
+                    << "Run with -? for options\n\n";
+
+            if( m_config->rngSeed() != 0 )
+                stream << "Randomness seeded to: " << m_config->rngSeed() << "\n\n";
+
+            currentTestRunInfo.used = true;
+        }
+        void lazyPrintGroupInfo() {
+            if( !currentGroupInfo->name.empty() && currentGroupInfo->groupsCounts > 1 ) {
+                printClosedHeader( "Group: " + currentGroupInfo->name );
+                currentGroupInfo.used = true;
+            }
+        }
+        void printTestCaseAndSectionHeader() {
+            assert( !m_sectionStack.empty() );
+            printOpenHeader( currentTestCaseInfo->name );
+
+            if( m_sectionStack.size() > 1 ) {
+                Colour colourGuard( Colour::Headers );
+
+                std::vector<SectionInfo>::const_iterator
+                    it = m_sectionStack.begin()+1, // Skip first section (test case)
+                    itEnd = m_sectionStack.end();
+                for( ; it != itEnd; ++it )
+                    printHeaderString( it->name, 2 );
+            }
+
+            SourceLineInfo lineInfo = m_sectionStack.front().lineInfo;
+
+            if( !lineInfo.empty() ){
+                stream << getLineOfChars<'-'>() << "\n";
+                Colour colourGuard( Colour::FileName );
+                stream << lineInfo << "\n";
+            }
+            stream << getLineOfChars<'.'>() << "\n" << std::endl;
+        }
+
+        void printClosedHeader( std::string const& _name ) {
+            printOpenHeader( _name );
+            stream << getLineOfChars<'.'>() << "\n";
+        }
+        void printOpenHeader( std::string const& _name ) {
+            stream  << getLineOfChars<'-'>() << "\n";
+            {
+                Colour colourGuard( Colour::Headers );
+                printHeaderString( _name );
+            }
+        }
+
+        // if string has a : in first line will set indent to follow it on
+        // subsequent lines
+        void printHeaderString( std::string const& _string, std::size_t indent = 0 ) {
+            std::size_t i = _string.find( ": " );
+            if( i != std::string::npos )
+                i+=2;
+            else
+                i = 0;
+            stream << Text( _string, TextAttributes()
+                                        .setIndent( indent+i)
+                                        .setInitialIndent( indent ) ) << "\n";
+        }
+
+        struct SummaryColumn {
+
+            SummaryColumn( std::string const& _label, Colour::Code _colour )
+            :   label( _label ),
+                colour( _colour )
+            {}
+            SummaryColumn addRow( std::size_t count ) {
+                std::ostringstream oss;
+                oss << count;
+                std::string row = oss.str();
+                for( std::vector<std::string>::iterator it = rows.begin(); it != rows.end(); ++it ) {
+                    while( it->size() < row.size() )
+                        *it = " " + *it;
+                    while( it->size() > row.size() )
+                        row = " " + row;
+                }
+                rows.push_back( row );
+                return *this;
+            }
+
+            std::string label;
+            Colour::Code colour;
+            std::vector<std::string> rows;
+
+        };
+
+        void printTotals( Totals const& totals ) {
+            if( totals.testCases.total() == 0 ) {
+                stream << Colour( Colour::Warning ) << "No tests ran\n";
+            }
+            else if( totals.assertions.total() > 0 && totals.assertions.allPassed() ) {
+                stream << Colour( Colour::ResultSuccess ) << "All tests passed";
+                stream << " ("
+                        << pluralise( totals.assertions.passed, "assertion" ) << " in "
+                        << pluralise( totals.testCases.passed, "test case" ) << ")"
+                        << "\n";
+            }
+            else {
+
+                std::vector<SummaryColumn> columns;
+                columns.push_back( SummaryColumn( "", Colour::None )
+                                        .addRow( totals.testCases.total() )
+                                        .addRow( totals.assertions.total() ) );
+                columns.push_back( SummaryColumn( "passed", Colour::Success )
+                                        .addRow( totals.testCases.passed )
+                                        .addRow( totals.assertions.passed ) );
+                columns.push_back( SummaryColumn( "failed", Colour::ResultError )
+                                        .addRow( totals.testCases.failed )
+                                        .addRow( totals.assertions.failed ) );
+                columns.push_back( SummaryColumn( "failed as expected", Colour::ResultExpectedFailure )
+                                        .addRow( totals.testCases.failedButOk )
+                                        .addRow( totals.assertions.failedButOk ) );
+
+                printSummaryRow( "test cases", columns, 0 );
+                printSummaryRow( "assertions", columns, 1 );
+            }
+        }
+        void printSummaryRow( std::string const& label, std::vector<SummaryColumn> const& cols, std::size_t row ) {
+            for( std::vector<SummaryColumn>::const_iterator it = cols.begin(); it != cols.end(); ++it ) {
+                std::string value = it->rows[row];
+                if( it->label.empty() ) {
+                    stream << label << ": ";
+                    if( value != "0" )
+                        stream << value;
+                    else
+                        stream << Colour( Colour::Warning ) << "- none -";
+                }
+                else if( value != "0" ) {
+                    stream  << Colour( Colour::LightGrey ) << " | ";
+                    stream  << Colour( it->colour )
+                            << value << " " << it->label;
+                }
+            }
+            stream << "\n";
+        }
+
+        static std::size_t makeRatio( std::size_t number, std::size_t total ) {
+            std::size_t ratio = total > 0 ? CATCH_CONFIG_CONSOLE_WIDTH * number/ total : 0;
+            return ( ratio == 0 && number > 0 ) ? 1 : ratio;
+        }
+        static std::size_t& findMax( std::size_t& i, std::size_t& j, std::size_t& k ) {
+            if( i > j && i > k )
+                return i;
+            else if( j > k )
+                return j;
+            else
+                return k;
+        }
+
+        void printTotalsDivider( Totals const& totals ) {
+            if( totals.testCases.total() > 0 ) {
+                std::size_t failedRatio = makeRatio( totals.testCases.failed, totals.testCases.total() );
+                std::size_t failedButOkRatio = makeRatio( totals.testCases.failedButOk, totals.testCases.total() );
+                std::size_t passedRatio = makeRatio( totals.testCases.passed, totals.testCases.total() );
+                while( failedRatio + failedButOkRatio + passedRatio < CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )++;
+                while( failedRatio + failedButOkRatio + passedRatio > CATCH_CONFIG_CONSOLE_WIDTH-1 )
+                    findMax( failedRatio, failedButOkRatio, passedRatio )--;
+
+                stream << Colour( Colour::Error ) << std::string( failedRatio, '=' );
+                stream << Colour( Colour::ResultExpectedFailure ) << std::string( failedButOkRatio, '=' );
+                if( totals.testCases.allPassed() )
+                    stream << Colour( Colour::ResultSuccess ) << std::string( passedRatio, '=' );
+                else
+                    stream << Colour( Colour::Success ) << std::string( passedRatio, '=' );
+            }
+            else {
+                stream << Colour( Colour::Warning ) << std::string( CATCH_CONFIG_CONSOLE_WIDTH-1, '=' );
+            }
+            stream << "\n";
+        }
+        void printSummaryDivider() {
+            stream << getLineOfChars<'-'>() << "\n";
+        }
+
+    private:
+        bool m_headerPrinted;
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "console", ConsoleReporter )
+
+} // end namespace Catch
+
+// #included from: ../reporters/catch_reporter_compact.hpp
+#define TWOBLUECUBES_CATCH_REPORTER_COMPACT_HPP_INCLUDED
+
+namespace Catch {
+
+    struct CompactReporter : StreamingReporterBase {
+
+        CompactReporter( ReporterConfig const& _config )
+        : StreamingReporterBase( _config )
+        {}
+
+        virtual ~CompactReporter();
+
+        static std::string getDescription() {
+            return "Reports test results on a single line, suitable for IDEs";
+        }
+
+        virtual ReporterPreferences getPreferences() const {
+            ReporterPreferences prefs;
+            prefs.shouldRedirectStdOut = false;
+            return prefs;
+        }
+
+        virtual void noMatchingTestCases( std::string const& spec ) {
+            stream << "No test cases matched '" << spec << "'" << std::endl;
+        }
+
+        virtual void assertionStarting( AssertionInfo const& ) {
+        }
+
+        virtual bool assertionEnded( AssertionStats const& _assertionStats ) {
+            AssertionResult const& result = _assertionStats.assertionResult;
+
+            bool printInfoMessages = true;
+
+            // Drop out if result was successful and we're not printing those
+            if( !m_config->includeSuccessfulResults() && result.isOk() ) {
+                if( result.getResultType() != ResultWas::Warning )
+                    return false;
+                printInfoMessages = false;
+            }
+
+            AssertionPrinter printer( stream, _assertionStats, printInfoMessages );
+            printer.print();
+
+            stream << std::endl;
+            return true;
+        }
+
+        virtual void testRunEnded( TestRunStats const& _testRunStats ) {
+            printTotals( _testRunStats.totals );
+            stream << "\n" << std::endl;
+            StreamingReporterBase::testRunEnded( _testRunStats );
+        }
+
+    private:
+        class AssertionPrinter {
+            void operator= ( AssertionPrinter const& );
+        public:
+            AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
+            : stream( _stream )
+            , stats( _stats )
+            , result( _stats.assertionResult )
+            , messages( _stats.infoMessages )
+            , itMessage( _stats.infoMessages.begin() )
+            , printInfoMessages( _printInfoMessages )
+            {}
+
+            void print() {
+                printSourceInfo();
+
+                itMessage = messages.begin();
+
+                switch( result.getResultType() ) {
+                    case ResultWas::Ok:
+                        printResultType( Colour::ResultSuccess, passedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        if ( ! result.hasExpression() )
+                            printRemainingMessages( Colour::None );
+                        else
+                            printRemainingMessages();
+                        break;
+                    case ResultWas::ExpressionFailed:
+                        if( result.isOk() )
+                            printResultType( Colour::ResultSuccess, failedString() + std::string( " - but was ok" ) );
+                        else
+                            printResultType( Colour::Error, failedString() );
+                        printOriginalExpression();
+                        printReconstructedExpression();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ThrewException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "unexpected exception with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::FatalErrorCondition:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "fatal error condition with message:" );
+                        printMessage();
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::DidntThrowException:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "expected exception, got none" );
+                        printExpressionWas();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Info:
+                        printResultType( Colour::None, "info" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::Warning:
+                        printResultType( Colour::None, "warning" );
+                        printMessage();
+                        printRemainingMessages();
+                        break;
+                    case ResultWas::ExplicitFailure:
+                        printResultType( Colour::Error, failedString() );
+                        printIssue( "explicitly" );
+                        printRemainingMessages( Colour::None );
+                        break;
+                    // These cases are here to prevent compiler warnings
+                    case ResultWas::Unknown:
+                    case ResultWas::FailureBit:
+                    case ResultWas::Exception:
+                        printResultType( Colour::Error, "** internal error **" );
+                        break;
+                }
+            }
+
+        private:
+            // Colour::LightGrey
+
+            static Colour::Code dimColour() { return Colour::FileName; }
+
+#ifdef CATCH_PLATFORM_MAC
+            static const char* failedString() { return "FAILED"; }
+            static const char* passedString() { return "PASSED"; }
+#else
+            static const char* failedString() { return "failed"; }
+            static const char* passedString() { return "passed"; }
+#endif
+
+            void printSourceInfo() const {
+                Colour colourGuard( Colour::FileName );
+                stream << result.getSourceInfo() << ":";
+            }
+
+            void printResultType( Colour::Code colour, std::string passOrFail ) const {
+                if( !passOrFail.empty() ) {
+                    {
+                        Colour colourGuard( colour );
+                        stream << " " << passOrFail;
+                    }
+                    stream << ":";
+                }
+            }
+
+            void printIssue( std::string issue ) const {
+                stream << " " << issue;
+            }
+
+            void printExpressionWas() {
+                if( result.hasExpression() ) {
+                    stream << ";";
+                    {
+                        Colour colour( dimColour() );
+                        stream << " expression was:";
+                    }
+                    printOriginalExpression();
+                }
+            }
+
+            void printOriginalExpression() const {
+                if( result.hasExpression() ) {
+                    stream << " " << result.getExpression();
+                }
+            }
+
+            void printReconstructedExpression() const {
+                if( result.hasExpandedExpression() ) {
+                    {
+                        Colour colour( dimColour() );
+                        stream << " for: ";
+                    }
+                    stream << result.getExpandedExpression();
+                }
+            }
+
+            void printMessage() {
+                if ( itMessage != messages.end() ) {
+                    stream << " '" << itMessage->message << "'";
+                    ++itMessage;
+                }
+            }
+
+            void printRemainingMessages( Colour::Code colour = dimColour() ) {
+                if ( itMessage == messages.end() )
+                    return;
+
+                // using messages.end() directly yields compilation error:
+                std::vector<MessageInfo>::const_iterator itEnd = messages.end();
+                const std::size_t N = static_cast<std::size_t>( std::distance( itMessage, itEnd ) );
+
+                {
+                    Colour colourGuard( colour );
+                    stream << " with " << pluralise( N, "message" ) << ":";
+                }
+
+                for(; itMessage != itEnd; ) {
+                    // If this assertion is a warning ignore any INFO messages
+                    if( printInfoMessages || itMessage->type != ResultWas::Info ) {
+                        stream << " '" << itMessage->message << "'";
+                        if ( ++itMessage != itEnd ) {
+                            Colour colourGuard( dimColour() );
+                            stream << " and";
+                        }
+                    }
+                }
+            }
+
+        private:
+            std::ostream& stream;
+            AssertionStats const& stats;
+            AssertionResult const& result;
+            std::vector<MessageInfo> messages;
+            std::vector<MessageInfo>::const_iterator itMessage;
+            bool printInfoMessages;
+        };
+
+        // Colour, message variants:
+        // - white: No tests ran.
+        // -   red: Failed [both/all] N test cases, failed [both/all] M assertions.
+        // - white: Passed [both/all] N test cases (no assertions).
+        // -   red: Failed N tests cases, failed M assertions.
+        // - green: Passed [both/all] N tests cases with M assertions.
+
+        std::string bothOrAll( std::size_t count ) const {
+            return count == 1 ? "" : count == 2 ? "both " : "all " ;
+        }
+
+        void printTotals( const Totals& totals ) const {
+            if( totals.testCases.total() == 0 ) {
+                stream << "No tests ran.";
+            }
+            else if( totals.testCases.failed == totals.testCases.total() ) {
+                Colour colour( Colour::ResultError );
+                const std::string qualify_assertions_failed =
+                    totals.assertions.failed == totals.assertions.total() ?
+                        bothOrAll( totals.assertions.failed ) : "";
+                stream <<
+                    "Failed " << bothOrAll( totals.testCases.failed )
+                              << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << qualify_assertions_failed <<
+                                 pluralise( totals.assertions.failed, "assertion" ) << ".";
+            }
+            else if( totals.assertions.total() == 0 ) {
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.total() )
+                              << pluralise( totals.testCases.total(), "test case" )
+                              << " (no assertions).";
+            }
+            else if( totals.assertions.failed ) {
+                Colour colour( Colour::ResultError );
+                stream <<
+                    "Failed " << pluralise( totals.testCases.failed, "test case"  ) << ", "
+                    "failed " << pluralise( totals.assertions.failed, "assertion" ) << ".";
+            }
+            else {
+                Colour colour( Colour::ResultSuccess );
+                stream <<
+                    "Passed " << bothOrAll( totals.testCases.passed )
+                              << pluralise( totals.testCases.passed, "test case"  ) <<
+                    " with "  << pluralise( totals.assertions.passed, "assertion" ) << ".";
+            }
+        }
+    };
+
+    INTERNAL_CATCH_REGISTER_REPORTER( "compact", CompactReporter )
+
+} // end namespace Catch
+
+namespace Catch {
+    // These are all here to avoid warnings about not having any out of line
+    // virtual methods
+    NonCopyable::~NonCopyable() {}
+    IShared::~IShared() {}
+    IStream::~IStream() CATCH_NOEXCEPT {}
+    FileStream::~FileStream() CATCH_NOEXCEPT {}
+    CoutStream::~CoutStream() CATCH_NOEXCEPT {}
+    DebugOutStream::~DebugOutStream() CATCH_NOEXCEPT {}
+    StreamBufBase::~StreamBufBase() CATCH_NOEXCEPT {}
+    IContext::~IContext() {}
+    IResultCapture::~IResultCapture() {}
+    ITestCase::~ITestCase() {}
+    ITestCaseRegistry::~ITestCaseRegistry() {}
+    IRegistryHub::~IRegistryHub() {}
+    IMutableRegistryHub::~IMutableRegistryHub() {}
+    IExceptionTranslator::~IExceptionTranslator() {}
+    IExceptionTranslatorRegistry::~IExceptionTranslatorRegistry() {}
+    IReporter::~IReporter() {}
+    IReporterFactory::~IReporterFactory() {}
+    IReporterRegistry::~IReporterRegistry() {}
+    IStreamingReporter::~IStreamingReporter() {}
+    AssertionStats::~AssertionStats() {}
+    SectionStats::~SectionStats() {}
+    TestCaseStats::~TestCaseStats() {}
+    TestGroupStats::~TestGroupStats() {}
+    TestRunStats::~TestRunStats() {}
+    CumulativeReporterBase::SectionNode::~SectionNode() {}
+    CumulativeReporterBase::~CumulativeReporterBase() {}
+
+    StreamingReporterBase::~StreamingReporterBase() {}
+    ConsoleReporter::~ConsoleReporter() {}
+    CompactReporter::~CompactReporter() {}
+    IRunner::~IRunner() {}
+    IMutableContext::~IMutableContext() {}
+    IConfig::~IConfig() {}
+    XmlReporter::~XmlReporter() {}
+    JunitReporter::~JunitReporter() {}
+    TestRegistry::~TestRegistry() {}
+    FreeFunctionTestCase::~FreeFunctionTestCase() {}
+    IGeneratorInfo::~IGeneratorInfo() {}
+    IGeneratorsForTest::~IGeneratorsForTest() {}
+    WildcardPattern::~WildcardPattern() {}
+    TestSpec::Pattern::~Pattern() {}
+    TestSpec::NamePattern::~NamePattern() {}
+    TestSpec::TagPattern::~TagPattern() {}
+    TestSpec::ExcludedPattern::~ExcludedPattern() {}
+
+    Matchers::Impl::StdString::Equals::~Equals() {}
+    Matchers::Impl::StdString::Contains::~Contains() {}
+    Matchers::Impl::StdString::StartsWith::~StartsWith() {}
+    Matchers::Impl::StdString::EndsWith::~EndsWith() {}
+
+    void Config::dummy() {}
+
+    namespace TestCaseTracking {
+        ITracker::~ITracker() {}
+        TrackerBase::~TrackerBase() {}
+        SectionTracker::~SectionTracker() {}
+        IndexTracker::~IndexTracker() {}
+    }
+}
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#endif
+
+#ifdef CATCH_CONFIG_MAIN
+// #included from: internal/catch_default_main.hpp
+#define TWOBLUECUBES_CATCH_DEFAULT_MAIN_HPP_INCLUDED
+
+#ifndef __OBJC__
+
+// Standard C/C++ main entry point
+int main (int argc, char * argv[]) {
+    return Catch::Session().run( argc, argv );
+}
+
+#else // __OBJC__
+
+// Objective-C entry point
+int main (int argc, char * const argv[]) {
+#if !CATCH_ARC_ENABLED
+    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
+#endif
+
+    Catch::registerTestMethods();
+    int result = Catch::Session().run( argc, (char* const*)argv );
+
+#if !CATCH_ARC_ENABLED
+    [pool drain];
+#endif
+
+    return result;
+}
+
+#endif // __OBJC__
+
+#endif
+
+#ifdef CLARA_CONFIG_MAIN_NOT_DEFINED
+#  undef CLARA_CONFIG_MAIN
+#endif
+
+//////
+
+// If this config identifier is defined then all CATCH macros are prefixed with CATCH_
+#ifdef CATCH_CONFIG_PREFIX_ALL
+
+#define CATCH_REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE" )
+#define CATCH_REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "CATCH_REQUIRE_FALSE" )
+
+#define CATCH_REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "CATCH_REQUIRE_THROWS" )
+#define CATCH_REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THROWS_AS" )
+#define CATCH_REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "CATCH_REQUIRE_THROWS_WITH" )
+#define CATCH_REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_NOTHROW" )
+
+#define CATCH_CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK" )
+#define CATCH_CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CATCH_CHECK_FALSE" )
+#define CATCH_CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_IF" )
+#define CATCH_CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECKED_ELSE" )
+#define CATCH_CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CATCH_CHECK_NOFAIL" )
+
+#define CATCH_CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS" )
+#define CATCH_CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THROWS_AS" )
+#define CATCH_CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CATCH_CHECK_THROWS_WITH" )
+#define CATCH_CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CATCH_CHECK_THAT" )
+#define CATCH_REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "CATCH_REQUIRE_THAT" )
+
+#define CATCH_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "CATCH_WARN", msg )
+#define CATCH_SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "CATCH_INFO" )
+#define CATCH_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+#define CATCH_SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CATCH_CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define CATCH_TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define CATCH_TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define CATCH_METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define CATCH_REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define CATCH_SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define CATCH_FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", __VA_ARGS__ )
+    #define CATCH_SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", __VA_ARGS__ )
+#else
+    #define CATCH_TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define CATCH_TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define CATCH_METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define CATCH_REGISTER_TEST_CASE( function, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( function, name, description )
+    #define CATCH_SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define CATCH_FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "CATCH_FAIL", msg )
+    #define CATCH_SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "CATCH_SUCCEED", msg )
+#endif
+#define CATCH_ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define CATCH_REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define CATCH_REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define CATCH_GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define CATCH_SCENARIO( ... ) CATCH_TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define CATCH_SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define CATCH_SCENARIO( name, tags ) CATCH_TEST_CASE( "Scenario: " name, tags )
+#define CATCH_SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define CATCH_GIVEN( desc )    CATCH_SECTION( std::string( "Given: ") + desc, "" )
+#define CATCH_WHEN( desc )     CATCH_SECTION( std::string( " When: ") + desc, "" )
+#define CATCH_AND_WHEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+#define CATCH_THEN( desc )     CATCH_SECTION( std::string( " Then: ") + desc, "" )
+#define CATCH_AND_THEN( desc ) CATCH_SECTION( std::string( "  And: ") + desc, "" )
+
+// If CATCH_CONFIG_PREFIX_ALL is not defined then the CATCH_ prefix is not required
+#else
+
+#define REQUIRE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal, "REQUIRE" )
+#define REQUIRE_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::Normal | Catch::ResultDisposition::FalseTest, "REQUIRE_FALSE" )
+
+#define REQUIRE_THROWS( expr ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, "", "REQUIRE_THROWS" )
+#define REQUIRE_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::Normal, "REQUIRE_THROWS_AS" )
+#define REQUIRE_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::Normal, matcher, "REQUIRE_THROWS_WITH" )
+#define REQUIRE_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::Normal, "REQUIRE_NOTHROW" )
+
+#define CHECK( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK" )
+#define CHECK_FALSE( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::FalseTest, "CHECK_FALSE" )
+#define CHECKED_IF( expr ) INTERNAL_CATCH_IF( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_IF" )
+#define CHECKED_ELSE( expr ) INTERNAL_CATCH_ELSE( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECKED_ELSE" )
+#define CHECK_NOFAIL( expr ) INTERNAL_CATCH_TEST( expr, Catch::ResultDisposition::ContinueOnFailure | Catch::ResultDisposition::SuppressFail, "CHECK_NOFAIL" )
+
+#define CHECK_THROWS( expr )  INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, "", "CHECK_THROWS" )
+#define CHECK_THROWS_AS( expr, exceptionType ) INTERNAL_CATCH_THROWS_AS( expr, exceptionType, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THROWS_AS" )
+#define CHECK_THROWS_WITH( expr, matcher ) INTERNAL_CATCH_THROWS( expr, Catch::ResultDisposition::ContinueOnFailure, matcher, "CHECK_THROWS_WITH" )
+#define CHECK_NOTHROW( expr ) INTERNAL_CATCH_NO_THROW( expr, Catch::ResultDisposition::ContinueOnFailure, "CHECK_NOTHROW" )
+
+#define CHECK_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::ContinueOnFailure, "CHECK_THAT" )
+#define REQUIRE_THAT( arg, matcher ) INTERNAL_CHECK_THAT( arg, matcher, Catch::ResultDisposition::Normal, "REQUIRE_THAT" )
+
+#define INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define WARN( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Warning, Catch::ResultDisposition::ContinueOnFailure, "WARN", msg )
+#define SCOPED_INFO( msg ) INTERNAL_CATCH_INFO( msg, "INFO" )
+#define CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+#define SCOPED_CAPTURE( msg ) INTERNAL_CATCH_INFO( #msg " := " << msg, "CAPTURE" )
+
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+    #define TEST_CASE( ... ) INTERNAL_CATCH_TESTCASE( __VA_ARGS__ )
+    #define TEST_CASE_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, __VA_ARGS__ )
+    #define METHOD_AS_TEST_CASE( method, ... ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, __VA_ARGS__ )
+    #define REGISTER_TEST_CASE( Function, ... ) INTERNAL_CATCH_REGISTER_TESTCASE( Function, __VA_ARGS__ )
+    #define SECTION( ... ) INTERNAL_CATCH_SECTION( __VA_ARGS__ )
+    #define FAIL( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", __VA_ARGS__ )
+    #define SUCCEED( ... ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", __VA_ARGS__ )
+#else
+    #define TEST_CASE( name, description ) INTERNAL_CATCH_TESTCASE( name, description )
+    #define TEST_CASE_METHOD( className, name, description ) INTERNAL_CATCH_TEST_CASE_METHOD( className, name, description )
+    #define METHOD_AS_TEST_CASE( method, name, description ) INTERNAL_CATCH_METHOD_AS_TEST_CASE( method, name, description )
+    #define REGISTER_TEST_CASE( method, name, description ) INTERNAL_CATCH_REGISTER_TESTCASE( method, name, description )
+    #define SECTION( name, description ) INTERNAL_CATCH_SECTION( name, description )
+    #define FAIL( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::ExplicitFailure, Catch::ResultDisposition::Normal, "FAIL", msg )
+    #define SUCCEED( msg ) INTERNAL_CATCH_MSG( Catch::ResultWas::Ok, Catch::ResultDisposition::ContinueOnFailure, "SUCCEED", msg )
+#endif
+#define ANON_TEST_CASE() INTERNAL_CATCH_TESTCASE( "", "" )
+
+#define REGISTER_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_REPORTER( name, reporterType )
+#define REGISTER_LEGACY_REPORTER( name, reporterType ) INTERNAL_CATCH_REGISTER_LEGACY_REPORTER( name, reporterType )
+
+#define GENERATE( expr) INTERNAL_CATCH_GENERATE( expr )
+
+#endif
+
+#define CATCH_TRANSLATE_EXCEPTION( signature ) INTERNAL_CATCH_TRANSLATE_EXCEPTION( signature )
+
+// "BDD-style" convenience wrappers
+#ifdef CATCH_CONFIG_VARIADIC_MACROS
+#define SCENARIO( ... ) TEST_CASE( "Scenario: " __VA_ARGS__ )
+#define SCENARIO_METHOD( className, ... ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " __VA_ARGS__ )
+#else
+#define SCENARIO( name, tags ) TEST_CASE( "Scenario: " name, tags )
+#define SCENARIO_METHOD( className, name, tags ) INTERNAL_CATCH_TEST_CASE_METHOD( className, "Scenario: " name, tags )
+#endif
+#define GIVEN( desc )    SECTION( std::string("   Given: ") + desc, "" )
+#define WHEN( desc )     SECTION( std::string("    When: ") + desc, "" )
+#define AND_WHEN( desc ) SECTION( std::string("And when: ") + desc, "" )
+#define THEN( desc )     SECTION( std::string("    Then: ") + desc, "" )
+#define AND_THEN( desc ) SECTION( std::string("     And: ") + desc, "" )
+
+using Catch::Detail::Approx;
+
+#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED
+
diff --git a/resources/3rdparty/modernjson/test/src/fuzz.cpp b/resources/3rdparty/modernjson/test/src/fuzz.cpp
new file mode 100755
index 000000000..d8b7ef7cf
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/src/fuzz.cpp
@@ -0,0 +1,34 @@
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++ (fuzz test support)
+|  |  |__   |  |  | | | |  version 2.0.0
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
+
+Run "make fuzz_testing" and follow the instructions.
+
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+*/
+
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+int main()
+{
+#ifdef __AFL_HAVE_MANUAL_CONTROL
+    while (__AFL_LOOP(1000))
+    {
+#endif
+        try
+        {
+            json j(std::cin);
+            std::cout << j << std::endl;
+        }
+        catch (std::invalid_argument& e)
+        {
+            std::cout << "Invalid argument in parsing" << e.what() << '\n';
+        }
+#ifdef __AFL_HAVE_MANUAL_CONTROL
+    }
+#endif
+}
diff --git a/resources/3rdparty/modernjson/test/src/unit.cpp b/resources/3rdparty/modernjson/test/src/unit.cpp
new file mode 100755
index 000000000..0a2bdd104
--- /dev/null
+++ b/resources/3rdparty/modernjson/test/src/unit.cpp
@@ -0,0 +1,14107 @@
+/*
+    __ _____ _____ _____
+ __|  |   __|     |   | |  JSON for Modern C++ (test suite)
+|  |  |__   |  |  | | | |  version 2.0.0
+|_____|_____|_____|_|___|  https://github.com/nlohmann/json
+
+Licensed under the MIT License <http://opensource.org/licenses/MIT>.
+Copyright (c) 2013-2016 Niels Lohmann <http://nlohmann.me>.
+
+Permission is hereby  granted, free of charge, to any  person obtaining a copy
+of this software and associated  documentation files (the "Software"), to deal
+in the Software  without restriction, including without  limitation the rights
+to  use, copy,  modify, merge,  publish, distribute,  sublicense, and/or  sell
+copies  of  the Software,  and  to  permit persons  to  whom  the Software  is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE  IS PROVIDED "AS  IS", WITHOUT WARRANTY  OF ANY KIND,  EXPRESS OR
+IMPLIED,  INCLUDING BUT  NOT  LIMITED TO  THE  WARRANTIES OF  MERCHANTABILITY,
+FITNESS FOR  A PARTICULAR PURPOSE AND  NONINFRINGEMENT. IN NO EVENT  SHALL THE
+AUTHORS  OR COPYRIGHT  HOLDERS  BE  LIABLE FOR  ANY  CLAIM,  DAMAGES OR  OTHER
+LIABILITY, WHETHER IN AN ACTION OF  CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE  OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+
+#define CATCH_CONFIG_MAIN
+#include "catch.hpp"
+
+#include <array>
+#include <deque>
+#include <forward_list>
+#include <list>
+#include <map>
+#include <set>
+#include <string>
+#include <unordered_map>
+#include <unordered_set>
+#include <vector>
+
+#define private public
+#include "json.hpp"
+using nlohmann::json;
+
+// disable float-equal warnings on GCC/clang
+#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
+    #pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
+
+TEST_CASE("constructors")
+{
+    SECTION("create an empty value with a given type")
+    {
+        SECTION("null")
+        {
+            auto t = json::value_t::null;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("discarded")
+        {
+            auto t = json::value_t::discarded;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("object")
+        {
+            auto t = json::value_t::object;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("array")
+        {
+            auto t = json::value_t::array;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("boolean")
+        {
+            auto t = json::value_t::boolean;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("string")
+        {
+            auto t = json::value_t::string;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("number_integer")
+        {
+            auto t = json::value_t::number_integer;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("number_unsigned")
+        {
+            auto t = json::value_t::number_unsigned;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+
+        SECTION("number_float")
+        {
+            auto t = json::value_t::number_float;
+            json j(t);
+            CHECK(j.type() == t);
+        }
+    }
+
+    SECTION("create a null object (implicitly)")
+    {
+        SECTION("no parameter")
+        {
+            json j{};
+            CHECK(j.type() == json::value_t::null);
+        }
+    }
+
+    SECTION("create a null object (explicitly)")
+    {
+        SECTION("parameter")
+        {
+            json j(nullptr);
+            CHECK(j.type() == json::value_t::null);
+        }
+    }
+
+    SECTION("create an object (explicit)")
+    {
+        SECTION("empty object")
+        {
+            json::object_t o;
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+        }
+
+        SECTION("filled object")
+        {
+            json::object_t o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+        }
+    }
+
+    SECTION("create an object (implicit)")
+    {
+        // reference object
+        json::object_t o_reference {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+        json j_reference(o_reference);
+
+        SECTION("std::map<json::string_t, json>")
+        {
+            std::map<json::string_t, json> o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::map<const char*, json>")
+        {
+            std::map<const char*, json> o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::multimap<json::string_t, json>")
+        {
+            std::multimap<json::string_t, json> o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::unordered_map<json::string_t, json>")
+        {
+            std::unordered_map<json::string_t, json> o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::unordered_multimap<json::string_t, json>")
+        {
+            std::unordered_multimap<json::string_t, json> o {{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}};
+            json j(o);
+            CHECK(j.type() == json::value_t::object);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("associative container literal")
+        {
+            json j({{"a", json(1)}, {"b", json(1u)}, {"c", json(2.2)}, {"d", json(false)}, {"e", json("string")}, {"f", json()}});
+            CHECK(j.type() == json::value_t::object);
+            CHECK(j == j_reference);
+        }
+    }
+
+    SECTION("create an array (explicit)")
+    {
+        SECTION("empty array")
+        {
+            json::array_t a;
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+        }
+
+        SECTION("filled array")
+        {
+            json::array_t a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+        }
+    }
+
+    SECTION("create an array (implicit)")
+    {
+        // reference array
+        json::array_t a_reference {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+        json j_reference(a_reference);
+
+        SECTION("std::list<json>")
+        {
+            std::list<json> a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::forward_list<json>")
+        {
+            std::forward_list<json> a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::array<json, 5>")
+        {
+            std::array<json, 6> a {{json(1), json(1u), json(2.2), json(false), json("string"), json()}};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::vector<json>")
+        {
+            std::vector<json> a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::deque<json>")
+        {
+            std::deque<json> a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("std::set<json>")
+        {
+            std::set<json> a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            // we cannot really check for equality here
+        }
+
+        SECTION("std::unordered_set<json>")
+        {
+            std::unordered_set<json> a {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+            json j(a);
+            CHECK(j.type() == json::value_t::array);
+            // we cannot really check for equality here
+        }
+
+        SECTION("sequence container literal")
+        {
+            json j({json(1), json(1u), json(2.2), json(false), json("string"), json()});
+            CHECK(j.type() == json::value_t::array);
+            CHECK(j == j_reference);
+        }
+    }
+
+    SECTION("create a string (explicit)")
+    {
+        SECTION("empty string")
+        {
+            json::string_t s;
+            json j(s);
+            CHECK(j.type() == json::value_t::string);
+        }
+
+        SECTION("filled string")
+        {
+            json::string_t s {"Hello world"};
+            json j(s);
+            CHECK(j.type() == json::value_t::string);
+        }
+    }
+
+    SECTION("create a string (implicit)")
+    {
+        // reference string
+        json::string_t s_reference {"Hello world"};
+        json j_reference(s_reference);
+
+        SECTION("std::string")
+        {
+            std::string s {"Hello world"};
+            json j(s);
+            CHECK(j.type() == json::value_t::string);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("char[]")
+        {
+            char s[] {"Hello world"};
+            json j(s);
+            CHECK(j.type() == json::value_t::string);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("const char*")
+        {
+            const char* s {"Hello world"};
+            json j(s);
+            CHECK(j.type() == json::value_t::string);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("string literal")
+        {
+            json j("Hello world");
+            CHECK(j.type() == json::value_t::string);
+            CHECK(j == j_reference);
+        }
+    }
+
+    SECTION("create a boolean (explicit)")
+    {
+        SECTION("empty boolean")
+        {
+            json::boolean_t b{};
+            json j(b);
+            CHECK(j.type() == json::value_t::boolean);
+        }
+
+        SECTION("filled boolean (true)")
+        {
+            json j(true);
+            CHECK(j.type() == json::value_t::boolean);
+        }
+
+        SECTION("filled boolean (false)")
+        {
+            json j(false);
+            CHECK(j.type() == json::value_t::boolean);
+        }
+    }
+
+    SECTION("create an integer number (explicit)")
+    {
+        SECTION("uninitialized value")
+        {
+            json::number_integer_t n{};
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+        }
+
+        SECTION("initialized value")
+        {
+            json::number_integer_t n(42);
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+        }
+    }
+
+    SECTION("create an integer number (implicit)")
+    {
+        // reference objects
+        json::number_integer_t n_reference = 42;
+        json j_reference(n_reference);
+        json::number_unsigned_t n_unsigned_reference = 42;
+        json j_unsigned_reference(n_unsigned_reference);
+
+        SECTION("short")
+        {
+            short n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("unsigned short")
+        {
+            unsigned short n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("int")
+        {
+            int n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("unsigned int")
+        {
+            unsigned int n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("long")
+        {
+            long n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("unsigned long")
+        {
+            unsigned long n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("long long")
+        {
+            long long n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("unsigned long long")
+        {
+            unsigned long long n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("int8_t")
+        {
+            int8_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int16_t")
+        {
+            int16_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int32_t")
+        {
+            int32_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int64_t")
+        {
+            int64_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_fast8_t")
+        {
+            int_fast8_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_fast16_t")
+        {
+            int_fast16_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_fast32_t")
+        {
+            int_fast32_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_fast64_t")
+        {
+            int_fast64_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_least8_t")
+        {
+            int_least8_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_least16_t")
+        {
+            int_least16_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_least32_t")
+        {
+            int_least32_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("int_least64_t")
+        {
+            int_least64_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("uint8_t")
+        {
+            uint8_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint16_t")
+        {
+            uint16_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint32_t")
+        {
+            uint32_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint64_t")
+        {
+            uint64_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_fast8_t")
+        {
+            uint_fast8_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_fast16_t")
+        {
+            uint_fast16_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_fast32_t")
+        {
+            uint_fast32_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_fast64_t")
+        {
+            uint_fast64_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_least8_t")
+        {
+            uint_least8_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_least16_t")
+        {
+            uint_least16_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_least32_t")
+        {
+            uint_least32_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("uint_least64_t")
+        {
+            uint_least64_t n = 42;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("integer literal without suffix")
+        {
+            json j(42);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("integer literal with u suffix")
+        {
+            json j(42u);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("integer literal with l suffix")
+        {
+            json j(42l);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("integer literal with ul suffix")
+        {
+            json j(42ul);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+
+        SECTION("integer literal with ll suffix")
+        {
+            json j(42ll);
+            CHECK(j.type() == json::value_t::number_integer);
+            CHECK(j == j_reference);
+        }
+
+        SECTION("integer literal with ull suffix")
+        {
+            json j(42ull);
+            CHECK(j.type() == json::value_t::number_unsigned);
+            CHECK(j == j_unsigned_reference);
+        }
+    }
+
+    SECTION("create a floating-point number (explicit)")
+    {
+        SECTION("uninitialized value")
+        {
+            json::number_float_t n{};
+            json j(n);
+            CHECK(j.type() == json::value_t::number_float);
+        }
+
+        SECTION("initialized value")
+        {
+            json::number_float_t n(42.23);
+            json j(n);
+            CHECK(j.type() == json::value_t::number_float);
+        }
+    }
+
+    SECTION("create a floating-point number (implicit)")
+    {
+        // reference object
+        json::number_float_t n_reference = 42.23;
+        json j_reference(n_reference);
+
+        SECTION("float")
+        {
+            float n = 42.23;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_float);
+            CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
+        }
+
+        SECTION("double")
+        {
+            double n = 42.23;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_float);
+            CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
+        }
+
+        SECTION("long double")
+        {
+            long double n = 42.23;
+            json j(n);
+            CHECK(j.type() == json::value_t::number_float);
+            CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
+        }
+
+        SECTION("floating-point literal without suffix")
+        {
+            json j(42.23);
+            CHECK(j.type() == json::value_t::number_float);
+            CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
+        }
+
+        SECTION("integer literal with f suffix")
+        {
+            json j(42.23f);
+            CHECK(j.type() == json::value_t::number_float);
+            CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
+        }
+
+        SECTION("integer literal with l suffix")
+        {
+            json j(42.23l);
+            CHECK(j.type() == json::value_t::number_float);
+            CHECK(j.m_value.number_float == Approx(j_reference.m_value.number_float));
+        }
+    }
+
+    SECTION("create a container (array or object) from an initializer list")
+    {
+        SECTION("empty initializer list")
+        {
+            SECTION("explicit")
+            {
+                std::initializer_list<json> l;
+                json j(l);
+                CHECK(j.type() == json::value_t::object);
+            }
+
+            SECTION("implicit")
+            {
+                json j {};
+                CHECK(j.type() == json::value_t::null);
+            }
+        }
+
+        SECTION("one element")
+        {
+            SECTION("array")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json(json::array_t())};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {json::array_t()};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+
+            SECTION("object")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json(json::object_t())};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {json::object_t()};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+
+            SECTION("string")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json("Hello world")};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {"Hello world"};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+
+            SECTION("boolean")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json(true)};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {true};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+
+            SECTION("number (integer)")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json(1)};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {1};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+
+            SECTION("number (unsigned)")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json(1u)};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {1u};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+
+            SECTION("number (floating-point)")
+            {
+                SECTION("explicit")
+                {
+                    std::initializer_list<json> l = {json(42.23)};
+                    json j(l);
+                    CHECK(j.type() == json::value_t::array);
+                }
+
+                SECTION("implicit")
+                {
+                    json j {42.23};
+                    CHECK(j.type() == json::value_t::array);
+                }
+            }
+        }
+
+        SECTION("more elements")
+        {
+            SECTION("explicit")
+            {
+                std::initializer_list<json> l = {1, 1u, 42.23, true, nullptr, json::object_t(), json::array_t()};
+                json j(l);
+                CHECK(j.type() == json::value_t::array);
+            }
+
+            SECTION("implicit")
+            {
+                json j {1, 1u, 42.23, true, nullptr, json::object_t(), json::array_t()};
+                CHECK(j.type() == json::value_t::array);
+            }
+        }
+
+        SECTION("implicit type deduction")
+        {
+            SECTION("object")
+            {
+                json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} };
+                CHECK(j.type() == json::value_t::object);
+            }
+
+            SECTION("array")
+            {
+                json j { {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} , 13 };
+                CHECK(j.type() == json::value_t::array);
+            }
+        }
+
+        SECTION("explicit type deduction")
+        {
+            SECTION("empty object")
+            {
+                json j = json::object();
+                CHECK(j.type() == json::value_t::object);
+            }
+
+            SECTION("object")
+            {
+                json j = json::object({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} });
+                CHECK(j.type() == json::value_t::object);
+            }
+
+            SECTION("object with error")
+            {
+                CHECK_THROWS_AS(json::object({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false}, 13 }),
+                std::logic_error);
+                CHECK_THROWS_WITH(json::object({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false}, 13 }),
+                "cannot create object from initializer list");
+            }
+
+            SECTION("empty array")
+            {
+                json j = json::array();
+                CHECK(j.type() == json::value_t::array);
+            }
+
+            SECTION("array")
+            {
+                json j = json::array({ {"one", 1}, {"two", 1u}, {"three", 2.2}, {"four", false} });
+                CHECK(j.type() == json::value_t::array);
+            }
+        }
+    }
+
+    SECTION("create an array of n copies of a given value")
+    {
+        json v = {1, "foo", 34.23, {1, 2, 3}, {{"A", 1}, {"B", 2u}}};
+        json arr(3, v);
+        CHECK(arr.size() == 3);
+        for (auto& x : arr)
+        {
+            CHECK(x == v);
+        }
+    }
+
+    SECTION("create a JSON container from an iterator range")
+    {
+        SECTION("object")
+        {
+            SECTION("json(begin(), end())")
+            {
+                {
+                    json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                    json j_new(jobject.begin(), jobject.end());
+                    CHECK(j_new == jobject);
+                }
+                {
+                    json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                    json j_new(jobject.cbegin(), jobject.cend());
+                    CHECK(j_new == jobject);
+                }
+            }
+
+            SECTION("json(begin(), begin())")
+            {
+                {
+                    json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                    json j_new(jobject.begin(), jobject.begin());
+                    CHECK(j_new == json::object());
+                }
+                {
+                    json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                    json j_new(jobject.cbegin(), jobject.cbegin());
+                    CHECK(j_new == json::object());
+                }
+            }
+
+            SECTION("construct from subrange")
+            {
+                json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                json j_new(jobject.find("b"), jobject.find("e"));
+                CHECK(j_new == json({{"b", 1}, {"c", 17u}, {"d", false}}));
+            }
+
+            SECTION("incompatible iterators")
+            {
+                {
+                    json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                    json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                    CHECK_THROWS_AS(json(jobject.begin(), jobject2.end()), std::domain_error);
+                    CHECK_THROWS_AS(json(jobject2.begin(), jobject.end()), std::domain_error);
+                    CHECK_THROWS_WITH(json(jobject.begin(), jobject2.end()), "iterators are not compatible");
+                    CHECK_THROWS_WITH(json(jobject2.begin(), jobject.end()), "iterators are not compatible");
+                }
+                {
+                    json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                    json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                    CHECK_THROWS_AS(json(jobject.cbegin(), jobject2.cend()), std::domain_error);
+                    CHECK_THROWS_AS(json(jobject2.cbegin(), jobject.cend()), std::domain_error);
+                    CHECK_THROWS_WITH(json(jobject.cbegin(), jobject2.cend()), "iterators are not compatible");
+                    CHECK_THROWS_WITH(json(jobject2.cbegin(), jobject.cend()), "iterators are not compatible");
+                }
+            }
+        }
+
+        SECTION("array")
+        {
+            SECTION("json(begin(), end())")
+            {
+                {
+                    json jarray = {1, 2, 3, 4, 5};
+                    json j_new(jarray.begin(), jarray.end());
+                    CHECK(j_new == jarray);
+                }
+                {
+                    json jarray = {1, 2, 3, 4, 5};
+                    json j_new(jarray.cbegin(), jarray.cend());
+                    CHECK(j_new == jarray);
+                }
+            }
+
+            SECTION("json(begin(), begin())")
+            {
+                {
+                    json jarray = {1, 2, 3, 4, 5};
+                    json j_new(jarray.begin(), jarray.begin());
+                    CHECK(j_new == json::array());
+                }
+                {
+                    json jarray = {1, 2, 3, 4, 5};
+                    json j_new(jarray.cbegin(), jarray.cbegin());
+                    CHECK(j_new == json::array());
+                }
+            }
+
+            SECTION("construct from subrange")
+            {
+                {
+                    json jarray = {1, 2, 3, 4, 5};
+                    json j_new(jarray.begin() + 1, jarray.begin() + 3);
+                    CHECK(j_new == json({2, 3}));
+                }
+                {
+                    json jarray = {1, 2, 3, 4, 5};
+                    json j_new(jarray.cbegin() + 1, jarray.cbegin() + 3);
+                    CHECK(j_new == json({2, 3}));
+                }
+            }
+
+            SECTION("incompatible iterators")
+            {
+                {
+                    json jarray = {1, 2, 3, 4};
+                    json jarray2 = {2, 3, 4, 5};
+                    CHECK_THROWS_AS(json(jarray.begin(), jarray2.end()), std::domain_error);
+                    CHECK_THROWS_AS(json(jarray2.begin(), jarray.end()), std::domain_error);
+                    CHECK_THROWS_WITH(json(jarray.begin(), jarray2.end()), "iterators are not compatible");
+                    CHECK_THROWS_WITH(json(jarray2.begin(), jarray.end()), "iterators are not compatible");
+                }
+                {
+                    json jarray = {1, 2, 3, 4};
+                    json jarray2 = {2, 3, 4, 5};
+                    CHECK_THROWS_AS(json(jarray.cbegin(), jarray2.cend()), std::domain_error);
+                    CHECK_THROWS_AS(json(jarray2.cbegin(), jarray.cend()), std::domain_error);
+                    CHECK_THROWS_WITH(json(jarray.cbegin(), jarray2.cend()), "iterators are not compatible");
+                    CHECK_THROWS_WITH(json(jarray2.cbegin(), jarray.cend()), "iterators are not compatible");
+                }
+            }
+        }
+
+        SECTION("other values")
+        {
+            SECTION("construct with two valid iterators")
+            {
+                SECTION("null")
+                {
+                    {
+                        json j;
+                        CHECK_THROWS_AS(json(j.begin(), j.end()), std::domain_error);
+                        CHECK_THROWS_WITH(json(j.begin(), j.end()), "cannot use construct with iterators from null");
+                    }
+                    {
+                        json j;
+                        CHECK_THROWS_AS(json(j.cbegin(), j.cend()), std::domain_error);
+                        CHECK_THROWS_WITH(json(j.cbegin(), j.cend()), "cannot use construct with iterators from null");
+                    }
+                }
+
+                SECTION("string")
+                {
+                    {
+                        json j = "foo";
+                        json j_new(j.begin(), j.end());
+                        CHECK(j == j_new);
+                    }
+                    {
+                        json j = "bar";
+                        json j_new(j.cbegin(), j.cend());
+                        CHECK(j == j_new);
+                    }
+                }
+
+                SECTION("number (boolean)")
+                {
+                    {
+                        json j = false;
+                        json j_new(j.begin(), j.end());
+                        CHECK(j == j_new);
+                    }
+                    {
+                        json j = true;
+                        json j_new(j.cbegin(), j.cend());
+                        CHECK(j == j_new);
+                    }
+                }
+
+                SECTION("number (integer)")
+                {
+                    {
+                        json j = 17;
+                        json j_new(j.begin(), j.end());
+                        CHECK(j == j_new);
+                    }
+                    {
+                        json j = 17;
+                        json j_new(j.cbegin(), j.cend());
+                        CHECK(j == j_new);
+                    }
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    {
+                        json j = 17u;
+                        json j_new(j.begin(), j.end());
+                        CHECK(j == j_new);
+                    }
+                    {
+                        json j = 17u;
+                        json j_new(j.cbegin(), j.cend());
+                        CHECK(j == j_new);
+                    }
+                }
+
+                SECTION("number (floating point)")
+                {
+                    {
+                        json j = 23.42;
+                        json j_new(j.begin(), j.end());
+                        CHECK(j == j_new);
+                    }
+                    {
+                        json j = 23.42;
+                        json j_new(j.cbegin(), j.cend());
+                        CHECK(j == j_new);
+                    }
+                }
+            }
+
+            SECTION("construct with two invalid iterators")
+            {
+                SECTION("string")
+                {
+                    {
+                        json j = "foo";
+                        CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range");
+                    }
+                    {
+                        json j = "bar";
+                        CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range");
+                    }
+                }
+
+                SECTION("number (boolean)")
+                {
+                    {
+                        json j = false;
+                        CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range");
+                    }
+                    {
+                        json j = true;
+                        CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range");
+                    }
+                }
+
+                SECTION("number (integer)")
+                {
+                    {
+                        json j = 17;
+                        CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range");
+                    }
+                    {
+                        json j = 17;
+                        CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range");
+                    }
+                }
+
+                SECTION("number (integer)")
+                {
+                    {
+                        json j = 17u;
+                        CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range");
+                    }
+                    {
+                        json j = 17u;
+                        CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range");
+                    }
+                }
+
+                SECTION("number (floating point)")
+                {
+                    {
+                        json j = 23.42;
+                        CHECK_THROWS_AS(json(j.end(), j.end()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.begin(), j.begin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.end(), j.end()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.begin(), j.begin()), "iterators out of range");
+                    }
+                    {
+                        json j = 23.42;
+                        CHECK_THROWS_AS(json(j.cend(), j.cend()), std::out_of_range);
+                        CHECK_THROWS_AS(json(j.cbegin(), j.cbegin()), std::out_of_range);
+                        CHECK_THROWS_WITH(json(j.cend(), j.cend()), "iterators out of range");
+                        CHECK_THROWS_WITH(json(j.cbegin(), j.cbegin()), "iterators out of range");
+                    }
+                }
+            }
+        }
+    }
+
+    SECTION("create a JSON value from an input stream")
+    {
+        SECTION("sts::stringstream")
+        {
+            std::stringstream ss;
+            ss << "[\"foo\",1,2,3,false,{\"one\":1}]";
+            json j(ss);
+            CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
+        }
+
+        SECTION("with callback function")
+        {
+            std::stringstream ss;
+            ss << "[\"foo\",1,2,3,false,{\"one\":1}]";
+            json j(ss, [](int, json::parse_event_t, const json & val)
+            {
+                // filter all number(2) elements
+                if (val == json(2))
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            });
+            CHECK(j == json({"foo", 1, 3, false, {{"one", 1}}}));
+        }
+
+        SECTION("std::ifstream")
+        {
+            std::ifstream f("test/data/json_tests/pass1.json");
+            json j(f);
+        }
+    }
+}
+
+TEST_CASE("other constructors and destructor")
+{
+    SECTION("copy constructor")
+    {
+        SECTION("object")
+        {
+            json j {{"foo", 1}, {"bar", false}};
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("array")
+        {
+            json j {"foo", 1, 42.23, false};
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("null")
+        {
+            json j(nullptr);
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("boolean")
+        {
+            json j(true);
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("string")
+        {
+            json j("Hello world");
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("number (integer)")
+        {
+            json j(42);
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j(42u);
+            json k(j);
+            CHECK(j == k);
+        }
+
+        SECTION("number (floating-point)")
+        {
+            json j(42.23);
+            json k(j);
+            CHECK(j == k);
+        }
+    }
+
+    SECTION("move constructor")
+    {
+        json j {{"foo", "bar"}, {"baz", {1, 2, 3, 4}}, {"a", 42u}, {"b", 42.23}, {"c", nullptr}};
+        CHECK(j.type() == json::value_t::object);
+        json k(std::move(j));
+        CHECK(k.type() == json::value_t::object);
+        CHECK(j.type() == json::value_t::null);
+    }
+
+    SECTION("copy assignment")
+    {
+        SECTION("object")
+        {
+            json j {{"foo", 1}, {"bar", false}};
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("array")
+        {
+            json j {"foo", 1, 42.23, false};
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("null")
+        {
+            json j(nullptr);
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("boolean")
+        {
+            json j(true);
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("string")
+        {
+            json j("Hello world");
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("number (integer)")
+        {
+            json j(42);
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j(42u);
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+
+        SECTION("number (floating-point)")
+        {
+            json j(42.23);
+            json k;
+            k = j;
+            CHECK(j == k);
+        }
+    }
+
+    SECTION("destructor")
+    {
+        SECTION("object")
+        {
+            auto j = new json {{"foo", 1}, {"bar", false}};
+            delete j;
+        }
+
+        SECTION("array")
+        {
+            auto j = new json {"foo", 1, 1u, false, 23.42};
+            delete j;
+        }
+
+        SECTION("string")
+        {
+            auto j = new json("Hello world");
+            delete j;
+        }
+    }
+}
+
+TEST_CASE("object inspection")
+{
+    SECTION("convenience type checker")
+    {
+        SECTION("object")
+        {
+            json j {{"foo", 1}, {"bar", false}};
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(not j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(not j.is_primitive());
+            CHECK(j.is_structured());
+        }
+
+        SECTION("array")
+        {
+            json j {"foo", 1, 1u, 42.23, false};
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(not j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(not j.is_primitive());
+            CHECK(j.is_structured());
+        }
+
+        SECTION("null")
+        {
+            json j(nullptr);
+            CHECK(j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(not j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+
+        SECTION("boolean")
+        {
+            json j(true);
+            CHECK(not j.is_null());
+            CHECK(j.is_boolean());
+            CHECK(not j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+
+        SECTION("string")
+        {
+            json j("Hello world");
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(not j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+
+        SECTION("number (integer)")
+        {
+            json j(42);
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(j.is_number());
+            CHECK(j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j(42u);
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(j.is_number());
+            CHECK(j.is_number_integer());
+            CHECK(j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+
+        SECTION("number (floating-point)")
+        {
+            json j(42.23);
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(not j.is_discarded());
+            CHECK(j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+
+        SECTION("discarded")
+        {
+            json j(json::value_t::discarded);
+            CHECK(not j.is_null());
+            CHECK(not j.is_boolean());
+            CHECK(not j.is_number());
+            CHECK(not j.is_number_integer());
+            CHECK(not j.is_number_unsigned());
+            CHECK(not j.is_number_float());
+            CHECK(not j.is_object());
+            CHECK(not j.is_array());
+            CHECK(not j.is_string());
+            CHECK(j.is_discarded());
+            CHECK(not j.is_primitive());
+            CHECK(not j.is_structured());
+        }
+    }
+
+    SECTION("serialization")
+    {
+        json j {{"object", json::object()}, {"array", {1, 2, 3, 4}}, {"number", 42}, {"boolean", false}, {"null", nullptr}, {"string", "Hello world"} };
+
+        SECTION("no indent / indent=-1")
+        {
+            CHECK(j.dump() ==
+                  "{\"array\":[1,2,3,4],\"boolean\":false,\"null\":null,\"number\":42,\"object\":{},\"string\":\"Hello world\"}");
+
+            CHECK(j.dump() == j.dump(-1));
+        }
+
+        SECTION("indent=0")
+        {
+            CHECK(j.dump(0) ==
+                  "{\n\"array\": [\n1,\n2,\n3,\n4\n],\n\"boolean\": false,\n\"null\": null,\n\"number\": 42,\n\"object\": {},\n\"string\": \"Hello world\"\n}");
+        }
+
+        SECTION("indent=4")
+        {
+            CHECK(j.dump(4) ==
+                  "{\n    \"array\": [\n        1,\n        2,\n        3,\n        4\n    ],\n    \"boolean\": false,\n    \"null\": null,\n    \"number\": 42,\n    \"object\": {},\n    \"string\": \"Hello world\"\n}");
+        }
+
+        SECTION("dump and floating-point numbers")
+        {
+            auto s = json(42.23).dump();
+            CHECK(s.find("42.23") != std::string::npos);
+        }
+
+        SECTION("dump and small floating-point numbers")
+        {
+            auto s = json(1.23456e-78).dump();
+            CHECK(s.find("1.23456e-78") != std::string::npos);
+        }
+
+        SECTION("dump and non-ASCII characters")
+        {
+            CHECK(json("ä").dump() == "\"ä\"");
+            CHECK(json("Ö").dump() == "\"Ö\"");
+            CHECK(json("❤️").dump() == "\"❤️\"");
+        }
+
+        SECTION("serialization of discarded element")
+        {
+            json j_discarded(json::value_t::discarded);
+            CHECK(j_discarded.dump() == "<discarded>");
+        }
+    }
+
+    SECTION("return the type of the object (explicit)")
+    {
+        SECTION("null")
+        {
+            json j = nullptr;
+            CHECK(j.type() == json::value_t::null);
+        }
+
+        SECTION("object")
+        {
+            json j = {{"foo", "bar"}};
+            CHECK(j.type() == json::value_t::object);
+        }
+
+        SECTION("array")
+        {
+            json j = {1, 2, 3, 4};
+            CHECK(j.type() == json::value_t::array);
+        }
+
+        SECTION("boolean")
+        {
+            json j = true;
+            CHECK(j.type() == json::value_t::boolean);
+        }
+
+        SECTION("string")
+        {
+            json j = "Hello world";
+            CHECK(j.type() == json::value_t::string);
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+            CHECK(j.type() == json::value_t::number_integer);
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+            CHECK(j.type() == json::value_t::number_unsigned);
+        }
+
+        SECTION("number (floating-point)")
+        {
+            json j = 42.23;
+            CHECK(j.type() == json::value_t::number_float);
+        }
+    }
+
+    SECTION("return the type of the object (implicit)")
+    {
+        SECTION("null")
+        {
+            json j = nullptr;
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("object")
+        {
+            json j = {{"foo", "bar"}};
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("array")
+        {
+            json j = {1, 2, 3, 4};
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("boolean")
+        {
+            json j = true;
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("string")
+        {
+            json j = "Hello world";
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+
+        SECTION("number (floating-point)")
+        {
+            json j = 42.23;
+            json::value_t t = j;
+            CHECK(t == j.type());
+        }
+    }
+}
+
+TEST_CASE("value conversion")
+{
+    SECTION("get an object (explicit)")
+    {
+        json::object_t o_reference = {{"object", json::object()}, {"array", {1, 2, 3, 4}}, {"number", 42}, {"boolean", false}, {"null", nullptr}, {"string", "Hello world"} };
+        json j(o_reference);
+
+        SECTION("json::object_t")
+        {
+            json::object_t o = j.get<json::object_t>();
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::map<json::string_t, json>")
+        {
+            std::map<json::string_t, json> o = j.get<std::map<json::string_t, json>>();
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::multimap<json::string_t, json>")
+        {
+            std::multimap<json::string_t, json> o = j.get<std::multimap<json::string_t, json>>();
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::unordered_map<json::string_t, json>")
+        {
+            std::unordered_map<json::string_t, json> o = j.get<std::unordered_map<json::string_t, json>>();
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::unordered_multimap<json::string_t, json>")
+        {
+            std::unordered_multimap<json::string_t, json> o =
+                j.get<std::unordered_multimap<json::string_t, json>>();
+            CHECK(json(o) == j);
+        }
+
+        SECTION("exception in case of a non-object type")
+        {
+            CHECK_THROWS_AS(json(json::value_t::null).get<json::object_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::array).get<json::object_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::string).get<json::object_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::boolean).get<json::object_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_integer).get<json::object_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_unsigned).get<json::object_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_float).get<json::object_t>(), std::logic_error);
+
+            CHECK_THROWS_WITH(json(json::value_t::null).get<json::object_t>(),
+                              "type must be object, but is null");
+            CHECK_THROWS_WITH(json(json::value_t::array).get<json::object_t>(),
+                              "type must be object, but is array");
+            CHECK_THROWS_WITH(json(json::value_t::string).get<json::object_t>(),
+                              "type must be object, but is string");
+            CHECK_THROWS_WITH(json(json::value_t::boolean).get<json::object_t>(),
+                              "type must be object, but is boolean");
+            CHECK_THROWS_WITH(json(json::value_t::number_integer).get<json::object_t>(),
+                              "type must be object, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get<json::object_t>(),
+                              "type must be object, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_float).get<json::object_t>(),
+                              "type must be object, but is number");
+        }
+    }
+
+    SECTION("get an object (implicit)")
+    {
+        json::object_t o_reference = {{"object", json::object()}, {"array", {1, 2, 3, 4}}, {"number", 42}, {"boolean", false}, {"null", nullptr}, {"string", "Hello world"} };
+        json j(o_reference);
+
+        SECTION("json::object_t")
+        {
+            json::object_t o = j;
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::map<json::string_t, json>")
+        {
+            std::map<json::string_t, json> o = j;
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::multimap<json::string_t, json>")
+        {
+            std::multimap<json::string_t, json> o = j;
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::unordered_map<json::string_t, json>")
+        {
+            std::unordered_map<json::string_t, json> o = j;
+            CHECK(json(o) == j);
+        }
+
+        SECTION("std::unordered_multimap<json::string_t, json>")
+        {
+            std::unordered_multimap<json::string_t, json> o = j;
+            CHECK(json(o) == j);
+        }
+    }
+
+    SECTION("get an array (explicit)")
+    {
+        json::array_t a_reference {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+        json j(a_reference);
+
+        SECTION("json::array_t")
+        {
+            json::array_t a = j.get<json::array_t>();
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::list<json>")
+        {
+            std::list<json> a = j.get<std::list<json>>();
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::forward_list<json>")
+        {
+            std::forward_list<json> a = j.get<std::forward_list<json>>();
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::vector<json>")
+        {
+            std::vector<json> a = j.get<std::vector<json>>();
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::deque<json>")
+        {
+            std::deque<json> a = j.get<std::deque<json>>();
+            CHECK(json(a) == j);
+        }
+
+        SECTION("exception in case of a non-array type")
+        {
+            CHECK_THROWS_AS(json(json::value_t::null).get<json::array_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::object).get<json::array_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::string).get<json::array_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::boolean).get<json::array_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_integer).get<json::array_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_unsigned).get<json::array_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_float).get<json::array_t>(), std::logic_error);
+
+            CHECK_THROWS_WITH(json(json::value_t::null).get<json::array_t>(),
+                              "type must be array, but is null");
+            CHECK_THROWS_WITH(json(json::value_t::object).get<json::array_t>(),
+                              "type must be array, but is object");
+            CHECK_THROWS_WITH(json(json::value_t::string).get<json::array_t>(),
+                              "type must be array, but is string");
+            CHECK_THROWS_WITH(json(json::value_t::boolean).get<json::array_t>(),
+                              "type must be array, but is boolean");
+            CHECK_THROWS_WITH(json(json::value_t::number_integer).get<json::array_t>(),
+                              "type must be array, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get<json::array_t>(),
+                              "type must be array, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_float).get<json::array_t>(),
+                              "type must be array, but is number");
+        }
+    }
+
+    SECTION("get an array (implicit)")
+    {
+        json::array_t a_reference {json(1), json(1u), json(2.2), json(false), json("string"), json()};
+        json j(a_reference);
+
+        SECTION("json::array_t")
+        {
+            json::array_t a = j;
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::list<json>")
+        {
+            std::list<json> a = j;
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::forward_list<json>")
+        {
+            std::forward_list<json> a = j;
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::vector<json>")
+        {
+            std::vector<json> a = j;
+            CHECK(json(a) == j);
+        }
+
+        SECTION("std::deque<json>")
+        {
+            std::deque<json> a = j;
+            CHECK(json(a) == j);
+        }
+    }
+
+    SECTION("get a string (explicit)")
+    {
+        json::string_t s_reference {"Hello world"};
+        json j(s_reference);
+
+        SECTION("string_t")
+        {
+            json::string_t s = j.get<json::string_t>();
+            CHECK(json(s) == j);
+        }
+
+        SECTION("std::string")
+        {
+            std::string s = j.get<std::string>();
+            CHECK(json(s) == j);
+        }
+
+        SECTION("exception in case of a non-string type")
+        {
+            CHECK_THROWS_AS(json(json::value_t::null).get<json::string_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::object).get<json::string_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::array).get<json::string_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::boolean).get<json::string_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_integer).get<json::string_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_unsigned).get<json::string_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_float).get<json::string_t>(), std::logic_error);
+
+            CHECK_THROWS_WITH(json(json::value_t::null).get<json::string_t>(),
+                              "type must be string, but is null");
+            CHECK_THROWS_WITH(json(json::value_t::object).get<json::string_t>(),
+                              "type must be string, but is object");
+            CHECK_THROWS_WITH(json(json::value_t::array).get<json::string_t>(),
+                              "type must be string, but is array");
+            CHECK_THROWS_WITH(json(json::value_t::boolean).get<json::string_t>(),
+                              "type must be string, but is boolean");
+            CHECK_THROWS_WITH(json(json::value_t::number_integer).get<json::string_t>(),
+                              "type must be string, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get<json::string_t>(),
+                              "type must be string, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_float).get<json::string_t>(),
+                              "type must be string, but is number");
+        }
+    }
+
+    SECTION("get a string (implicit)")
+    {
+        json::string_t s_reference {"Hello world"};
+        json j(s_reference);
+
+        SECTION("string_t")
+        {
+            json::string_t s = j;
+            CHECK(json(s) == j);
+        }
+
+        SECTION("std::string")
+        {
+            std::string s = j;
+            CHECK(json(s) == j);
+        }
+    }
+
+    SECTION("get a boolean (explicit)")
+    {
+        json::boolean_t b_reference {true};
+        json j(b_reference);
+
+        SECTION("boolean_t")
+        {
+            json::boolean_t b = j.get<json::boolean_t>();
+            CHECK(json(b) == j);
+        }
+
+        SECTION("bool")
+        {
+            bool b = j.get<bool>();
+            CHECK(json(b) == j);
+        }
+
+        SECTION("exception in case of a non-string type")
+        {
+            CHECK_THROWS_AS(json(json::value_t::null).get<json::boolean_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::object).get<json::boolean_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::array).get<json::boolean_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::string).get<json::boolean_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_integer).get<json::boolean_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_unsigned).get<json::boolean_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::number_float).get<json::boolean_t>(), std::logic_error);
+
+            CHECK_THROWS_WITH(json(json::value_t::null).get<json::boolean_t>(),
+                              "type must be boolean, but is null");
+            CHECK_THROWS_WITH(json(json::value_t::object).get<json::boolean_t>(),
+                              "type must be boolean, but is object");
+            CHECK_THROWS_WITH(json(json::value_t::array).get<json::boolean_t>(),
+                              "type must be boolean, but is array");
+            CHECK_THROWS_WITH(json(json::value_t::string).get<json::boolean_t>(),
+                              "type must be boolean, but is string");
+            CHECK_THROWS_WITH(json(json::value_t::number_integer).get<json::boolean_t>(),
+                              "type must be boolean, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_unsigned).get<json::boolean_t>(),
+                              "type must be boolean, but is number");
+            CHECK_THROWS_WITH(json(json::value_t::number_float).get<json::boolean_t>(),
+                              "type must be boolean, but is number");
+        }
+    }
+
+    SECTION("get a boolean (implicit)")
+    {
+        json::boolean_t b_reference {true};
+        json j(b_reference);
+
+        SECTION("boolean_t")
+        {
+            json::boolean_t b = j;
+            CHECK(json(b) == j);
+        }
+
+        SECTION("bool")
+        {
+            bool b = j;
+            CHECK(json(b) == j);
+        }
+    }
+
+    SECTION("get an integer number (explicit)")
+    {
+        json::number_integer_t n_reference {42};
+        json j(n_reference);
+        json::number_unsigned_t n_unsigned_reference {42u};
+        json j_unsigned(n_unsigned_reference);
+
+        SECTION("number_integer_t")
+        {
+            json::number_integer_t n = j.get<json::number_integer_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("number_unsigned_t")
+        {
+            json::number_unsigned_t n = j_unsigned.get<json::number_unsigned_t>();
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("short")
+        {
+            short n = j.get<short>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned short")
+        {
+            unsigned short n = j.get<unsigned short>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int")
+        {
+            int n = j.get<int>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned int")
+        {
+            unsigned int n = j.get<unsigned int>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("long")
+        {
+            long n = j.get<long>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned long")
+        {
+            unsigned long n = j.get<unsigned long>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("long long")
+        {
+            long long n = j.get<long long>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned long long")
+        {
+            unsigned long long n = j.get<unsigned long long>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int8_t")
+        {
+            int8_t n = j.get<int8_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int16_t")
+        {
+            int16_t n = j.get<int16_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int32_t")
+        {
+            int32_t n = j.get<int32_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int64_t")
+        {
+            int64_t n = j.get<int64_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int8_fast_t")
+        {
+            int_fast8_t n = j.get<int_fast8_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int16_fast_t")
+        {
+            int_fast16_t n = j.get<int_fast16_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int32_fast_t")
+        {
+            int_fast32_t n = j.get<int_fast32_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int64_fast_t")
+        {
+            int_fast64_t n = j.get<int_fast64_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int8_least_t")
+        {
+            int_least8_t n = j.get<int_least8_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int16_least_t")
+        {
+            int_least16_t n = j.get<int_least16_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int32_least_t")
+        {
+            int_least32_t n = j.get<int_least32_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int64_least_t")
+        {
+            int_least64_t n = j.get<int_least64_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint8_t")
+        {
+            uint8_t n = j.get<uint8_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint16_t")
+        {
+            uint16_t n = j.get<uint16_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint32_t")
+        {
+            uint32_t n = j.get<uint32_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint64_t")
+        {
+            uint64_t n = j.get<uint64_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint8_fast_t")
+        {
+            uint_fast8_t n = j.get<uint_fast8_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint16_fast_t")
+        {
+            uint_fast16_t n = j.get<uint_fast16_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint32_fast_t")
+        {
+            uint_fast32_t n = j.get<uint_fast32_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint64_fast_t")
+        {
+            uint_fast64_t n = j.get<uint_fast64_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint8_least_t")
+        {
+            uint_least8_t n = j.get<uint_least8_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint16_least_t")
+        {
+            uint_least16_t n = j.get<uint_least16_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint32_least_t")
+        {
+            uint_least32_t n = j.get<uint_least32_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint64_least_t")
+        {
+            uint_least64_t n = j.get<uint_least64_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("exception in case of a non-number type")
+        {
+            CHECK_THROWS_AS(json(json::value_t::null).get<json::number_integer_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::object).get<json::number_integer_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::array).get<json::number_integer_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::string).get<json::number_integer_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::boolean).get<json::number_integer_t>(), std::logic_error);
+
+            CHECK_THROWS_WITH(json(json::value_t::null).get<json::number_integer_t>(),
+                              "type must be number, but is null");
+            CHECK_THROWS_WITH(json(json::value_t::object).get<json::number_integer_t>(),
+                              "type must be number, but is object");
+            CHECK_THROWS_WITH(json(json::value_t::array).get<json::number_integer_t>(),
+                              "type must be number, but is array");
+            CHECK_THROWS_WITH(json(json::value_t::string).get<json::number_integer_t>(),
+                              "type must be number, but is string");
+            CHECK_THROWS_WITH(json(json::value_t::boolean).get<json::number_integer_t>(),
+                              "type must be number, but is boolean");
+
+            CHECK_NOTHROW(json(json::value_t::number_float).get<json::number_integer_t>());
+            CHECK_NOTHROW(json(json::value_t::number_float).get<json::number_unsigned_t>());
+        }
+    }
+
+    SECTION("get an integer number (implicit)")
+    {
+        json::number_integer_t n_reference {42};
+        json j(n_reference);
+        json::number_unsigned_t n_unsigned_reference {42u};
+        json j_unsigned(n_unsigned_reference);
+
+        SECTION("number_integer_t")
+        {
+            json::number_integer_t n = j.get<json::number_integer_t>();
+            CHECK(json(n) == j);
+        }
+
+        SECTION("number_unsigned_t")
+        {
+            json::number_unsigned_t n = j_unsigned.get<json::number_unsigned_t>();
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("short")
+        {
+            short n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned short")
+        {
+            unsigned short n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("int")
+        {
+            int n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned int")
+        {
+            unsigned int n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("long")
+        {
+            long n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned long")
+        {
+            unsigned long n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("long long")
+        {
+            long long n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("unsigned long long")
+        {
+            unsigned long long n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("int8_t")
+        {
+            int8_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int16_t")
+        {
+            int16_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int32_t")
+        {
+            int32_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int64_t")
+        {
+            int64_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int8_fast_t")
+        {
+            int_fast8_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int16_fast_t")
+        {
+            int_fast16_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int32_fast_t")
+        {
+            int_fast32_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int64_fast_t")
+        {
+            int_fast64_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int8_least_t")
+        {
+            int_least8_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int16_least_t")
+        {
+            int_least16_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int32_least_t")
+        {
+            int_least32_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("int64_least_t")
+        {
+            int_least64_t n = j;
+            CHECK(json(n) == j);
+        }
+
+        SECTION("uint8_t")
+        {
+            uint8_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint16_t")
+        {
+            uint16_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint32_t")
+        {
+            uint32_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint64_t")
+        {
+            uint64_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint8_fast_t")
+        {
+            uint_fast8_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint16_fast_t")
+        {
+            uint_fast16_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint32_fast_t")
+        {
+            uint_fast32_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint64_fast_t")
+        {
+            uint_fast64_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint8_least_t")
+        {
+            uint_least8_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint16_least_t")
+        {
+            uint_least16_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint32_least_t")
+        {
+            uint_least32_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+
+        SECTION("uint64_least_t")
+        {
+            uint_least64_t n = j_unsigned;
+            CHECK(json(n) == j_unsigned);
+        }
+    }
+
+    SECTION("get a floating-point number (explicit)")
+    {
+        json::number_float_t n_reference {42.23};
+        json j(n_reference);
+
+        SECTION("number_float_t")
+        {
+            json::number_float_t n = j.get<json::number_float_t>();
+            CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float));
+        }
+
+        SECTION("float")
+        {
+            float n = j.get<float>();
+            CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float));
+        }
+
+        SECTION("double")
+        {
+            double n = j.get<double>();
+            CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float));
+        }
+
+        SECTION("exception in case of a non-string type")
+        {
+            CHECK_THROWS_AS(json(json::value_t::null).get<json::number_float_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::object).get<json::number_float_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::array).get<json::number_float_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::string).get<json::number_float_t>(), std::logic_error);
+            CHECK_THROWS_AS(json(json::value_t::boolean).get<json::number_float_t>(), std::logic_error);
+
+            CHECK_THROWS_WITH(json(json::value_t::null).get<json::number_float_t>(),
+                              "type must be number, but is null");
+            CHECK_THROWS_WITH(json(json::value_t::object).get<json::number_float_t>(),
+                              "type must be number, but is object");
+            CHECK_THROWS_WITH(json(json::value_t::array).get<json::number_float_t>(),
+                              "type must be number, but is array");
+            CHECK_THROWS_WITH(json(json::value_t::string).get<json::number_float_t>(),
+                              "type must be number, but is string");
+            CHECK_THROWS_WITH(json(json::value_t::boolean).get<json::number_float_t>(),
+                              "type must be number, but is boolean");
+
+            CHECK_NOTHROW(json(json::value_t::number_integer).get<json::number_float_t>());
+            CHECK_NOTHROW(json(json::value_t::number_unsigned).get<json::number_float_t>());
+        }
+    }
+
+    SECTION("get a floating-point number (implicit)")
+    {
+        json::number_float_t n_reference {42.23};
+        json j(n_reference);
+
+        SECTION("number_float_t")
+        {
+            json::number_float_t n = j;
+            CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float));
+        }
+
+        SECTION("float")
+        {
+            float n = j;
+            CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float));
+        }
+
+        SECTION("double")
+        {
+            double n = j;
+            CHECK(json(n).m_value.number_float == Approx(j.m_value.number_float));
+        }
+    }
+
+    SECTION("more involved conversions")
+    {
+        SECTION("object-like STL containers")
+        {
+            json j1 = {{"one", 1}, {"two", 2}, {"three", 3}};
+            json j2 = {{"one", 1u}, {"two", 2u}, {"three", 3u}};
+            json j3 = {{"one", 1.1}, {"two", 2.2}, {"three", 3.3}};
+            json j4 = {{"one", true}, {"two", false}, {"three", true}};
+            json j5 = {{"one", "eins"}, {"two", "zwei"}, {"three", "drei"}};
+
+            SECTION("std::map")
+            {
+                auto m1 = j1.get<std::map<std::string, int>>();
+                auto m2 = j2.get<std::map<std::string, unsigned int>>();
+                auto m3 = j3.get<std::map<std::string, double>>();
+                auto m4 = j4.get<std::map<std::string, bool>>();
+                //auto m5 = j5.get<std::map<std::string, std::string>>();
+            }
+
+            SECTION("std::unordered_map")
+            {
+                auto m1 = j1.get<std::unordered_map<std::string, int>>();
+                auto m2 = j2.get<std::unordered_map<std::string, unsigned int>>();
+                auto m3 = j3.get<std::unordered_map<std::string, double>>();
+                auto m4 = j4.get<std::unordered_map<std::string, bool>>();
+                //auto m5 = j5.get<std::unordered_map<std::string, std::string>>();
+                //CHECK(m5["one"] == "eins");
+            }
+
+            SECTION("std::multimap")
+            {
+                auto m1 = j1.get<std::multimap<std::string, int>>();
+                auto m2 = j2.get<std::multimap<std::string, unsigned int>>();
+                auto m3 = j3.get<std::multimap<std::string, double>>();
+                auto m4 = j4.get<std::multimap<std::string, bool>>();
+                //auto m5 = j5.get<std::multimap<std::string, std::string>>();
+                //CHECK(m5["one"] == "eins");
+            }
+
+            SECTION("std::unordered_multimap")
+            {
+                auto m1 = j1.get<std::unordered_multimap<std::string, int>>();
+                auto m2 = j2.get<std::unordered_multimap<std::string, unsigned int>>();
+                auto m3 = j3.get<std::unordered_multimap<std::string, double>>();
+                auto m4 = j4.get<std::unordered_multimap<std::string, bool>>();
+                //auto m5 = j5.get<std::unordered_multimap<std::string, std::string>>();
+                //CHECK(m5["one"] == "eins");
+            }
+
+            SECTION("exception in case of a non-object type")
+            {
+                CHECK_THROWS_AS((json().get<std::map<std::string, int>>()), std::logic_error);
+                CHECK_THROWS_WITH((json().get<std::map<std::string, int>>()), "type must be object, but is null");
+            }
+        }
+
+        SECTION("array-like STL containers")
+        {
+            json j1 = {1, 2, 3, 4};
+            json j2 = {1u, 2u, 3u, 4u};
+            json j3 = {1.2, 2.3, 3.4, 4.5};
+            json j4 = {true, false, true};
+            json j5 = {"one", "two", "three"};
+
+            SECTION("std::list")
+            {
+                auto m1 = j1.get<std::list<int>>();
+                auto m2 = j2.get<std::list<unsigned int>>();
+                auto m3 = j3.get<std::list<double>>();
+                auto m4 = j4.get<std::list<bool>>();
+                auto m5 = j5.get<std::list<std::string>>();
+            }
+
+            //SECTION("std::forward_list")
+            //{
+            //    auto m1 = j1.get<std::forward_list<int>>();
+            //    auto m2 = j2.get<std::forward_list<unsigned int>>();
+            //    auto m3 = j3.get<std::forward_list<double>>();
+            //    auto m4 = j4.get<std::forward_list<bool>>();
+            //    auto m5 = j5.get<std::forward_list<std::string>>();
+            //}
+
+            SECTION("std::vector")
+            {
+                auto m1 = j1.get<std::vector<int>>();
+                auto m2 = j2.get<std::vector<unsigned int>>();
+                auto m3 = j3.get<std::vector<double>>();
+                auto m4 = j4.get<std::vector<bool>>();
+                auto m5 = j5.get<std::vector<std::string>>();
+            }
+
+            SECTION("std::deque")
+            {
+                auto m1 = j1.get<std::deque<int>>();
+                auto m2 = j2.get<std::deque<unsigned int>>();
+                auto m3 = j2.get<std::deque<double>>();
+                auto m4 = j4.get<std::deque<bool>>();
+                auto m5 = j5.get<std::deque<std::string>>();
+            }
+
+            SECTION("std::set")
+            {
+                auto m1 = j1.get<std::set<int>>();
+                auto m2 = j2.get<std::set<unsigned int>>();
+                auto m3 = j3.get<std::set<double>>();
+                auto m4 = j4.get<std::set<bool>>();
+                auto m5 = j5.get<std::set<std::string>>();
+            }
+
+            SECTION("std::unordered_set")
+            {
+                auto m1 = j1.get<std::unordered_set<int>>();
+                auto m2 = j2.get<std::unordered_set<unsigned int>>();
+                auto m3 = j3.get<std::unordered_set<double>>();
+                auto m4 = j4.get<std::unordered_set<bool>>();
+                auto m5 = j5.get<std::unordered_set<std::string>>();
+            }
+
+            SECTION("exception in case of a non-object type")
+            {
+                CHECK_THROWS_AS((json().get<std::list<int>>()), std::logic_error);
+                CHECK_THROWS_AS((json().get<std::vector<int>>()), std::logic_error);
+                CHECK_THROWS_AS((json().get<std::vector<json>>()), std::logic_error);
+                CHECK_THROWS_AS((json().get<std::list<json>>()), std::logic_error);
+
+                CHECK_THROWS_WITH((json().get<std::list<int>>()), "type must be array, but is null");
+                CHECK_THROWS_WITH((json().get<std::vector<int>>()), "type must be array, but is null");
+                CHECK_THROWS_WITH((json().get<std::vector<json>>()), "type must be array, but is null");
+                CHECK_THROWS_WITH((json().get<std::list<json>>()), "type must be array, but is null");
+            }
+        }
+    }
+}
+
+TEST_CASE("pointer access")
+{
+    // create a JSON value with different types
+    json json_types =
+    {
+        {"boolean", true},
+        {
+            "number", {
+                {"integer", 42},
+                {"unsigned", 42u},
+                {"floating-point", 17.23}
+            }
+        },
+        {"string", "Hello, world!"},
+        {"array", {1, 2, 3, 4, 5}},
+        {"null", nullptr}
+    };
+
+    SECTION("pointer access to object_t")
+    {
+        using test_type = json::object_t;
+        json value = {{"one", 1}, {"two", 2}};
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == value.get<test_type>());
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == value.get<test_type>());
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() != nullptr);
+        CHECK(value.get_ptr<json::array_t*>() == nullptr);
+        CHECK(value.get_ptr<json::string_t*>() == nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
+    }
+
+    SECTION("pointer access to const object_t")
+    {
+        using test_type = json::object_t;
+        const json value = {{"one", 1}, {"two", 2}};
+
+        // this should not compile
+        // test_type* p1 = value.get_ptr<test_type*>();
+
+        // check if pointers are returned correctly
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p2 == p3);
+    }
+
+    SECTION("pointer access to array_t")
+    {
+        using test_type = json::array_t;
+        json value = {1, 2, 3, 4};
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == value.get<test_type>());
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == value.get<test_type>());
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() == nullptr);
+        CHECK(value.get_ptr<json::array_t*>() != nullptr);
+        CHECK(value.get_ptr<json::string_t*>() == nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
+    }
+
+    SECTION("pointer access to string_t")
+    {
+        using test_type = json::string_t;
+        json value = "hello";
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == value.get<test_type>());
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == value.get<test_type>());
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() == nullptr);
+        CHECK(value.get_ptr<json::array_t*>() == nullptr);
+        CHECK(value.get_ptr<json::string_t*>() != nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
+    }
+
+    SECTION("pointer access to boolean_t")
+    {
+        using test_type = json::boolean_t;
+        json value = false;
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == value.get<test_type>());
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == value.get<test_type>());
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() == nullptr);
+        CHECK(value.get_ptr<json::array_t*>() == nullptr);
+        CHECK(value.get_ptr<json::string_t*>() == nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() != nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
+    }
+
+    SECTION("pointer access to number_integer_t")
+    {
+        using test_type = json::number_integer_t;
+        json value = 23;
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == value.get<test_type>());
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == value.get<test_type>());
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() == nullptr);
+        CHECK(value.get_ptr<json::array_t*>() == nullptr);
+        CHECK(value.get_ptr<json::string_t*>() == nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() != nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
+    }
+
+    SECTION("pointer access to number_unsigned_t")
+    {
+        using test_type = json::number_unsigned_t;
+        json value = 23u;
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == value.get<test_type>());
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == value.get<test_type>());
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == value.get<test_type>());
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() == nullptr);
+        CHECK(value.get_ptr<json::array_t*>() == nullptr);
+        CHECK(value.get_ptr<json::string_t*>() == nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() != nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() != nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() == nullptr);
+    }
+
+    SECTION("pointer access to number_float_t")
+    {
+        using test_type = json::number_float_t;
+        json value = 42.23;
+
+        // check if pointers are returned correctly
+        test_type* p1 = value.get_ptr<test_type*>();
+        CHECK(p1 == value.get_ptr<test_type*>());
+        CHECK(*p1 == Approx(value.get<test_type>()));
+
+        const test_type* p2 = value.get_ptr<const test_type*>();
+        CHECK(p1 == value.get_ptr<const test_type*>());
+        CHECK(*p2 == Approx(value.get<test_type>()));
+
+        const test_type* const p3 = value.get_ptr<const test_type* const>();
+        CHECK(p1 == value.get_ptr<const test_type* const>());
+        CHECK(*p3 == Approx(value.get<test_type>()));
+
+        // check if null pointers are returned correctly
+        CHECK(value.get_ptr<json::object_t*>() == nullptr);
+        CHECK(value.get_ptr<json::array_t*>() == nullptr);
+        CHECK(value.get_ptr<json::string_t*>() == nullptr);
+        CHECK(value.get_ptr<json::boolean_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_integer_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_unsigned_t*>() == nullptr);
+        CHECK(value.get_ptr<json::number_float_t*>() != nullptr);
+    }
+}
+
+TEST_CASE("reference access")
+{
+    // create a JSON value with different types
+    json json_types =
+    {
+        {"boolean", true},
+        {
+            "number", {
+                {"integer", 42},
+                {"floating-point", 17.23}
+            }
+        },
+        {"string", "Hello, world!"},
+        {"array", {1, 2, 3, 4, 5}},
+        {"null", nullptr}
+    };
+
+    SECTION("reference access to object_t")
+    {
+        using test_type = json::object_t;
+        json value = {{"one", 1}, {"two", 2}};
+
+        // check if references are returned correctly
+        test_type& p1 = value.get_ref<test_type&>();
+        CHECK(&p1 == value.get_ptr<test_type*>());
+        CHECK(p1 == value.get<test_type>());
+
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+
+        // check if mismatching references throw correctly
+        CHECK_NOTHROW(value.get_ref<json::object_t&>());
+        CHECK_THROWS(value.get_ref<json::array_t&>());
+        CHECK_THROWS(value.get_ref<json::string_t&>());
+        CHECK_THROWS(value.get_ref<json::boolean_t&>());
+        CHECK_THROWS(value.get_ref<json::number_integer_t&>());
+        CHECK_THROWS(value.get_ref<json::number_float_t&>());
+    }
+
+    SECTION("const reference access to const object_t")
+    {
+        using test_type = json::object_t;
+        const json value = {{"one", 1}, {"two", 2}};
+
+        // this should not compile
+        // test_type& p1 = value.get_ref<test_type&>();
+
+        // check if references are returned correctly
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+    }
+
+    SECTION("reference access to array_t")
+    {
+        using test_type = json::array_t;
+        json value = {1, 2, 3, 4};
+
+        // check if references are returned correctly
+        test_type& p1 = value.get_ref<test_type&>();
+        CHECK(&p1 == value.get_ptr<test_type*>());
+        CHECK(p1 == value.get<test_type>());
+
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+
+        // check if mismatching references throw correctly
+        CHECK_THROWS(value.get_ref<json::object_t&>());
+        CHECK_NOTHROW(value.get_ref<json::array_t&>());
+        CHECK_THROWS(value.get_ref<json::string_t&>());
+        CHECK_THROWS(value.get_ref<json::boolean_t&>());
+        CHECK_THROWS(value.get_ref<json::number_integer_t&>());
+        CHECK_THROWS(value.get_ref<json::number_float_t&>());
+    }
+
+    SECTION("reference access to string_t")
+    {
+        using test_type = json::string_t;
+        json value = "hello";
+
+        // check if references are returned correctly
+        test_type& p1 = value.get_ref<test_type&>();
+        CHECK(&p1 == value.get_ptr<test_type*>());
+        CHECK(p1 == value.get<test_type>());
+
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+
+        // check if mismatching references throw correctly
+        CHECK_THROWS(value.get_ref<json::object_t&>());
+        CHECK_THROWS(value.get_ref<json::array_t&>());
+        CHECK_NOTHROW(value.get_ref<json::string_t&>());
+        CHECK_THROWS(value.get_ref<json::boolean_t&>());
+        CHECK_THROWS(value.get_ref<json::number_integer_t&>());
+        CHECK_THROWS(value.get_ref<json::number_float_t&>());
+    }
+
+    SECTION("reference access to boolean_t")
+    {
+        using test_type = json::boolean_t;
+        json value = false;
+
+        // check if references are returned correctly
+        test_type& p1 = value.get_ref<test_type&>();
+        CHECK(&p1 == value.get_ptr<test_type*>());
+        CHECK(p1 == value.get<test_type>());
+
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+
+        // check if mismatching references throw correctly
+        CHECK_THROWS(value.get_ref<json::object_t&>());
+        CHECK_THROWS(value.get_ref<json::array_t&>());
+        CHECK_THROWS(value.get_ref<json::string_t&>());
+        CHECK_NOTHROW(value.get_ref<json::boolean_t&>());
+        CHECK_THROWS(value.get_ref<json::number_integer_t&>());
+        CHECK_THROWS(value.get_ref<json::number_float_t&>());
+    }
+
+    SECTION("reference access to number_integer_t")
+    {
+        using test_type = json::number_integer_t;
+        json value = 23;
+
+        // check if references are returned correctly
+        test_type& p1 = value.get_ref<test_type&>();
+        CHECK(&p1 == value.get_ptr<test_type*>());
+        CHECK(p1 == value.get<test_type>());
+
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+
+        // check if mismatching references throw correctly
+        CHECK_THROWS(value.get_ref<json::object_t&>());
+        CHECK_THROWS(value.get_ref<json::array_t&>());
+        CHECK_THROWS(value.get_ref<json::string_t&>());
+        CHECK_THROWS(value.get_ref<json::boolean_t&>());
+        CHECK_NOTHROW(value.get_ref<json::number_integer_t&>());
+        CHECK_THROWS(value.get_ref<json::number_float_t&>());
+    }
+
+    SECTION("reference access to number_float_t")
+    {
+        using test_type = json::number_float_t;
+        json value = 42.23;
+
+        // check if references are returned correctly
+        test_type& p1 = value.get_ref<test_type&>();
+        CHECK(&p1 == value.get_ptr<test_type*>());
+        CHECK(p1 == value.get<test_type>());
+
+        const test_type& p2 = value.get_ref<const test_type&>();
+        CHECK(&p2 == value.get_ptr<const test_type*>());
+        CHECK(p2 == value.get<test_type>());
+
+        // check if mismatching references throw correctly
+        CHECK_THROWS(value.get_ref<json::object_t&>());
+        CHECK_THROWS(value.get_ref<json::array_t&>());
+        CHECK_THROWS(value.get_ref<json::string_t&>());
+        CHECK_THROWS(value.get_ref<json::boolean_t&>());
+        CHECK_THROWS(value.get_ref<json::number_integer_t&>());
+        CHECK_NOTHROW(value.get_ref<json::number_float_t&>());
+    }
+}
+
+TEST_CASE("element access")
+{
+    SECTION("array")
+    {
+        json j = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+        const json j_const = j;
+
+        SECTION("access specified element with bounds checking")
+        {
+            SECTION("access within bounds")
+            {
+                CHECK(j.at(0) == json(1));
+                CHECK(j.at(1) == json(1u));
+                CHECK(j.at(2) == json(true));
+                CHECK(j.at(3) == json(nullptr));
+                CHECK(j.at(4) == json("string"));
+                CHECK(j.at(5) == json(42.23));
+                CHECK(j.at(6) == json(json::object()));
+                CHECK(j.at(7) == json({1, 2, 3}));
+
+                CHECK(j_const.at(0) == json(1));
+                CHECK(j_const.at(1) == json(1u));
+                CHECK(j_const.at(2) == json(true));
+                CHECK(j_const.at(3) == json(nullptr));
+                CHECK(j_const.at(4) == json("string"));
+                CHECK(j_const.at(5) == json(42.23));
+                CHECK(j_const.at(6) == json(json::object()));
+                CHECK(j_const.at(7) == json({1, 2, 3}));
+            }
+
+            SECTION("access outside bounds")
+            {
+                CHECK_THROWS_AS(j.at(8), std::out_of_range);
+                CHECK_THROWS_AS(j_const.at(8), std::out_of_range);
+
+                CHECK_THROWS_WITH(j.at(8), "array index 8 is out of range");
+                CHECK_THROWS_WITH(j_const.at(8), "array index 8 is out of range");
+            }
+
+            SECTION("access on non-array type")
+            {
+                SECTION("null")
+                {
+                    json j_nonarray(json::value_t::null);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with null");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with null");
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonarray(json::value_t::boolean);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with boolean");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonarray(json::value_t::string);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with string");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with string");
+                }
+
+                SECTION("object")
+                {
+                    json j_nonarray(json::value_t::object);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with object");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with object");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonarray(json::value_t::number_integer);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with number");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with number");
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonarray(json::value_t::number_unsigned);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with number");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonarray(json::value_t::number_float);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray.at(0), std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const.at(0), std::domain_error);
+
+                    CHECK_THROWS_WITH(j_nonarray.at(0), "cannot use at() with number");
+                    CHECK_THROWS_WITH(j_nonarray_const.at(0), "cannot use at() with number");
+                }
+            }
+        }
+
+        SECTION("front and back")
+        {
+            CHECK(j.front() == json(1));
+            CHECK(j_const.front() == json(1));
+            CHECK(j.back() == json({1, 2, 3}));
+            CHECK(j_const.back() == json({1, 2, 3}));
+        }
+
+        SECTION("access specified element")
+        {
+            SECTION("access within bounds")
+            {
+                CHECK(j[0] == json(1));
+                CHECK(j[1] == json(1u));
+                CHECK(j[2] == json(true));
+                CHECK(j[3] == json(nullptr));
+                CHECK(j[4] == json("string"));
+                CHECK(j[5] == json(42.23));
+                CHECK(j[6] == json(json::object()));
+                CHECK(j[7] == json({1, 2, 3}));
+
+                CHECK(j_const[0] == json(1));
+                CHECK(j_const[1] == json(1u));
+                CHECK(j_const[2] == json(true));
+                CHECK(j_const[3] == json(nullptr));
+                CHECK(j_const[4] == json("string"));
+                CHECK(j_const[5] == json(42.23));
+                CHECK(j_const[6] == json(json::object()));
+                CHECK(j_const[7] == json({1, 2, 3}));
+            }
+
+            SECTION("access on non-array type")
+            {
+                SECTION("null")
+                {
+                    SECTION("standard tests")
+                    {
+                        json j_nonarray(json::value_t::null);
+                        const json j_nonarray_const(j_nonarray);
+                        CHECK_NOTHROW(j_nonarray[0]);
+                        CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                        CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with null");
+                    }
+
+                    SECTION("implicit transformation to properly filled array")
+                    {
+                        json j_nonarray;
+                        j_nonarray[3] = 42;
+                        CHECK(j_nonarray == json({nullptr, nullptr, nullptr, 42}));
+                    }
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonarray(json::value_t::boolean);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray[0], std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with boolean");
+                    CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonarray(json::value_t::string);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray[0], std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with string");
+                    CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with string");
+                }
+
+                SECTION("object")
+                {
+                    json j_nonarray(json::value_t::object);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray[0], std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with object");
+                    CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with object");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonarray(json::value_t::number_integer);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray[0], std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with number");
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonarray(json::value_t::number_unsigned);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray[0], std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonarray(json::value_t::number_float);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK_THROWS_AS(j_nonarray[0], std::domain_error);
+                    CHECK_THROWS_AS(j_nonarray_const[0], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonarray[0], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_nonarray_const[0], "cannot use operator[] with number");
+                }
+            }
+        }
+
+        SECTION("remove specified element")
+        {
+            SECTION("remove element by index")
+            {
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(0);
+                    CHECK(jarray == json({1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(1);
+                    CHECK(jarray == json({1, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(2);
+                    CHECK(jarray == json({1, 1u, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(3);
+                    CHECK(jarray == json({1, 1u, true, "string", 42.23, json::object(), {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(4);
+                    CHECK(jarray == json({1, 1u, true, nullptr, 42.23, json::object(), {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(5);
+                    CHECK(jarray == json({1, 1u, true, nullptr, "string", json::object(), {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(6);
+                    CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, {1, 2, 3}}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    jarray.erase(7);
+                    CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, json::object()}));
+                }
+                {
+                    json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                    CHECK_THROWS_AS(jarray.erase(8), std::out_of_range);
+                    CHECK_THROWS_WITH(jarray.erase(8), "array index 8 is out of range");
+                }
+            }
+
+            SECTION("remove element by iterator")
+            {
+                SECTION("erase(begin())")
+                {
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::iterator it2 = jarray.erase(jarray.begin());
+                        CHECK(jarray == json({1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json(1u));
+                    }
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::const_iterator it2 = jarray.erase(jarray.cbegin());
+                        CHECK(jarray == json({1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json(1u));
+                    }
+                }
+
+                SECTION("erase(begin(), end())")
+                {
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::iterator it2 = jarray.erase(jarray.begin(), jarray.end());
+                        CHECK(jarray == json::array());
+                        CHECK(it2 == jarray.end());
+                    }
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::const_iterator it2 = jarray.erase(jarray.cbegin(), jarray.cend());
+                        CHECK(jarray == json::array());
+                        CHECK(it2 == jarray.cend());
+                    }
+                }
+
+                SECTION("erase(begin(), begin())")
+                {
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::iterator it2 = jarray.erase(jarray.begin(), jarray.begin());
+                        CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json(1));
+                    }
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::const_iterator it2 = jarray.erase(jarray.cbegin(), jarray.cbegin());
+                        CHECK(jarray == json({1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json(1));
+                    }
+                }
+
+                SECTION("erase at offset")
+                {
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::iterator it = jarray.begin() + 4;
+                        json::iterator it2 = jarray.erase(it);
+                        CHECK(jarray == json({1, 1u, true, nullptr, 42.23, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json(42.23));
+                    }
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::const_iterator it = jarray.cbegin() + 4;
+                        json::const_iterator it2 = jarray.erase(it);
+                        CHECK(jarray == json({1, 1u, true, nullptr, 42.23, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json(42.23));
+                    }
+                }
+
+                SECTION("erase subrange")
+                {
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::iterator it2 = jarray.erase(jarray.begin() + 3, jarray.begin() + 6);
+                        CHECK(jarray == json({1, 1u, true, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json::object());
+                    }
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json::const_iterator it2 = jarray.erase(jarray.cbegin() + 3, jarray.cbegin() + 6);
+                        CHECK(jarray == json({1, 1u, true, json::object(), {1, 2, 3}}));
+                        CHECK(*it2 == json::object());
+                    }
+                }
+
+                SECTION("different arrays")
+                {
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json jarray2 = {"foo", "bar"};
+                        CHECK_THROWS_AS(jarray.erase(jarray2.begin()), std::domain_error);
+                        CHECK_THROWS_AS(jarray.erase(jarray.begin(), jarray2.end()), std::domain_error);
+                        CHECK_THROWS_AS(jarray.erase(jarray2.begin(), jarray.end()), std::domain_error);
+                        CHECK_THROWS_AS(jarray.erase(jarray2.begin(), jarray2.end()), std::domain_error);
+
+                        CHECK_THROWS_WITH(jarray.erase(jarray2.begin()), "iterator does not fit current value");
+                        CHECK_THROWS_WITH(jarray.erase(jarray.begin(), jarray2.end()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jarray.erase(jarray2.begin(), jarray.end()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jarray.erase(jarray2.begin(), jarray2.end()),
+                                          "iterators do not fit current value");
+                    }
+                    {
+                        json jarray = {1, 1u, true, nullptr, "string", 42.23, json::object(), {1, 2, 3}};
+                        json jarray2 = {"foo", "bar"};
+                        CHECK_THROWS_AS(jarray.erase(jarray2.cbegin()), std::domain_error);
+                        CHECK_THROWS_AS(jarray.erase(jarray.cbegin(), jarray2.cend()), std::domain_error);
+                        CHECK_THROWS_AS(jarray.erase(jarray2.cbegin(), jarray.cend()), std::domain_error);
+                        CHECK_THROWS_AS(jarray.erase(jarray2.cbegin(), jarray2.cend()), std::domain_error);
+
+                        CHECK_THROWS_WITH(jarray.erase(jarray2.cbegin()), "iterator does not fit current value");
+                        CHECK_THROWS_WITH(jarray.erase(jarray.cbegin(), jarray2.cend()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jarray.erase(jarray2.cbegin(), jarray.cend()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jarray.erase(jarray2.cbegin(), jarray2.cend()),
+                                          "iterators do not fit current value");
+                    }
+                }
+            }
+
+            SECTION("remove element by index in non-array type")
+            {
+                SECTION("null")
+                {
+                    json j_nonobject(json::value_t::null);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with null");
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonobject(json::value_t::boolean);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonobject(json::value_t::string);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with string");
+                }
+
+                SECTION("object")
+                {
+                    json j_nonobject(json::value_t::object);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with object");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonobject(json::value_t::number_integer);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with number");
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonobject(json::value_t::number_unsigned);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonobject(json::value_t::number_float);
+                    CHECK_THROWS_AS(j_nonobject.erase(0), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase(0), "cannot use erase() with number");
+                }
+            }
+        }
+    }
+
+    SECTION("object")
+    {
+        json j = {{"integer", 1}, {"unsigned", 1u}, {"floating", 42.23}, {"null", nullptr}, {"string", "hello world"}, {"boolean", true}, {"object", json::object()}, {"array", {1, 2, 3}}};
+        const json j_const = j;
+
+        SECTION("access specified element with bounds checking")
+        {
+            SECTION("access within bounds")
+            {
+                CHECK(j.at("integer") == json(1));
+                CHECK(j.at("unsigned") == json(1u));
+                CHECK(j.at("boolean") == json(true));
+                CHECK(j.at("null") == json(nullptr));
+                CHECK(j.at("string") == json("hello world"));
+                CHECK(j.at("floating") == json(42.23));
+                CHECK(j.at("object") == json(json::object()));
+                CHECK(j.at("array") == json({1, 2, 3}));
+
+                CHECK(j_const.at("integer") == json(1));
+                CHECK(j_const.at("unsigned") == json(1u));
+                CHECK(j_const.at("boolean") == json(true));
+                CHECK(j_const.at("null") == json(nullptr));
+                CHECK(j_const.at("string") == json("hello world"));
+                CHECK(j_const.at("floating") == json(42.23));
+                CHECK(j_const.at("object") == json(json::object()));
+                CHECK(j_const.at("array") == json({1, 2, 3}));
+            }
+
+            SECTION("access outside bounds")
+            {
+                CHECK_THROWS_AS(j.at("foo"), std::out_of_range);
+                CHECK_THROWS_AS(j_const.at("foo"), std::out_of_range);
+                CHECK_THROWS_WITH(j.at("foo"), "key 'foo' not found");
+                CHECK_THROWS_WITH(j_const.at("foo"), "key 'foo' not found");
+            }
+
+            SECTION("access on non-object type")
+            {
+                SECTION("null")
+                {
+                    json j_nonobject(json::value_t::null);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with null");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with null");
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonobject(json::value_t::boolean);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with boolean");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonobject(json::value_t::string);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with string");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with string");
+                }
+
+                SECTION("array")
+                {
+                    json j_nonobject(json::value_t::array);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with array");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with array");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonobject(json::value_t::number_integer);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with number");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with number");
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonobject(json::value_t::number_unsigned);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with number");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonobject(json::value_t::number_float);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.at("foo"), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.at("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.at("foo"), "cannot use at() with number");
+                    CHECK_THROWS_WITH(j_nonobject_const.at("foo"), "cannot use at() with number");
+                }
+            }
+        }
+
+        SECTION("access specified element with default value")
+        {
+            SECTION("access existing value")
+            {
+                CHECK(j.value("integer", 2) == 1);
+                CHECK(j.value("integer", 1.0) == Approx(1));
+                CHECK(j.value("unsigned", 2) == 1u);
+                CHECK(j.value("unsigned", 1.0) == Approx(1u));
+                CHECK(j.value("null", json(1)) == json());
+                CHECK(j.value("boolean", false) == true);
+                CHECK(j.value("string", "bar") == "hello world");
+                CHECK(j.value("string", std::string("bar")) == "hello world");
+                CHECK(j.value("floating", 12.34) == Approx(42.23));
+                CHECK(j.value("floating", 12) == 42);
+                CHECK(j.value("object", json({{"foo", "bar"}})) == json(json::object()));
+                CHECK(j.value("array", json({10, 100})) == json({1, 2, 3}));
+
+                CHECK(j_const.value("integer", 2) == 1);
+                CHECK(j_const.value("integer", 1.0) == Approx(1));
+                CHECK(j_const.value("unsigned", 2) == 1u);
+                CHECK(j_const.value("unsigned", 1.0) == Approx(1u));
+                CHECK(j_const.value("boolean", false) == true);
+                CHECK(j_const.value("string", "bar") == "hello world");
+                CHECK(j_const.value("string", std::string("bar")) == "hello world");
+                CHECK(j_const.value("floating", 12.34) == Approx(42.23));
+                CHECK(j_const.value("floating", 12) == 42);
+                CHECK(j_const.value("object", json({{"foo", "bar"}})) == json(json::object()));
+                CHECK(j_const.value("array", json({10, 100})) == json({1, 2, 3}));
+            }
+
+            SECTION("access non-existing value")
+            {
+                CHECK(j.value("_", 2) == 2);
+                CHECK(j.value("_", 2u) == 2u);
+                CHECK(j.value("_", false) == false);
+                CHECK(j.value("_", "bar") == "bar");
+                CHECK(j.value("_", 12.34) == Approx(12.34));
+                CHECK(j.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
+                CHECK(j.value("_", json({10, 100})) == json({10, 100}));
+
+                CHECK(j_const.value("_", 2) == 2);
+                CHECK(j_const.value("_", 2u) == 2u);
+                CHECK(j_const.value("_", false) == false);
+                CHECK(j_const.value("_", "bar") == "bar");
+                CHECK(j_const.value("_", 12.34) == Approx(12.34));
+                CHECK(j_const.value("_", json({{"foo", "bar"}})) == json({{"foo", "bar"}}));
+                CHECK(j_const.value("_", json({10, 100})) == json({10, 100}));
+            }
+
+            SECTION("access on non-object type")
+            {
+                SECTION("null")
+                {
+                    json j_nonobject(json::value_t::null);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with null");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with null");
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonobject(json::value_t::boolean);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with boolean");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonobject(json::value_t::string);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with string");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with string");
+                }
+
+                SECTION("array")
+                {
+                    json j_nonobject(json::value_t::array);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with array");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with array");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonobject(json::value_t::number_integer);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with number");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with number");
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonobject(json::value_t::number_unsigned);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with number");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonobject(json::value_t::number_float);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject_const.value("foo", 1), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.value("foo", 1), "cannot use value() with number");
+                    CHECK_THROWS_WITH(j_nonobject_const.value("foo", 1), "cannot use value() with number");
+                }
+            }
+        }
+
+        SECTION("front and back")
+        {
+            // "array" is the smallest key
+            CHECK(j.front() == json({1, 2, 3}));
+            CHECK(j_const.front() == json({1, 2, 3}));
+            // "unsigned" is the largest key
+            CHECK(j.back() == json(1u));
+            CHECK(j_const.back() == json(1u));
+        }
+
+        SECTION("access specified element")
+        {
+            SECTION("access within bounds")
+            {
+                CHECK(j["integer"] == json(1));
+                CHECK(j[json::object_t::key_type("integer")] == j["integer"]);
+
+                CHECK(j["unsigned"] == json(1u));
+                CHECK(j[json::object_t::key_type("unsigned")] == j["unsigned"]);
+
+                CHECK(j["boolean"] == json(true));
+                CHECK(j[json::object_t::key_type("boolean")] == j["boolean"]);
+
+                CHECK(j["null"] == json(nullptr));
+                CHECK(j[json::object_t::key_type("null")] == j["null"]);
+
+                CHECK(j["string"] == json("hello world"));
+                CHECK(j[json::object_t::key_type("string")] == j["string"]);
+
+                CHECK(j["floating"] == json(42.23));
+                CHECK(j[json::object_t::key_type("floating")] == j["floating"]);
+
+                CHECK(j["object"] == json(json::object()));
+                CHECK(j[json::object_t::key_type("object")] == j["object"]);
+
+                CHECK(j["array"] == json({1, 2, 3}));
+                CHECK(j[json::object_t::key_type("array")] == j["array"]);
+
+                CHECK(j_const["integer"] == json(1));
+                CHECK(j_const[json::object_t::key_type("integer")] == j["integer"]);
+
+                CHECK(j_const["boolean"] == json(true));
+                CHECK(j_const[json::object_t::key_type("boolean")] == j["boolean"]);
+
+                CHECK(j_const["null"] == json(nullptr));
+                CHECK(j_const[json::object_t::key_type("null")] == j["null"]);
+
+                CHECK(j_const["string"] == json("hello world"));
+                CHECK(j_const[json::object_t::key_type("string")] == j["string"]);
+
+                CHECK(j_const["floating"] == json(42.23));
+                CHECK(j_const[json::object_t::key_type("floating")] == j["floating"]);
+
+                CHECK(j_const["object"] == json(json::object()));
+                CHECK(j_const[json::object_t::key_type("object")] == j["object"]);
+
+                CHECK(j_const["array"] == json({1, 2, 3}));
+                CHECK(j_const[json::object_t::key_type("array")] == j["array"]);
+            }
+
+            SECTION("access on non-object type")
+            {
+                SECTION("null")
+                {
+                    json j_nonobject(json::value_t::null);
+                    json j_nonobject2(json::value_t::null);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_NOTHROW(j_nonobject["foo"]);
+                    CHECK_NOTHROW(j_nonobject2[json::object_t::key_type("foo")]);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with null");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with null");
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonobject(json::value_t::boolean);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with boolean");
+                    CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with boolean");
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with boolean");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonobject(json::value_t::string);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with string");
+                    CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with string");
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with string");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with string");
+                }
+
+                SECTION("array")
+                {
+                    json j_nonobject(json::value_t::array);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with array");
+                    CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")], "cannot use operator[] with array");
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with array");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with array");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonobject(json::value_t::number_integer);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with number");
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonobject(json::value_t::number_unsigned);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonobject(json::value_t::number_float);
+                    const json j_const_nonobject(j_nonobject);
+                    CHECK_THROWS_AS(j_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject["foo"], std::domain_error);
+                    CHECK_THROWS_AS(j_const_nonobject[json::object_t::key_type("foo")], std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject["foo"], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_const_nonobject["foo"], "cannot use operator[] with number");
+                    CHECK_THROWS_WITH(j_const_nonobject[json::object_t::key_type("foo")],
+                                      "cannot use operator[] with number");
+                }
+            }
+        }
+
+        SECTION("remove specified element")
+        {
+            SECTION("remove element by key")
+            {
+                CHECK(j.find("integer") != j.end());
+                CHECK(j.erase("integer") == 1);
+                CHECK(j.find("integer") == j.end());
+                CHECK(j.erase("integer") == 0);
+
+                CHECK(j.find("unsigned") != j.end());
+                CHECK(j.erase("unsigned") == 1);
+                CHECK(j.find("unsigned") == j.end());
+                CHECK(j.erase("unsigned") == 0);
+
+                CHECK(j.find("boolean") != j.end());
+                CHECK(j.erase("boolean") == 1);
+                CHECK(j.find("boolean") == j.end());
+                CHECK(j.erase("boolean") == 0);
+
+                CHECK(j.find("null") != j.end());
+                CHECK(j.erase("null") == 1);
+                CHECK(j.find("null") == j.end());
+                CHECK(j.erase("null") == 0);
+
+                CHECK(j.find("string") != j.end());
+                CHECK(j.erase("string") == 1);
+                CHECK(j.find("string") == j.end());
+                CHECK(j.erase("string") == 0);
+
+                CHECK(j.find("floating") != j.end());
+                CHECK(j.erase("floating") == 1);
+                CHECK(j.find("floating") == j.end());
+                CHECK(j.erase("floating") == 0);
+
+                CHECK(j.find("object") != j.end());
+                CHECK(j.erase("object") == 1);
+                CHECK(j.find("object") == j.end());
+                CHECK(j.erase("object") == 0);
+
+                CHECK(j.find("array") != j.end());
+                CHECK(j.erase("array") == 1);
+                CHECK(j.find("array") == j.end());
+                CHECK(j.erase("array") == 0);
+            }
+
+            SECTION("remove element by iterator")
+            {
+                SECTION("erase(begin())")
+                {
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::iterator it2 = jobject.erase(jobject.begin());
+                        CHECK(jobject == json({{"b", 1}, {"c", 17u}}));
+                        CHECK(*it2 == json(1));
+                    }
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::const_iterator it2 = jobject.erase(jobject.cbegin());
+                        CHECK(jobject == json({{"b", 1}, {"c", 17u}}));
+                        CHECK(*it2 == json(1));
+                    }
+                }
+
+                SECTION("erase(begin(), end())")
+                {
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::iterator it2 = jobject.erase(jobject.begin(), jobject.end());
+                        CHECK(jobject == json::object());
+                        CHECK(it2 == jobject.end());
+                    }
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::const_iterator it2 = jobject.erase(jobject.cbegin(), jobject.cend());
+                        CHECK(jobject == json::object());
+                        CHECK(it2 == jobject.cend());
+                    }
+                }
+
+                SECTION("erase(begin(), begin())")
+                {
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::iterator it2 = jobject.erase(jobject.begin(), jobject.begin());
+                        CHECK(jobject == json({{"a", "a"}, {"b", 1}, {"c", 17u}}));
+                        CHECK(*it2 == json("a"));
+                    }
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::const_iterator it2 = jobject.erase(jobject.cbegin(), jobject.cbegin());
+                        CHECK(jobject == json({{"a", "a"}, {"b", 1}, {"c", 17u}}));
+                        CHECK(*it2 == json("a"));
+                    }
+                }
+
+                SECTION("erase at offset")
+                {
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::iterator it = jobject.find("b");
+                        json::iterator it2 = jobject.erase(it);
+                        CHECK(jobject == json({{"a", "a"}, {"c", 17u}}));
+                        CHECK(*it2 == json(17));
+                    }
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        json::const_iterator it = jobject.find("b");
+                        json::const_iterator it2 = jobject.erase(it);
+                        CHECK(jobject == json({{"a", "a"}, {"c", 17u}}));
+                        CHECK(*it2 == json(17));
+                    }
+                }
+
+                SECTION("erase subrange")
+                {
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                        json::iterator it2 = jobject.erase(jobject.find("b"), jobject.find("e"));
+                        CHECK(jobject == json({{"a", "a"}, {"e", true}}));
+                        CHECK(*it2 == json(true));
+                    }
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                        json::const_iterator it2 = jobject.erase(jobject.find("b"), jobject.find("e"));
+                        CHECK(jobject == json({{"a", "a"}, {"e", true}}));
+                        CHECK(*it2 == json(true));
+                    }
+                }
+
+                SECTION("different objects")
+                {
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                        json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        CHECK_THROWS_AS(jobject.erase(jobject2.begin()), std::domain_error);
+                        CHECK_THROWS_AS(jobject.erase(jobject.begin(), jobject2.end()), std::domain_error);
+                        CHECK_THROWS_AS(jobject.erase(jobject2.begin(), jobject.end()), std::domain_error);
+                        CHECK_THROWS_AS(jobject.erase(jobject2.begin(), jobject2.end()), std::domain_error);
+                        CHECK_THROWS_WITH(jobject.erase(jobject2.begin()), "iterator does not fit current value");
+                        CHECK_THROWS_WITH(jobject.erase(jobject.begin(), jobject2.end()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jobject.erase(jobject2.begin(), jobject.end()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jobject.erase(jobject2.begin(), jobject2.end()),
+                                          "iterators do not fit current value");
+                    }
+                    {
+                        json jobject = {{"a", "a"}, {"b", 1}, {"c", 17u}, {"d", false}, {"e", true}};
+                        json jobject2 = {{"a", "a"}, {"b", 1}, {"c", 17u}};
+                        CHECK_THROWS_AS(jobject.erase(jobject2.cbegin()), std::domain_error);
+                        CHECK_THROWS_AS(jobject.erase(jobject.cbegin(), jobject2.cend()), std::domain_error);
+                        CHECK_THROWS_AS(jobject.erase(jobject2.cbegin(), jobject.cend()), std::domain_error);
+                        CHECK_THROWS_AS(jobject.erase(jobject2.cbegin(), jobject2.cend()), std::domain_error);
+                        CHECK_THROWS_WITH(jobject.erase(jobject2.cbegin()), "iterator does not fit current value");
+                        CHECK_THROWS_WITH(jobject.erase(jobject.cbegin(), jobject2.cend()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jobject.erase(jobject2.cbegin(), jobject.cend()),
+                                          "iterators do not fit current value");
+                        CHECK_THROWS_WITH(jobject.erase(jobject2.cbegin(), jobject2.cend()),
+                                          "iterators do not fit current value");
+                    }
+                }
+            }
+
+            SECTION("remove element by key in non-object type")
+            {
+                SECTION("null")
+                {
+                    json j_nonobject(json::value_t::null);
+                    CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with null");
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonobject(json::value_t::boolean);
+                    CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with boolean");
+                }
+
+                SECTION("string")
+                {
+                    json j_nonobject(json::value_t::string);
+                    CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with string");
+                }
+
+                SECTION("array")
+                {
+                    json j_nonobject(json::value_t::array);
+                    CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with array");
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonobject(json::value_t::number_integer);
+                    CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with number");
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonobject(json::value_t::number_float);
+                    CHECK_THROWS_AS(j_nonobject.erase("foo"), std::domain_error);
+                    CHECK_THROWS_WITH(j_nonobject.erase("foo"), "cannot use erase() with number");
+                }
+            }
+        }
+
+        SECTION("find an element in an object")
+        {
+            SECTION("existing element")
+            {
+                for (auto key :
+                        {"integer", "unsigned", "floating", "null", "string", "boolean", "object", "array"
+                        })
+                {
+                    CHECK(j.find(key) != j.end());
+                    CHECK(*j.find(key) == j.at(key));
+                    CHECK(j_const.find(key) != j_const.end());
+                    CHECK(*j_const.find(key) == j_const.at(key));
+                }
+            }
+
+            SECTION("nonexisting element")
+            {
+                CHECK(j.find("foo") == j.end());
+                CHECK(j_const.find("foo") == j_const.end());
+            }
+
+            SECTION("all types")
+            {
+                SECTION("null")
+                {
+                    json j_nonarray(json::value_t::null);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("string")
+                {
+                    json j_nonarray(json::value_t::string);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("object")
+                {
+                    json j_nonarray(json::value_t::object);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("array")
+                {
+                    json j_nonarray(json::value_t::array);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonarray(json::value_t::boolean);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonarray(json::value_t::number_integer);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonarray(json::value_t::number_unsigned);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonarray(json::value_t::number_float);
+                    const json j_nonarray_const(j_nonarray);
+                    CHECK(j_nonarray.find("foo") == j_nonarray.end());
+                    CHECK(j_nonarray_const.find("foo") == j_nonarray_const.end());
+                }
+            }
+        }
+
+        SECTION("count keys in an object")
+        {
+            SECTION("existing element")
+            {
+                for (auto key :
+                        {"integer", "unsigned", "floating", "null", "string", "boolean", "object", "array"
+                        })
+                {
+                    CHECK(j.count(key) == 1);
+                    CHECK(j_const.count(key) == 1);
+                }
+            }
+
+            SECTION("nonexisting element")
+            {
+                CHECK(j.count("foo") == 0);
+                CHECK(j_const.count("foo") == 0);
+            }
+
+            SECTION("all types")
+            {
+                SECTION("null")
+                {
+                    json j_nonobject(json::value_t::null);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("string")
+                {
+                    json j_nonobject(json::value_t::string);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("object")
+                {
+                    json j_nonobject(json::value_t::object);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("array")
+                {
+                    json j_nonobject(json::value_t::array);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("boolean")
+                {
+                    json j_nonobject(json::value_t::boolean);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("number (integer)")
+                {
+                    json j_nonobject(json::value_t::number_integer);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("number (unsigned)")
+                {
+                    json j_nonobject(json::value_t::number_unsigned);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+
+                SECTION("number (floating-point)")
+                {
+                    json j_nonobject(json::value_t::number_float);
+                    const json j_nonobject_const(j_nonobject);
+                    CHECK(j_nonobject.count("foo") == 0);
+                    CHECK(j_nonobject_const.count("foo") == 0);
+                }
+            }
+        }
+    }
+
+    SECTION("other values")
+    {
+        SECTION("front and back")
+        {
+            SECTION("null")
+            {
+                {
+                    json j;
+                    CHECK_THROWS_AS(j.front(), std::out_of_range);
+                    CHECK_THROWS_AS(j.back(), std::out_of_range);
+                    CHECK_THROWS_WITH(j.front(), "cannot get value");
+                    CHECK_THROWS_WITH(j.back(), "cannot get value");
+                }
+                {
+                    const json j{};
+                    CHECK_THROWS_AS(j.front(), std::out_of_range);
+                    CHECK_THROWS_AS(j.back(), std::out_of_range);
+                    CHECK_THROWS_WITH(j.front(), "cannot get value");
+                    CHECK_THROWS_WITH(j.back(), "cannot get value");
+                }
+            }
+
+            SECTION("string")
+            {
+                {
+                    json j = "foo";
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+                {
+                    const json j = "bar";
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+            }
+
+            SECTION("number (boolean)")
+            {
+                {
+                    json j = false;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+                {
+                    const json j = true;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+            }
+
+            SECTION("number (integer)")
+            {
+                {
+                    json j = 17;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+                {
+                    const json j = 17;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+            }
+
+            SECTION("number (unsigned)")
+            {
+                {
+                    json j = 17u;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+                {
+                    const json j = 17u;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+            }
+
+            SECTION("number (floating point)")
+            {
+                {
+                    json j = 23.42;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+                {
+                    const json j = 23.42;
+                    CHECK(j.front() == j);
+                    CHECK(j.back() == j);
+                }
+            }
+        }
+
+        SECTION("erase with one valid iterator")
+        {
+            SECTION("null")
+            {
+                {
+                    json j;
+                    CHECK_THROWS_AS(j.erase(j.begin()), std::domain_error);
+                    CHECK_THROWS_WITH(j.erase(j.begin()), "cannot use erase() with null");
+                }
+                {
+                    json j;
+                    CHECK_THROWS_AS(j.erase(j.cbegin()), std::domain_error);
+                    CHECK_THROWS_WITH(j.erase(j.begin()), "cannot use erase() with null");
+                }
+            }
+
+            SECTION("string")
+            {
+                {
+                    json j = "foo";
+                    json::iterator it = j.erase(j.begin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = "bar";
+                    json::const_iterator it = j.erase(j.cbegin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (boolean)")
+            {
+                {
+                    json j = false;
+                    json::iterator it = j.erase(j.begin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = true;
+                    json::const_iterator it = j.erase(j.cbegin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (integer)")
+            {
+                {
+                    json j = 17;
+                    json::iterator it = j.erase(j.begin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = 17;
+                    json::const_iterator it = j.erase(j.cbegin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (unsigned)")
+            {
+                {
+                    json j = 17u;
+                    json::iterator it = j.erase(j.begin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = 17u;
+                    json::const_iterator it = j.erase(j.cbegin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (floating point)")
+            {
+                {
+                    json j = 23.42;
+                    json::iterator it = j.erase(j.begin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = 23.42;
+                    json::const_iterator it = j.erase(j.cbegin());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+        }
+
+        SECTION("erase with one invalid iterator")
+        {
+            SECTION("string")
+            {
+                {
+                    json j = "foo";
+                    CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range");
+                }
+                {
+                    json j = "bar";
+                    CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range");
+                }
+            }
+
+            SECTION("number (boolean)")
+            {
+                {
+                    json j = false;
+                    CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range");
+                }
+                {
+                    json j = true;
+                    CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range");
+                }
+            }
+
+            SECTION("number (integer)")
+            {
+                {
+                    json j = 17;
+                    CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range");
+                }
+                {
+                    json j = 17;
+                    CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range");
+                }
+            }
+
+            SECTION("number (unsigned)")
+            {
+                {
+                    json j = 17u;
+                    CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range");
+                }
+                {
+                    json j = 17u;
+                    CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range");
+                }
+            }
+
+            SECTION("number (floating point)")
+            {
+                {
+                    json j = 23.42;
+                    CHECK_THROWS_AS(j.erase(j.end()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end()), "iterator out of range");
+                }
+                {
+                    json j = 23.42;
+                    CHECK_THROWS_AS(j.erase(j.cend()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend()), "iterator out of range");
+                }
+            }
+        }
+
+        SECTION("erase with two valid iterators")
+        {
+            SECTION("null")
+            {
+                {
+                    json j;
+                    CHECK_THROWS_AS(j.erase(j.begin(), j.end()), std::domain_error);
+                    CHECK_THROWS_WITH(j.erase(j.begin(), j.end()), "cannot use erase() with null");
+                }
+                {
+                    json j;
+                    CHECK_THROWS_AS(j.erase(j.cbegin(), j.cend()), std::domain_error);
+                    CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cend()), "cannot use erase() with null");
+                }
+            }
+
+            SECTION("string")
+            {
+                {
+                    json j = "foo";
+                    json::iterator it = j.erase(j.begin(), j.end());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = "bar";
+                    json::const_iterator it = j.erase(j.cbegin(), j.cend());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (boolean)")
+            {
+                {
+                    json j = false;
+                    json::iterator it = j.erase(j.begin(), j.end());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = true;
+                    json::const_iterator it = j.erase(j.cbegin(), j.cend());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (integer)")
+            {
+                {
+                    json j = 17;
+                    json::iterator it = j.erase(j.begin(), j.end());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = 17;
+                    json::const_iterator it = j.erase(j.cbegin(), j.cend());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (unsigned)")
+            {
+                {
+                    json j = 17u;
+                    json::iterator it = j.erase(j.begin(), j.end());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = 17u;
+                    json::const_iterator it = j.erase(j.cbegin(), j.cend());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+
+            SECTION("number (floating point)")
+            {
+                {
+                    json j = 23.42;
+                    json::iterator it = j.erase(j.begin(), j.end());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+                {
+                    json j = 23.42;
+                    json::const_iterator it = j.erase(j.cbegin(), j.cend());
+                    CHECK(j.type() == json::value_t::null);
+                    CHECK(it == j.end());
+                }
+            }
+        }
+
+        SECTION("erase with two invalid iterators")
+        {
+            SECTION("string")
+            {
+                {
+                    json j = "foo";
+                    CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range");
+                }
+                {
+                    json j = "bar";
+                    CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range");
+                }
+            }
+
+            SECTION("number (boolean)")
+            {
+                {
+                    json j = false;
+                    CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range");
+                }
+                {
+                    json j = true;
+                    CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range");
+                }
+            }
+
+            SECTION("number (integer)")
+            {
+                {
+                    json j = 17;
+                    CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range");
+                }
+                {
+                    json j = 17;
+                    CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range");
+                }
+            }
+
+            SECTION("number (unsigned)")
+            {
+                {
+                    json j = 17u;
+                    CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range");
+                }
+                {
+                    json j = 17u;
+                    CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range");
+                }
+            }
+
+            SECTION("number (floating point)")
+            {
+                {
+                    json j = 23.42;
+                    CHECK_THROWS_AS(j.erase(j.end(), j.end()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.begin(), j.begin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.end(), j.end()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.begin(), j.begin()), "iterators out of range");
+                }
+                {
+                    json j = 23.42;
+                    CHECK_THROWS_AS(j.erase(j.cend(), j.cend()), std::out_of_range);
+                    CHECK_THROWS_AS(j.erase(j.cbegin(), j.cbegin()), std::out_of_range);
+                    CHECK_THROWS_WITH(j.erase(j.cend(), j.cend()), "iterators out of range");
+                    CHECK_THROWS_WITH(j.erase(j.cbegin(), j.cbegin()), "iterators out of range");
+                }
+            }
+        }
+    }
+}
+
+TEST_CASE("iterators")
+{
+    SECTION("basic behavior")
+    {
+        SECTION("uninitialized")
+        {
+            json::iterator it;
+            CHECK(it.m_object == nullptr);
+
+            json::const_iterator cit;
+            CHECK(cit.m_object == nullptr);
+        }
+
+        SECTION("boolean")
+        {
+            json j = true;
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it = j.begin();
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                it--;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                --it;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it = j_const.begin();
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                it--;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                --it;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it = j.cbegin();
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                it--;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                --it;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it = j_const.cbegin();
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                it--;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                --it;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it = j.rbegin();
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                it--;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                --it;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j.crbegin();
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                it--;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                --it;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j_const.crbegin();
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                it--;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                --it;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK(it.value() == json(true));
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK(cit.value() == json(true));
+
+                auto rit = j.rend();
+                auto crit = j.crend();
+                CHECK_THROWS_AS(rit.key(), std::domain_error);
+                CHECK_THROWS_AS(rit.value(), std::out_of_range);
+                CHECK_THROWS_AS(crit.key(), std::domain_error);
+                CHECK_THROWS_AS(crit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(rit.value(), "cannot get value");
+                CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(crit.value(), "cannot get value");
+            }
+        }
+
+        SECTION("string")
+        {
+            json j = "hello world";
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it = j.begin();
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                it--;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                --it;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it = j_const.begin();
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                it--;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                --it;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it = j.cbegin();
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                it--;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                --it;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it = j_const.cbegin();
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                it--;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                --it;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it = j.rbegin();
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                it--;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                --it;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j.crbegin();
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                it--;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                --it;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j_const.crbegin();
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                it--;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                --it;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK(it.value() == json("hello world"));
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK(cit.value() == json("hello world"));
+
+                auto rit = j.rend();
+                auto crit = j.crend();
+                CHECK_THROWS_AS(rit.key(), std::domain_error);
+                CHECK_THROWS_AS(rit.value(), std::out_of_range);
+                CHECK_THROWS_AS(crit.key(), std::domain_error);
+                CHECK_THROWS_AS(crit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(rit.value(), "cannot get value");
+                CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(crit.value(), "cannot get value");
+            }
+        }
+
+        SECTION("array")
+        {
+            json j = {1, 2, 3};
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it_begin = j.begin();
+                json::iterator it_end = j.end();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j[0]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[2]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it_begin = j_const.begin();
+                json::const_iterator it_end = j_const.end();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j_const[0]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j_const[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j_const[2]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it_begin = j.cbegin();
+                json::const_iterator it_end = j.cend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j[0]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[2]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it_begin = j_const.cbegin();
+                json::const_iterator it_end = j_const.cend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j[0]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[2]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it_begin = j.rbegin();
+                json::reverse_iterator it_end = j.rend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j[2]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[0]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it_begin = j.crbegin();
+                json::const_reverse_iterator it_end = j.crend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j[2]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[0]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it_begin = j_const.crbegin();
+                json::const_reverse_iterator it_end = j_const.crend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j[2]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[1]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j[0]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK(it.value() == json(1));
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK(cit.value() == json(1));
+            }
+        }
+
+        SECTION("object")
+        {
+            json j = {{"A", 1}, {"B", 2}, {"C", 3}};
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it_begin = j.begin();
+                json::iterator it_end = j.end();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j["A"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["C"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it_begin = j_const.begin();
+                json::const_iterator it_end = j_const.end();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j_const["A"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j_const["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j_const["C"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it_begin = j.cbegin();
+                json::const_iterator it_end = j.cend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j["A"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["C"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it_begin = j_const.cbegin();
+                json::const_iterator it_end = j_const.cend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j_const["A"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j_const["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j_const["C"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it_begin = j.rbegin();
+                json::reverse_iterator it_end = j.rend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j["C"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["A"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it_begin = j.crbegin();
+                json::const_reverse_iterator it_end = j.crend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j["C"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["A"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it_begin = j_const.crbegin();
+                json::const_reverse_iterator it_end = j_const.crend();
+
+                auto it = it_begin;
+                CHECK(it != it_end);
+                CHECK(*it == j["C"]);
+
+                it++;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["B"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it != it_end);
+                CHECK(*it == j["A"]);
+
+                ++it;
+                CHECK(it != it_begin);
+                CHECK(it == it_end);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK(it.key() == "A");
+                CHECK(it.value() == json(1));
+                CHECK(cit.key() == "A");
+                CHECK(cit.value() == json(1));
+            }
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it = j.begin();
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                it--;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                --it;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it = j_const.begin();
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                it--;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                --it;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it = j.cbegin();
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                it--;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                --it;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it = j_const.cbegin();
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                it--;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                --it;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it = j.rbegin();
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                it--;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                --it;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j.crbegin();
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                it--;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                --it;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j_const.crbegin();
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                it--;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                --it;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK(it.value() == json(23));
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK(cit.value() == json(23));
+
+                auto rit = j.rend();
+                auto crit = j.crend();
+                CHECK_THROWS_AS(rit.key(), std::domain_error);
+                CHECK_THROWS_AS(rit.value(), std::out_of_range);
+                CHECK_THROWS_AS(crit.key(), std::domain_error);
+                CHECK_THROWS_AS(crit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(rit.value(), "cannot get value");
+                CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(crit.value(), "cannot get value");
+            }
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it = j.begin();
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                it--;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                --it;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it = j_const.begin();
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                it--;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                --it;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it = j.cbegin();
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                it--;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                --it;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it = j_const.cbegin();
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                it--;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                --it;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it = j.rbegin();
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                it--;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                --it;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j.crbegin();
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                it--;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                --it;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j_const.crbegin();
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                it--;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                --it;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK(it.value() == json(23));
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK(cit.value() == json(23));
+
+                auto rit = j.rend();
+                auto crit = j.crend();
+                CHECK_THROWS_AS(rit.key(), std::domain_error);
+                CHECK_THROWS_AS(rit.value(), std::out_of_range);
+                CHECK_THROWS_AS(crit.key(), std::domain_error);
+                CHECK_THROWS_AS(crit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(rit.value(), "cannot get value");
+                CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(crit.value(), "cannot get value");
+            }
+        }
+
+        SECTION("number (float)")
+        {
+            json j = 23.42;
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it = j.begin();
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                it--;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.begin());
+                CHECK(it == j.end());
+
+                --it;
+                CHECK(it == j.begin());
+                CHECK(it != j.end());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it = j_const.begin();
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                it--;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.begin());
+                CHECK(it == j_const.end());
+
+                --it;
+                CHECK(it == j_const.begin());
+                CHECK(it != j_const.end());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it = j.cbegin();
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                it--;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.cbegin());
+                CHECK(it == j.cend());
+
+                --it;
+                CHECK(it == j.cbegin());
+                CHECK(it != j.cend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it = j_const.cbegin();
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                it--;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.cbegin());
+                CHECK(it == j_const.cend());
+
+                --it;
+                CHECK(it == j_const.cbegin());
+                CHECK(it != j_const.cend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it = j.rbegin();
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                it--;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.rbegin());
+                CHECK(it == j.rend());
+
+                --it;
+                CHECK(it == j.rbegin());
+                CHECK(it != j.rend());
+                CHECK(*it == j);
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j.crbegin();
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                it++;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                it--;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+
+                ++it;
+                CHECK(it != j.crbegin());
+                CHECK(it == j.crend());
+
+                --it;
+                CHECK(it == j.crbegin());
+                CHECK(it != j.crend());
+                CHECK(*it == j);
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j_const.crbegin();
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                it++;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                it--;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+
+                ++it;
+                CHECK(it != j_const.crbegin());
+                CHECK(it == j_const.crend());
+
+                --it;
+                CHECK(it == j_const.crbegin());
+                CHECK(it != j_const.crend());
+                CHECK(*it == j_const);
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK(it.value() == json(23.42));
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK(cit.value() == json(23.42));
+
+                auto rit = j.rend();
+                auto crit = j.crend();
+                CHECK_THROWS_AS(rit.key(), std::domain_error);
+                CHECK_THROWS_AS(rit.value(), std::out_of_range);
+                CHECK_THROWS_AS(crit.key(), std::domain_error);
+                CHECK_THROWS_AS(crit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(rit.value(), "cannot get value");
+                CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(crit.value(), "cannot get value");
+            }
+        }
+
+        SECTION("null")
+        {
+            json j = nullptr;
+            json j_const(j);
+
+            SECTION("json + begin/end")
+            {
+                json::iterator it = j.begin();
+                CHECK(it == j.end());
+            }
+
+            SECTION("const json + begin/end")
+            {
+                json::const_iterator it_begin = j_const.begin();
+                json::const_iterator it_end = j_const.end();
+                CHECK(it_begin == it_end);
+            }
+
+            SECTION("json + cbegin/cend")
+            {
+                json::const_iterator it_begin = j.cbegin();
+                json::const_iterator it_end = j.cend();
+                CHECK(it_begin == it_end);
+            }
+
+            SECTION("const json + cbegin/cend")
+            {
+                json::const_iterator it_begin = j_const.cbegin();
+                json::const_iterator it_end = j_const.cend();
+                CHECK(it_begin == it_end);
+            }
+
+            SECTION("json + rbegin/rend")
+            {
+                json::reverse_iterator it = j.rbegin();
+                CHECK(it == j.rend());
+            }
+
+            SECTION("json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j.crbegin();
+                CHECK(it == j.crend());
+            }
+
+            SECTION("const json + crbegin/crend")
+            {
+                json::const_reverse_iterator it = j_const.crbegin();
+                CHECK(it == j_const.crend());
+            }
+
+            SECTION("key/value")
+            {
+                auto it = j.begin();
+                auto cit = j_const.cbegin();
+                CHECK_THROWS_AS(it.key(), std::domain_error);
+                CHECK_THROWS_AS(it.value(), std::out_of_range);
+                CHECK_THROWS_AS(cit.key(), std::domain_error);
+                CHECK_THROWS_AS(cit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(it.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(it.value(), "cannot get value");
+                CHECK_THROWS_WITH(cit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(cit.value(), "cannot get value");
+
+                auto rit = j.rend();
+                auto crit = j.crend();
+                CHECK_THROWS_AS(rit.key(), std::domain_error);
+                CHECK_THROWS_AS(rit.value(), std::out_of_range);
+                CHECK_THROWS_AS(crit.key(), std::domain_error);
+                CHECK_THROWS_AS(crit.value(), std::out_of_range);
+                CHECK_THROWS_WITH(rit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(rit.value(), "cannot get value");
+                CHECK_THROWS_WITH(crit.key(), "cannot use key() for non-object iterators");
+                CHECK_THROWS_WITH(crit.value(), "cannot get value");
+            }
+        }
+    }
+
+    SECTION("iterator comparisons")
+    {
+        json j_values = {nullptr, true, 42, 42u, 23.23, {{"one", 1}, {"two", 2}}, {1, 2, 3, 4, 5}, "Hello, world"};
+
+        for (json& j : j_values)
+        {
+            auto it1 = j.begin();
+            auto it2 = j.begin();
+            auto it3 = j.begin();
+            ++it2;
+            ++it3;
+            ++it3;
+            auto it1_c = j.cbegin();
+            auto it2_c = j.cbegin();
+            auto it3_c = j.cbegin();
+            ++it2_c;
+            ++it3_c;
+            ++it3_c;
+
+            // comparison: equal
+            {
+                CHECK(it1 == it1);
+                CHECK(not (it1 == it2));
+                CHECK(not (it1 == it3));
+                CHECK(not (it2 == it3));
+                CHECK(it1_c == it1_c);
+                CHECK(not (it1_c == it2_c));
+                CHECK(not (it1_c == it3_c));
+                CHECK(not (it2_c == it3_c));
+            }
+
+            // comparison: not equal
+            {
+                // check definition
+                CHECK( (it1 != it1) == not(it1 == it1) );
+                CHECK( (it1 != it2) == not(it1 == it2) );
+                CHECK( (it1 != it3) == not(it1 == it3) );
+                CHECK( (it2 != it3) == not(it2 == it3) );
+                CHECK( (it1_c != it1_c) == not(it1_c == it1_c) );
+                CHECK( (it1_c != it2_c) == not(it1_c == it2_c) );
+                CHECK( (it1_c != it3_c) == not(it1_c == it3_c) );
+                CHECK( (it2_c != it3_c) == not(it2_c == it3_c) );
+            }
+
+            // comparison: smaller
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 < it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 < it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 < it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 < it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c < it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c < it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c < it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c < it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 < it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 < it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 < it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 < it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c < it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c < it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c < it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c < it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    CHECK(not (it1 < it1));
+                    CHECK(it1 < it2);
+                    CHECK(it1 < it3);
+                    CHECK(it2 < it3);
+                    CHECK(not (it1_c < it1_c));
+                    CHECK(it1_c < it2_c);
+                    CHECK(it1_c < it3_c);
+                    CHECK(it2_c < it3_c);
+                }
+            }
+
+            // comparison: less than or equal
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 <= it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 <= it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 <= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 <= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c <= it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c <= it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c <= it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c <= it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 <= it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 <= it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 <= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 <= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c <= it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c <= it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c <= it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c <= it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    // check definition
+                    CHECK( (it1 <= it1) == not(it1 < it1) );
+                    CHECK( (it1 <= it2) == not(it2 < it1) );
+                    CHECK( (it1 <= it3) == not(it3 < it1) );
+                    CHECK( (it2 <= it3) == not(it3 < it2) );
+                    CHECK( (it1_c <= it1_c) == not(it1_c < it1_c) );
+                    CHECK( (it1_c <= it2_c) == not(it2_c < it1_c) );
+                    CHECK( (it1_c <= it3_c) == not(it3_c < it1_c) );
+                    CHECK( (it2_c <= it3_c) == not(it3_c < it2_c) );
+                }
+            }
+
+            // comparison: greater than
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 > it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 > it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 > it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 > it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c > it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c > it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c > it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c > it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 > it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 > it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 > it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 > it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c > it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c > it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c > it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c > it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    // check definition
+                    CHECK( (it1 > it1) == (it1 < it1) );
+                    CHECK( (it1 > it2) == (it2 < it1) );
+                    CHECK( (it1 > it3) == (it3 < it1) );
+                    CHECK( (it2 > it3) == (it3 < it2) );
+                    CHECK( (it1_c > it1_c) == (it1_c < it1_c) );
+                    CHECK( (it1_c > it2_c) == (it2_c < it1_c) );
+                    CHECK( (it1_c > it3_c) == (it3_c < it1_c) );
+                    CHECK( (it2_c > it3_c) == (it3_c < it2_c) );
+                }
+            }
+
+            // comparison: greater than or equal
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 >= it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 >= it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 >= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 >= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c >= it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c >= it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c >= it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c >= it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 >= it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 >= it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 >= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 >= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c >= it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c >= it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c >= it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c >= it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    // check definition
+                    CHECK( (it1 >= it1) == not(it1 < it1) );
+                    CHECK( (it1 >= it2) == not(it1 < it2) );
+                    CHECK( (it1 >= it3) == not(it1 < it3) );
+                    CHECK( (it2 >= it3) == not(it2 < it3) );
+                    CHECK( (it1_c >= it1_c) == not(it1_c < it1_c) );
+                    CHECK( (it1_c >= it2_c) == not(it1_c < it2_c) );
+                    CHECK( (it1_c >= it3_c) == not(it1_c < it3_c) );
+                    CHECK( (it2_c >= it3_c) == not(it2_c < it3_c) );
+                }
+            }
+        }
+
+        // check exceptions if different objects are compared
+        for (auto j : j_values)
+        {
+            for (auto k : j_values)
+            {
+                if (j != k)
+                {
+                    CHECK_THROWS_AS(j.begin() == k.begin(), std::domain_error);
+                    CHECK_THROWS_AS(j.cbegin() == k.cbegin(), std::domain_error);
+                    CHECK_THROWS_WITH(j.begin() == k.begin(), "cannot compare iterators of different containers");
+                    CHECK_THROWS_WITH(j.cbegin() == k.cbegin(), "cannot compare iterators of different containers");
+
+                    CHECK_THROWS_AS(j.begin() < k.begin(), std::domain_error);
+                    CHECK_THROWS_AS(j.cbegin() < k.cbegin(), std::domain_error);
+                    CHECK_THROWS_WITH(j.begin() < k.begin(), "cannot compare iterators of different containers");
+                    CHECK_THROWS_WITH(j.cbegin() < k.cbegin(), "cannot compare iterators of different containers");
+                }
+            }
+        }
+    }
+
+    SECTION("iterator arithmetic")
+    {
+        json j_object = {{"one", 1}, {"two", 2}, {"three", 3}};
+        json j_array = {1, 2, 3, 4, 5, 6};
+        json j_null = nullptr;
+        json j_value = 42;
+
+        SECTION("addition and subtraction")
+        {
+            SECTION("object")
+            {
+                {
+                    auto it = j_object.begin();
+                    CHECK_THROWS_AS(it += 1, std::domain_error);
+                    CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.cbegin();
+                    CHECK_THROWS_AS(it += 1, std::domain_error);
+                    CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.begin();
+                    CHECK_THROWS_AS(it + 1, std::domain_error);
+                    CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.cbegin();
+                    CHECK_THROWS_AS(it + 1, std::domain_error);
+                    CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.begin();
+                    CHECK_THROWS_AS(it -= 1, std::domain_error);
+                    CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.cbegin();
+                    CHECK_THROWS_AS(it -= 1, std::domain_error);
+                    CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.begin();
+                    CHECK_THROWS_AS(it - 1, std::domain_error);
+                    CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.cbegin();
+                    CHECK_THROWS_AS(it - 1, std::domain_error);
+                    CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.begin();
+                    CHECK_THROWS_AS(it - it, std::domain_error);
+                    CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.cbegin();
+                    CHECK_THROWS_AS(it - it, std::domain_error);
+                    CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators");
+                }
+            }
+
+            SECTION("array")
+            {
+                {
+                    auto it = j_array.begin();
+                    it += 3;
+                    CHECK((j_array.begin() + 3) == it);
+                    CHECK((it - 3) == j_array.begin());
+                    CHECK((it - j_array.begin()) == 3);
+                    CHECK(*it == json(4));
+                    it -= 2;
+                    CHECK(*it == json(2));
+                }
+                {
+                    auto it = j_array.cbegin();
+                    it += 3;
+                    CHECK((j_array.cbegin() + 3) == it);
+                    CHECK((it - 3) == j_array.cbegin());
+                    CHECK((it - j_array.cbegin()) == 3);
+                    CHECK(*it == json(4));
+                    it -= 2;
+                    CHECK(*it == json(2));
+                }
+            }
+
+            SECTION("null")
+            {
+                {
+                    auto it = j_null.begin();
+                    it += 3;
+                    CHECK((j_null.begin() + 3) == it);
+                    CHECK((it - 3) == j_null.begin());
+                    CHECK((it - j_null.begin()) == 3);
+                    CHECK(it != j_null.end());
+                    it -= 3;
+                    CHECK(it == j_null.end());
+                }
+                {
+                    auto it = j_null.cbegin();
+                    it += 3;
+                    CHECK((j_null.cbegin() + 3) == it);
+                    CHECK((it - 3) == j_null.cbegin());
+                    CHECK((it - j_null.cbegin()) == 3);
+                    CHECK(it != j_null.cend());
+                    it -= 3;
+                    CHECK(it == j_null.cend());
+                }
+            }
+
+            SECTION("value")
+            {
+                {
+                    auto it = j_value.begin();
+                    it += 3;
+                    CHECK((j_value.begin() + 3) == it);
+                    CHECK((it - 3) == j_value.begin());
+                    CHECK((it - j_value.begin()) == 3);
+                    CHECK(it != j_value.end());
+                    it -= 3;
+                    CHECK(*it == json(42));
+                }
+                {
+                    auto it = j_value.cbegin();
+                    it += 3;
+                    CHECK((j_value.cbegin() + 3) == it);
+                    CHECK((it - 3) == j_value.cbegin());
+                    CHECK((it - j_value.cbegin()) == 3);
+                    CHECK(it != j_value.cend());
+                    it -= 3;
+                    CHECK(*it == json(42));
+                }
+            }
+        }
+
+        SECTION("subscript operator")
+        {
+            SECTION("object")
+            {
+                {
+                    auto it = j_object.begin();
+                    CHECK_THROWS_AS(it[0], std::domain_error);
+                    CHECK_THROWS_AS(it[1], std::domain_error);
+                    CHECK_THROWS_WITH(it[0], "cannot use operator[] for object iterators");
+                    CHECK_THROWS_WITH(it[1], "cannot use operator[] for object iterators");
+                }
+                {
+                    auto it = j_object.cbegin();
+                    CHECK_THROWS_AS(it[0], std::domain_error);
+                    CHECK_THROWS_AS(it[1], std::domain_error);
+                    CHECK_THROWS_WITH(it[0], "cannot use operator[] for object iterators");
+                    CHECK_THROWS_WITH(it[1], "cannot use operator[] for object iterators");
+                }
+            }
+
+            SECTION("array")
+            {
+                {
+                    auto it = j_array.begin();
+                    CHECK(it[0] == json(1));
+                    CHECK(it[1] == json(2));
+                    CHECK(it[2] == json(3));
+                    CHECK(it[3] == json(4));
+                    CHECK(it[4] == json(5));
+                    CHECK(it[5] == json(6));
+                }
+                {
+                    auto it = j_array.cbegin();
+                    CHECK(it[0] == json(1));
+                    CHECK(it[1] == json(2));
+                    CHECK(it[2] == json(3));
+                    CHECK(it[3] == json(4));
+                    CHECK(it[4] == json(5));
+                    CHECK(it[5] == json(6));
+                }
+            }
+
+            SECTION("null")
+            {
+                {
+                    auto it = j_null.begin();
+                    CHECK_THROWS_AS(it[0], std::out_of_range);
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[0], "cannot get value");
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+                {
+                    auto it = j_null.cbegin();
+                    CHECK_THROWS_AS(it[0], std::out_of_range);
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[0], "cannot get value");
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+            }
+
+            SECTION("value")
+            {
+                {
+                    auto it = j_value.begin();
+                    CHECK(it[0] == json(42));
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+                {
+                    auto it = j_value.cbegin();
+                    CHECK(it[0] == json(42));
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+            }
+        }
+    }
+
+    SECTION("reverse iterator comparisons")
+    {
+        json j_values = {nullptr, true, 42, 42u, 23.23, {{"one", 1}, {"two", 2}}, {1, 2, 3, 4, 5}, "Hello, world"};
+
+        for (json& j : j_values)
+        {
+            auto it1 = j.rbegin();
+            auto it2 = j.rbegin();
+            auto it3 = j.rbegin();
+            ++it2;
+            ++it3;
+            ++it3;
+            auto it1_c = j.crbegin();
+            auto it2_c = j.crbegin();
+            auto it3_c = j.crbegin();
+            ++it2_c;
+            ++it3_c;
+            ++it3_c;
+
+            // comparison: equal
+            {
+                CHECK(it1 == it1);
+                CHECK(not (it1 == it2));
+                CHECK(not (it1 == it3));
+                CHECK(not (it2 == it3));
+                CHECK(it1_c == it1_c);
+                CHECK(not (it1_c == it2_c));
+                CHECK(not (it1_c == it3_c));
+                CHECK(not (it2_c == it3_c));
+            }
+
+            // comparison: not equal
+            {
+                // check definition
+                CHECK( (it1 != it1) == not(it1 == it1) );
+                CHECK( (it1 != it2) == not(it1 == it2) );
+                CHECK( (it1 != it3) == not(it1 == it3) );
+                CHECK( (it2 != it3) == not(it2 == it3) );
+                CHECK( (it1_c != it1_c) == not(it1_c == it1_c) );
+                CHECK( (it1_c != it2_c) == not(it1_c == it2_c) );
+                CHECK( (it1_c != it3_c) == not(it1_c == it3_c) );
+                CHECK( (it2_c != it3_c) == not(it2_c == it3_c) );
+            }
+
+            // comparison: smaller
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 < it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 < it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 < it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 < it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c < it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c < it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c < it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c < it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 < it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 < it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 < it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 < it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c < it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c < it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c < it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c < it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    CHECK(not (it1 < it1));
+                    CHECK(it1 < it2);
+                    CHECK(it1 < it3);
+                    CHECK(it2 < it3);
+                    CHECK(not (it1_c < it1_c));
+                    CHECK(it1_c < it2_c);
+                    CHECK(it1_c < it3_c);
+                    CHECK(it2_c < it3_c);
+                }
+            }
+
+            // comparison: less than or equal
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 <= it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 <= it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 <= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 <= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c <= it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c <= it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c <= it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c <= it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 <= it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 <= it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 <= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 <= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c <= it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c <= it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c <= it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c <= it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    // check definition
+                    CHECK( (it1 <= it1) == not(it1 < it1) );
+                    CHECK( (it1 <= it2) == not(it2 < it1) );
+                    CHECK( (it1 <= it3) == not(it3 < it1) );
+                    CHECK( (it2 <= it3) == not(it3 < it2) );
+                    CHECK( (it1_c <= it1_c) == not(it1_c < it1_c) );
+                    CHECK( (it1_c <= it2_c) == not(it2_c < it1_c) );
+                    CHECK( (it1_c <= it3_c) == not(it3_c < it1_c) );
+                    CHECK( (it2_c <= it3_c) == not(it3_c < it2_c) );
+                }
+            }
+
+            // comparison: greater than
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 > it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 > it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 > it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 > it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c > it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c > it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c > it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c > it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 > it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 > it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 > it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 > it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c > it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c > it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c > it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c > it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    // check definition
+                    CHECK( (it1 > it1) == (it1 < it1) );
+                    CHECK( (it1 > it2) == (it2 < it1) );
+                    CHECK( (it1 > it3) == (it3 < it1) );
+                    CHECK( (it2 > it3) == (it3 < it2) );
+                    CHECK( (it1_c > it1_c) == (it1_c < it1_c) );
+                    CHECK( (it1_c > it2_c) == (it2_c < it1_c) );
+                    CHECK( (it1_c > it3_c) == (it3_c < it1_c) );
+                    CHECK( (it2_c > it3_c) == (it3_c < it2_c) );
+                }
+            }
+
+            // comparison: greater than or equal
+            {
+                if (j.type() == json::value_t::object)
+                {
+                    CHECK_THROWS_AS(it1 >= it1, std::domain_error);
+                    CHECK_THROWS_AS(it1 >= it2, std::domain_error);
+                    CHECK_THROWS_AS(it2 >= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1 >= it3, std::domain_error);
+                    CHECK_THROWS_AS(it1_c >= it1_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c >= it2_c, std::domain_error);
+                    CHECK_THROWS_AS(it2_c >= it3_c, std::domain_error);
+                    CHECK_THROWS_AS(it1_c >= it3_c, std::domain_error);
+                    CHECK_THROWS_WITH(it1 >= it1, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 >= it2, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2 >= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1 >= it3, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c >= it1_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c >= it2_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it2_c >= it3_c, "cannot compare order of object iterators");
+                    CHECK_THROWS_WITH(it1_c >= it3_c, "cannot compare order of object iterators");
+                }
+                else
+                {
+                    // check definition
+                    CHECK( (it1 >= it1) == not(it1 < it1) );
+                    CHECK( (it1 >= it2) == not(it1 < it2) );
+                    CHECK( (it1 >= it3) == not(it1 < it3) );
+                    CHECK( (it2 >= it3) == not(it2 < it3) );
+                    CHECK( (it1_c >= it1_c) == not(it1_c < it1_c) );
+                    CHECK( (it1_c >= it2_c) == not(it1_c < it2_c) );
+                    CHECK( (it1_c >= it3_c) == not(it1_c < it3_c) );
+                    CHECK( (it2_c >= it3_c) == not(it2_c < it3_c) );
+                }
+            }
+        }
+
+        // check exceptions if different objects are compared
+        for (auto j : j_values)
+        {
+            for (auto k : j_values)
+            {
+                if (j != k)
+                {
+                    CHECK_THROWS_AS(j.rbegin() == k.rbegin(), std::domain_error);
+                    CHECK_THROWS_AS(j.crbegin() == k.crbegin(), std::domain_error);
+                    CHECK_THROWS_WITH(j.rbegin() == k.rbegin(), "cannot compare iterators of different containers");
+                    CHECK_THROWS_WITH(j.crbegin() == k.crbegin(), "cannot compare iterators of different containers");
+
+                    CHECK_THROWS_AS(j.rbegin() < k.rbegin(), std::domain_error);
+                    CHECK_THROWS_AS(j.crbegin() < k.crbegin(), std::domain_error);
+                    CHECK_THROWS_WITH(j.rbegin() < k.rbegin(), "cannot compare iterators of different containers");
+                    CHECK_THROWS_WITH(j.crbegin() < k.crbegin(), "cannot compare iterators of different containers");
+                }
+            }
+        }
+    }
+
+    SECTION("reverse iterator arithmetic")
+    {
+        json j_object = {{"one", 1}, {"two", 2}, {"three", 3}};
+        json j_array = {1, 2, 3, 4, 5, 6};
+        json j_null = nullptr;
+        json j_value = 42;
+
+        SECTION("addition and subtraction")
+        {
+            SECTION("object")
+            {
+                {
+                    auto it = j_object.rbegin();
+                    CHECK_THROWS_AS(it += 1, std::domain_error);
+                    CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.crbegin();
+                    CHECK_THROWS_AS(it += 1, std::domain_error);
+                    CHECK_THROWS_WITH(it += 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.rbegin();
+                    CHECK_THROWS_AS(it + 1, std::domain_error);
+                    CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.crbegin();
+                    CHECK_THROWS_AS(it + 1, std::domain_error);
+                    CHECK_THROWS_WITH(it + 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.rbegin();
+                    CHECK_THROWS_AS(it -= 1, std::domain_error);
+                    CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.crbegin();
+                    CHECK_THROWS_AS(it -= 1, std::domain_error);
+                    CHECK_THROWS_WITH(it -= 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.rbegin();
+                    CHECK_THROWS_AS(it - 1, std::domain_error);
+                    CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.crbegin();
+                    CHECK_THROWS_AS(it - 1, std::domain_error);
+                    CHECK_THROWS_WITH(it - 1, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.rbegin();
+                    CHECK_THROWS_AS(it - it, std::domain_error);
+                    CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.crbegin();
+                    CHECK_THROWS_AS(it - it, std::domain_error);
+                    CHECK_THROWS_WITH(it - it, "cannot use offsets with object iterators");
+                }
+            }
+
+            SECTION("array")
+            {
+                {
+                    auto it = j_array.rbegin();
+                    it += 3;
+                    CHECK((j_array.rbegin() + 3) == it);
+                    CHECK((it - 3) == j_array.rbegin());
+                    CHECK((j_array.rbegin() - it) == 3);
+                    CHECK(*it == json(3));
+                    it -= 2;
+                    CHECK(*it == json(5));
+                }
+                {
+                    auto it = j_array.crbegin();
+                    it += 3;
+                    CHECK((j_array.crbegin() + 3) == it);
+                    CHECK((it - 3) == j_array.crbegin());
+                    CHECK((j_array.crbegin() - it) == 3);
+                    CHECK(*it == json(3));
+                    it -= 2;
+                    CHECK(*it == json(5));
+                }
+            }
+
+            SECTION("null")
+            {
+                {
+                    auto it = j_null.rbegin();
+                    it += 3;
+                    CHECK((j_null.rbegin() + 3) == it);
+                    CHECK((it - 3) == j_null.rbegin());
+                    CHECK((j_null.rbegin() - it) == 3);
+                    CHECK(it != j_null.rend());
+                    it -= 3;
+                    CHECK(it == j_null.rend());
+                }
+                {
+                    auto it = j_null.crbegin();
+                    it += 3;
+                    CHECK((j_null.crbegin() + 3) == it);
+                    CHECK((it - 3) == j_null.crbegin());
+                    CHECK((j_null.crbegin() - it) == 3);
+                    CHECK(it != j_null.crend());
+                    it -= 3;
+                    CHECK(it == j_null.crend());
+                }
+            }
+
+            SECTION("value")
+            {
+                {
+                    auto it = j_value.rbegin();
+                    it += 3;
+                    CHECK((j_value.rbegin() + 3) == it);
+                    CHECK((it - 3) == j_value.rbegin());
+                    CHECK((j_value.rbegin() - it) == 3);
+                    CHECK(it != j_value.rend());
+                    it -= 3;
+                    CHECK(*it == json(42));
+                }
+                {
+                    auto it = j_value.crbegin();
+                    it += 3;
+                    CHECK((j_value.crbegin() + 3) == it);
+                    CHECK((it - 3) == j_value.crbegin());
+                    CHECK((j_value.crbegin() - it) == 3);
+                    CHECK(it != j_value.crend());
+                    it -= 3;
+                    CHECK(*it == json(42));
+                }
+            }
+        }
+
+        SECTION("subscript operator")
+        {
+            SECTION("object")
+            {
+                {
+                    auto it = j_object.rbegin();
+                    CHECK_THROWS_AS(it[0], std::domain_error);
+                    CHECK_THROWS_AS(it[1], std::domain_error);
+                    CHECK_THROWS_WITH(it[0], "cannot use offsets with object iterators");
+                    CHECK_THROWS_WITH(it[1], "cannot use offsets with object iterators");
+                }
+                {
+                    auto it = j_object.crbegin();
+                    CHECK_THROWS_AS(it[0], std::domain_error);
+                    CHECK_THROWS_AS(it[1], std::domain_error);
+                    CHECK_THROWS_WITH(it[0], "cannot use offsets with object iterators");
+                    CHECK_THROWS_WITH(it[1], "cannot use offsets with object iterators");
+                }
+            }
+
+            SECTION("array")
+            {
+                {
+                    auto it = j_array.rbegin();
+                    CHECK(it[0] == json(6));
+                    CHECK(it[1] == json(5));
+                    CHECK(it[2] == json(4));
+                    CHECK(it[3] == json(3));
+                    CHECK(it[4] == json(2));
+                    CHECK(it[5] == json(1));
+                }
+                {
+                    auto it = j_array.crbegin();
+                    CHECK(it[0] == json(6));
+                    CHECK(it[1] == json(5));
+                    CHECK(it[2] == json(4));
+                    CHECK(it[3] == json(3));
+                    CHECK(it[4] == json(2));
+                    CHECK(it[5] == json(1));
+                }
+            }
+
+            SECTION("null")
+            {
+                {
+                    auto it = j_null.rbegin();
+                    CHECK_THROWS_AS(it[0], std::out_of_range);
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[0], "cannot get value");
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+                {
+                    auto it = j_null.crbegin();
+                    CHECK_THROWS_AS(it[0], std::out_of_range);
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[0], "cannot get value");
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+            }
+
+            SECTION("value")
+            {
+                {
+                    auto it = j_value.rbegin();
+                    CHECK(it[0] == json(42));
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+                {
+                    auto it = j_value.crbegin();
+                    CHECK(it[0] == json(42));
+                    CHECK_THROWS_AS(it[1], std::out_of_range);
+                    CHECK_THROWS_WITH(it[1], "cannot get value");
+                }
+            }
+        }
+    }
+}
+
+TEST_CASE("capacity")
+{
+    SECTION("empty()")
+    {
+        SECTION("boolean")
+        {
+            json j = true;
+            json j_const(j);
+
+            SECTION("result of empty")
+            {
+                CHECK(j.empty() == false);
+                CHECK(j_const.empty() == false);
+            }
+
+            SECTION("definition of empty")
+            {
+                CHECK(j.begin() != j.end());
+                CHECK(j_const.begin() != j_const.end());
+            }
+        }
+
+        SECTION("string")
+        {
+            json j = "hello world";
+            json j_const(j);
+
+            SECTION("result of empty")
+            {
+                CHECK(j.empty() == false);
+                CHECK(j_const.empty() == false);
+            }
+
+            SECTION("definition of empty")
+            {
+                CHECK(j.begin() != j.end());
+                CHECK(j_const.begin() != j_const.end());
+            }
+        }
+
+        SECTION("array")
+        {
+            SECTION("empty array")
+            {
+                json j = json::array();
+                json j_const(j);
+
+                SECTION("result of empty")
+                {
+                    CHECK(j.empty() == true);
+                    CHECK(j_const.empty() == true);
+                }
+
+                SECTION("definition of empty")
+                {
+                    CHECK(j.begin() == j.end());
+                    CHECK(j_const.begin() == j_const.end());
+                }
+            }
+
+            SECTION("filled array")
+            {
+                json j = {1, 2, 3};
+                json j_const(j);
+
+                SECTION("result of empty")
+                {
+                    CHECK(j.empty() == false);
+                    CHECK(j_const.empty() == false);
+                }
+
+                SECTION("definition of empty")
+                {
+                    CHECK(j.begin() != j.end());
+                    CHECK(j_const.begin() != j_const.end());
+                }
+            }
+        }
+
+        SECTION("object")
+        {
+            SECTION("empty object")
+            {
+                json j = json::object();
+                json j_const(j);
+
+                SECTION("result of empty")
+                {
+                    CHECK(j.empty() == true);
+                    CHECK(j_const.empty() == true);
+                }
+
+                SECTION("definition of empty")
+                {
+                    CHECK(j.begin() == j.end());
+                    CHECK(j_const.begin() == j_const.end());
+                }
+            }
+
+            SECTION("filled object")
+            {
+                json j = {{"one", 1}, {"two", 2}, {"three", 3}};
+                json j_const(j);
+
+                SECTION("result of empty")
+                {
+                    CHECK(j.empty() == false);
+                    CHECK(j_const.empty() == false);
+                }
+
+                SECTION("definition of empty")
+                {
+                    CHECK(j.begin() != j.end());
+                    CHECK(j_const.begin() != j_const.end());
+                }
+            }
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+            json j_const(j);
+
+            SECTION("result of empty")
+            {
+                CHECK(j.empty() == false);
+                CHECK(j_const.empty() == false);
+            }
+
+            SECTION("definition of empty")
+            {
+                CHECK(j.begin() != j.end());
+                CHECK(j_const.begin() != j_const.end());
+            }
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+            json j_const(j);
+
+            SECTION("result of empty")
+            {
+                CHECK(j.empty() == false);
+                CHECK(j_const.empty() == false);
+            }
+
+            SECTION("definition of empty")
+            {
+                CHECK(j.begin() != j.end());
+                CHECK(j_const.begin() != j_const.end());
+            }
+        }
+
+        SECTION("number (float)")
+        {
+            json j = 23.42;
+            json j_const(j);
+
+            SECTION("result of empty")
+            {
+                CHECK(j.empty() == false);
+                CHECK(j_const.empty() == false);
+            }
+
+            SECTION("definition of empty")
+            {
+                CHECK(j.begin() != j.end());
+                CHECK(j_const.begin() != j_const.end());
+            }
+        }
+
+        SECTION("null")
+        {
+            json j = nullptr;
+            json j_const(j);
+
+            SECTION("result of empty")
+            {
+                CHECK(j.empty() == true);
+                CHECK(j_const.empty() == true);
+            }
+
+            SECTION("definition of empty")
+            {
+                CHECK(j.begin() == j.end());
+                CHECK(j_const.begin() == j_const.end());
+            }
+        }
+    }
+
+    SECTION("size()")
+    {
+        SECTION("boolean")
+        {
+            json j = true;
+            json j_const(j);
+
+            SECTION("result of size")
+            {
+                CHECK(j.size() == 1);
+                CHECK(j_const.size() == 1);
+            }
+
+            SECTION("definition of size")
+            {
+                CHECK(std::distance(j.begin(), j.end()) == j.size());
+                CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+            }
+        }
+
+        SECTION("string")
+        {
+            json j = "hello world";
+            json j_const(j);
+
+            SECTION("result of size")
+            {
+                CHECK(j.size() == 1);
+                CHECK(j_const.size() == 1);
+            }
+
+            SECTION("definition of size")
+            {
+                CHECK(std::distance(j.begin(), j.end()) == j.size());
+                CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+            }
+        }
+
+        SECTION("array")
+        {
+            SECTION("empty array")
+            {
+                json j = json::array();
+                json j_const(j);
+
+                SECTION("result of size")
+                {
+                    CHECK(j.size() == 0);
+                    CHECK(j_const.size() == 0);
+                }
+
+                SECTION("definition of size")
+                {
+                    CHECK(std::distance(j.begin(), j.end()) == j.size());
+                    CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                    CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                    CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+                }
+            }
+
+            SECTION("filled array")
+            {
+                json j = {1, 2, 3};
+                json j_const(j);
+
+                SECTION("result of size")
+                {
+                    CHECK(j.size() == 3);
+                    CHECK(j_const.size() == 3);
+                }
+
+                SECTION("definition of size")
+                {
+                    CHECK(std::distance(j.begin(), j.end()) == j.size());
+                    CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                    CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                    CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+                }
+            }
+        }
+
+        SECTION("object")
+        {
+            SECTION("empty object")
+            {
+                json j = json::object();
+                json j_const(j);
+
+                SECTION("result of size")
+                {
+                    CHECK(j.size() == 0);
+                    CHECK(j_const.size() == 0);
+                }
+
+                SECTION("definition of size")
+                {
+                    CHECK(std::distance(j.begin(), j.end()) == j.size());
+                    CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                    CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                    CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+                }
+            }
+
+            SECTION("filled object")
+            {
+                json j = {{"one", 1}, {"two", 2}, {"three", 3}};
+                json j_const(j);
+
+                SECTION("result of size")
+                {
+                    CHECK(j.size() == 3);
+                    CHECK(j_const.size() == 3);
+                }
+
+                SECTION("definition of size")
+                {
+                    CHECK(std::distance(j.begin(), j.end()) == j.size());
+                    CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                    CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                    CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+                }
+            }
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+            json j_const(j);
+
+            SECTION("result of size")
+            {
+                CHECK(j.size() == 1);
+                CHECK(j_const.size() == 1);
+            }
+
+            SECTION("definition of size")
+            {
+                CHECK(std::distance(j.begin(), j.end()) == j.size());
+                CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+            }
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+            json j_const(j);
+
+            SECTION("result of size")
+            {
+                CHECK(j.size() == 1);
+                CHECK(j_const.size() == 1);
+            }
+
+            SECTION("definition of size")
+            {
+                CHECK(std::distance(j.begin(), j.end()) == j.size());
+                CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+            }
+        }
+
+        SECTION("number (float)")
+        {
+            json j = 23.42;
+            json j_const(j);
+
+            SECTION("result of size")
+            {
+                CHECK(j.size() == 1);
+                CHECK(j_const.size() == 1);
+            }
+
+            SECTION("definition of size")
+            {
+                CHECK(std::distance(j.begin(), j.end()) == j.size());
+                CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+            }
+        }
+
+        SECTION("null")
+        {
+            json j = nullptr;
+            json j_const(j);
+
+            SECTION("result of size")
+            {
+                CHECK(j.size() == 0);
+                CHECK(j_const.size() == 0);
+            }
+
+            SECTION("definition of size")
+            {
+                CHECK(std::distance(j.begin(), j.end()) == j.size());
+                CHECK(std::distance(j_const.begin(), j_const.end()) == j_const.size());
+                CHECK(std::distance(j.rbegin(), j.rend()) == j.size());
+                CHECK(std::distance(j_const.crbegin(), j_const.crend()) == j_const.size());
+            }
+        }
+    }
+
+    SECTION("max_size()")
+    {
+        SECTION("boolean")
+        {
+            json j = true;
+            json j_const(j);
+
+            SECTION("result of max_size")
+            {
+                CHECK(j.max_size() == 1);
+                CHECK(j_const.max_size() == 1);
+            }
+        }
+
+        SECTION("string")
+        {
+            json j = "hello world";
+            json j_const(j);
+
+            SECTION("result of max_size")
+            {
+                CHECK(j.max_size() == 1);
+                CHECK(j_const.max_size() == 1);
+            }
+        }
+
+        SECTION("array")
+        {
+            SECTION("empty array")
+            {
+                json j = json::array();
+                json j_const(j);
+
+                SECTION("result of max_size")
+                {
+                    CHECK(j.max_size() >= j.size());
+                    CHECK(j_const.max_size() >= j_const.size());
+                }
+            }
+
+            SECTION("filled array")
+            {
+                json j = {1, 2, 3};
+                json j_const(j);
+
+                SECTION("result of max_size")
+                {
+                    CHECK(j.max_size() >= j.size());
+                    CHECK(j_const.max_size() >= j_const.size());
+                }
+            }
+        }
+
+        SECTION("object")
+        {
+            SECTION("empty object")
+            {
+                json j = json::object();
+                json j_const(j);
+
+                SECTION("result of max_size")
+                {
+                    CHECK(j.max_size() >= j.size());
+                    CHECK(j_const.max_size() >= j_const.size());
+                }
+            }
+
+            SECTION("filled object")
+            {
+                json j = {{"one", 1}, {"two", 2}, {"three", 3}};
+                json j_const(j);
+
+                SECTION("result of max_size")
+                {
+                    CHECK(j.max_size() >= j.size());
+                    CHECK(j_const.max_size() >= j_const.size());
+                }
+            }
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+            json j_const(j);
+
+            SECTION("result of max_size")
+            {
+                CHECK(j.max_size() == 1);
+                CHECK(j_const.max_size() == 1);
+            }
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+            json j_const(j);
+
+            SECTION("result of max_size")
+            {
+                CHECK(j.max_size() == 1);
+                CHECK(j_const.max_size() == 1);
+            }
+        }
+
+        SECTION("number (float)")
+        {
+            json j = 23.42;
+            json j_const(j);
+
+            SECTION("result of max_size")
+            {
+                CHECK(j.max_size() == 1);
+                CHECK(j_const.max_size() == 1);
+            }
+        }
+
+        SECTION("null")
+        {
+            json j = nullptr;
+            json j_const(j);
+
+            SECTION("result of max_size")
+            {
+                CHECK(j.max_size() == 0);
+                CHECK(j_const.max_size() == 0);
+            }
+        }
+    }
+}
+
+TEST_CASE("modifiers")
+{
+    SECTION("clear()")
+    {
+        SECTION("boolean")
+        {
+            json j = true;
+
+            j.clear();
+            CHECK(j == json(json::value_t::boolean));
+        }
+
+        SECTION("string")
+        {
+            json j = "hello world";
+
+            j.clear();
+            CHECK(j == json(json::value_t::string));
+        }
+
+        SECTION("array")
+        {
+            SECTION("empty array")
+            {
+                json j = json::array();
+
+                j.clear();
+                CHECK(j.empty());
+                CHECK(j == json(json::value_t::array));
+            }
+
+            SECTION("filled array")
+            {
+                json j = {1, 2, 3};
+
+                j.clear();
+                CHECK(j.empty());
+                CHECK(j == json(json::value_t::array));
+            }
+        }
+
+        SECTION("object")
+        {
+            SECTION("empty object")
+            {
+                json j = json::object();
+
+                j.clear();
+                CHECK(j.empty());
+                CHECK(j == json(json::value_t::object));
+            }
+
+            SECTION("filled object")
+            {
+                json j = {{"one", 1}, {"two", 2}, {"three", 3}};
+
+                j.clear();
+                CHECK(j.empty());
+                CHECK(j == json(json::value_t::object));
+            }
+        }
+
+        SECTION("number (integer)")
+        {
+            json j = 23;
+
+            j.clear();
+            CHECK(j == json(json::value_t::number_integer));
+        }
+
+        SECTION("number (unsigned)")
+        {
+            json j = 23u;
+
+            j.clear();
+            CHECK(j == json(json::value_t::number_integer));
+        }
+
+        SECTION("number (float)")
+        {
+            json j = 23.42;
+
+            j.clear();
+            CHECK(j == json(json::value_t::number_float));
+        }
+
+        SECTION("null")
+        {
+            json j = nullptr;
+
+            j.clear();
+            CHECK(j == json(json::value_t::null));
+        }
+    }
+
+    SECTION("push_back()")
+    {
+        SECTION("to array")
+        {
+            SECTION("json&&")
+            {
+                SECTION("null")
+                {
+                    json j;
+                    j.push_back(1);
+                    j.push_back(2);
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 2}));
+                }
+
+                SECTION("array")
+                {
+                    json j = {1, 2, 3};
+                    j.push_back("Hello");
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 2, 3, "Hello"}));
+                }
+
+                SECTION("other type")
+                {
+                    json j = 1;
+                    CHECK_THROWS_AS(j.push_back("Hello"), std::domain_error);
+                    CHECK_THROWS_WITH(j.push_back("Hello"), "cannot use push_back() with number");
+                }
+            }
+
+            SECTION("const json&")
+            {
+                SECTION("null")
+                {
+                    json j;
+                    json k(1);
+                    j.push_back(k);
+                    j.push_back(k);
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 1}));
+                }
+
+                SECTION("array")
+                {
+                    json j = {1, 2, 3};
+                    json k("Hello");
+                    j.push_back(k);
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 2, 3, "Hello"}));
+                }
+
+                SECTION("other type")
+                {
+                    json j = 1;
+                    json k("Hello");
+                    CHECK_THROWS_AS(j.push_back(k), std::domain_error);
+                    CHECK_THROWS_WITH(j.push_back(k), "cannot use push_back() with number");
+                }
+            }
+        }
+
+        SECTION("to object")
+        {
+            SECTION("null")
+            {
+                json j;
+                j.push_back(json::object_t::value_type({"one", 1}));
+                j.push_back(json::object_t::value_type({"two", 2}));
+                CHECK(j.type() == json::value_t::object);
+                CHECK(j.size() == 2);
+                CHECK(j["one"] == json(1));
+                CHECK(j["two"] == json(2));
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                j.push_back(json::object_t::value_type({"one", 1}));
+                j.push_back(json::object_t::value_type({"two", 2}));
+                CHECK(j.size() == 2);
+                CHECK(j["one"] == json(1));
+                CHECK(j["two"] == json(2));
+            }
+
+            SECTION("other type")
+            {
+                json j = 1;
+                json k("Hello");
+                CHECK_THROWS_AS(j.push_back(json::object_t::value_type({"one", 1})), std::domain_error);
+                CHECK_THROWS_WITH(j.push_back(json::object_t::value_type({"one", 1})),
+                                  "cannot use push_back() with number");
+            }
+        }
+
+        SECTION("with initializer_list")
+        {
+            SECTION("null")
+            {
+                json j;
+                j.push_back({"foo", "bar"});
+                CHECK(j == json::array({{"foo", "bar"}}));
+
+                json k;
+                k.push_back({1, 2, 3});
+                CHECK(k == json::array({{1, 2, 3}}));
+            }
+
+            SECTION("array")
+            {
+                json j = {1, 2, 3};
+                j.push_back({"foo", "bar"});
+                CHECK(j == json({1, 2, 3, {"foo", "bar"}}));
+
+                json k = {1, 2, 3};
+                k.push_back({1, 2, 3});
+                CHECK(k == json({1, 2, 3, {1, 2, 3}}));
+            }
+
+            SECTION("object")
+            {
+                json j = {{"key1", 1}};
+                j.push_back({"key2", "bar"});
+                CHECK(j == json({{"key1", 1}, {"key2", "bar"}}));
+
+                json k = {{"key1", 1}};
+                CHECK_THROWS_AS(k.push_back({1, 2, 3, 4}), std::domain_error);
+                CHECK_THROWS_WITH(k.push_back({1, 2, 3, 4}), "cannot use push_back() with object");
+            }
+        }
+    }
+
+    SECTION("operator+=")
+    {
+        SECTION("to array")
+        {
+            SECTION("json&&")
+            {
+                SECTION("null")
+                {
+                    json j;
+                    j += 1;
+                    j += 2;
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 2}));
+                }
+
+                SECTION("array")
+                {
+                    json j = {1, 2, 3};
+                    j += "Hello";
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 2, 3, "Hello"}));
+                }
+
+                SECTION("other type")
+                {
+                    json j = 1;
+                    CHECK_THROWS_AS(j += "Hello", std::domain_error);
+                    CHECK_THROWS_WITH(j += "Hello", "cannot use push_back() with number");
+                }
+            }
+
+            SECTION("const json&")
+            {
+                SECTION("null")
+                {
+                    json j;
+                    json k(1);
+                    j += k;
+                    j += k;
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 1}));
+                }
+
+                SECTION("array")
+                {
+                    json j = {1, 2, 3};
+                    json k("Hello");
+                    j += k;
+                    CHECK(j.type() == json::value_t::array);
+                    CHECK(j == json({1, 2, 3, "Hello"}));
+                }
+
+                SECTION("other type")
+                {
+                    json j = 1;
+                    json k("Hello");
+                    CHECK_THROWS_AS(j += k, std::domain_error);
+                    CHECK_THROWS_WITH(j += k, "cannot use push_back() with number");
+                }
+            }
+        }
+
+        SECTION("to object")
+        {
+            SECTION("null")
+            {
+                json j;
+                j += json::object_t::value_type({"one", 1});
+                j += json::object_t::value_type({"two", 2});
+                CHECK(j.type() == json::value_t::object);
+                CHECK(j.size() == 2);
+                CHECK(j["one"] == json(1));
+                CHECK(j["two"] == json(2));
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                j += json::object_t::value_type({"one", 1});
+                j += json::object_t::value_type({"two", 2});
+                CHECK(j.size() == 2);
+                CHECK(j["one"] == json(1));
+                CHECK(j["two"] == json(2));
+            }
+
+            SECTION("other type")
+            {
+                json j = 1;
+                json k("Hello");
+                CHECK_THROWS_AS(j += json::object_t::value_type({"one", 1}), std::domain_error);
+                CHECK_THROWS_WITH(j += json::object_t::value_type({"one", 1}),
+                                  "cannot use push_back() with number");
+            }
+        }
+
+        SECTION("with initializer_list")
+        {
+            SECTION("null")
+            {
+                json j;
+                j += {"foo", "bar"};
+                CHECK(j == json::array({{"foo", "bar"}}));
+
+                json k;
+                k += {1, 2, 3};
+                CHECK(k == json::array({{1, 2, 3}}));
+            }
+
+            SECTION("array")
+            {
+                json j = {1, 2, 3};
+                j += {"foo", "bar"};
+                CHECK(j == json({1, 2, 3, {"foo", "bar"}}));
+
+                json k = {1, 2, 3};
+                k += {1, 2, 3};
+                CHECK(k == json({1, 2, 3, {1, 2, 3}}));
+            }
+
+            SECTION("object")
+            {
+                json j = {{"key1", 1}};
+                j += {"key2", "bar"};
+                CHECK(j == json({{"key1", 1}, {"key2", "bar"}}));
+
+                json k = {{"key1", 1}};
+                CHECK_THROWS_AS((k += {1, 2, 3, 4}), std::domain_error);
+                CHECK_THROWS_WITH((k += {1, 2, 3, 4}), "cannot use push_back() with object");
+            }
+        }
+    }
+
+    SECTION("insert")
+    {
+        json j_array = {1, 2, 3, 4};
+        json j_value = 5;
+
+        SECTION("value at position")
+        {
+            SECTION("insert before begin()")
+            {
+                auto it = j_array.insert(j_array.begin(), j_value);
+                CHECK(j_array.size() == 5);
+                CHECK(*it == j_value);
+                CHECK(j_array.begin() == it);
+                CHECK(j_array == json({5, 1, 2, 3, 4}));
+            }
+
+            SECTION("insert in the middle")
+            {
+                auto it = j_array.insert(j_array.begin() + 2, j_value);
+                CHECK(j_array.size() == 5);
+                CHECK(*it == j_value);
+                CHECK((it - j_array.begin()) == 2);
+                CHECK(j_array == json({1, 2, 5, 3, 4}));
+            }
+
+            SECTION("insert before end()")
+            {
+                auto it = j_array.insert(j_array.end(), j_value);
+                CHECK(j_array.size() == 5);
+                CHECK(*it == j_value);
+                CHECK((j_array.end() - it) == 1);
+                CHECK(j_array == json({1, 2, 3, 4, 5}));
+            }
+        }
+
+        SECTION("rvalue at position")
+        {
+            SECTION("insert before begin()")
+            {
+                auto it = j_array.insert(j_array.begin(), 5);
+                CHECK(j_array.size() == 5);
+                CHECK(*it == j_value);
+                CHECK(j_array.begin() == it);
+                CHECK(j_array == json({5, 1, 2, 3, 4}));
+            }
+
+            SECTION("insert in the middle")
+            {
+                auto it = j_array.insert(j_array.begin() + 2, 5);
+                CHECK(j_array.size() == 5);
+                CHECK(*it == j_value);
+                CHECK((it - j_array.begin()) == 2);
+                CHECK(j_array == json({1, 2, 5, 3, 4}));
+            }
+
+            SECTION("insert before end()")
+            {
+                auto it = j_array.insert(j_array.end(), 5);
+                CHECK(j_array.size() == 5);
+                CHECK(*it == j_value);
+                CHECK((j_array.end() - it) == 1);
+                CHECK(j_array == json({1, 2, 3, 4, 5}));
+            }
+        }
+
+        SECTION("copies at position")
+        {
+            SECTION("insert before begin()")
+            {
+                auto it = j_array.insert(j_array.begin(), 3, 5);
+                CHECK(j_array.size() == 7);
+                CHECK(*it == j_value);
+                CHECK(j_array.begin() == it);
+                CHECK(j_array == json({5, 5, 5, 1, 2, 3, 4}));
+            }
+
+            SECTION("insert in the middle")
+            {
+                auto it = j_array.insert(j_array.begin() + 2, 3, 5);
+                CHECK(j_array.size() == 7);
+                CHECK(*it == j_value);
+                CHECK((it - j_array.begin()) == 2);
+                CHECK(j_array == json({1, 2, 5, 5, 5, 3, 4}));
+            }
+
+            SECTION("insert before end()")
+            {
+                auto it = j_array.insert(j_array.end(), 3, 5);
+                CHECK(j_array.size() == 7);
+                CHECK(*it == j_value);
+                CHECK((j_array.end() - it) == 3);
+                CHECK(j_array == json({1, 2, 3, 4, 5, 5, 5}));
+            }
+
+            SECTION("insert nothing (count = 0)")
+            {
+                auto pos = j_array.end();
+                auto it = j_array.insert(j_array.end(), 0, 5);
+                CHECK(j_array.size() == 4);
+                CHECK(it == pos);
+                CHECK(j_array == json({1, 2, 3, 4}));
+            }
+        }
+
+        SECTION("range")
+        {
+            json j_other_array = {"first", "second"};
+
+            SECTION("proper usage")
+            {
+                auto it = j_array.insert(j_array.end(), j_other_array.begin(), j_other_array.end());
+                CHECK(j_array.size() == 6);
+                CHECK(*it == *j_other_array.begin());
+                CHECK((j_array.end() - it) == 2);
+                CHECK(j_array == json({1, 2, 3, 4, "first", "second"}));
+            }
+
+            SECTION("empty range")
+            {
+                auto it = j_array.insert(j_array.end(), j_other_array.begin(), j_other_array.begin());
+                CHECK(j_array.size() == 4);
+                CHECK(it == j_array.end());
+                CHECK(j_array == json({1, 2, 3, 4}));
+            }
+
+            SECTION("invalid iterators")
+            {
+                json j_other_array2 = {"first", "second"};
+
+                CHECK_THROWS_AS(j_array.insert(j_array.end(), j_array.begin(), j_array.end()), std::domain_error);
+                CHECK_THROWS_AS(j_array.insert(j_array.end(), j_other_array.begin(), j_other_array2.end()),
+                                std::domain_error);
+
+                CHECK_THROWS_WITH(j_array.insert(j_array.end(), j_array.begin(), j_array.end()),
+                                  "passed iterators may not belong to container");
+                CHECK_THROWS_WITH(j_array.insert(j_array.end(), j_other_array.begin(), j_other_array2.end()),
+                                  "iterators do not fit");
+            }
+        }
+
+        SECTION("initializer list at position")
+        {
+            SECTION("insert before begin()")
+            {
+                auto it = j_array.insert(j_array.begin(), {7, 8, 9});
+                CHECK(j_array.size() == 7);
+                CHECK(*it == json(7));
+                CHECK(j_array.begin() == it);
+                CHECK(j_array == json({7, 8, 9, 1, 2, 3, 4}));
+            }
+
+            SECTION("insert in the middle")
+            {
+                auto it = j_array.insert(j_array.begin() + 2, {7, 8, 9});
+                CHECK(j_array.size() == 7);
+                CHECK(*it == json(7));
+                CHECK((it - j_array.begin()) == 2);
+                CHECK(j_array == json({1, 2, 7, 8, 9, 3, 4}));
+            }
+
+            SECTION("insert before end()")
+            {
+                auto it = j_array.insert(j_array.end(), {7, 8, 9});
+                CHECK(j_array.size() == 7);
+                CHECK(*it == json(7));
+                CHECK((j_array.end() - it) == 3);
+                CHECK(j_array == json({1, 2, 3, 4, 7, 8, 9}));
+            }
+        }
+
+        SECTION("invalid iterator")
+        {
+            // pass iterator to a different array
+            json j_another_array = {1, 2};
+            json j_yet_another_array = {"first", "second"};
+            CHECK_THROWS_AS(j_array.insert(j_another_array.end(), 10), std::domain_error);
+            CHECK_THROWS_AS(j_array.insert(j_another_array.end(), j_value), std::domain_error);
+            CHECK_THROWS_AS(j_array.insert(j_another_array.end(), 10, 11), std::domain_error);
+            CHECK_THROWS_AS(j_array.insert(j_another_array.end(), j_yet_another_array.begin(),
+                                           j_yet_another_array.end()), std::domain_error);
+            CHECK_THROWS_AS(j_array.insert(j_another_array.end(), {1, 2, 3, 4}), std::domain_error);
+
+            CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), 10), "iterator does not fit current value");
+            CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), j_value),
+                              "iterator does not fit current value");
+            CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), 10, 11),
+                              "iterator does not fit current value");
+            CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), j_yet_another_array.begin(),
+                                             j_yet_another_array.end()), "iterator does not fit current value");
+            CHECK_THROWS_WITH(j_array.insert(j_another_array.end(), {1, 2, 3, 4}),
+                              "iterator does not fit current value");
+        }
+
+        SECTION("non-array type")
+        {
+            // call insert on a non-array type
+            json j_nonarray = 3;
+            json j_yet_another_array = {"first", "second"};
+            CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), 10), std::domain_error);
+            CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), j_value), std::domain_error);
+            CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), 10, 11), std::domain_error);
+            CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), j_yet_another_array.begin(),
+                                              j_yet_another_array.end()), std::domain_error);
+            CHECK_THROWS_AS(j_nonarray.insert(j_nonarray.end(), {1, 2, 3, 4}), std::domain_error);
+
+            CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), 10), "cannot use insert() with number");
+            CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), j_value), "cannot use insert() with number");
+            CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), 10, 11), "cannot use insert() with number");
+            CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), j_yet_another_array.begin(),
+                                                j_yet_another_array.end()), "cannot use insert() with number");
+            CHECK_THROWS_WITH(j_nonarray.insert(j_nonarray.end(), {1, 2, 3, 4}),
+                              "cannot use insert() with number");
+        }
+    }
+
+    SECTION("swap()")
+    {
+        SECTION("json")
+        {
+            SECTION("member swap")
+            {
+                json j("hello world");
+                json k(42.23);
+
+                j.swap(k);
+
+                CHECK(j == json(42.23));
+                CHECK(k == json("hello world"));
+            }
+
+            SECTION("nonmember swap")
+            {
+                json j("hello world");
+                json k(42.23);
+
+                std::swap(j, k);
+
+                CHECK(j == json(42.23));
+                CHECK(k == json("hello world"));
+            }
+        }
+
+        SECTION("array_t")
+        {
+            SECTION("array_t type")
+            {
+                json j = {1, 2, 3, 4};
+                json::array_t a = {"foo", "bar", "baz"};
+
+                j.swap(a);
+
+                CHECK(j == json({"foo", "bar", "baz"}));
+
+                j.swap(a);
+
+                CHECK(j == json({1, 2, 3, 4}));
+            }
+
+            SECTION("non-array_t type")
+            {
+                json j = 17;
+                json::array_t a = {"foo", "bar", "baz"};
+
+                CHECK_THROWS_AS(j.swap(a), std::domain_error);
+                CHECK_THROWS_WITH(j.swap(a), "cannot use swap() with number");
+            }
+        }
+
+        SECTION("object_t")
+        {
+            SECTION("object_t type")
+            {
+                json j = {{"one", 1}, {"two", 2}};
+                json::object_t o = {{"cow", "Kuh"}, {"chicken", "Huhn"}};
+
+                j.swap(o);
+
+                CHECK(j == json({{"cow", "Kuh"}, {"chicken", "Huhn"}}));
+
+                j.swap(o);
+
+                CHECK(j == json({{"one", 1}, {"two", 2}}));
+            }
+
+            SECTION("non-object_t type")
+            {
+                json j = 17;
+                json::object_t o = {{"cow", "Kuh"}, {"chicken", "Huhn"}};
+
+                CHECK_THROWS_AS(j.swap(o), std::domain_error);
+                CHECK_THROWS_WITH(j.swap(o), "cannot use swap() with number");
+            }
+        }
+
+        SECTION("string_t")
+        {
+            SECTION("string_t type")
+            {
+                json j = "Hello world";
+                json::string_t s = "Hallo Welt";
+
+                j.swap(s);
+
+                CHECK(j == json("Hallo Welt"));
+
+                j.swap(s);
+
+                CHECK(j == json("Hello world"));
+            }
+
+            SECTION("non-string_t type")
+            {
+                json j = 17;
+                json::string_t s = "Hallo Welt";
+
+                CHECK_THROWS_AS(j.swap(s), std::domain_error);
+                CHECK_THROWS_WITH(j.swap(s), "cannot use swap() with number");
+            }
+        }
+    }
+}
+
+TEST_CASE("lexicographical comparison operators")
+{
+    SECTION("types")
+    {
+        std::vector<json::value_t> j_types =
+        {
+            json::value_t::null,
+            json::value_t::boolean,
+            json::value_t::number_integer,
+            json::value_t::number_unsigned,
+            json::value_t::number_float,
+            json::value_t::object,
+            json::value_t::array,
+            json::value_t::string
+        };
+
+        SECTION("comparison: less")
+        {
+            std::vector<std::vector<bool>> expected =
+            {
+                {false, true, true, true, true, true, true, true},
+                {false, false, true, true, true, true, true, true},
+                {false, false, false, false, false, true, true, true},
+                {false, false, false, false, false, true, true, true},
+                {false, false, false, false, false, true, true, true},
+                {false, false, false, false, false, false, true, true},
+                {false, false, false, false, false, false, false, true},
+                {false, false, false, false, false, false, false, false}
+            };
+
+            for (size_t i = 0; i < j_types.size(); ++i)
+            {
+                for (size_t j = 0; j < j_types.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check precomputed values
+                    CHECK(operator<(j_types[i], j_types[j]) == expected[i][j]);
+                }
+            }
+        }
+    }
+
+    SECTION("values")
+    {
+        json j_values =
+        {
+            nullptr, nullptr,
+            17, 42,
+            8u, 13u,
+            3.14159, 23.42,
+            "foo", "bar",
+            true, false,
+            {1, 2, 3}, {"one", "two", "three"},
+            {{"first", 1}, {"second", 2}}, {{"a", "A"}, {"b", {"B"}}}
+        };
+
+        SECTION("comparison: equal")
+        {
+            std::vector<std::vector<bool>> expected =
+            {
+                {true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+                {true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+                {false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false},
+                {false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false},
+                {false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false},
+                {false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false},
+                {false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false},
+                {false, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false},
+                {false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false},
+                {false, false, false, false, false, false, false, false, false, true, false, false, false, false, false, false},
+                {false, false, false, false, false, false, false, false, false, false, true, false, false, false, false, false},
+                {false, false, false, false, false, false, false, false, false, false, false, true, false, false, false, false},
+                {false, false, false, false, false, false, false, false, false, false, false, false, true, false, false, false},
+                {false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, false},
+                {false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false},
+                {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true}
+            };
+
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                for (size_t j = 0; j < j_values.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check precomputed values
+                    CHECK( (j_values[i] == j_values[j]) == expected[i][j] );
+                }
+            }
+
+            // comparison with discarded elements
+            json j_discarded(json::value_t::discarded);
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                CHECK( (j_values[i] == j_discarded) == false);
+                CHECK( (j_discarded == j_values[i]) == false);
+                CHECK( (j_discarded == j_discarded) == false);
+            }
+
+            // compare with null pointer
+            json j_null;
+            CHECK(j_null == nullptr);
+            CHECK(nullptr == j_null);
+        }
+
+        SECTION("comparison: not equal")
+        {
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                for (size_t j = 0; j < j_values.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check definition
+                    CHECK( (j_values[i] != j_values[j]) == not(j_values[i] == j_values[j]) );
+                }
+            }
+
+            // compare with null pointer
+            json j_null;
+            CHECK( (j_null != nullptr) == false);
+            CHECK( (nullptr != j_null) == false);
+            CHECK( (j_null != nullptr) == not(j_null == nullptr));
+            CHECK( (nullptr != j_null) == not(nullptr == j_null));
+        }
+
+        SECTION("comparison: less")
+        {
+            std::vector<std::vector<bool>> expected =
+            {
+                {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true},
+                {false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true},
+                {false, false, false, true, false, false, false, true, true, true, false, false, true, true, true, true},
+                {false, false, false, false, false, false, false, false, true, true, false, false, true, true, true, true},
+                {false, false, true, true, false, true, false, true, true, true, false, false, true, true, true, true},
+                {false, false, true, true, false, false, false, true, true, true, false, false, true, true, true, true},
+                {false, false, true, true, true, true, false, true, true, true, false, false, true, true, true, true},
+                {false, false, false, true, false, false, false, false, true, true, false, false, true, true, true, true},
+                {false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false},
+                {false, false, false, false, false, false, false, false, true, false, false, false, false, false, false, false},
+                {false, false, true, true, true, true, true, true, true, true, false, false, true, true, true, true},
+                {false, false, true, true, true, true, true, true, true, true, true, false, true, true, true, true},
+                {false, false, false, false, false, false, false, false, true, true, false, false, false, true, false, false},
+                {false, false, false, false, false, false, false, false, true, true, false, false, false, false, false, false},
+                {false, false, false, false, false, false, false, false, true, true, false, false, true, true, false, false},
+                {false, false, false, false, false, false, false, false, true, true, false, false, true, true, true, false}
+            };
+
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                for (size_t j = 0; j < j_values.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check precomputed values
+                    CHECK( (j_values[i] < j_values[j]) == expected[i][j] );
+                }
+            }
+
+            // comparison with discarded elements
+            json j_discarded(json::value_t::discarded);
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                CAPTURE(i);
+                CHECK( (j_values[i] < j_discarded) == false);
+                CHECK( (j_discarded < j_values[i]) == false);
+                CHECK( (j_discarded < j_discarded) == false);
+            }
+        }
+
+        SECTION("comparison: less than or equal equal")
+        {
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                for (size_t j = 0; j < j_values.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check definition
+                    CHECK( (j_values[i] <= j_values[j]) == not(j_values[j] < j_values[i]) );
+                }
+            }
+        }
+
+        SECTION("comparison: greater than")
+        {
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                for (size_t j = 0; j < j_values.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check definition
+                    CHECK( (j_values[i] > j_values[j]) == (j_values[j] < j_values[i]) );
+                }
+            }
+        }
+
+        SECTION("comparison: greater than or equal")
+        {
+            for (size_t i = 0; i < j_values.size(); ++i)
+            {
+                for (size_t j = 0; j < j_values.size(); ++j)
+                {
+                    CAPTURE(i);
+                    CAPTURE(j);
+                    // check definition
+                    CHECK( (j_values[i] >= j_values[j]) == not(j_values[i] < j_values[j]) );
+                }
+            }
+        }
+    }
+}
+
+TEST_CASE("serialization")
+{
+    SECTION("operator<<")
+    {
+        SECTION("no given width")
+        {
+            std::stringstream ss;
+            json j = {"foo", 1, 2, 3, false, {{"one", 1}}};
+            ss << j;
+            CHECK(ss.str() == "[\"foo\",1,2,3,false,{\"one\":1}]");
+        }
+
+        SECTION("given width")
+        {
+            std::stringstream ss;
+            json j = {"foo", 1, 2, 3, false, {{"one", 1}}};
+            ss << std::setw(4) << j;
+            CHECK(ss.str() ==
+                  "[\n    \"foo\",\n    1,\n    2,\n    3,\n    false,\n    {\n        \"one\": 1\n    }\n]");
+        }
+    }
+
+    SECTION("operator>>")
+    {
+        SECTION("no given width")
+        {
+            std::stringstream ss;
+            json j = {"foo", 1, 2, 3, false, {{"one", 1}}};
+            j >> ss;
+            CHECK(ss.str() == "[\"foo\",1,2,3,false,{\"one\":1}]");
+        }
+
+        SECTION("given width")
+        {
+            std::stringstream ss;
+            json j = {"foo", 1, 2, 3, false, {{"one", 1}}};
+            ss.width(4);
+            j >> ss;
+            CHECK(ss.str() ==
+                  "[\n    \"foo\",\n    1,\n    2,\n    3,\n    false,\n    {\n        \"one\": 1\n    }\n]");
+        }
+    }
+}
+
+TEST_CASE("deserialization")
+{
+    SECTION("stream")
+    {
+        std::stringstream ss;
+        ss << "[\"foo\",1,2,3,false,{\"one\":1}]";
+        json j = json::parse(ss);
+        CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
+    }
+
+    SECTION("string")
+    {
+        auto s = "[\"foo\",1,2,3,false,{\"one\":1}]";
+        json j = json::parse(s);
+        CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
+    }
+
+    SECTION("operator<<")
+    {
+        std::stringstream ss;
+        ss << "[\"foo\",1,2,3,false,{\"one\":1}]";
+        json j;
+        j << ss;
+        CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
+    }
+
+    SECTION("operator>>")
+    {
+        std::stringstream ss;
+        ss << "[\"foo\",1,2,3,false,{\"one\":1}]";
+        json j;
+        ss >> j;
+        CHECK(j == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
+    }
+
+    SECTION("user-defined string literal")
+    {
+        CHECK("[\"foo\",1,2,3,false,{\"one\":1}]"_json == json({"foo", 1, 2, 3, false, {{"one", 1}}}));
+    }
+}
+
+TEST_CASE("iterator class")
+{
+    SECTION("construction")
+    {
+        SECTION("constructor")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it(&j);
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                json::iterator it(&j);
+            }
+
+            SECTION("array")
+            {
+                json j(json::value_t::array);
+                json::iterator it(&j);
+            }
+        }
+
+        SECTION("copy assignment")
+        {
+            json j(json::value_t::null);
+            json::iterator it(&j);
+            json::iterator it2(&j);
+            it2 = it;
+        }
+    }
+
+    SECTION("initialization")
+    {
+        SECTION("set_begin")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it(&j);
+                it.set_begin();
+                CHECK(it == j.begin());
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                json::iterator it(&j);
+                it.set_begin();
+                CHECK(it == j.begin());
+            }
+
+            SECTION("array")
+            {
+                json j(json::value_t::array);
+                json::iterator it(&j);
+                it.set_begin();
+                CHECK(it == j.begin());
+            }
+        }
+
+        SECTION("set_end")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it(&j);
+                it.set_end();
+                CHECK(it == j.end());
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                json::iterator it(&j);
+                it.set_end();
+                CHECK(it == j.end());
+            }
+
+            SECTION("array")
+            {
+                json j(json::value_t::array);
+                json::iterator it(&j);
+                it.set_end();
+                CHECK(it == j.end());
+            }
+        }
+    }
+
+    SECTION("element access")
+    {
+        SECTION("operator*")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it = j.begin();
+                CHECK_THROWS_AS(*it, std::out_of_range);
+                CHECK_THROWS_WITH(*it, "cannot get value");
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::iterator it = j.begin();
+                CHECK(*it == json(17));
+                it = j.end();
+                CHECK_THROWS_AS(*it, std::out_of_range);
+                CHECK_THROWS_WITH(*it, "cannot get value");
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::iterator it = j.begin();
+                CHECK(*it == json("bar"));
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::iterator it = j.begin();
+                CHECK(*it == json(1));
+            }
+        }
+
+        SECTION("operator->")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it = j.begin();
+                CHECK_THROWS_AS(it->type_name(), std::out_of_range);
+                CHECK_THROWS_WITH(it->type_name(), "cannot get value");
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::iterator it = j.begin();
+                CHECK(it->type_name() == "number");
+                it = j.end();
+                CHECK_THROWS_AS(it->type_name(), std::out_of_range);
+                CHECK_THROWS_WITH(it->type_name(), "cannot get value");
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::iterator it = j.begin();
+                CHECK(it->type_name() == "string");
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::iterator it = j.begin();
+                CHECK(it->type_name() == "number");
+            }
+        }
+    }
+
+    SECTION("increment/decrement")
+    {
+        SECTION("post-increment")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it = j.begin();
+                CHECK(it.m_it.primitive_iterator == 1);
+                it++;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::iterator it = j.begin();
+                CHECK(it.m_it.primitive_iterator == 0);
+                it++;
+                CHECK(it.m_it.primitive_iterator == 1);
+                it++;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::iterator it = j.begin();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                it++;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::iterator it = j.begin();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+            }
+        }
+
+        SECTION("pre-increment")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it = j.begin();
+                CHECK(it.m_it.primitive_iterator == 1);
+                ++it;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::iterator it = j.begin();
+                CHECK(it.m_it.primitive_iterator == 0);
+                ++it;
+                CHECK(it.m_it.primitive_iterator == 1);
+                ++it;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::iterator it = j.begin();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                ++it;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::iterator it = j.begin();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+            }
+        }
+
+        SECTION("post-decrement")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it = j.end();
+                CHECK(it.m_it.primitive_iterator == 1);
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::iterator it = j.end();
+                CHECK(it.m_it.primitive_iterator == 1);
+                it--;
+                CHECK(it.m_it.primitive_iterator == 0);
+                it--;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::iterator it = j.end();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                it--;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::iterator it = j.end();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+            }
+        }
+
+        SECTION("pre-decrement")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::iterator it = j.end();
+                CHECK(it.m_it.primitive_iterator == 1);
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::iterator it = j.end();
+                CHECK(it.m_it.primitive_iterator == 1);
+                --it;
+                CHECK(it.m_it.primitive_iterator == 0);
+                --it;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::iterator it = j.end();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                --it;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::iterator it = j.end();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+            }
+        }
+    }
+}
+
+TEST_CASE("const_iterator class")
+{
+    SECTION("construction")
+    {
+        SECTION("constructor")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it(&j);
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                json::const_iterator it(&j);
+            }
+
+            SECTION("array")
+            {
+                json j(json::value_t::array);
+                json::const_iterator it(&j);
+            }
+        }
+
+        SECTION("copy assignment")
+        {
+            json j(json::value_t::null);
+            json::const_iterator it(&j);
+            json::const_iterator it2(&j);
+            it2 = it;
+        }
+    }
+
+    SECTION("initialization")
+    {
+        SECTION("set_begin")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it(&j);
+                it.set_begin();
+                CHECK(it == j.cbegin());
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                json::const_iterator it(&j);
+                it.set_begin();
+                CHECK(it == j.cbegin());
+            }
+
+            SECTION("array")
+            {
+                json j(json::value_t::array);
+                json::const_iterator it(&j);
+                it.set_begin();
+                CHECK(it == j.cbegin());
+            }
+        }
+
+        SECTION("set_end")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it(&j);
+                it.set_end();
+                CHECK(it == j.cend());
+            }
+
+            SECTION("object")
+            {
+                json j(json::value_t::object);
+                json::const_iterator it(&j);
+                it.set_end();
+                CHECK(it == j.cend());
+            }
+
+            SECTION("array")
+            {
+                json j(json::value_t::array);
+                json::const_iterator it(&j);
+                it.set_end();
+                CHECK(it == j.cend());
+            }
+        }
+    }
+
+    SECTION("element access")
+    {
+        SECTION("operator*")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it = j.cbegin();
+                CHECK_THROWS_AS(*it, std::out_of_range);
+                CHECK_THROWS_WITH(*it, "cannot get value");
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::const_iterator it = j.cbegin();
+                CHECK(*it == json(17));
+                it = j.cend();
+                CHECK_THROWS_AS(*it, std::out_of_range);
+                CHECK_THROWS_WITH(*it, "cannot get value");
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::const_iterator it = j.cbegin();
+                CHECK(*it == json("bar"));
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::const_iterator it = j.cbegin();
+                CHECK(*it == json(1));
+            }
+        }
+
+        SECTION("operator->")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it = j.cbegin();
+                CHECK_THROWS_AS(it->type_name(), std::out_of_range);
+                CHECK_THROWS_WITH(it->type_name(), "cannot get value");
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::const_iterator it = j.cbegin();
+                CHECK(it->type_name() == "number");
+                it = j.cend();
+                CHECK_THROWS_AS(it->type_name(), std::out_of_range);
+                CHECK_THROWS_WITH(it->type_name(), "cannot get value");
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::const_iterator it = j.cbegin();
+                CHECK(it->type_name() == "string");
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::const_iterator it = j.cbegin();
+                CHECK(it->type_name() == "number");
+            }
+        }
+    }
+
+    SECTION("increment/decrement")
+    {
+        SECTION("post-increment")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.primitive_iterator == 1);
+                it++;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.primitive_iterator == 0);
+                it++;
+                CHECK(it.m_it.primitive_iterator == 1);
+                it++;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                it++;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it++;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+            }
+        }
+
+        SECTION("pre-increment")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.primitive_iterator == 1);
+                ++it;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.primitive_iterator == 0);
+                ++it;
+                CHECK(it.m_it.primitive_iterator == 1);
+                ++it;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+                ++it;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::const_iterator it = j.cbegin();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                ++it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+            }
+        }
+
+        SECTION("post-decrement")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.primitive_iterator == 1);
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.primitive_iterator == 1);
+                it--;
+                CHECK(it.m_it.primitive_iterator == 0);
+                it--;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                it--;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                it--;
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+            }
+        }
+
+        SECTION("pre-decrement")
+        {
+            SECTION("null")
+            {
+                json j(json::value_t::null);
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.primitive_iterator == 1);
+            }
+
+            SECTION("number")
+            {
+                json j(17);
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.primitive_iterator == 1);
+                --it;
+                CHECK(it.m_it.primitive_iterator == 0);
+                --it;
+                CHECK((it.m_it.primitive_iterator != 0 and it.m_it.primitive_iterator != 1));
+            }
+
+            SECTION("object")
+            {
+                json j({{"foo", "bar"}});
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->end());
+                --it;
+                CHECK(it.m_it.object_iterator == it.m_object->m_value.object->begin());
+            }
+
+            SECTION("array")
+            {
+                json j({1, 2, 3, 4});
+                json::const_iterator it = j.cend();
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+                --it;
+                CHECK(it.m_it.array_iterator == it.m_object->m_value.array->begin());
+                CHECK(it.m_it.array_iterator != it.m_object->m_value.array->end());
+            }
+        }
+    }
+}
+
+TEST_CASE("convenience functions")
+{
+    SECTION("type name as string")
+    {
+        CHECK(json(json::value_t::null).type_name() == "null");
+        CHECK(json(json::value_t::object).type_name() == "object");
+        CHECK(json(json::value_t::array).type_name() == "array");
+        CHECK(json(json::value_t::number_integer).type_name() == "number");
+        CHECK(json(json::value_t::number_float).type_name() == "number");
+        CHECK(json(json::value_t::boolean).type_name() == "boolean");
+        CHECK(json(json::value_t::string).type_name() == "string");
+        CHECK(json(json::value_t::discarded).type_name() == "discarded");
+    }
+
+    SECTION("string escape")
+    {
+        CHECK(json::escape_string("\"") == "\\\"");
+        CHECK(json::escape_string("\\") == "\\\\");
+        CHECK(json::escape_string("\b") == "\\b");
+        CHECK(json::escape_string("\f") == "\\f");
+        CHECK(json::escape_string("\n") == "\\n");
+        CHECK(json::escape_string("\r") == "\\r");
+        CHECK(json::escape_string("\t") == "\\t");
+
+        CHECK(json::escape_string("\x01") == "\\u0001");
+        CHECK(json::escape_string("\x02") == "\\u0002");
+        CHECK(json::escape_string("\x03") == "\\u0003");
+        CHECK(json::escape_string("\x04") == "\\u0004");
+        CHECK(json::escape_string("\x05") == "\\u0005");
+        CHECK(json::escape_string("\x06") == "\\u0006");
+        CHECK(json::escape_string("\x07") == "\\u0007");
+        CHECK(json::escape_string("\x08") == "\\b");
+        CHECK(json::escape_string("\x09") == "\\t");
+        CHECK(json::escape_string("\x0a") == "\\n");
+        CHECK(json::escape_string("\x0b") == "\\u000b");
+        CHECK(json::escape_string("\x0c") == "\\f");
+        CHECK(json::escape_string("\x0d") == "\\r");
+        CHECK(json::escape_string("\x0e") == "\\u000e");
+        CHECK(json::escape_string("\x0f") == "\\u000f");
+        CHECK(json::escape_string("\x10") == "\\u0010");
+        CHECK(json::escape_string("\x11") == "\\u0011");
+        CHECK(json::escape_string("\x12") == "\\u0012");
+        CHECK(json::escape_string("\x13") == "\\u0013");
+        CHECK(json::escape_string("\x14") == "\\u0014");
+        CHECK(json::escape_string("\x15") == "\\u0015");
+        CHECK(json::escape_string("\x16") == "\\u0016");
+        CHECK(json::escape_string("\x17") == "\\u0017");
+        CHECK(json::escape_string("\x18") == "\\u0018");
+        CHECK(json::escape_string("\x19") == "\\u0019");
+        CHECK(json::escape_string("\x1a") == "\\u001a");
+        CHECK(json::escape_string("\x1b") == "\\u001b");
+        CHECK(json::escape_string("\x1c") == "\\u001c");
+        CHECK(json::escape_string("\x1d") == "\\u001d");
+        CHECK(json::escape_string("\x1e") == "\\u001e");
+        CHECK(json::escape_string("\x1f") == "\\u001f");
+    }
+}
+
+TEST_CASE("lexer class")
+{
+    SECTION("scan")
+    {
+        SECTION("structural characters")
+        {
+            CHECK(json::lexer("[").scan() == json::lexer::token_type::begin_array);
+            CHECK(json::lexer("]").scan() == json::lexer::token_type::end_array);
+            CHECK(json::lexer("{").scan() == json::lexer::token_type::begin_object);
+            CHECK(json::lexer("}").scan() == json::lexer::token_type::end_object);
+            CHECK(json::lexer(",").scan() == json::lexer::token_type::value_separator);
+            CHECK(json::lexer(":").scan() == json::lexer::token_type::name_separator);
+        }
+
+        SECTION("literal names")
+        {
+            CHECK(json::lexer("null").scan() == json::lexer::token_type::literal_null);
+            CHECK(json::lexer("true").scan() == json::lexer::token_type::literal_true);
+            CHECK(json::lexer("false").scan() == json::lexer::token_type::literal_false);
+        }
+
+        SECTION("numbers")
+        {
+            CHECK(json::lexer("0").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("1").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("2").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("3").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("4").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("5").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("6").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("7").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("8").scan() == json::lexer::token_type::value_number);
+            CHECK(json::lexer("9").scan() == json::lexer::token_type::value_number);
+        }
+
+        SECTION("whitespace")
+        {
+            // result is end_of_input, because not token is following
+            CHECK(json::lexer(" ").scan() == json::lexer::token_type::end_of_input);
+            CHECK(json::lexer("\t").scan() == json::lexer::token_type::end_of_input);
+            CHECK(json::lexer("\n").scan() == json::lexer::token_type::end_of_input);
+            CHECK(json::lexer("\r").scan() == json::lexer::token_type::end_of_input);
+            CHECK(json::lexer(" \t\n\r\n\t ").scan() == json::lexer::token_type::end_of_input);
+        }
+    }
+
+    SECTION("token_type_name")
+    {
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::uninitialized) == "<uninitialized>");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_true) == "true literal");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_false) == "false literal");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::literal_null) == "null literal");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::value_string) == "string literal");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::value_number) == "number literal");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_array) == "'['");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::begin_object) == "'{'");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::end_array) == "']'");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::end_object) == "'}'");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::name_separator) == "':'");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::value_separator) == "','");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>");
+        CHECK(json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "end of input");
+    }
+
+    SECTION("parse errors on first character")
+    {
+        for (int c = 1; c < 128; ++c)
+        {
+            auto s = std::string(1, c);
+
+            switch (c)
+            {
+                // single characters that are valid tokens
+                case ('['):
+                case (']'):
+                case ('{'):
+                case ('}'):
+                case (','):
+                case (':'):
+                case ('0'):
+                case ('1'):
+                case ('2'):
+                case ('3'):
+                case ('4'):
+                case ('5'):
+                case ('6'):
+                case ('7'):
+                case ('8'):
+                case ('9'):
+                {
+                    CHECK(json::lexer(s.c_str()).scan() != json::lexer::token_type::parse_error);
+                    break;
+                }
+
+                // whitespace
+                case (' '):
+                case ('\t'):
+                case ('\n'):
+                case ('\r'):
+                {
+                    CHECK(json::lexer(s.c_str()).scan() == json::lexer::token_type::end_of_input);
+                    break;
+                }
+
+                // anything else is not expected
+                default:
+                {
+                    CHECK(json::lexer(s.c_str()).scan() == json::lexer::token_type::parse_error);
+                    break;
+                }
+            }
+        }
+    }
+
+    SECTION("to_unicode")
+    {
+        CHECK(json::lexer::to_unicode(0x1F4A9) == "💩");
+        CHECK_THROWS_AS(json::lexer::to_unicode(0x200000), std::out_of_range);
+        CHECK_THROWS_WITH(json::lexer::to_unicode(0x200000), "code points above 0x10FFFF are invalid");
+    }
+}
+
+TEST_CASE("parser class")
+{
+    SECTION("parse")
+    {
+        SECTION("null")
+        {
+            CHECK(json::parser("null").parse() == json(nullptr));
+        }
+
+        SECTION("true")
+        {
+            CHECK(json::parser("true").parse() == json(true));
+        }
+
+        SECTION("false")
+        {
+            CHECK(json::parser("false").parse() == json(false));
+        }
+
+        SECTION("array")
+        {
+            SECTION("empty array")
+            {
+                CHECK(json::parser("[]").parse() == json(json::value_t::array));
+                CHECK(json::parser("[ ]").parse() == json(json::value_t::array));
+            }
+
+            SECTION("nonempty array")
+            {
+                CHECK(json::parser("[true, false, null]").parse() == json({true, false, nullptr}));
+            }
+        }
+
+        SECTION("object")
+        {
+            SECTION("empty object")
+            {
+                CHECK(json::parser("{}").parse() == json(json::value_t::object));
+                CHECK(json::parser("{ }").parse() == json(json::value_t::object));
+            }
+
+            SECTION("nonempty object")
+            {
+                CHECK(json::parser("{\"\": true, \"one\": 1, \"two\": null}").parse() == json({{"", true}, {"one", 1}, {"two", nullptr}}));
+            }
+        }
+
+        SECTION("string")
+        {
+            // empty string
+            CHECK(json::parser("\"\"").parse() == json(json::value_t::string));
+
+            SECTION("errors")
+            {
+                // error: tab in string
+                CHECK_THROWS_AS(json::parser("\"\t\"").parse(), std::invalid_argument);
+                CHECK_THROWS_WITH(json::parser("\"\t\"").parse(), "parse error - unexpected '\"'");
+                // error: newline in string
+                CHECK_THROWS_AS(json::parser("\"\n\"").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("\"\r\"").parse(), std::invalid_argument);
+                CHECK_THROWS_WITH(json::parser("\"\n\"").parse(), "parse error - unexpected '\"'");
+                CHECK_THROWS_WITH(json::parser("\"\r\"").parse(), "parse error - unexpected '\"'");
+                // error: backspace in string
+                CHECK_THROWS_AS(json::parser("\"\b\"").parse(), std::invalid_argument);
+                CHECK_THROWS_WITH(json::parser("\"\b\"").parse(), "parse error - unexpected '\"'");
+                // improve code coverage
+                CHECK_THROWS_AS(json::parser("\uFF01").parse(), std::invalid_argument);
+            }
+
+            SECTION("escaped")
+            {
+                // quotation mark "\""
+                auto r1 = R"("\"")"_json;
+                CHECK(json::parser("\"\\\"\"").parse() == r1);
+                // reverse solidus "\\"
+                auto r2 = R"("\\")"_json;
+                CHECK(json::parser("\"\\\\\"").parse() == r2);
+                // solidus
+                CHECK(json::parser("\"\\/\"").parse() == R"("/")"_json);
+                // backspace
+                CHECK(json::parser("\"\\b\"").parse() == json("\b"));
+                // formfeed
+                CHECK(json::parser("\"\\f\"").parse() == json("\f"));
+                // newline
+                CHECK(json::parser("\"\\n\"").parse() == json("\n"));
+                // carriage return
+                CHECK(json::parser("\"\\r\"").parse() == json("\r"));
+                // horizontal tab
+                CHECK(json::parser("\"\\t\"").parse() == json("\t"));
+
+                CHECK(json::parser("\"\\u0001\"").parse().get<json::string_t>() == "\x01");
+                CHECK(json::parser("\"\\u000a\"").parse().get<json::string_t>() == "\n");
+                CHECK(json::parser("\"\\u00b0\"").parse().get<json::string_t>() == "°");
+                CHECK(json::parser("\"\\u0c00\"").parse().get<json::string_t>() == "ఀ");
+                CHECK(json::parser("\"\\ud000\"").parse().get<json::string_t>() == "퀀");
+                CHECK(json::parser("\"\\u000E\"").parse().get<json::string_t>() == "\x0E");
+                CHECK(json::parser("\"\\u00F0\"").parse().get<json::string_t>() == "ð");
+                CHECK(json::parser("\"\\u0100\"").parse().get<json::string_t>() == "Ā");
+                CHECK(json::parser("\"\\u2000\"").parse().get<json::string_t>() == " ");
+                CHECK(json::parser("\"\\uFFFF\"").parse().get<json::string_t>() == "￿");
+                CHECK(json::parser("\"\\u20AC\"").parse().get<json::string_t>() == "€");
+                CHECK(json::parser("\"€\"").parse().get<json::string_t>() == "€");
+                CHECK(json::parser("\"🎈\"").parse().get<json::string_t>() == "🎈");
+
+                CHECK(json::parse("\"\\ud80c\\udc60\"").get<json::string_t>() == u8"\U00013060");
+                CHECK(json::parse("\"\\ud83c\\udf1e\"").get<json::string_t>() == "🌞");
+            }
+        }
+
+        SECTION("number")
+        {
+            SECTION("integers")
+            {
+                SECTION("without exponent")
+                {
+                    CHECK(json::parser("-128").parse() == json(-128));
+                    CHECK(json::parser("-0").parse() == json(-0));
+                    CHECK(json::parser("0").parse() == json(0));
+                    CHECK(json::parser("128").parse() == json(128));
+                }
+
+                SECTION("with exponent")
+                {
+                    CHECK(json::parser("0e1").parse() == json(0e1));
+                    CHECK(json::parser("0E1").parse() == json(0e1));
+
+                    CHECK(json::parser("10000E-4").parse() == json(10000e-4));
+                    CHECK(json::parser("10000E-3").parse() == json(10000e-3));
+                    CHECK(json::parser("10000E-2").parse() == json(10000e-2));
+                    CHECK(json::parser("10000E-1").parse() == json(10000e-1));
+                    CHECK(json::parser("10000E0").parse() == json(10000e0));
+                    CHECK(json::parser("10000E1").parse() == json(10000e1));
+                    CHECK(json::parser("10000E2").parse() == json(10000e2));
+                    CHECK(json::parser("10000E3").parse() == json(10000e3));
+                    CHECK(json::parser("10000E4").parse() == json(10000e4));
+
+                    CHECK(json::parser("10000e-4").parse() == json(10000e-4));
+                    CHECK(json::parser("10000e-3").parse() == json(10000e-3));
+                    CHECK(json::parser("10000e-2").parse() == json(10000e-2));
+                    CHECK(json::parser("10000e-1").parse() == json(10000e-1));
+                    CHECK(json::parser("10000e0").parse() == json(10000e0));
+                    CHECK(json::parser("10000e1").parse() == json(10000e1));
+                    CHECK(json::parser("10000e2").parse() == json(10000e2));
+                    CHECK(json::parser("10000e3").parse() == json(10000e3));
+                    CHECK(json::parser("10000e4").parse() == json(10000e4));
+
+                    CHECK(json::parser("-0e1").parse() == json(-0e1));
+                    CHECK(json::parser("-0E1").parse() == json(-0e1));
+                    CHECK(json::parser("-0E123").parse() == json(-0e123));
+                }
+
+                SECTION("edge cases")
+                {
+                    // From RFC7159, Section 6:
+                    // Note that when such software is used, numbers that are
+                    // integers and are in the range [-(2**53)+1, (2**53)-1]
+                    // are interoperable in the sense that implementations will
+                    // agree exactly on their numeric values.
+
+                    // -(2**53)+1
+                    CHECK(json::parser("-9007199254740991").parse().get<int64_t>() == -9007199254740991);
+                    // (2**53)-1
+                    CHECK(json::parser("9007199254740991").parse().get<int64_t>() == 9007199254740991);
+                }
+
+                SECTION("over the edge cases")  // issue #178 - Integer conversion to unsigned (incorrect handling of 64 bit integers)
+                {
+                    // While RFC7159, Section 6 specifies a preference for support
+                    // for ranges in range of IEEE 754-2008 binary64 (double precision)
+                    // this does not accommodate 64 bit integers without loss of accuracy.
+                    // As 64 bit integers are now widely used in software, it is desirable
+                    // to expand support to to the full 64 bit (signed and unsigned) range
+                    // i.e. -(2**63) -> (2**64)-1.
+
+                    // -(2**63)    ** Note: compilers see negative literals as negated positive numbers (hence the -1))
+                    CHECK(json::parser("-9223372036854775808").parse().get<int64_t>() == -9223372036854775807 - 1);
+                    // (2**63)-1
+                    CHECK(json::parser("9223372036854775807").parse().get<int64_t>() == 9223372036854775807);
+                    // (2**64)-1
+                    CHECK(json::parser("18446744073709551615").parse().get<uint64_t>() == 18446744073709551615u);
+                }
+            }
+
+            SECTION("floating-point")
+            {
+                SECTION("without exponent")
+                {
+                    CHECK(json::parser("-128.5").parse() == json(-128.5));
+                    CHECK(json::parser("0.999").parse() == json(0.999));
+                    CHECK(json::parser("128.5").parse() == json(128.5));
+                    CHECK(json::parser("-0.0").parse() == json(-0.0));
+                }
+
+                SECTION("with exponent")
+                {
+                    CHECK(json::parser("-128.5E3").parse() == json(-128.5E3));
+                    CHECK(json::parser("-128.5E-3").parse() == json(-128.5E-3));
+                    CHECK(json::parser("-0.0e1").parse() == json(-0.0e1));
+                    CHECK(json::parser("-0.0E1").parse() == json(-0.0e1));
+                }
+            }
+
+            SECTION("invalid numbers")
+            {
+                CHECK_THROWS_AS(json::parser("01").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("--1").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("1.").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("1E").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("1E-").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("1.E1").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-1E").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0E#").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0E-#").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0#").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0.0:").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0.0Z").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0E123:").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0e0-:").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0e-:").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("-0f").parse(), std::invalid_argument);
+
+                // numbers must not begin with "+"
+                CHECK_THROWS_AS(json::parser("+1").parse(), std::invalid_argument);
+                CHECK_THROWS_AS(json::parser("+0").parse(), std::invalid_argument);
+
+                CHECK_THROWS_WITH(json::parser("01").parse(),
+                                  "parse error - unexpected number literal; expected end of input");
+                CHECK_THROWS_WITH(json::parser("--1").parse(), "parse error - unexpected '-'");
+                CHECK_THROWS_WITH(json::parser("1.").parse(),
+                                  "parse error - unexpected '.'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("1E").parse(),
+                                  "parse error - unexpected 'E'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("1E-").parse(),
+                                  "parse error - unexpected 'E'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("1.E1").parse(),
+                                  "parse error - unexpected '.'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-1E").parse(),
+                                  "parse error - unexpected 'E'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0E#").parse(),
+                                  "parse error - unexpected 'E'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0E-#").parse(),
+                                  "parse error - unexpected 'E'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0#").parse(),
+                                  "parse error - unexpected '#'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0.0:").parse(),
+                                  "parse error - unexpected ':'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0.0Z").parse(),
+                                  "parse error - unexpected 'Z'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0E123:").parse(),
+                                  "parse error - unexpected ':'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0e0-:").parse(),
+                                  "parse error - unexpected '-'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0e-:").parse(),
+                                  "parse error - unexpected 'e'; expected end of input");
+                CHECK_THROWS_WITH(json::parser("-0f").parse(),
+                                  "parse error - unexpected 'f'; expected end of input");
+            }
+        }
+    }
+
+    SECTION("parse errors")
+    {
+        // unexpected end of number
+        CHECK_THROWS_AS(json::parser("0.").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("-").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("--").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("-0.").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("-.").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("-:").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("0.:").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("e.").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("1e.").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("1e/").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("1e:").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("1E.").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("1E/").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("1E:").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("0.").parse(),
+                          "parse error - unexpected '.'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("-").parse(), "parse error - unexpected '-'");
+        CHECK_THROWS_WITH(json::parser("--").parse(),
+                          "parse error - unexpected '-'");
+        CHECK_THROWS_WITH(json::parser("-0.").parse(),
+                          "parse error - unexpected '.'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("-.").parse(),
+                          "parse error - unexpected '-'");
+        CHECK_THROWS_WITH(json::parser("-:").parse(),
+                          "parse error - unexpected '-'");
+        CHECK_THROWS_WITH(json::parser("0.:").parse(),
+                          "parse error - unexpected '.'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("e.").parse(),
+                          "parse error - unexpected 'e'");
+        CHECK_THROWS_WITH(json::parser("1e.").parse(),
+                          "parse error - unexpected 'e'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("1e/").parse(),
+                          "parse error - unexpected 'e'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("1e:").parse(),
+                          "parse error - unexpected 'e'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("1E.").parse(),
+                          "parse error - unexpected 'E'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("1E/").parse(),
+                          "parse error - unexpected 'E'; expected end of input");
+        CHECK_THROWS_WITH(json::parser("1E:").parse(),
+                          "parse error - unexpected 'E'; expected end of input");
+
+        // unexpected end of null
+        CHECK_THROWS_AS(json::parser("n").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("nu").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("nul").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("n").parse(), "parse error - unexpected 'n'");
+        CHECK_THROWS_WITH(json::parser("nu").parse(),
+                          "parse error - unexpected 'n'");
+        CHECK_THROWS_WITH(json::parser("nul").parse(),
+                          "parse error - unexpected 'n'");
+
+        // unexpected end of true
+        CHECK_THROWS_AS(json::parser("t").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("tr").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("tru").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("t").parse(), "parse error - unexpected 't'");
+        CHECK_THROWS_WITH(json::parser("tr").parse(),
+                          "parse error - unexpected 't'");
+        CHECK_THROWS_WITH(json::parser("tru").parse(),
+                          "parse error - unexpected 't'");
+
+        // unexpected end of false
+        CHECK_THROWS_AS(json::parser("f").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("fa").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("fal").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("fals").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("f").parse(), "parse error - unexpected 'f'");
+        CHECK_THROWS_WITH(json::parser("fa").parse(),
+                          "parse error - unexpected 'f'");
+        CHECK_THROWS_WITH(json::parser("fal").parse(),
+                          "parse error - unexpected 'f'");
+        CHECK_THROWS_WITH(json::parser("fals").parse(),
+                          "parse error - unexpected 'f'");
+
+        // missing/unexpected end of array
+        CHECK_THROWS_AS(json::parser("[").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("[1").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("[1,").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("[1,]").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("]").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("[").parse(),
+                          "parse error - unexpected end of input");
+        CHECK_THROWS_WITH(json::parser("[1").parse(),
+                          "parse error - unexpected end of input; expected ']'");
+        CHECK_THROWS_WITH(json::parser("[1,").parse(),
+                          "parse error - unexpected end of input");
+        CHECK_THROWS_WITH(json::parser("[1,]").parse(),
+                          "parse error - unexpected ']'");
+        CHECK_THROWS_WITH(json::parser("]").parse(), "parse error - unexpected ']'");
+
+        // missing/unexpected end of object
+        CHECK_THROWS_AS(json::parser("{").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("{\"foo\"").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("{\"foo\":").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("{\"foo\":}").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("{\"foo\":1,}").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("}").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("{").parse(),
+                          "parse error - unexpected end of input; expected string literal");
+        CHECK_THROWS_WITH(json::parser("{\"foo\"").parse(),
+                          "parse error - unexpected end of input; expected ':'");
+        CHECK_THROWS_WITH(json::parser("{\"foo\":").parse(),
+                          "parse error - unexpected end of input");
+        CHECK_THROWS_WITH(json::parser("{\"foo\":}").parse(),
+                          "parse error - unexpected '}'");
+        CHECK_THROWS_WITH(json::parser("{\"foo\":1,}").parse(),
+                          "parse error - unexpected '}'; expected string literal");
+        CHECK_THROWS_WITH(json::parser("}").parse(), "parse error - unexpected '}'");
+
+        // missing/unexpected end of string
+        CHECK_THROWS_AS(json::parser("\"").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("\"\\\"").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("\"\\u\"").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("\"\\u0\"").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("\"\\u01\"").parse(), std::invalid_argument);
+        CHECK_THROWS_AS(json::parser("\"\\u012\"").parse(), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parser("\"").parse(),
+                          "parse error - unexpected '\"'");
+        CHECK_THROWS_WITH(json::parser("\"\\\"").parse(),
+                          "parse error - unexpected '\"'");
+        CHECK_THROWS_WITH(json::parser("\"\\u\"").parse(),
+                          "parse error - unexpected '\"'");
+        CHECK_THROWS_WITH(json::parser("\"\\u0\"").parse(),
+                          "parse error - unexpected '\"'");
+        CHECK_THROWS_WITH(json::parser("\"\\u01\"").parse(),
+                          "parse error - unexpected '\"'");
+        CHECK_THROWS_WITH(json::parser("\"\\u012\"").parse(),
+                          "parse error - unexpected '\"'");
+
+        // invalid escapes
+        for (int c = 1; c < 128; ++c)
+        {
+            auto s = std::string("\"\\") + std::string(1, c) + "\"";
+
+            switch (c)
+            {
+                // valid escapes
+                case ('"'):
+                case ('\\'):
+                case ('/'):
+                case ('b'):
+                case ('f'):
+                case ('n'):
+                case ('r'):
+                case ('t'):
+                {
+                    CHECK_NOTHROW(json::parser(s).parse());
+                    break;
+                }
+
+                // \u must be followed with four numbers, so we skip it here
+                case ('u'):
+                {
+                    break;
+                }
+
+                // any other combination of backslash and character is invalid
+                default:
+                {
+                    CHECK_THROWS_AS(json::parser(s).parse(), std::invalid_argument);
+                    CHECK_THROWS_WITH(json::parser(s).parse(), "parse error - unexpected '\"'");
+                    break;
+                }
+            }
+        }
+
+        // invalid \uxxxx escapes
+        {
+            // check whether character is a valid hex character
+            const auto valid = [](int c)
+            {
+                switch (c)
+                {
+                    case ('0'):
+                    case ('1'):
+                    case ('2'):
+                    case ('3'):
+                    case ('4'):
+                    case ('5'):
+                    case ('6'):
+                    case ('7'):
+                    case ('8'):
+                    case ('9'):
+                    case ('a'):
+                    case ('b'):
+                    case ('c'):
+                    case ('d'):
+                    case ('e'):
+                    case ('f'):
+                    case ('A'):
+                    case ('B'):
+                    case ('C'):
+                    case ('D'):
+                    case ('E'):
+                    case ('F'):
+                    {
+                        return true;
+                    }
+
+                    default:
+                    {
+                        return false;
+                    }
+                }
+            };
+
+            for (int c = 1; c < 128; ++c)
+            {
+                std::string s = "\"\\u";
+
+                // create a string with the iterated character at each position
+                auto s1 = s + "000" + std::string(1, c) + "\"";
+                auto s2 = s + "00" + std::string(1, c) + "0\"";
+                auto s3 = s + "0" + std::string(1, c) + "00\"";
+                auto s4 = s + std::string(1, c) + "000\"";
+
+                if (valid(c))
+                {
+                    CHECK_NOTHROW(json::parser(s1).parse());
+                    CHECK_NOTHROW(json::parser(s2).parse());
+                    CHECK_NOTHROW(json::parser(s3).parse());
+                    CHECK_NOTHROW(json::parser(s4).parse());
+                }
+                else
+                {
+                    CHECK_THROWS_AS(json::parser(s1).parse(), std::invalid_argument);
+                    CHECK_THROWS_AS(json::parser(s2).parse(), std::invalid_argument);
+                    CHECK_THROWS_AS(json::parser(s3).parse(), std::invalid_argument);
+                    CHECK_THROWS_AS(json::parser(s4).parse(), std::invalid_argument);
+
+                    CHECK_THROWS_WITH(json::parser(s1).parse(), "parse error - unexpected '\"'");
+                    CHECK_THROWS_WITH(json::parser(s2).parse(), "parse error - unexpected '\"'");
+                    CHECK_THROWS_WITH(json::parser(s3).parse(), "parse error - unexpected '\"'");
+                    CHECK_THROWS_WITH(json::parser(s4).parse(), "parse error - unexpected '\"'");
+                }
+            }
+        }
+
+        // missing part of a surrogate pair
+        CHECK_THROWS_AS(json::parse("\"\\uD80C\""), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parse("\"\\uD80C\""), "missing low surrogate");
+        // invalid surrogate pair
+        CHECK_THROWS_AS(json::parse("\"\\uD80C\\uD80C\""), std::invalid_argument);
+        CHECK_THROWS_AS(json::parse("\"\\uD80C\\u0000\""), std::invalid_argument);
+        CHECK_THROWS_AS(json::parse("\"\\uD80C\\uFFFF\""), std::invalid_argument);
+        CHECK_THROWS_WITH(json::parse("\"\\uD80C\\uD80C\""),
+                          "missing or wrong low surrogate");
+        CHECK_THROWS_WITH(json::parse("\"\\uD80C\\u0000\""),
+                          "missing or wrong low surrogate");
+        CHECK_THROWS_WITH(json::parse("\"\\uD80C\\uFFFF\""),
+                          "missing or wrong low surrogate");
+    }
+
+    SECTION("callback function")
+    {
+        auto s_object = R"(
+            {
+                "foo": 2,
+                "bar": {
+                    "baz": 1
+                }
+            }
+        )";
+
+        auto s_array = R"(
+            [1,2,[3,4,5],4,5]
+        )";
+
+        SECTION("filter nothing")
+        {
+            json j_object = json::parse(s_object, [](int, json::parse_event_t, const json&)
+            {
+                return true;
+            });
+
+            CHECK (j_object == json({{"foo", 2}, {"bar", {{"baz", 1}}}}));
+
+            json j_array = json::parse(s_array, [](int, json::parse_event_t, const json&)
+            {
+                return true;
+            });
+
+            CHECK (j_array == json({1, 2, {3, 4, 5}, 4, 5}));
+        }
+
+        SECTION("filter everything")
+        {
+            json j_object = json::parse(s_object, [](int, json::parse_event_t, const json&)
+            {
+                return false;
+            });
+
+            // the top-level object will be discarded, leaving a null
+            CHECK (j_object.is_null());
+
+            json j_array = json::parse(s_array, [](int, json::parse_event_t, const json&)
+            {
+                return false;
+            });
+
+            // the top-level array will be discarded, leaving a null
+            CHECK (j_array.is_null());
+        }
+
+        SECTION("filter specific element")
+        {
+            json j_object = json::parse(s_object, [](int, json::parse_event_t, const json & j)
+            {
+                // filter all number(2) elements
+                if (j == json(2))
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            });
+
+            CHECK (j_object == json({{"bar", {{"baz", 1}}}}));
+
+            json j_array = json::parse(s_array, [](int, json::parse_event_t, const json & j)
+            {
+                if (j == json(2))
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            });
+
+            CHECK (j_array == json({1, {3, 4, 5}, 4, 5}));
+        }
+
+        SECTION("filter specific events")
+        {
+            SECTION("first closing event")
+            {
+                {
+                    json j_object = json::parse(s_object, [](int, json::parse_event_t e, const json&)
+                    {
+                        static bool first = true;
+                        if (e == json::parse_event_t::object_end and first)
+                        {
+                            first = false;
+                            return false;
+                        }
+                        else
+                        {
+                            return true;
+                        }
+                    });
+
+                    // the first completed object will be discarded
+                    CHECK (j_object == json({{"foo", 2}}));
+                }
+
+                {
+                    json j_array = json::parse(s_array, [](int, json::parse_event_t e, const json&)
+                    {
+                        static bool first = true;
+                        if (e == json::parse_event_t::array_end and first)
+                        {
+                            first = false;
+                            return false;
+                        }
+                        else
+                        {
+                            return true;
+                        }
+                    });
+
+                    // the first completed array will be discarded
+                    CHECK (j_array == json({1, 2, 4, 5}));
+                }
+            }
+        }
+
+        SECTION("special cases")
+        {
+            // the following test cases cover the situation in which an empty
+            // object and array is discarded only after the closing character
+            // has been read
+
+            json j_empty_object = json::parse("{}", [](int, json::parse_event_t e, const json&)
+            {
+                if (e == json::parse_event_t::object_end)
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            });
+            CHECK(j_empty_object == json());
+
+            json j_empty_array = json::parse("[]", [](int, json::parse_event_t e, const json&)
+            {
+                if (e == json::parse_event_t::array_end)
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            });
+            CHECK(j_empty_array == json());
+        }
+    }
+}
+
+TEST_CASE("README", "[hide]")
+{
+    {
+        // create an empty structure (null)
+        json j;
+
+        // add a number that is stored as double (note the implicit conversion of j to an object)
+        j["pi"] = 3.141;
+
+        // add a Boolean that is stored as bool
+        j["happy"] = true;
+
+        // add a string that is stored as std::string
+        j["name"] = "Niels";
+
+        // add another null object by passing nullptr
+        j["nothing"] = nullptr;
+
+        // add an object inside the object
+        j["answer"]["everything"] = 42;
+
+        // add an array that is stored as std::vector (using an initializer list)
+        j["list"] = { 1, 0, 2 };
+
+        // add another object (using an initializer list of pairs)
+        j["object"] = { {"currency", "USD"}, {"value", 42.99} };
+
+        // instead, you could also write (which looks very similar to the JSON above)
+        json j2 =
+        {
+            {"pi", 3.141},
+            {"happy", true},
+            {"name", "Niels"},
+            {"nothing", nullptr},
+            {
+                "answer", {
+                    {"everything", 42}
+                }
+            },
+            {"list", {1, 0, 2}},
+            {
+                "object", {
+                    {"currency", "USD"},
+                    {"value", 42.99}
+                }
+            }
+        };
+    }
+
+    {
+        // ways to express the empty array []
+        json empty_array_implicit = {{}};
+        json empty_array_explicit = json::array();
+
+        // a way to express the empty object {}
+        json empty_object_explicit = json::object();
+
+        // a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]]
+        json array_not_object = { json::array({"currency", "USD"}), json::array({"value", 42.99}) };
+    }
+
+    {
+        // create object from string literal
+        json j = "{ \"happy\": true, \"pi\": 3.141 }"_json;
+
+        // or even nicer (thanks http://isocpp.org/blog/2015/01/json-for-modern-cpp)
+        auto j2 = R"(
+          {
+            "happy": true,
+            "pi": 3.141
+          }
+        )"_json;
+
+        // or explicitly
+        auto j3 = json::parse("{ \"happy\": true, \"pi\": 3.141 }");
+
+        // explicit conversion to string
+        std::string s = j.dump();    // {\"happy\":true,\"pi\":3.141}
+
+        // serialization with pretty printing
+        // pass in the amount of spaces to indent
+        std::cout << j.dump(4) << std::endl;
+        // {
+        //     "happy": true,
+        //     "pi": 3.141
+        // }
+
+        std::cout << std::setw(2) << j << std::endl;
+    }
+
+    {
+        // create an array using push_back
+        json j;
+        j.push_back("foo");
+        j.push_back(1);
+        j.push_back(true);
+
+        // iterate the array
+        for (json::iterator it = j.begin(); it != j.end(); ++it)
+        {
+            std::cout << *it << '\n';
+        }
+
+        // range-based for
+        for (auto element : j)
+        {
+            std::cout << element << '\n';
+        }
+
+        // getter/setter
+        const std::string tmp = j[0];
+        j[1] = 42;
+        bool foo = j.at(2);
+
+        // other stuff
+        j.size();     // 3 entries
+        j.empty();    // false
+        j.type();     // json::value_t::array
+        j.clear();    // the array is empty again
+
+        // comparison
+        j == "[\"foo\", 1, true]"_json;  // true
+
+        // create an object
+        json o;
+        o["foo"] = 23;
+        o["bar"] = false;
+        o["baz"] = 3.141;
+
+        // find an entry
+        if (o.find("foo") != o.end())
+        {
+            // there is an entry with key "foo"
+        }
+    }
+
+    {
+        std::vector<int> c_vector {1, 2, 3, 4};
+        json j_vec(c_vector);
+        // [1, 2, 3, 4]
+
+        std::deque<float> c_deque {1.2f, 2.3f, 3.4f, 5.6f};
+        json j_deque(c_deque);
+        // [1.2, 2.3, 3.4, 5.6]
+
+        std::list<bool> c_list {true, true, false, true};
+        json j_list(c_list);
+        // [true, true, false, true]
+
+        std::forward_list<int64_t> c_flist {12345678909876, 23456789098765, 34567890987654, 45678909876543};
+        json j_flist(c_flist);
+        // [12345678909876, 23456789098765, 34567890987654, 45678909876543]
+
+        std::array<unsigned long, 4> c_array {{1, 2, 3, 4}};
+        json j_array(c_array);
+        // [1, 2, 3, 4]
+
+        std::set<std::string> c_set {"one", "two", "three", "four", "one"};
+        json j_set(c_set); // only one entry for "one" is used
+        // ["four", "one", "three", "two"]
+
+        std::unordered_set<std::string> c_uset {"one", "two", "three", "four", "one"};
+        json j_uset(c_uset); // only one entry for "one" is used
+        // maybe ["two", "three", "four", "one"]
+
+        std::multiset<std::string> c_mset {"one", "two", "one", "four"};
+        json j_mset(c_mset); // only one entry for "one" is used
+        // maybe ["one", "two", "four"]
+
+        std::unordered_multiset<std::string> c_umset {"one", "two", "one", "four"};
+        json j_umset(c_umset); // both entries for "one" are used
+        // maybe ["one", "two", "one", "four"]
+    }
+
+    {
+        std::map<std::string, int> c_map { {"one", 1}, {"two", 2}, {"three", 3} };
+        json j_map(c_map);
+        // {"one": 1, "two": 2, "three": 3}
+
+        std::unordered_map<const char*, float> c_umap { {"one", 1.2f}, {"two", 2.3f}, {"three", 3.4f} };
+        json j_umap(c_umap);
+        // {"one": 1.2, "two": 2.3, "three": 3.4}
+
+        std::multimap<std::string, bool> c_mmap { {"one", true}, {"two", true}, {"three", false}, {"three", true} };
+        json j_mmap(c_mmap); // only one entry for key "three" is used
+        // maybe {"one": true, "two": true, "three": true}
+
+        std::unordered_multimap<std::string, bool> c_ummap { {"one", true}, {"two", true}, {"three", false}, {"three", true} };
+        json j_ummap(c_ummap); // only one entry for key "three" is used
+        // maybe {"one": true, "two": true, "three": true}
+    }
+
+    {
+        /// strings
+        std::string s1 = "Hello, world!";
+        json js = s1;
+        std::string s2 = js;
+
+        // Booleans
+        bool b1 = true;
+        json jb = b1;
+        bool b2 = jb;
+
+        // numbers
+        int i = 42;
+        json jn = i;
+        double f = jn;
+
+        // etc.
+
+        std::string vs = js.get<std::string>();
+        bool vb = jb.get<bool>();
+        int vi = jn.get<int>();
+
+        // etc.
+    }
+}
+
+TEST_CASE("algorithms")
+{
+    json j_array = {13, 29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz"};
+    json j_object = {{"one", 1}, {"two", 2}};
+
+    SECTION("non-modifying sequence operations")
+    {
+        SECTION("std::all_of")
+        {
+            CHECK(std::all_of(j_array.begin(), j_array.end(), [](const json & value)
+            {
+                return value.size() > 0;
+            }));
+            CHECK(std::all_of(j_object.begin(), j_object.end(), [](const json & value)
+            {
+                return value.type() == json::value_t::number_integer;
+            }));
+        }
+
+        SECTION("std::any_of")
+        {
+            CHECK(std::any_of(j_array.begin(), j_array.end(), [](const json & value)
+            {
+                return value.is_string() and value.get<std::string>() == "foo";
+            }));
+            CHECK(std::any_of(j_object.begin(), j_object.end(), [](const json & value)
+            {
+                return value.get<int>() > 1;
+            }));
+        }
+
+        SECTION("std::none_of")
+        {
+            CHECK(std::none_of(j_array.begin(), j_array.end(), [](const json & value)
+            {
+                return value.size() == 0;
+            }));
+            CHECK(std::none_of(j_object.begin(), j_object.end(), [](const json & value)
+            {
+                return value.get<int>() <= 0;
+            }));
+        }
+
+        SECTION("std::for_each")
+        {
+            SECTION("reading")
+            {
+                int sum = 0;
+
+                std::for_each(j_array.cbegin(), j_array.cend(), [&sum](const json & value)
+                {
+                    if (value.is_number())
+                    {
+                        sum += static_cast<int>(value);
+                    }
+                });
+
+                CHECK(sum == 45);
+            }
+
+            SECTION("writing")
+            {
+                auto add17 = [](json & value)
+                {
+                    if (value.is_array())
+                    {
+                        value.push_back(17);
+                    }
+                };
+
+                std::for_each(j_array.begin(), j_array.end(), add17);
+
+                CHECK(j_array[6] == json({1, 2, 3, 17}));
+            }
+        }
+
+        SECTION("std::count")
+        {
+            CHECK(std::count(j_array.begin(), j_array.end(), json(true)) == 1);
+        }
+
+        SECTION("std::count_if")
+        {
+            CHECK(std::count_if(j_array.begin(), j_array.end(), [](const json & value)
+            {
+                return (value.is_number());
+            }) == 3);
+            CHECK(std::count_if(j_array.begin(), j_array.end(), [](const json&)
+            {
+                return true;
+            }) == 9);
+        }
+
+        SECTION("std::mismatch")
+        {
+            json j_array2 = {13, 29, 3, {{"one", 1}, {"two", 2}, {"three", 3}}, true, false, {1, 2, 3}, "foo", "baz"};
+            auto res = std::mismatch(j_array.begin(), j_array.end(), j_array2.begin());
+            CHECK(*res.first == json({{"one", 1}, {"two", 2}}));
+            CHECK(*res.second == json({{"one", 1}, {"two", 2}, {"three", 3}}));
+        }
+
+        SECTION("std::equal")
+        {
+            SECTION("using operator==")
+            {
+                CHECK(std::equal(j_array.begin(), j_array.end(), j_array.begin()));
+                CHECK(std::equal(j_object.begin(), j_object.end(), j_object.begin()));
+                CHECK(not std::equal(j_array.begin(), j_array.end(), j_object.begin()));
+            }
+
+            SECTION("using user-defined comparison")
+            {
+                // compare objects only by size of its elements
+                json j_array2 = {13, 29, 3, {"Hello", "World"}, true, false, {{"one", 1}, {"two", 2}, {"three", 3}}, "foo", "baz"};
+                CHECK(not std::equal(j_array.begin(), j_array.end(), j_array2.begin()));
+                CHECK(std::equal(j_array.begin(), j_array.end(), j_array2.begin(),
+                                 [](const json & a, const json & b)
+                {
+                    return (a.size() == b.size());
+                }));
+            }
+        }
+
+        SECTION("std::find")
+        {
+            auto it = std::find(j_array.begin(), j_array.end(), json(false));
+            CHECK(std::distance(j_array.begin(), it) == 5);
+        }
+
+        SECTION("std::find_if")
+        {
+            auto it = std::find_if(j_array.begin(), j_array.end(),
+                                   [](const json & value)
+            {
+                return value.is_boolean();
+            });
+            CHECK(std::distance(j_array.begin(), it) == 4);
+        }
+
+        SECTION("std::find_if_not")
+        {
+            auto it = std::find_if_not(j_array.begin(), j_array.end(),
+                                       [](const json & value)
+            {
+                return value.is_number();
+            });
+            CHECK(std::distance(j_array.begin(), it) == 3);
+        }
+
+        SECTION("std::adjacent_find")
+        {
+            CHECK(std::adjacent_find(j_array.begin(), j_array.end()) == j_array.end());
+            CHECK(std::adjacent_find(j_array.begin(), j_array.end(),
+                                     [](const json & v1, const json & v2)
+            {
+                return v1.type() == v2.type();
+            }) == j_array.begin());
+        }
+    }
+
+    SECTION("modifying sequence operations")
+    {
+        SECTION("std::reverse")
+        {
+            std::reverse(j_array.begin(), j_array.end());
+            CHECK(j_array == json({"baz", "foo", {1, 2, 3}, false, true, {{"one", 1}, {"two", 2}}, 3, 29, 13}));
+        }
+
+        SECTION("std::rotate")
+        {
+            std::rotate(j_array.begin(), j_array.begin() + 1, j_array.end());
+            CHECK(j_array == json({29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz", 13}));
+        }
+
+        SECTION("std::partition")
+        {
+            auto it = std::partition(j_array.begin(), j_array.end(), [](const json & v)
+            {
+                return v.is_string();
+            });
+            CHECK(std::distance(j_array.begin(), it) == 2);
+            CHECK(not it[2].is_string());
+        }
+    }
+
+    SECTION("sorting operations")
+    {
+        SECTION("std::sort")
+        {
+            SECTION("with standard comparison")
+            {
+                json j = {13, 29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz", nullptr};
+                std::sort(j.begin(), j.end());
+                CHECK(j == json({nullptr, false, true, 3, 13, 29, {{"one", 1}, {"two", 2}}, {1, 2, 3}, "baz", "foo"}));
+            }
+
+            SECTION("with user-defined comparison")
+            {
+                json j = {3, {{"one", 1}, {"two", 2}}, {1, 2, 3}, nullptr};
+                std::sort(j.begin(), j.end(), [](const json & a, const json & b)
+                {
+                    return a.size() < b.size();
+                });
+                CHECK(j == json({nullptr, 3, {{"one", 1}, {"two", 2}}, {1, 2, 3}}));
+            }
+
+            SECTION("sorting an object")
+            {
+                json j({{"one", 1}, {"two", 2}});
+                CHECK_THROWS_AS(std::sort(j.begin(), j.end()), std::domain_error);
+                CHECK_THROWS_WITH(std::sort(j.begin(), j.end()), "cannot use offsets with object iterators");
+            }
+        }
+
+        SECTION("std::partial_sort")
+        {
+            json j = {13, 29, 3, {{"one", 1}, {"two", 2}}, true, false, {1, 2, 3}, "foo", "baz", nullptr};
+            std::partial_sort(j.begin(), j.begin() + 4, j.end());
+            CHECK(j == json({nullptr, false, true, 3, {{"one", 1}, {"two", 2}}, 29, {1, 2, 3}, "foo", "baz", 13}));
+        }
+    }
+
+    SECTION("set operations")
+    {
+        SECTION("std::merge")
+        {
+            {
+                json j1 = {2, 4, 6, 8};
+                json j2 = {1, 2, 3, 5, 7};
+                json j3;
+
+                std::merge(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3));
+                CHECK(j3 == json({1, 2, 2, 3, 4, 5, 6, 7, 8}));
+            }
+        }
+
+        SECTION("std::set_difference")
+        {
+            json j1 = {1, 2, 3, 4, 5, 6, 7, 8};
+            json j2 = {1, 2, 3, 5, 7};
+            json j3;
+
+            std::set_difference(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3));
+            CHECK(j3 == json({4, 6, 8}));
+        }
+
+        SECTION("std::set_intersection")
+        {
+            json j1 = {1, 2, 3, 4, 5, 6, 7, 8};
+            json j2 = {1, 2, 3, 5, 7};
+            json j3;
+
+            std::set_intersection(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3));
+            CHECK(j3 == json({1, 2, 3, 5, 7}));
+        }
+
+        SECTION("std::set_union")
+        {
+            json j1 = {2, 4, 6, 8};
+            json j2 = {1, 2, 3, 5, 7};
+            json j3;
+
+            std::set_union(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3));
+            CHECK(j3 == json({1, 2, 3, 4, 5, 6, 7, 8}));
+        }
+
+        SECTION("std::set_symmetric_difference")
+        {
+            json j1 = {2, 4, 6, 8};
+            json j2 = {1, 2, 3, 5, 7};
+            json j3;
+
+            std::set_symmetric_difference(j1.begin(), j1.end(), j2.begin(), j2.end(), std::back_inserter(j3));
+            CHECK(j3 == json({1, 3, 4, 5, 6, 7, 8}));
+        }
+    }
+
+    SECTION("heap operations")
+    {
+        std::make_heap(j_array.begin(), j_array.end());
+        CHECK(std::is_heap(j_array.begin(), j_array.end()));
+        std::sort_heap(j_array.begin(), j_array.end());
+        CHECK(j_array == json({false, true, 3, 13, 29, {{"one", 1}, {"two", 2}}, {1, 2, 3}, "baz", "foo"}));
+    }
+}
+
+TEST_CASE("concepts")
+{
+    SECTION("container requirements for json")
+    {
+        // X: container class: json
+        // T: type of objects: json
+        // a, b: values of type X: json
+
+        // TABLE 96 - Container Requirements
+
+        // X::value_type must return T
+        CHECK((std::is_same<json::value_type, json>::value));
+
+        // X::reference must return lvalue of T
+        CHECK((std::is_same<json::reference, json&>::value));
+
+        // X::const_reference must return const lvalue of T
+        CHECK((std::is_same<json::const_reference, const json&>::value));
+
+        // X::iterator must return iterator whose value_type is T
+        CHECK((std::is_same<json::iterator::value_type, json>::value));
+        // X::iterator must meet the forward iterator requirements
+        CHECK((std::is_base_of<std::forward_iterator_tag, typename std::iterator_traits<json::iterator>::iterator_category>::value));
+        // X::iterator must be convertible to X::const_iterator
+        CHECK((std::is_convertible<json::iterator, json::const_iterator>::value));
+
+        // X::const_iterator must return iterator whose value_type is T
+        CHECK((std::is_same<json::const_iterator::value_type, json>::value));
+        // X::const_iterator must meet the forward iterator requirements
+        CHECK((std::is_base_of<std::forward_iterator_tag, typename std::iterator_traits<json::const_iterator>::iterator_category>::value));
+
+        // X::difference_type must return a signed integer
+        CHECK((std::is_signed<json::difference_type>::value));
+        // X::difference_type must be identical to X::iterator::difference_type
+        CHECK((std::is_same<json::difference_type, json::iterator::difference_type>::value));
+        // X::difference_type must be identical to X::const_iterator::difference_type
+        CHECK((std::is_same<json::difference_type, json::const_iterator::difference_type>::value));
+
+        // X::size_type must return an unsigned integer
+        CHECK((std::is_unsigned<json::size_type>::value));
+        // X::size_type can represent any non-negative value of X::difference_type
+        CHECK(std::numeric_limits<json::difference_type>::max() <=
+              std::numeric_limits<json::size_type>::max());
+
+        // the expression "X u" has the post-condition "u.empty()"
+        {
+            json u;
+            CHECK(u.empty());
+        }
+
+        // the expression "X()" has the post-condition "X().empty()"
+        CHECK(json().empty());
+    }
+
+    SECTION("class json")
+    {
+        SECTION("DefaultConstructible")
+        {
+            CHECK(std::is_nothrow_default_constructible<json>::value);
+        }
+
+        SECTION("MoveConstructible")
+        {
+            CHECK(std::is_nothrow_move_constructible<json>::value);
+        }
+
+        SECTION("CopyConstructible")
+        {
+            CHECK(std::is_copy_constructible<json>::value);
+        }
+
+        SECTION("MoveAssignable")
+        {
+            CHECK(std::is_nothrow_move_assignable<json>::value);
+        }
+
+        SECTION("CopyAssignable")
+        {
+            CHECK(std::is_copy_assignable<json>::value);
+        }
+
+        SECTION("Destructible")
+        {
+            CHECK(std::is_nothrow_destructible<json>::value);
+        }
+
+        SECTION("StandardLayoutType")
+        {
+            CHECK(std::is_standard_layout<json>::value);
+        }
+    }
+
+    SECTION("class iterator")
+    {
+        SECTION("CopyConstructible")
+        {
+            CHECK(std::is_nothrow_copy_constructible<json::iterator>::value);
+            CHECK(std::is_nothrow_copy_constructible<json::const_iterator>::value);
+        }
+
+        SECTION("CopyAssignable")
+        {
+            // STL iterators used by json::iterator don't pass this test in Debug mode
+#if !defined(_MSC_VER) || (_ITERATOR_DEBUG_LEVEL == 0)
+            CHECK(std::is_nothrow_copy_assignable<json::iterator>::value);
+            CHECK(std::is_nothrow_copy_assignable<json::const_iterator>::value);
+#endif
+        }
+
+        SECTION("Destructible")
+        {
+            CHECK(std::is_nothrow_destructible<json::iterator>::value);
+            CHECK(std::is_nothrow_destructible<json::const_iterator>::value);
+        }
+
+        SECTION("Swappable")
+        {
+            {
+                json j {1, 2, 3};
+                json::iterator it1 = j.begin();
+                json::iterator it2 = j.end();
+                std::swap(it1, it2);
+                CHECK(it1 == j.end());
+                CHECK(it2 == j.begin());
+            }
+            {
+                json j {1, 2, 3};
+                json::const_iterator it1 = j.cbegin();
+                json::const_iterator it2 = j.cend();
+                std::swap(it1, it2);
+                CHECK(it1 == j.end());
+                CHECK(it2 == j.begin());
+            }
+        }
+    }
+}
+
+TEST_CASE("iterator_wrapper")
+{
+    SECTION("object")
+    {
+        SECTION("value")
+        {
+            json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("reference")
+        {
+            json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+
+                        // change the value
+                        i.value() = json(11);
+                        CHECK(i.value() == json(11));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+
+                        // change the value
+                        i.value() = json(22);
+                        CHECK(i.value() == json(22));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+
+            // check if values where changed
+            CHECK(j == json({{"A", 11}, {"B", 22}}));
+        }
+
+        SECTION("const value")
+        {
+            json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (const auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("const reference")
+        {
+            json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (const auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+    }
+
+    SECTION("const object")
+    {
+        SECTION("value")
+        {
+            const json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("reference")
+        {
+            const json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("const value")
+        {
+            const json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (const auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("const reference")
+        {
+            const json j = {{"A", 1}, {"B", 2}};
+            int counter = 1;
+
+            for (const auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "A");
+                        CHECK(i.value() == json(1));
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "B");
+                        CHECK(i.value() == json(2));
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+    }
+
+    SECTION("array")
+    {
+        SECTION("value")
+        {
+            json j = {"A", "B"};
+            int counter = 1;
+
+            for (auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("reference")
+        {
+            json j = {"A", "B"};
+            int counter = 1;
+
+            for (auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+
+                        // change the value
+                        i.value() = "AA";
+                        CHECK(i.value() == "AA");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+
+                        // change the value
+                        i.value() = "BB";
+                        CHECK(i.value() == "BB");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+
+            // check if values where changed
+            CHECK(j == json({"AA", "BB"}));
+        }
+
+        SECTION("const value")
+        {
+            json j = {"A", "B"};
+            int counter = 1;
+
+            for (const auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("const reference")
+        {
+            json j = {"A", "B"};
+            int counter = 1;
+
+            for (const auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+    }
+
+    SECTION("const array")
+    {
+        SECTION("value")
+        {
+            const json j = {"A", "B"};
+            int counter = 1;
+
+            for (auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("reference")
+        {
+            const json j = {"A", "B"};
+            int counter = 1;
+
+            for (auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("const value")
+        {
+            const json j = {"A", "B"};
+            int counter = 1;
+
+            for (const auto i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+
+        SECTION("const reference")
+        {
+            const json j = {"A", "B"};
+            int counter = 1;
+
+            for (const auto& i : json::iterator_wrapper(j))
+            {
+                switch (counter++)
+                {
+                    case 1:
+                    {
+                        CHECK(i.key() == "0");
+                        CHECK(i.value() == "A");
+                        break;
+                    }
+
+                    case 2:
+                    {
+                        CHECK(i.key() == "1");
+                        CHECK(i.value() == "B");
+                        break;
+                    }
+
+                    default:
+                    {
+                        break;
+                    }
+                }
+            }
+
+            CHECK(counter == 3);
+        }
+    }
+
+    SECTION("primitive")
+    {
+        SECTION("value")
+        {
+            json j = 1;
+            int counter = 1;
+
+            for (auto i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+
+        SECTION("reference")
+        {
+            json j = 1;
+            int counter = 1;
+
+            for (auto& i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+
+                // change value
+                i.value() = json(2);
+            }
+
+            CHECK(counter == 2);
+
+            // check if value has changed
+            CHECK(j == json(2));
+        }
+
+        SECTION("const value")
+        {
+            json j = 1;
+            int counter = 1;
+
+            for (const auto i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+
+        SECTION("const reference")
+        {
+            json j = 1;
+            int counter = 1;
+
+            for (const auto& i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+    }
+
+    SECTION("const primitive")
+    {
+        SECTION("value")
+        {
+            const json j = 1;
+            int counter = 1;
+
+            for (auto i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+
+        SECTION("reference")
+        {
+            const json j = 1;
+            int counter = 1;
+
+            for (auto& i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+
+        SECTION("const value")
+        {
+            const json j = 1;
+            int counter = 1;
+
+            for (const auto i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+
+        SECTION("const reference")
+        {
+            const json j = 1;
+            int counter = 1;
+
+            for (const auto& i : json::iterator_wrapper(j))
+            {
+                ++counter;
+                CHECK(i.key() == "");
+                CHECK(i.value() == json(1));
+            }
+
+            CHECK(counter == 2);
+        }
+    }
+}
+
+TEST_CASE("compliance tests from json.org")
+{
+    // test cases are from http://json.org/JSON_checker/
+
+    SECTION("expected failures")
+    {
+        for (auto filename :
+                {
+                    //"test/data/json_tests/fail1.json",
+                    "test/data/json_tests/fail2.json",
+                    "test/data/json_tests/fail3.json",
+                    "test/data/json_tests/fail4.json",
+                    "test/data/json_tests/fail5.json",
+                    "test/data/json_tests/fail6.json",
+                    "test/data/json_tests/fail7.json",
+                    "test/data/json_tests/fail8.json",
+                    "test/data/json_tests/fail9.json",
+                    "test/data/json_tests/fail10.json",
+                    "test/data/json_tests/fail11.json",
+                    "test/data/json_tests/fail12.json",
+                    "test/data/json_tests/fail13.json",
+                    "test/data/json_tests/fail14.json",
+                    "test/data/json_tests/fail15.json",
+                    "test/data/json_tests/fail16.json",
+                    "test/data/json_tests/fail17.json",
+                    //"test/data/json_tests/fail18.json",
+                    "test/data/json_tests/fail19.json",
+                    "test/data/json_tests/fail20.json",
+                    "test/data/json_tests/fail21.json",
+                    "test/data/json_tests/fail22.json",
+                    "test/data/json_tests/fail23.json",
+                    "test/data/json_tests/fail24.json",
+                    "test/data/json_tests/fail25.json",
+                    "test/data/json_tests/fail26.json",
+                    "test/data/json_tests/fail27.json",
+                    "test/data/json_tests/fail28.json",
+                    "test/data/json_tests/fail29.json",
+                    "test/data/json_tests/fail30.json",
+                    "test/data/json_tests/fail31.json",
+                    "test/data/json_tests/fail32.json",
+                    "test/data/json_tests/fail33.json"
+                })
+        {
+            CAPTURE(filename);
+            json j;
+            std::ifstream f(filename);
+            CHECK_THROWS_AS(j << f, std::invalid_argument);
+        }
+    }
+
+    SECTION("expected passes")
+    {
+        for (auto filename :
+                {
+                    "test/data/json_tests/pass1.json",
+                    "test/data/json_tests/pass2.json",
+                    "test/data/json_tests/pass3.json"
+                })
+        {
+            CAPTURE(filename);
+            json j;
+            std::ifstream f(filename);
+            CHECK_NOTHROW(j << f);
+        }
+    }
+}
+
+TEST_CASE("compliance tests from nativejson-benchmark")
+{
+    // test cases from https://github.com/miloyip/nativejson-benchmark/blob/master/src/main.cpp
+
+    SECTION("doubles")
+    {
+        auto TEST_DOUBLE = [](const std::string & json_string, const double expected)
+        {
+            CAPTURE(json_string);
+            CAPTURE(expected);
+            CHECK(json::parse(json_string)[0].get<double>() == Approx(expected));
+        };
+
+        TEST_DOUBLE("[0.0]", 0.0);
+        TEST_DOUBLE("[-0.0]", -0.0);
+        TEST_DOUBLE("[1.0]", 1.0);
+        TEST_DOUBLE("[-1.0]", -1.0);
+        TEST_DOUBLE("[1.5]", 1.5);
+        TEST_DOUBLE("[-1.5]", -1.5);
+        TEST_DOUBLE("[3.1416]", 3.1416);
+        TEST_DOUBLE("[1E10]", 1E10);
+        TEST_DOUBLE("[1e10]", 1e10);
+        TEST_DOUBLE("[1E+10]", 1E+10);
+        TEST_DOUBLE("[1E-10]", 1E-10);
+        TEST_DOUBLE("[-1E10]", -1E10);
+        TEST_DOUBLE("[-1e10]", -1e10);
+        TEST_DOUBLE("[-1E+10]", -1E+10);
+        TEST_DOUBLE("[-1E-10]", -1E-10);
+        TEST_DOUBLE("[1.234E+10]", 1.234E+10);
+        TEST_DOUBLE("[1.234E-10]", 1.234E-10);
+        TEST_DOUBLE("[1.79769e+308]", 1.79769e+308);
+        TEST_DOUBLE("[2.22507e-308]", 2.22507e-308);
+        TEST_DOUBLE("[-1.79769e+308]", -1.79769e+308);
+        TEST_DOUBLE("[-2.22507e-308]", -2.22507e-308);
+        TEST_DOUBLE("[4.9406564584124654e-324]", 4.9406564584124654e-324); // minimum denormal
+        TEST_DOUBLE("[2.2250738585072009e-308]", 2.2250738585072009e-308); // Max subnormal double
+        TEST_DOUBLE("[2.2250738585072014e-308]", 2.2250738585072014e-308); // Min normal positive double
+        TEST_DOUBLE("[1.7976931348623157e+308]", 1.7976931348623157e+308); // Max double
+        TEST_DOUBLE("[1e-10000]", 0.0);                                   // must underflow
+        TEST_DOUBLE("[18446744073709551616]",
+                    18446744073709551616.0);    // 2^64 (max of uint64_t + 1, force to use double)
+        TEST_DOUBLE("[-9223372036854775809]",
+                    -9223372036854775809.0);    // -2^63 - 1(min of int64_t + 1, force to use double)
+        TEST_DOUBLE("[0.9868011474609375]",
+                    0.9868011474609375);          // https://github.com/miloyip/rapidjson/issues/120
+        TEST_DOUBLE("[123e34]", 123e34);                                  // Fast Path Cases In Disguise
+        TEST_DOUBLE("[45913141877270640000.0]", 45913141877270640000.0);
+        TEST_DOUBLE("[2.2250738585072011e-308]",
+                    2.2250738585072011e-308);
+        //TEST_DOUBLE("[1e-00011111111111]", 0.0);
+        //TEST_DOUBLE("[-1e-00011111111111]", -0.0);
+        TEST_DOUBLE("[1e-214748363]", 0.0);
+        TEST_DOUBLE("[1e-214748364]", 0.0);
+        //TEST_DOUBLE("[1e-21474836311]", 0.0);
+        TEST_DOUBLE("[0.017976931348623157e+310]", 1.7976931348623157e+308); // Max double in another form
+
+        // Since
+        // abs((2^-1022 - 2^-1074) - 2.2250738585072012e-308) = 3.109754131239141401123495768877590405345064751974375599... ¡Á 10^-324
+        // abs((2^-1022) - 2.2250738585072012e-308) = 1.830902327173324040642192159804623318305533274168872044... ¡Á 10 ^ -324
+        // So 2.2250738585072012e-308 should round to 2^-1022 = 2.2250738585072014e-308
+        TEST_DOUBLE("[2.2250738585072012e-308]",
+                    2.2250738585072014e-308);
+
+        // More closer to normal/subnormal boundary
+        // boundary = 2^-1022 - 2^-1075 = 2.225073858507201136057409796709131975934819546351645648... ¡Á 10^-308
+        TEST_DOUBLE("[2.22507385850720113605740979670913197593481954635164564e-308]",
+                    2.2250738585072009e-308);
+        TEST_DOUBLE("[2.22507385850720113605740979670913197593481954635164565e-308]",
+                    2.2250738585072014e-308);
+
+        // 1.0 is in (1.0 - 2^-54, 1.0 + 2^-53)
+        // 1.0 - 2^-54 = 0.999999999999999944488848768742172978818416595458984375
+        TEST_DOUBLE("[0.999999999999999944488848768742172978818416595458984375]", 1.0); // round to even
+        TEST_DOUBLE("[0.999999999999999944488848768742172978818416595458984374]",
+                    0.99999999999999989); // previous double
+        TEST_DOUBLE("[0.999999999999999944488848768742172978818416595458984376]", 1.0); // next double
+        // 1.0 + 2^-53 = 1.00000000000000011102230246251565404236316680908203125
+        TEST_DOUBLE("[1.00000000000000011102230246251565404236316680908203125]", 1.0); // round to even
+        TEST_DOUBLE("[1.00000000000000011102230246251565404236316680908203124]", 1.0); // previous double
+        TEST_DOUBLE("[1.00000000000000011102230246251565404236316680908203126]",
+                    1.00000000000000022); // next double
+
+        // Numbers from https://github.com/floitsch/double-conversion/blob/master/test/cctest/test-strtod.cc
+
+        TEST_DOUBLE("[72057594037927928.0]", 72057594037927928.0);
+        TEST_DOUBLE("[72057594037927936.0]", 72057594037927936.0);
+        TEST_DOUBLE("[72057594037927932.0]", 72057594037927936.0);
+        TEST_DOUBLE("[7205759403792793199999e-5]", 72057594037927928.0);
+        TEST_DOUBLE("[7205759403792793200001e-5]", 72057594037927936.0);
+
+        TEST_DOUBLE("[9223372036854774784.0]", 9223372036854774784.0);
+        TEST_DOUBLE("[9223372036854775808.0]", 9223372036854775808.0);
+        TEST_DOUBLE("[9223372036854775296.0]", 9223372036854775808.0);
+        TEST_DOUBLE("[922337203685477529599999e-5]", 9223372036854774784.0);
+        TEST_DOUBLE("[922337203685477529600001e-5]", 9223372036854775808.0);
+
+        TEST_DOUBLE("[10141204801825834086073718800384]", 10141204801825834086073718800384.0);
+        TEST_DOUBLE("[10141204801825835211973625643008]", 10141204801825835211973625643008.0);
+        TEST_DOUBLE("[10141204801825834649023672221696]", 10141204801825835211973625643008.0);
+        TEST_DOUBLE("[1014120480182583464902367222169599999e-5]", 10141204801825834086073718800384.0);
+        TEST_DOUBLE("[1014120480182583464902367222169600001e-5]", 10141204801825835211973625643008.0);
+
+        TEST_DOUBLE("[5708990770823838890407843763683279797179383808]",
+                    5708990770823838890407843763683279797179383808.0);
+        TEST_DOUBLE("[5708990770823839524233143877797980545530986496]",
+                    5708990770823839524233143877797980545530986496.0);
+        TEST_DOUBLE("[5708990770823839207320493820740630171355185152]",
+                    5708990770823839524233143877797980545530986496.0);
+        TEST_DOUBLE("[5708990770823839207320493820740630171355185151999e-3]",
+                    5708990770823838890407843763683279797179383808.0);
+        TEST_DOUBLE("[5708990770823839207320493820740630171355185152001e-3]",
+                    5708990770823839524233143877797980545530986496.0);
+
+        {
+            char n1e308[312];   // '1' followed by 308 '0'
+            n1e308[0] = '[';
+            n1e308[1] = '1';
+            for (int j = 2; j < 310; j++)
+            {
+                n1e308[j] = '0';
+            }
+            n1e308[310] = ']';
+            n1e308[311] = '\0';
+            TEST_DOUBLE(n1e308, 1E308);
+        }
+
+        // Cover trimming
+        TEST_DOUBLE(
+            "[2.22507385850720113605740979670913197593481954635164564802342610972482222202107694551652952390813508"
+            "7914149158913039621106870086438694594645527657207407820621743379988141063267329253552286881372149012"
+            "9811224514518898490572223072852551331557550159143974763979834118019993239625482890171070818506906306"
+            "6665599493827577257201576306269066333264756530000924588831643303777979186961204949739037782970490505"
+            "1080609940730262937128958950003583799967207254304360284078895771796150945516748243471030702609144621"
+            "5722898802581825451803257070188608721131280795122334262883686223215037756666225039825343359745688844"
+            "2390026549819838548794829220689472168983109969836584681402285424333066033985088644580400103493397042"
+            "7567186443383770486037861622771738545623065874679014086723327636718751234567890123456789012345678901"
+            "e-308]",
+            2.2250738585072014e-308);
+    }
+
+    SECTION("strings")
+    {
+        auto TEST_STRING = [](const std::string & json_string, const std::string & expected)
+        {
+            CAPTURE(json_string);
+            CAPTURE(expected);
+            CHECK(json::parse(json_string)[0].get<std::string>() == expected);
+        };
+
+        TEST_STRING("[\"\"]", "");
+        TEST_STRING("[\"Hello\"]", "Hello");
+        TEST_STRING("[\"Hello\\nWorld\"]", "Hello\nWorld");
+        //TEST_STRING("[\"Hello\\u0000World\"]", "Hello\0World");
+        TEST_STRING("[\"\\\"\\\\/\\b\\f\\n\\r\\t\"]", "\"\\/\b\f\n\r\t");
+        TEST_STRING("[\"\\u0024\"]", "\x24");         // Dollar sign U+0024
+        TEST_STRING("[\"\\u00A2\"]", "\xC2\xA2");     // Cents sign U+00A2
+        TEST_STRING("[\"\\u20AC\"]", "\xE2\x82\xAC"); // Euro sign U+20AC
+        TEST_STRING("[\"\\uD834\\uDD1E\"]", "\xF0\x9D\x84\x9E");  // G clef sign U+1D11E
+    }
+
+    SECTION("roundtrip")
+    {
+        // test cases are from https://github.com/miloyip/nativejson-benchmark/tree/master/test/data/roundtrip
+
+        for (auto filename :
+                {
+                    "test/data/json_roundtrip/roundtrip01.json",
+                    "test/data/json_roundtrip/roundtrip02.json",
+                    "test/data/json_roundtrip/roundtrip03.json",
+                    "test/data/json_roundtrip/roundtrip04.json",
+                    "test/data/json_roundtrip/roundtrip05.json",
+                    "test/data/json_roundtrip/roundtrip06.json",
+                    "test/data/json_roundtrip/roundtrip07.json",
+                    "test/data/json_roundtrip/roundtrip08.json",
+                    "test/data/json_roundtrip/roundtrip09.json",
+                    "test/data/json_roundtrip/roundtrip10.json",
+                    "test/data/json_roundtrip/roundtrip11.json",
+                    "test/data/json_roundtrip/roundtrip12.json",
+                    "test/data/json_roundtrip/roundtrip13.json",
+                    "test/data/json_roundtrip/roundtrip14.json",
+                    "test/data/json_roundtrip/roundtrip15.json",
+                    "test/data/json_roundtrip/roundtrip16.json",
+                    "test/data/json_roundtrip/roundtrip17.json",
+                    "test/data/json_roundtrip/roundtrip18.json",
+                    "test/data/json_roundtrip/roundtrip19.json",
+                    "test/data/json_roundtrip/roundtrip20.json",
+                    "test/data/json_roundtrip/roundtrip21.json",
+                    "test/data/json_roundtrip/roundtrip22.json",
+                    "test/data/json_roundtrip/roundtrip23.json",
+                    "test/data/json_roundtrip/roundtrip24.json",
+                    "test/data/json_roundtrip/roundtrip25.json",
+                    "test/data/json_roundtrip/roundtrip26.json",
+                    "test/data/json_roundtrip/roundtrip27.json",
+                    "test/data/json_roundtrip/roundtrip28.json",
+                    "test/data/json_roundtrip/roundtrip29.json",
+                    "test/data/json_roundtrip/roundtrip30.json",
+                    "test/data/json_roundtrip/roundtrip31.json",
+                    "test/data/json_roundtrip/roundtrip32.json"
+                })
+        {
+            CAPTURE(filename);
+            std::ifstream f(filename);
+            std::string json_string( (std::istreambuf_iterator<char>(f) ),
+                                     (std::istreambuf_iterator<char>()) );
+
+            json j = json::parse(json_string);
+            CHECK(j.dump() == json_string);
+        }
+    }
+}
+
+TEST_CASE("test suite from json-test-suite")
+{
+    SECTION("read all sample.json")
+    {
+        // read a file with all unicode characters stored as single-character
+        // strings in a JSON array
+        std::ifstream f("test/data/json_testsuite/sample.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+
+        // the array has 3 elements
+        CHECK(j.size() == 3);
+    }
+}
+
+TEST_CASE("json.org examples")
+{
+    // here, we list all JSON values from http://json.org/example
+
+    SECTION("1.json")
+    {
+        std::ifstream f("test/data/json.org/1.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+
+    SECTION("2.json")
+    {
+        std::ifstream f("test/data/json.org/2.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+
+    SECTION("3.json")
+    {
+        std::ifstream f("test/data/json.org/3.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+
+    SECTION("4.json")
+    {
+        std::ifstream f("test/data/json.org/4.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+
+    SECTION("5.json")
+    {
+        std::ifstream f("test/data/json.org/5.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+}
+
+TEST_CASE("RFC 7159 examples")
+{
+    // here, we list all JSON values from the RFC 7159 document
+
+    SECTION("7. Strings")
+    {
+        CHECK(json::parse("\"\\u005C\"") == json("\\"));
+        CHECK(json::parse("\"\\uD834\\uDD1E\"") == json("𝄞"));
+        CHECK(json::parse("\"𝄞\"") == json("𝄞"));
+    }
+
+    SECTION("8.3 String Comparison")
+    {
+        CHECK(json::parse("\"a\\b\"") == json::parse("\"a\u005Cb\""));
+    }
+
+    SECTION("13 Examples")
+    {
+        {
+            CHECK_NOTHROW(json(R"(
+            {
+                 "Image": {
+                     "Width":  800,
+                     "Height": 600,
+                     "Title":  "View from 15th Floor",
+                     "Thumbnail": {
+                         "Url":    "http://www.example.com/image/481989943",
+                         "Height": 125,
+                         "Width":  100
+                     },
+                     "Animated" : false,
+                     "IDs": [116, 943, 234, 38793]
+                   }
+               }
+            )"));
+        }
+
+        {
+            CHECK_NOTHROW(json(R"(
+                [
+                    {
+                       "precision": "zip",
+                       "Latitude":  37.7668,
+                       "Longitude": -122.3959,
+                       "Address":   "",
+                       "City":      "SAN FRANCISCO",
+                       "State":     "CA",
+                       "Zip":       "94107",
+                       "Country":   "US"
+                    },
+                    {
+                       "precision": "zip",
+                       "Latitude":  37.371991,
+                       "Longitude": -122.026020,
+                       "Address":   "",
+                       "City":      "SUNNYVALE",
+                       "State":     "CA",
+                       "Zip":       "94085",
+                       "Country":   "US"
+                    }
+            ])"));
+        }
+
+        CHECK(json::parse("\"Hello world!\"") == json("Hello world!"));
+        CHECK(json::parse("42") == json(42));
+        CHECK(json::parse("true") == json(true));
+    }
+}
+
+TEST_CASE("Unicode", "[hide]")
+{
+    SECTION("full enumeration of Unicode codepoints")
+    {
+        // create a string from a codepoint
+        auto codepoint_to_unicode = [](std::size_t cp)
+        {
+            char* buffer = new char[10];
+            sprintf(buffer, "\\u%04lx", cp);
+            std::string result(buffer);
+            delete[] buffer;
+            return result;
+        };
+
+        // generate all codepoints
+        for (std::size_t cp = 0; cp <= 0x10FFFFu; ++cp)
+        {
+            // The Unicode standard permanently reserves these code point
+            // values for UTF-16 encoding of the high and low surrogates, and
+            // they will never be assigned a character, so there should be no
+            // reason to encode them. The official Unicode standard says that
+            // no UTF forms, including UTF-16, can encode these code points.
+            if (cp >= 0xD800u and cp <= 0xDFFFu)
+            {
+                continue;
+            }
+
+            std::string res;
+
+            if (cp < 0x10000u)
+            {
+                // codepoint can be represented with 16 bit
+                res += codepoint_to_unicode(cp);
+            }
+            else
+            {
+                // codepoint can be represented with a pair
+                res += codepoint_to_unicode(0xd800u + (((cp - 0x10000u) >> 10) & 0x3ffu));
+                res += codepoint_to_unicode(0xdc00u + ((cp - 0x10000u) & 0x3ffu));
+            }
+
+            try
+            {
+                json j1, j2;
+                CHECK_NOTHROW(j1 = json::parse("\"" + res + "\""));
+                CHECK_NOTHROW(j2 = json::parse(j1.dump()));
+                CHECK(j1 == j2);
+            }
+            catch (std::invalid_argument)
+            {
+                // we ignore parsing errors
+            }
+        }
+    }
+
+    SECTION("read all unicode characters")
+    {
+        // read a file with all unicode characters stored as single-character
+        // strings in a JSON array
+        std::ifstream f("test/data/json_nlohmann_tests/all_unicode.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+
+        // the array has 1112064 + 1 elemnts (a terminating "null" value)
+        CHECK(j.size() == 1112065);
+
+        SECTION("check JSON Pointers")
+        {
+            for (auto s : j)
+            {
+                // skip non-string JSON values
+                if (not s.is_string())
+                {
+                    continue;
+                }
+
+                std::string ptr = s;
+
+                // tilde must be followed by 0 or 1
+                if (ptr == "~")
+                {
+                    ptr += "0";
+                }
+
+                // JSON Pointers must begin with "/"
+                ptr = "/" + ptr;
+
+                CHECK_NOTHROW(json::json_pointer("/" + ptr));
+
+                // check escape/unescape roundtrip
+                auto escaped = json::json_pointer::escape(ptr);
+                json::json_pointer::unescape(escaped);
+                CHECK(escaped == ptr);
+            }
+        }
+    }
+
+    SECTION("ignore byte-order-mark")
+    {
+        // read a file with a UTF-8 BOM
+        std::ifstream f("test/data/json_nlohmann_tests/bom.json");
+        json j;
+        CHECK_NOTHROW(j << f);
+    }
+
+    SECTION("error for incomplete/wrong BOM")
+    {
+        CHECK_THROWS_AS(json::parse("\xef\xbb"), std::invalid_argument);
+        CHECK_THROWS_AS(json::parse("\xef\xbb\xbb"), std::invalid_argument);
+    }
+}
+
+TEST_CASE("JSON pointers")
+{
+    SECTION("errors")
+    {
+        CHECK_THROWS_AS(json::json_pointer("foo"), std::domain_error);
+        CHECK_THROWS_WITH(json::json_pointer("foo"), "JSON pointer must be empty or begin with '/'");
+
+        CHECK_THROWS_AS(json::json_pointer("/~~"), std::domain_error);
+        CHECK_THROWS_WITH(json::json_pointer("/~~"), "escape error: '~' must be followed with '0' or '1'");
+
+        CHECK_THROWS_AS(json::json_pointer("/~"), std::domain_error);
+        CHECK_THROWS_WITH(json::json_pointer("/~"), "escape error: '~' must be followed with '0' or '1'");
+
+        json::json_pointer p;
+        CHECK_THROWS_AS(p.top(), std::domain_error);
+        CHECK_THROWS_WITH(p.top(), "JSON pointer has no parent");
+        CHECK_THROWS_AS(p.pop_back(), std::domain_error);
+        CHECK_THROWS_WITH(p.pop_back(), "JSON pointer has no parent");
+    }
+
+    SECTION("examples from RFC 6901")
+    {
+        SECTION("nonconst access")
+        {
+            json j = R"(
+            {
+                "foo": ["bar", "baz"],
+                "": 0,
+                "a/b": 1,
+                "c%d": 2,
+                "e^f": 3,
+                "g|h": 4,
+                "i\\j": 5,
+                "k\"l": 6,
+                " ": 7,
+                "m~n": 8
+            }
+            )"_json;
+
+            // the whole document
+            CHECK(j[json::json_pointer()] == j);
+            CHECK(j[json::json_pointer("")] == j);
+
+            // array access
+            CHECK(j[json::json_pointer("/foo")] == j["foo"]);
+            CHECK(j[json::json_pointer("/foo/0")] == j["foo"][0]);
+            CHECK(j[json::json_pointer("/foo/1")] == j["foo"][1]);
+            CHECK(j["/foo/1"_json_pointer] == j["foo"][1]);
+
+            // checked array access
+            CHECK(j.at(json::json_pointer("/foo/0")) == j["foo"][0]);
+            CHECK(j.at(json::json_pointer("/foo/1")) == j["foo"][1]);
+
+            // empty string access
+            CHECK(j[json::json_pointer("/")] == j[""]);
+
+            // other cases
+            CHECK(j[json::json_pointer("/ ")] == j[" "]);
+            CHECK(j[json::json_pointer("/c%d")] == j["c%d"]);
+            CHECK(j[json::json_pointer("/e^f")] == j["e^f"]);
+            CHECK(j[json::json_pointer("/g|h")] == j["g|h"]);
+            CHECK(j[json::json_pointer("/i\\j")] == j["i\\j"]);
+            CHECK(j[json::json_pointer("/k\"l")] == j["k\"l"]);
+
+            // checked access
+            CHECK(j.at(json::json_pointer("/ ")) == j[" "]);
+            CHECK(j.at(json::json_pointer("/c%d")) == j["c%d"]);
+            CHECK(j.at(json::json_pointer("/e^f")) == j["e^f"]);
+            CHECK(j.at(json::json_pointer("/g|h")) == j["g|h"]);
+            CHECK(j.at(json::json_pointer("/i\\j")) == j["i\\j"]);
+            CHECK(j.at(json::json_pointer("/k\"l")) == j["k\"l"]);
+
+            // escaped access
+            CHECK(j[json::json_pointer("/a~1b")] == j["a/b"]);
+            CHECK(j[json::json_pointer("/m~0n")] == j["m~n"]);
+
+            // unescaped access
+            CHECK_THROWS_AS(j[json::json_pointer("/a/b")], std::out_of_range);
+            CHECK_THROWS_WITH(j[json::json_pointer("/a/b")], "unresolved reference token 'b'");
+            // "/a/b" works for JSON {"a": {"b": 42}}
+            CHECK(json({{"a", {{"b", 42}}}})[json::json_pointer("/a/b")] == json(42));
+
+            // unresolved access
+            json j_primitive = 1;
+            CHECK_THROWS_AS(j_primitive["/foo"_json_pointer], std::out_of_range);
+            CHECK_THROWS_WITH(j_primitive["/foo"_json_pointer], "unresolved reference token 'foo'");
+            CHECK_THROWS_AS(j_primitive.at("/foo"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j_primitive.at("/foo"_json_pointer), "unresolved reference token 'foo'");
+        }
+
+        SECTION("const access")
+        {
+            const json j = R"(
+            {
+                "foo": ["bar", "baz"],
+                "": 0,
+                "a/b": 1,
+                "c%d": 2,
+                "e^f": 3,
+                "g|h": 4,
+                "i\\j": 5,
+                "k\"l": 6,
+                " ": 7,
+                "m~n": 8
+            }
+            )"_json;
+
+            // the whole document
+            CHECK(j[json::json_pointer()] == j);
+            CHECK(j[json::json_pointer("")] == j);
+
+            // array access
+            CHECK(j[json::json_pointer("/foo")] == j["foo"]);
+            CHECK(j[json::json_pointer("/foo/0")] == j["foo"][0]);
+            CHECK(j[json::json_pointer("/foo/1")] == j["foo"][1]);
+            CHECK(j["/foo/1"_json_pointer] == j["foo"][1]);
+
+            // checked array access
+            CHECK(j.at(json::json_pointer("/foo/0")) == j["foo"][0]);
+            CHECK(j.at(json::json_pointer("/foo/1")) == j["foo"][1]);
+
+            // empty string access
+            CHECK(j[json::json_pointer("/")] == j[""]);
+
+            // other cases
+            CHECK(j[json::json_pointer("/ ")] == j[" "]);
+            CHECK(j[json::json_pointer("/c%d")] == j["c%d"]);
+            CHECK(j[json::json_pointer("/e^f")] == j["e^f"]);
+            CHECK(j[json::json_pointer("/g|h")] == j["g|h"]);
+            CHECK(j[json::json_pointer("/i\\j")] == j["i\\j"]);
+            CHECK(j[json::json_pointer("/k\"l")] == j["k\"l"]);
+
+            // checked access
+            CHECK(j.at(json::json_pointer("/ ")) == j[" "]);
+            CHECK(j.at(json::json_pointer("/c%d")) == j["c%d"]);
+            CHECK(j.at(json::json_pointer("/e^f")) == j["e^f"]);
+            CHECK(j.at(json::json_pointer("/g|h")) == j["g|h"]);
+            CHECK(j.at(json::json_pointer("/i\\j")) == j["i\\j"]);
+            CHECK(j.at(json::json_pointer("/k\"l")) == j["k\"l"]);
+
+            // escaped access
+            CHECK(j[json::json_pointer("/a~1b")] == j["a/b"]);
+            CHECK(j[json::json_pointer("/m~0n")] == j["m~n"]);
+
+            // unescaped access
+            CHECK_THROWS_AS(j.at(json::json_pointer("/a/b")), std::out_of_range);
+            CHECK_THROWS_WITH(j.at(json::json_pointer("/a/b")), "key 'a' not found");
+
+            // unresolved access
+            const json j_primitive = 1;
+            CHECK_THROWS_AS(j_primitive["/foo"_json_pointer], std::out_of_range);
+            CHECK_THROWS_WITH(j_primitive["/foo"_json_pointer], "unresolved reference token 'foo'");
+            CHECK_THROWS_AS(j_primitive.at("/foo"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j_primitive.at("/foo"_json_pointer), "unresolved reference token 'foo'");
+        }
+
+        SECTION("user-defined string literal")
+        {
+            json j = R"(
+            {
+                "foo": ["bar", "baz"],
+                "": 0,
+                "a/b": 1,
+                "c%d": 2,
+                "e^f": 3,
+                "g|h": 4,
+                "i\\j": 5,
+                "k\"l": 6,
+                " ": 7,
+                "m~n": 8
+            }
+            )"_json;
+
+            // the whole document
+            CHECK(j[""_json_pointer] == j);
+
+            // array access
+            CHECK(j["/foo"_json_pointer] == j["foo"]);
+            CHECK(j["/foo/0"_json_pointer] == j["foo"][0]);
+            CHECK(j["/foo/1"_json_pointer] == j["foo"][1]);
+        }
+    }
+
+    SECTION("array access")
+    {
+        SECTION("nonconst access")
+        {
+            json j = {1, 2, 3};
+            const json j_const = j;
+
+            // check reading access
+            CHECK(j["/0"_json_pointer] == j[0]);
+            CHECK(j["/1"_json_pointer] == j[1]);
+            CHECK(j["/2"_json_pointer] == j[2]);
+
+            // assign to existing index
+            j["/1"_json_pointer] = 13;
+            CHECK(j[1] == json(13));
+
+            // assign to nonexisting index
+            j["/3"_json_pointer] = 33;
+            CHECK(j[3] == json(33));
+
+            // assign to nonexisting index (with gap)
+            j["/5"_json_pointer] = 55;
+            CHECK(j == json({1, 13, 3, 33, nullptr, 55}));
+
+            // error with leading 0
+            CHECK_THROWS_AS(j["/01"_json_pointer], std::domain_error);
+            CHECK_THROWS_WITH(j["/01"_json_pointer], "array index must not begin with '0'");
+            CHECK_THROWS_AS(j_const["/01"_json_pointer], std::domain_error);
+            CHECK_THROWS_WITH(j_const["/01"_json_pointer], "array index must not begin with '0'");
+            CHECK_THROWS_AS(j.at("/01"_json_pointer), std::domain_error);
+            CHECK_THROWS_WITH(j.at("/01"_json_pointer), "array index must not begin with '0'");
+            CHECK_THROWS_AS(j_const.at("/01"_json_pointer), std::domain_error);
+            CHECK_THROWS_WITH(j_const.at("/01"_json_pointer), "array index must not begin with '0'");
+
+            // error with incorrect numbers
+            CHECK_THROWS_AS(j["/one"_json_pointer] = 1, std::invalid_argument);
+
+            // assign to "-"
+            j["/-"_json_pointer] = 99;
+            CHECK(j == json({1, 13, 3, 33, nullptr, 55, 99}));
+
+            // error when using "-" in const object
+            CHECK_THROWS_AS(j_const["/-"_json_pointer], std::out_of_range);
+            CHECK_THROWS_WITH(j_const["/-"_json_pointer], "array index '-' (3) is out of range");
+
+            // error when using "-" with at
+            CHECK_THROWS_AS(j.at("/-"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j.at("/-"_json_pointer), "array index '-' (7) is out of range");
+            CHECK_THROWS_AS(j_const.at("/-"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j_const.at("/-"_json_pointer), "array index '-' (3) is out of range");
+        }
+
+        SECTION("const access")
+        {
+            const json j = {1, 2, 3};
+
+            // check reading access
+            CHECK(j["/0"_json_pointer] == j[0]);
+            CHECK(j["/1"_json_pointer] == j[1]);
+            CHECK(j["/2"_json_pointer] == j[2]);
+
+            // assign to nonexisting index
+            CHECK_THROWS_AS(j.at("/3"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j.at("/3"_json_pointer), "array index 3 is out of range");
+
+            // assign to nonexisting index (with gap)
+            CHECK_THROWS_AS(j.at("/5"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j.at("/5"_json_pointer), "array index 5 is out of range");
+
+            // assign to "-"
+            CHECK_THROWS_AS(j["/-"_json_pointer], std::out_of_range);
+            CHECK_THROWS_WITH(j["/-"_json_pointer], "array index '-' (3) is out of range");
+            CHECK_THROWS_AS(j.at("/-"_json_pointer), std::out_of_range);
+            CHECK_THROWS_WITH(j.at("/-"_json_pointer), "array index '-' (3) is out of range");
+        }
+
+    }
+
+    SECTION("flatten")
+    {
+        json j =
+        {
+            {"pi", 3.141},
+            {"happy", true},
+            {"name", "Niels"},
+            {"nothing", nullptr},
+            {
+                "answer", {
+                    {"everything", 42}
+                }
+            },
+            {"list", {1, 0, 2}},
+            {
+                "object", {
+                    {"currency", "USD"},
+                    {"value", 42.99},
+                    {"", "empty string"},
+                    {"/", "slash"},
+                    {"~", "tilde"},
+                    {"~1", "tilde1"}
+                }
+            }
+        };
+
+        json j_flatten =
+        {
+            {"/pi", 3.141},
+            {"/happy", true},
+            {"/name", "Niels"},
+            {"/nothing", nullptr},
+            {"/answer/everything", 42},
+            {"/list/0", 1},
+            {"/list/1", 0},
+            {"/list/2", 2},
+            {"/object/currency", "USD"},
+            {"/object/value", 42.99},
+            {"/object/", "empty string"},
+            {"/object/~1", "slash"},
+            {"/object/~0", "tilde"},
+            {"/object/~01", "tilde1"}
+        };
+
+        // check if flattened result is as expected
+        CHECK(j.flatten() == j_flatten);
+
+        // check if unflattened result is as expected
+        CHECK(j_flatten.unflatten() == j);
+
+        // error for nonobjects
+        CHECK_THROWS_AS(json(1).unflatten(), std::domain_error);
+        CHECK_THROWS_WITH(json(1).unflatten(), "only objects can be unflattened");
+
+        // error for nonprimitve values
+        CHECK_THROWS_AS(json({{"/1", {1, 2, 3}}}).unflatten(), std::domain_error);
+        CHECK_THROWS_WITH(json({{"/1", {1, 2, 3}}}).unflatten(), "values in object must be primitive");
+
+        // error for conflicting values
+        json j_error = {{"", 42}, {"/foo", 17}};
+        CHECK_THROWS_AS(j_error.unflatten(), std::domain_error);
+        CHECK_THROWS_WITH(j_error.unflatten(), "invalid value to unflatten");
+
+        // explicit roundtrip check
+        CHECK(j.flatten().unflatten() == j);
+
+        // roundtrip for primitive values
+        json j_null;
+        CHECK(j_null.flatten().unflatten() == j_null);
+        json j_number = 42;
+        CHECK(j_number.flatten().unflatten() == j_number);
+        json j_boolean = false;
+        CHECK(j_boolean.flatten().unflatten() == j_boolean);
+        json j_string = "foo";
+        CHECK(j_string.flatten().unflatten() == j_string);
+
+        // roundtrip for empty structured values (will be unflattened to null)
+        json j_array(json::value_t::array);
+        CHECK(j_array.flatten().unflatten() == json());
+        json j_object(json::value_t::object);
+        CHECK(j_object.flatten().unflatten() == json());
+    }
+
+    SECTION("string representation")
+    {
+        for (auto ptr :
+                {"", "/foo", "/foo/0", "/", "/a~1b", "/c%d", "/e^f", "/g|h", "/i\\j", "/k\"l", "/ ", "/m~0n"
+                })
+        {
+            CHECK(json::json_pointer(ptr).to_string() == ptr);
+        }
+    }
+}
+
+TEST_CASE("JSON patch")
+{
+    SECTION("examples from RFC 6902")
+    {
+        SECTION("4. Operations")
+        {
+            // the ordering of members in JSON objects is not significant:
+            json op1 = R"({ "op": "add", "path": "/a/b/c", "value": "foo" })"_json;
+            json op2 = R"({ "path": "/a/b/c", "op": "add", "value": "foo" })"_json;
+            json op3 = R"({ "value": "foo", "path": "/a/b/c", "op": "add" })"_json;
+
+            // check if the operation objects are equivalent
+            CHECK(op1 == op2);
+            CHECK(op1 == op3);
+        }
+
+        SECTION("4.1 add")
+        {
+            json patch = R"([{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] }])"_json;
+
+            // However, the object itself or an array containing it does need
+            // to exist, and it remains an error for that not to be the case.
+            // For example, an "add" with a target location of "/a/b" starting
+            // with this document
+            json doc1 = R"({ "a": { "foo": 1 } })"_json;
+
+            // is not an error, because "a" exists, and "b" will be added to
+            // its value.
+            CHECK_NOTHROW(doc1.patch(patch));
+            CHECK(doc1.patch(patch) == R"(
+                {
+                    "a": {
+                        "foo": 1,
+                        "b": {
+                            "c": [ "foo", "bar" ]
+                        }
+                    }
+                }
+            )"_json);
+
+            // It is an error in this document:
+            json doc2 = R"({ "q": { "bar": 2 } })"_json;
+
+            // because "a" does not exist.
+            CHECK_THROWS_AS(doc2.patch(patch), std::out_of_range);
+            CHECK_THROWS_WITH(doc2.patch(patch), "key 'a' not found");
+        }
+
+        SECTION("4.2 remove")
+        {
+            // If removing an element from an array, any elements above the
+            // specified index are shifted one position to the left.
+            json doc = {1, 2, 3, 4};
+            json patch = {{{"op", "remove"}, {"path", "/1"}}};
+            CHECK(doc.patch(patch) == json({1, 3, 4}));
+        }
+
+        SECTION("A.1. Adding an Object Member")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": "bar"}
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "add", "path": "/baz", "value": "qux" }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    {
+                        "baz": "qux",
+                        "foo": "bar"
+                    }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.2. Adding an Array Element")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": [ "bar", "baz" ] }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "add", "path": "/foo/1", "value": "qux" }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    { "foo": [ "bar", "qux", "baz" ] }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.3. Removing an Object Member")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    {
+                        "baz": "qux",
+                        "foo": "bar"
+                    }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "remove", "path": "/baz" }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    { "foo": "bar" }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.4. Removing an Array Element")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": [ "bar", "qux", "baz" ] }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "remove", "path": "/foo/1" }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    { "foo": [ "bar", "baz" ] }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.5. Replacing a Value")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    {
+                        "baz": "qux",
+                        "foo": "bar"
+                    }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "replace", "path": "/baz", "value": "boo" }
+                    ]
+                )"_json;
+
+            json expected = R"(
+                    {
+                        "baz": "boo",
+                        "foo": "bar"
+                    }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.6. Moving a Value")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    {
+                        "foo": {
+                           "bar": "baz",
+                            "waldo": "fred"
+                        },
+                        "qux": {
+                            "corge": "grault"
+                        }
+                    }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "move", "from": "/foo/waldo", "path": "/qux/thud" }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    {
+                        "foo": {
+                           "bar": "baz"
+                        },
+                        "qux": {
+                            "corge": "grault",
+                            "thud": "fred"
+                        }
+                    }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.7. Moving a Value")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": [ "all", "grass", "cows", "eat" ] }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "move", "from": "/foo/1", "path": "/foo/3" }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    { "foo": [ "all", "cows", "eat", "grass" ] }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.8. Testing a Value: Success")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    {
+                         "baz": "qux",
+                         "foo": [ "a", 2, "c" ]
+                    }
+                )"_json;
+
+            // A JSON Patch document that will result in successful evaluation:
+            json patch = R"(
+                    [
+                        { "op": "test", "path": "/baz", "value": "qux" },
+                        { "op": "test", "path": "/foo/1", "value": 2 }
+                    ]
+                )"_json;
+
+            // check if evaluation does not throw
+            CHECK_NOTHROW(doc.patch(patch));
+            // check if patched document is unchanged
+            CHECK(doc.patch(patch) == doc);
+        }
+
+        SECTION("A.9. Testing a Value: Error")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "baz": "qux" }
+                )"_json;
+
+            // A JSON Patch document that will result in an error condition:
+            json patch = R"(
+                    [
+                        { "op": "test", "path": "/baz", "value": "bar" }
+                    ]
+                )"_json;
+
+            // check that evaluation throws
+            CHECK_THROWS_AS(doc.patch(patch), std::domain_error);
+            CHECK_THROWS_WITH(doc.patch(patch), "unsuccessful: " + patch[0].dump());
+        }
+
+        SECTION("A.10. Adding a Nested Member Object")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": "bar" }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "add", "path": "/child", "value": { "grandchild": { } } }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                {
+                    "foo": "bar",
+                    "child": {
+                        "grandchild": {
+                        }
+                    }
+                }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.11. Ignoring Unrecognized Elements")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": "bar" }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "add", "path": "/baz", "value": "qux", "xyz": 123 }
+                    ]
+                )"_json;
+
+            json expected = R"(
+                    {
+                        "foo": "bar",
+                        "baz": "qux"
+                    } 
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.12. Adding to a Nonexistent Target")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": "bar" }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "add", "path": "/baz/bat", "value": "qux" }
+                    ]
+                )"_json;
+
+            // This JSON Patch document, applied to the target JSON document
+            // above, would result in an error (therefore, it would not be
+            // applied), because the "add" operation's target location that
+            // references neither the root of the document, nor a member of
+            // an existing object, nor a member of an existing array.
+
+            CHECK_THROWS_AS(doc.patch(patch), std::out_of_range);
+            CHECK_THROWS_WITH(doc.patch(patch), "key 'baz' not found");
+        }
+
+        // A.13. Invalid JSON Patch Document
+        // not applicable
+
+        SECTION("A.14. Escape Ordering")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    {
+                        "/": 9,
+                        "~1": 10
+                    }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        {"op": "test", "path": "/~01", "value": 10}
+                    ]
+                )"_json;
+
+            json expected = R"(
+                    {
+                        "/": 9,
+                        "~1": 10
+                    } 
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("A.15. Comparing Strings and Numbers")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    {
+                        "/": 9,
+                        "~1": 10
+                    } 
+                )"_json;
+
+            // A JSON Patch document that will result in an error condition:
+            json patch = R"(
+                    [
+                        {"op": "test", "path": "/~01", "value": "10"}
+                    ]
+                )"_json;
+
+            // check that evaluation throws
+            CHECK_THROWS_AS(doc.patch(patch), std::domain_error);
+            CHECK_THROWS_WITH(doc.patch(patch), "unsuccessful: " + patch[0].dump());
+        }
+
+        SECTION("A.16. Adding an Array Value")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                    { "foo": ["bar"] }
+                )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                    [
+                        { "op": "add", "path": "/foo/-", "value": ["abc", "def"] }
+                    ]
+                )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                    { "foo": ["bar", ["abc", "def"]] }
+                )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+    }
+
+    SECTION("own examples")
+    {
+        SECTION("add")
+        {
+            SECTION("add to the root element")
+            {
+                // If the path is the root of the target document - the
+                // specified value becomes the entire content of the target
+                // document.
+
+                // An example target JSON document:
+                json doc = 17;
+
+                // A JSON Patch document:
+                json patch = R"(
+                        [
+                            { "op": "add", "path": "", "value": [1,2,3] }
+                        ]
+                    )"_json;
+
+                // The resulting JSON document:
+                json expected = {1, 2, 3};
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == expected);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, expected)) == expected);
+            }
+
+            SECTION("add to end of the array")
+            {
+                // The specified index MUST NOT be greater than the number of
+                // elements in the array. The example below uses and index of
+                // exactly the number of elements in the array which is legal.
+
+                // An example target JSON document:
+                json doc = {0, 1, 2};
+
+                // A JSON Patch document:
+                json patch = R"(
+                    [
+                        { "op": "add", "path": "/3", "value": 3 }
+                    ]
+                )"_json;
+
+                // The resulting JSON document:
+                json expected = {0, 1, 2, 3};
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == expected);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, expected)) == expected);
+            }
+        }
+
+        SECTION("copy")
+        {
+            // An example target JSON document:
+            json doc = R"(
+                {
+                    "foo": {
+                        "bar": "baz",
+                        "waldo": "fred"
+                    },
+                    "qux": {
+                       "corge": "grault"
+                    }
+                }
+            )"_json;
+
+            // A JSON Patch document:
+            json patch = R"(
+                [
+                    { "op": "copy", "from": "/foo/waldo", "path": "/qux/thud" }
+                ]
+            )"_json;
+
+            // The resulting JSON document:
+            json expected = R"(
+                {
+                    "foo": {
+                        "bar": "baz",
+                        "waldo": "fred"
+                    },
+                    "qux": {
+                       "corge": "grault",
+                       "thud": "fred"
+                    }
+                }
+            )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == expected);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, expected)) == expected);
+        }
+
+        SECTION("replace")
+        {
+            json j = "string";
+            json patch = {{{"op", "replace"}, {"path", ""}, {"value", 1}}};
+            CHECK(j.patch(patch) == json(1));
+        }
+
+        SECTION("documentation GIF")
+        {
+            {
+                // a JSON patch
+                json p1 = R"(
+                     [{"op": "add", "path": "/GB", "value": "London"}]
+                    )"_json;
+
+                // a JSON value
+                json source = R"(
+                      {"D": "Berlin", "F": "Paris"}
+                    )"_json;
+
+                // apply the patch
+                json target = source.patch(p1);
+                // target = { "D": "Berlin", "F": "Paris", "GB": "London" }
+                CHECK(target == R"({ "D": "Berlin", "F": "Paris", "GB": "London" })"_json);
+
+                // create a diff from two JSONs
+                json p2 = json::diff(target, source);
+                // p2 = [{"op": "delete", "path": "/GB"}]
+                CHECK(p2 == R"([{"op":"remove","path":"/GB"}])"_json);
+            }
+            {
+                // a JSON value
+                json j = {"good", "bad", "ugly"};
+
+                // a JSON pointer
+                auto ptr = json::json_pointer("/2");
+
+                // use to access elements
+                j[ptr] = {{"it", "cattivo"}};
+                CHECK(j == R"(["good","bad",{"it":"cattivo"}])"_json);
+
+                // use user-defined string literal
+                j["/2/en"_json_pointer] = "ugly";
+                CHECK(j == R"(["good","bad",{"en":"ugly","it":"cattivo"}])"_json);
+
+                json flat = j.flatten();
+                CHECK(flat == R"({"/0":"good","/1":"bad","/2/en":"ugly","/2/it":"cattivo"})"_json);
+            }
+        }
+    }
+
+    SECTION("errors")
+    {
+        SECTION("unknown operation")
+        {
+            SECTION("not an array")
+            {
+                json j;
+                json patch = {{"op", "add"}, {"path", ""}, {"value", 1}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "JSON patch must be an array of objects");
+            }
+
+            SECTION("not an array of objects")
+            {
+                json j;
+                json patch = {"op", "add", "path", "", "value", 1};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "JSON patch must be an array of objects");
+            }
+
+            SECTION("missing 'op'")
+            {
+                json j;
+                json patch = {{{"foo", "bar"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation must have member 'op'");
+            }
+
+            SECTION("non-string 'op'")
+            {
+                json j;
+                json patch = {{{"op", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation must have string member 'op'");
+            }
+
+            SECTION("invalid operation")
+            {
+                json j;
+                json patch = {{{"op", "foo"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation value 'foo' is invalid");
+            }
+        }
+
+        SECTION("add")
+        {
+            SECTION("missing 'path'")
+            {
+                json j;
+                json patch = {{{"op", "add"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'add' must have member 'path'");
+            }
+
+            SECTION("non-string 'path'")
+            {
+                json j;
+                json patch = {{{"op", "add"}, {"path", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'add' must have string member 'path'");
+            }
+
+            SECTION("missing 'value'")
+            {
+                json j;
+                json patch = {{{"op", "add"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'add' must have member 'value'");
+            }
+
+            SECTION("invalid array index")
+            {
+                json j = {1, 2};
+                json patch = {{{"op", "add"}, {"path", "/4"}, {"value", 4}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "array index 4 is out of range");
+            }
+        }
+
+        SECTION("remove")
+        {
+            SECTION("missing 'path'")
+            {
+                json j;
+                json patch = {{{"op", "remove"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'remove' must have member 'path'");
+            }
+
+            SECTION("non-string 'path'")
+            {
+                json j;
+                json patch = {{{"op", "remove"}, {"path", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'remove' must have string member 'path'");
+            }
+
+            SECTION("nonexisting target location (array)")
+            {
+                json j = {1, 2, 3};
+                json patch = {{{"op", "remove"}, {"path", "/17"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "array index 17 is out of range");
+            }
+
+            SECTION("nonexisting target location (object)")
+            {
+                json j = {{"foo", 1}, {"bar", 2}};
+                json patch = {{{"op", "remove"}, {"path", "/baz"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found");
+            }
+
+            SECTION("root element as target location")
+            {
+                json j = "string";
+                json patch = {{{"op", "remove"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::domain_error);
+                CHECK_THROWS_WITH(j.patch(patch), "JSON pointer has no parent");
+            }
+        }
+
+        SECTION("replace")
+        {
+            SECTION("missing 'path'")
+            {
+                json j;
+                json patch = {{{"op", "replace"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'replace' must have member 'path'");
+            }
+
+            SECTION("non-string 'path'")
+            {
+                json j;
+                json patch = {{{"op", "replace"}, {"path", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'replace' must have string member 'path'");
+            }
+
+            SECTION("missing 'value'")
+            {
+                json j;
+                json patch = {{{"op", "replace"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'replace' must have member 'value'");
+            }
+
+            SECTION("nonexisting target location (array)")
+            {
+                json j = {1, 2, 3};
+                json patch = {{{"op", "replace"}, {"path", "/17"}, {"value", 19}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "array index 17 is out of range");
+            }
+
+            SECTION("nonexisting target location (object)")
+            {
+                json j = {{"foo", 1}, {"bar", 2}};
+                json patch = {{{"op", "replace"}, {"path", "/baz"}, {"value", 3}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found");
+            }
+        }
+
+        SECTION("move")
+        {
+            SECTION("missing 'path'")
+            {
+                json j;
+                json patch = {{{"op", "move"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have member 'path'");
+            }
+
+            SECTION("non-string 'path'")
+            {
+                json j;
+                json patch = {{{"op", "move"}, {"path", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have string member 'path'");
+            }
+
+            SECTION("missing 'from'")
+            {
+                json j;
+                json patch = {{{"op", "move"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have member 'from'");
+            }
+
+            SECTION("non-string 'from'")
+            {
+                json j;
+                json patch = {{{"op", "move"}, {"path", ""}, {"from", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'move' must have string member 'from'");
+            }
+
+            SECTION("nonexisting from location (array)")
+            {
+                json j = {1, 2, 3};
+                json patch = {{{"op", "move"}, {"path", "/0"}, {"from", "/5"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "array index 5 is out of range");
+            }
+
+            SECTION("nonexisting from location (object)")
+            {
+                json j = {{"foo", 1}, {"bar", 2}};
+                json patch = {{{"op", "move"}, {"path", "/baz"}, {"from", "/baz"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found");
+            }
+        }
+
+        SECTION("copy")
+        {
+            SECTION("missing 'path'")
+            {
+                json j;
+                json patch = {{{"op", "copy"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have member 'path'");
+            }
+
+            SECTION("non-string 'path'")
+            {
+                json j;
+                json patch = {{{"op", "copy"}, {"path", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have string member 'path'");
+            }
+
+            SECTION("missing 'from'")
+            {
+                json j;
+                json patch = {{{"op", "copy"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have member 'from'");
+            }
+
+            SECTION("non-string 'from'")
+            {
+                json j;
+                json patch = {{{"op", "copy"}, {"path", ""}, {"from", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'copy' must have string member 'from'");
+            }
+
+            SECTION("nonexisting from location (array)")
+            {
+                json j = {1, 2, 3};
+                json patch = {{{"op", "copy"}, {"path", "/0"}, {"from", "/5"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "array index 5 is out of range");
+            }
+
+            SECTION("nonexisting from location (object)")
+            {
+                json j = {{"foo", 1}, {"bar", 2}};
+                json patch = {{{"op", "copy"}, {"path", "/fob"}, {"from", "/baz"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::out_of_range);
+                CHECK_THROWS_WITH(j.patch(patch), "key 'baz' not found");
+            }
+        }
+
+        SECTION("test")
+        {
+            SECTION("missing 'path'")
+            {
+                json j;
+                json patch = {{{"op", "test"}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'test' must have member 'path'");
+            }
+
+            SECTION("non-string 'path'")
+            {
+                json j;
+                json patch = {{{"op", "test"}, {"path", 1}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'test' must have string member 'path'");
+            }
+
+            SECTION("missing 'value'")
+            {
+                json j;
+                json patch = {{{"op", "test"}, {"path", ""}}};
+                CHECK_THROWS_AS(j.patch(patch), std::invalid_argument);
+                CHECK_THROWS_WITH(j.patch(patch), "operation 'test' must have member 'value'");
+            }
+        }
+    }
+
+    SECTION("Examples from jsonpatch.com")
+    {
+        SECTION("Simple Example")
+        {
+            // The original document
+            json doc = R"(
+                {
+                  "baz": "qux",
+                  "foo": "bar"
+                }
+            )"_json;
+
+            // The patch
+            json patch = R"(
+                [
+                  { "op": "replace", "path": "/baz", "value": "boo" },
+                  { "op": "add", "path": "/hello", "value": ["world"] },
+                  { "op": "remove", "path": "/foo"}
+                ]
+            )"_json;
+
+            // The result
+            json result = R"(
+                {
+                   "baz": "boo",
+                   "hello": ["world"]
+                }
+            )"_json;
+
+            // check if patched value is as expected
+            CHECK(doc.patch(patch) == result);
+
+            // check roundtrip
+            CHECK(doc.patch(json::diff(doc, result)) == result);
+        }
+
+        SECTION("Operations")
+        {
+            // The original document
+            json doc = R"(
+                {
+                  "biscuits": [
+                    {"name":"Digestive"},
+                    {"name": "Choco Liebniz"}
+                  ]
+                }
+            )"_json;
+
+            SECTION("add")
+            {
+                // The patch
+                json patch = R"(
+                    [
+                        {"op": "add", "path": "/biscuits/1", "value": {"name": "Ginger Nut"}}
+                    ]
+                )"_json;
+
+                // The result
+                json result = R"(
+                    {
+                      "biscuits": [
+                        {"name": "Digestive"},
+                        {"name": "Ginger Nut"},
+                        {"name": "Choco Liebniz"}
+                      ]
+                    }
+                )"_json;
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == result);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, result)) == result);
+            }
+
+            SECTION("remove")
+            {
+                // The patch
+                json patch = R"(
+                    [
+                        {"op": "remove", "path": "/biscuits"}
+                    ]
+                )"_json;
+
+                // The result
+                json result = R"(
+                    {}
+                )"_json;
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == result);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, result)) == result);
+            }
+
+            SECTION("replace")
+            {
+                // The patch
+                json patch = R"(
+                    [
+                        {"op": "replace", "path": "/biscuits/0/name", "value": "Chocolate Digestive"}
+                    ]
+                )"_json;
+
+                // The result
+                json result = R"(
+                    {
+                      "biscuits": [
+                        {"name": "Chocolate Digestive"},
+                        {"name": "Choco Liebniz"}
+                      ]
+                    }
+                )"_json;
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == result);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, result)) == result);
+            }
+
+            SECTION("copy")
+            {
+                // The patch
+                json patch = R"(
+                    [
+                        {"op": "copy", "from": "/biscuits/0", "path": "/best_biscuit"}
+                    ]
+                )"_json;
+
+                // The result
+                json result = R"(
+                    {
+                      "biscuits": [
+                        {"name": "Digestive"},
+                        {"name": "Choco Liebniz"}
+                      ],
+                      "best_biscuit": {
+                        "name": "Digestive"
+                      }
+                    }
+                )"_json;
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == result);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, result)) == result);
+            }
+
+            SECTION("move")
+            {
+                // The patch
+                json patch = R"(
+                    [
+                        {"op": "move", "from": "/biscuits", "path": "/cookies"}
+                    ]
+                )"_json;
+
+                // The result
+                json result = R"(
+                    {
+                      "cookies": [
+                        {"name": "Digestive"},
+                        {"name": "Choco Liebniz"}
+                      ]
+                    }
+                )"_json;
+
+                // check if patched value is as expected
+                CHECK(doc.patch(patch) == result);
+
+                // check roundtrip
+                CHECK(doc.patch(json::diff(doc, result)) == result);
+            }
+
+            SECTION("test")
+            {
+                // The patch
+                json patch = R"(
+                    [
+                        {"op": "test", "path": "/best_biscuit/name", "value": "Choco Liebniz"}
+                    ]
+                )"_json;
+
+                // the test will fail
+                CHECK_THROWS_AS(doc.patch(patch), std::domain_error);
+                CHECK_THROWS_WITH(doc.patch(patch), "unsuccessful: " + patch[0].dump());
+            }
+        }
+    }
+
+    SECTION("Examples from bruth.github.io/jsonpatch-js")
+    {
+        SECTION("add")
+        {
+            CHECK(R"( {} )"_json.patch(
+                      R"( [{"op": "add", "path": "/foo", "value": "bar"}] )"_json
+                  ) == R"( {"foo": "bar"} )"_json);
+
+            CHECK(R"( {"foo": [1, 3]} )"_json.patch(
+                      R"( [{"op": "add", "path": "/foo", "value": "bar"}] )"_json
+                  ) == R"( {"foo": "bar"} )"_json);
+
+            CHECK(R"( {"foo": [{}]} )"_json.patch(
+                      R"( [{"op": "add", "path": "/foo/0/bar", "value": "baz"}] )"_json
+                  ) == R"( {"foo": [{"bar": "baz"}]} )"_json);
+        }
+
+        SECTION("remove")
+        {
+            CHECK(R"( {"foo": "bar"} )"_json.patch(
+                      R"( [{"op": "remove", "path": "/foo"}] )"_json
+                  ) == R"( {} )"_json);
+
+            CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
+                      R"( [{"op": "remove", "path": "/foo/1"}] )"_json
+                  ) == R"( {"foo": [1, 3]} )"_json);
+
+            CHECK(R"( {"foo": [{"bar": "baz"}]} )"_json.patch(
+                      R"( [{"op": "remove", "path": "/foo/0/bar"}] )"_json
+                  ) == R"( {"foo": [{}]} )"_json);
+        }
+
+        SECTION("replace")
+        {
+            CHECK(R"( {"foo": "bar"} )"_json.patch(
+                      R"( [{"op": "replace", "path": "/foo", "value": 1}] )"_json
+                  ) == R"( {"foo": 1} )"_json);
+
+            CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
+                      R"( [{"op": "replace", "path": "/foo/1", "value": 4}] )"_json
+                  ) == R"( {"foo": [1, 4, 3]} )"_json);
+
+            CHECK(R"( {"foo": [{"bar": "baz"}]} )"_json.patch(
+                      R"( [{"op": "replace", "path": "/foo/0/bar", "value": 1}] )"_json
+                  ) == R"( {"foo": [{"bar": 1}]} )"_json);
+        }
+
+        SECTION("move")
+        {
+            CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
+                      R"( [{"op": "move", "from": "/foo", "path": "/bar"}] )"_json
+                  ) == R"( {"bar": [1, 2, 3]} )"_json);
+        }
+
+        SECTION("copy")
+        {
+            CHECK(R"( {"foo": [1, 2, 3]} )"_json.patch(
+                      R"( [{"op": "copy", "from": "/foo/1", "path": "/bar"}] )"_json
+                  ) == R"( {"foo": [1, 2, 3], "bar": 2} )"_json);
+        }
+
+        SECTION("copy")
+        {
+            CHECK_NOTHROW(R"( {"foo": "bar"} )"_json.patch(
+                              R"( [{"op": "test", "path": "/foo", "value": "bar"}] )"_json));
+        }
+    }
+}
+
+TEST_CASE("regression tests")
+{
+    SECTION("issue #60 - Double quotation mark is not parsed correctly")
+    {
+        SECTION("escape_dobulequote")
+        {
+            auto s = "[\"\\\"foo\\\"\"]";
+            json j = json::parse(s);
+            auto expected = R"(["\"foo\""])"_json;
+            CHECK(j == expected);
+        }
+    }
+
+    SECTION("issue #70 - Handle infinity and NaN cases")
+    {
+        SECTION("NAN value")
+        {
+            CHECK(json(NAN) == json());
+            CHECK(json(json::number_float_t(NAN)) == json());
+        }
+
+        SECTION("infinity")
+        {
+            CHECK(json(INFINITY) == json());
+            CHECK(json(json::number_float_t(INFINITY)) == json());
+        }
+    }
+
+    SECTION("pull request #71 - handle enum type")
+    {
+        enum { t = 0 };
+        json j = json::array();
+        j.push_back(t);
+
+        j.push_back(json::object(
+        {
+            {"game_type", t}
+        }));
+    }
+
+    SECTION("issue #76 - dump() / parse() not idempotent")
+    {
+        // create JSON object
+        json fields;
+        fields["one"] = std::string("one");
+        fields["two"] = std::string("two three");
+        fields["three"] = std::string("three \"four\"");
+
+        // create another JSON object by deserializing the serialization
+        std::string payload = fields.dump();
+        json parsed_fields = json::parse(payload);
+
+        // check individual fields to match both objects
+        CHECK(parsed_fields["one"] == fields["one"]);
+        CHECK(parsed_fields["two"] == fields["two"]);
+        CHECK(parsed_fields["three"] == fields["three"]);
+
+        // check individual fields to match original input
+        CHECK(parsed_fields["one"] == std::string("one"));
+        CHECK(parsed_fields["two"] == std::string("two three"));
+        CHECK(parsed_fields["three"] == std::string("three \"four\""));
+
+        // check equality of the objects
+        CHECK(parsed_fields == fields);
+
+        // check equality of the serialized objects
+        CHECK(fields.dump() == parsed_fields.dump());
+
+        // check everything in one line
+        CHECK(fields == json::parse(fields.dump()));
+    }
+
+    SECTION("issue #82 - lexer::get_number return NAN")
+    {
+        const auto content = R"(
+        {
+            "Test":"Test1",
+            "Number":100,
+            "Foo":42.42
+        })";
+
+        std::stringstream ss;
+        ss << content;
+        json j;
+        ss >> j;
+
+        std::string test = j["Test"];
+        CHECK(test == "Test1");
+        int number = j["Number"];
+        CHECK(number == 100);
+        float foo = j["Foo"];
+        CHECK(foo == Approx(42.42));
+    }
+
+    SECTION("issue #89 - nonstandard integer type")
+    {
+        // create JSON class with nonstandard integer number type
+        using custom_json =
+            nlohmann::basic_json<std::map, std::vector, std::string, bool, int32_t, uint32_t, float>;
+        custom_json j;
+        j["int_1"] = 1;
+        // we need to cast to int to compile with Catch - the value is int32_t
+        CHECK(static_cast<int>(j["int_1"]) == 1);
+
+        // tests for correct handling of non-standard integers that overflow the type selected by the user
+
+        // unsigned integer object creation - expected to wrap and still be stored as an integer
+        j = 4294967296U; // 2^32
+        CHECK(static_cast<int>(j.type()) == static_cast<int>(custom_json::value_t::number_unsigned));
+        CHECK(j.get<uint32_t>() == 0);  // Wrap
+
+        // unsigned integer parsing - expected to overflow and be stored as a float
+        j = custom_json::parse("4294967296"); // 2^32
+        CHECK(static_cast<int>(j.type()) == static_cast<int>(custom_json::value_t::number_float));
+        CHECK(j.get<float>() == 4294967296.0f);
+
+        // integer object creation - expected to wrap and still be stored as an integer
+        j = -2147483649LL; // -2^31-1
+        CHECK(static_cast<int>(j.type()) == static_cast<int>(custom_json::value_t::number_integer));
+        CHECK(j.get<int32_t>() == 2147483647);  // Wrap
+
+        // integer parsing - expected to overflow and be stored as a float with rounding
+        j = custom_json::parse("-2147483649"); // -2^31
+        CHECK(static_cast<int>(j.type()) == static_cast<int>(custom_json::value_t::number_float));
+        CHECK(j.get<float>() == -2147483650.0f);
+    }
+
+    SECTION("issue #93 reverse_iterator operator inheritance problem")
+    {
+        {
+            json a = {1, 2, 3};
+            json::reverse_iterator rit = a.rbegin();
+            ++rit;
+            CHECK(*rit == json(2));
+            CHECK(rit.value() == json(2));
+        }
+        {
+            json a = {1, 2, 3};
+            json::reverse_iterator rit = ++a.rbegin();
+        }
+        {
+            json a = {1, 2, 3};
+            json::reverse_iterator rit = a.rbegin();
+            ++rit;
+            json b = {0, 0, 0};
+            std::transform(rit, a.rend(), b.rbegin(), [](json el)
+            {
+                return el;
+            });
+            CHECK(b == json({0, 1, 2}));
+        }
+        {
+            json a = {1, 2, 3};
+            json b = {0, 0, 0};
+            std::transform(++a.rbegin(), a.rend(), b.rbegin(), [](json el)
+            {
+                return el;
+            });
+            CHECK(b == json({0, 1, 2}));
+        }
+    }
+
+    SECTION("issue #100 - failed to iterator json object with reverse_iterator")
+    {
+        json config =
+        {
+            { "111", 111 },
+            { "112", 112 },
+            { "113", 113 }
+        };
+
+        std::stringstream ss;
+
+        for (auto it = config.begin(); it != config.end(); ++it)
+        {
+            ss << it.key() << ": " << it.value() << '\n';
+        }
+
+        for (auto it = config.rbegin(); it != config.rend(); ++it)
+        {
+            ss << it.key() << ": " << it.value() << '\n';
+        }
+
+        CHECK(ss.str() == "111: 111\n112: 112\n113: 113\n113: 113\n112: 112\n111: 111\n");
+    }
+
+    SECTION("issue #101 - binary string causes numbers to be dumped as hex")
+    {
+        int64_t number = 10;
+        std::string bytes{"\x00" "asdf\n", 6};
+        json j;
+        j["int64"] = number;
+        j["binary string"] = bytes;
+        // make sure the number is really printed as decimal "10" and not as
+        // hexadecimal "a"
+        CHECK(j.dump() == "{\"binary string\":\"\\u0000asdf\\n\",\"int64\":10}");
+    }
+
+    SECTION("issue #111 - subsequent unicode chars")
+    {
+        std::string bytes{0x7, 0x7};
+        json j;
+        j["string"] = bytes;
+        CHECK(j["string"] == "\u0007\u0007");
+    }
+
+    SECTION("issue #144 - implicit assignment to std::string fails")
+    {
+        json o = {{"name", "value"}};
+
+        std::string s1 = o["name"];
+        CHECK(s1 == "value");
+
+        std::string s2;
+        s2 = o["name"];
+
+        CHECK(s2 == "value");
+    }
+
+    SECTION("issue #146 - character following a surrogate pair is skipped")
+    {
+        CHECK(json::parse("\"\\ud80c\\udc60abc\"").get<json::string_t>() == u8"\U00013060abc");
+    }
+
+    SECTION("issue #171 - Cannot index by key of type static constexpr const char*")
+    {
+        json j;
+
+        // Non-const access with key as "char []"
+        char array_key[] = "Key1";
+        CHECK_NOTHROW(j[array_key] = 1);
+        CHECK(j[array_key] == json(1));
+
+        // Non-const access with key as "const char[]"
+        const char const_array_key[] = "Key2";
+        CHECK_NOTHROW(j[const_array_key] = 2);
+        CHECK(j[const_array_key] == json(2));
+
+        // Non-const access with key as "char *"
+        char _ptr_key[] = "Key3";
+        char* ptr_key = &_ptr_key[0];
+        CHECK_NOTHROW(j[ptr_key] = 3);
+        CHECK(j[ptr_key] == json(3));
+
+        // Non-const access with key as "const char *"
+        const char* const_ptr_key = "Key4";
+        CHECK_NOTHROW(j[const_ptr_key] = 4);
+        CHECK(j[const_ptr_key] == json(4));
+
+        // Non-const access with key as "static constexpr const char *"
+        static constexpr const char* constexpr_ptr_key = "Key5";
+        CHECK_NOTHROW(j[constexpr_ptr_key] = 5);
+        CHECK(j[constexpr_ptr_key] == json(5));
+
+        const json j_const = j;
+
+        // Const access with key as "char []"
+        CHECK(j_const[array_key] == json(1));
+
+        // Const access with key as "const char[]"
+        CHECK(j_const[const_array_key] == json(2));
+
+        // Const access with key as "char *"
+        CHECK(j_const[ptr_key] == json(3));
+
+        // Const access with key as "const char *"
+        CHECK(j_const[const_ptr_key] == json(4));
+
+        // Const access with key as "static constexpr const char *"
+        CHECK(j_const[constexpr_ptr_key] == json(5));
+    }
+
+    SECTION("issue #186 miloyip/nativejson-benchmark: floating-point parsing")
+    {
+        json j;
+
+        j = json::parse("-0.0");
+        CHECK(j.get<double>() == -0.0);
+
+        j = json::parse("2.22507385850720113605740979670913197593481954635164564e-308");
+        CHECK(j.get<double>() == 2.2250738585072009e-308);
+
+        j = json::parse("0.999999999999999944488848768742172978818416595458984374");
+        CHECK(j.get<double>() == 0.99999999999999989);
+
+        j = json::parse("1.00000000000000011102230246251565404236316680908203126");
+        CHECK(j.get<double>() == 1.00000000000000022);
+
+        j = json::parse("7205759403792793199999e-5");
+        CHECK(j.get<double>() == 72057594037927928.0);
+
+        j = json::parse("922337203685477529599999e-5");
+        CHECK(j.get<double>() == 9223372036854774784.0);
+
+        j = json::parse("1014120480182583464902367222169599999e-5");
+        CHECK(j.get<double>() == 10141204801825834086073718800384.0);
+
+        j = json::parse("5708990770823839207320493820740630171355185151999e-3");
+        CHECK(j.get<double>() == 5708990770823838890407843763683279797179383808.0);
+
+        // create JSON class with nonstandard float number type
+
+        // float
+        nlohmann::basic_json<std::map, std::vector, std::string, bool, int32_t, uint32_t, float> j_float =
+            1.23e25f;
+        CHECK(j_float.get<float>() == 1.23e25f);
+
+        // double
+        nlohmann::basic_json<std::map, std::vector, std::string, bool, int64_t, uint64_t, double> j_double =
+            1.23e35f;
+        CHECK(j_double.get<double>() == 1.23e35f);
+
+        // long double
+        nlohmann::basic_json<std::map, std::vector, std::string, bool, int64_t, uint64_t, long double>
+        j_long_double = 1.23e45L;
+        CHECK(j_long_double.get<long double>() == 1.23e45L);
+    }
+
+    SECTION("issue #228 - double values are serialized with commas as decimal points")
+    {
+        json j1a = 23.42;
+        json j1b = json::parse("23.42");
+
+        json j2a = 2342e-2;
+        //issue #230
+        //json j2b = json::parse("2342e-2");
+
+        json j3a = 10E3;
+        json j3b = json::parse("10E3");
+        json j3c = json::parse("10e3");
+
+        // class to create a locale that would use a comma for decimals
+        class CommaDecimalSeparator : public std::numpunct<char>
+        {
+          protected:
+            char do_decimal_point() const
+            {
+                return ',';
+            }
+        };
+
+        // change locale to mess with decimal points
+        std::locale::global(std::locale(std::locale(), new CommaDecimalSeparator));
+
+        CHECK(j1a.dump() == "23.42");
+        CHECK(j1b.dump() == "23.42");
+
+        CHECK(j2a.dump() == "23.42");
+        //issue #230
+        //CHECK(j2b.dump() == "23.42");
+
+        CHECK(j3a.dump() == "10000");
+        CHECK(j3b.dump() == "1E04");
+        CHECK(j3c.dump() == "1e04");
+    }
+
+    SECTION("issue #233 - Can't use basic_json::iterator as a base iterator for std::move_iterator")
+    {
+        json source = {"a", "b", "c"};
+        json expected = {"a", "b"};
+        json dest;
+
+        std::copy_n(std::make_move_iterator(source.begin()), 2, std::back_inserter(dest));
+
+        CHECK(dest == expected);
+    }
+
+    SECTION("issue ##235 - ambiguous overload for 'push_back' and 'operator+='")
+    {
+        json data = {{"key", "value"}};
+        data.push_back({"key2", "value2"});
+        data += {"key3", "value3"};
+
+        CHECK(data == json({{"key", "value"}, {"key2", "value2"}, {"key3", "value3"}}));
+    }
+}
+
+// special test case to check if memory is leaked if constructor throws
+
+template<class T>
+struct my_allocator : std::allocator<T>
+{
+    template<class... Args>
+    void construct(T*, Args&& ...)
+    {
+        throw std::bad_alloc();
+    }
+};
+
+TEST_CASE("bad_alloc")
+{
+    SECTION("bad_alloc")
+    {
+        // create JSON type using the throwing allocator
+        using my_json = nlohmann::basic_json<std::map,
+              std::vector,
+              std::string,
+              bool,
+              std::int64_t,
+              std::uint64_t,
+              double,
+              my_allocator>;
+
+        // creating an object should throw
+        CHECK_THROWS_AS(my_json j(my_json::value_t::object), std::bad_alloc);
+    }
+}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 34b3cf77b..f3c05d51a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -37,6 +37,7 @@ file(GLOB STORM_SETTINGS_MODULES_FILES ${PROJECT_SOURCE_DIR}/src/settings/module
 file(GLOB STORM_SOLVER_FILES ${PROJECT_SOURCE_DIR}/src/solver/*.h ${PROJECT_SOURCE_DIR}/src/solver/*.cpp)
 file(GLOB STORM_SOLVER_STATEELIMINATION_FILES ${PROJECT_SOURCE_DIR}/src/solver/stateelimination/*.h ${PROJECT_SOURCE_DIR}/src/solver/stateelimination/*.cpp)
 file(GLOB STORM_STORAGE_FILES ${PROJECT_SOURCE_DIR}/src/storage/*.h ${PROJECT_SOURCE_DIR}/src/storage/*.cpp)
+file(GLOB STORM_STORAGE_JANI_FILES ${PROJECT_SOURCE_DIR}/src/storage/jani/*.h ${PROJECT_SOURCE_DIR}/src/storage/jani/*.cpp)
 file(GLOB STORM_STORAGE_BISIMULATION_FILES ${PROJECT_SOURCE_DIR}/src/storage/bisimulation/*.h ${PROJECT_SOURCE_DIR}/src/storage/bisimulation/*.cpp)
 file(GLOB STORM_STORAGE_DD_FILES ${PROJECT_SOURCE_DIR}/src/storage/dd/*.h ${PROJECT_SOURCE_DIR}/src/storage/dd/*.cpp)
 file(GLOB STORM_STORAGE_DFT_FILES ${PROJECT_SOURCE_DIR}/src/storage/dft/*.h ${PROJECT_SOURCE_DIR}/src/storage/dft/*.cpp)
@@ -98,6 +99,7 @@ source_group(storage\\dd\\sylvan FILES ${STORM_STORAGE_DD_SYLVAN_FILES})
 source_group(storage\\expressions FILES ${STORM_STORAGE_EXPRESSIONS_FILES})
 source_group(storage\\prism FILES ${STORM_STORAGE_PRISM_FILES})
 source_group(storage\\sparse FILES ${STORM_STORAGE_SPARSE_FILES})
+source_group(storage\\jani FILES ${STORM_STORAGE_JANI_FILES})
 source_group(storage\\dft FILES ${STORM_STORAGE_DFT_FILES})
 source_group(storage\\dft\\elements FILES ${STORM_STORAGE_DFT_ELEMENTS_FILES})
 source_group(utility FILES ${STORM_UTILITY_FILES})
diff --git a/src/adapters/AddExpressionAdapter.cpp b/src/adapters/AddExpressionAdapter.cpp
index 84e48e8a6..e50620db8 100644
--- a/src/adapters/AddExpressionAdapter.cpp
+++ b/src/adapters/AddExpressionAdapter.cpp
@@ -12,7 +12,7 @@ namespace storm {
     namespace adapters {
         
         template<storm::dd::DdType Type, typename ValueType>
-        AddExpressionAdapter<Type, ValueType>::AddExpressionAdapter(std::shared_ptr<storm::dd::DdManager<Type>> ddManager, std::map<storm::expressions::Variable, storm::expressions::Variable> const& variableMapping) : ddManager(ddManager), variableMapping(variableMapping) {
+        AddExpressionAdapter<Type, ValueType>::AddExpressionAdapter(std::shared_ptr<storm::dd::DdManager<Type>> ddManager, std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> const& variableMapping) : ddManager(ddManager), variableMapping(variableMapping) {
             // Intentionally left empty.
         }
         
@@ -140,8 +140,8 @@ namespace storm {
         
         template<storm::dd::DdType Type, typename ValueType>
         boost::any AddExpressionAdapter<Type, ValueType>::visit(storm::expressions::VariableExpression const& expression) {
-            auto const& variablePair = variableMapping.find(expression.getVariable());
-            STORM_LOG_THROW(variablePair != variableMapping.end(), storm::exceptions::InvalidArgumentException, "Cannot translate the given expression, because it contains the variable '" << expression.getVariableName() << "' for which no DD counterpart is known.");
+            auto const& variablePair = variableMapping->find(expression.getVariable());
+            STORM_LOG_THROW(variablePair != variableMapping->end(), storm::exceptions::InvalidArgumentException, "Cannot translate the given expression, because it contains the variable '" << expression.getVariableName() << "' for which no DD counterpart is known.");
             if (expression.hasBooleanType()) {
                 return ddManager->template getIdentity<ValueType>(variablePair->second).toBdd();
             } else {
diff --git a/src/adapters/AddExpressionAdapter.h b/src/adapters/AddExpressionAdapter.h
index ad82146f3..89d825d96 100644
--- a/src/adapters/AddExpressionAdapter.h
+++ b/src/adapters/AddExpressionAdapter.h
@@ -1,6 +1,8 @@
 #ifndef STORM_ADAPTERS_DDEXPRESSIONADAPTER_H_
 #define STORM_ADAPTERS_DDEXPRESSIONADAPTER_H_
 
+#include <memory>
+
 #include "src/storage/expressions/Variable.h"
 #include "src/storage/expressions/Expressions.h"
 #include "src/storage/expressions/ExpressionVisitor.h"
@@ -15,7 +17,7 @@ namespace storm {
         template<storm::dd::DdType Type, typename ValueType = double>
         class AddExpressionAdapter : public storm::expressions::ExpressionVisitor {
         public:
-            AddExpressionAdapter(std::shared_ptr<storm::dd::DdManager<Type>> ddManager, std::map<storm::expressions::Variable, storm::expressions::Variable> const& variableMapping);
+            AddExpressionAdapter(std::shared_ptr<storm::dd::DdManager<Type>> ddManager, std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> const& variableMapping);
             
             storm::dd::Add<Type, ValueType> translateExpression(storm::expressions::Expression const& expression);
             storm::dd::Bdd<Type> translateBooleanExpression(storm::expressions::Expression const& expression);
@@ -36,7 +38,7 @@ namespace storm {
             std::shared_ptr<storm::dd::DdManager<Type>> ddManager;
             
             // This member maps the variables used in the expressions to the variables used by the DD manager.
-            std::map<storm::expressions::Variable, storm::expressions::Variable> variableMapping;
+            std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> variableMapping;
         };
         
     } // namespace adapters
diff --git a/src/builder/DdJaniModelBuilder.cpp b/src/builder/DdJaniModelBuilder.cpp
new file mode 100644
index 000000000..2fe35e2c6
--- /dev/null
+++ b/src/builder/DdJaniModelBuilder.cpp
@@ -0,0 +1,1771 @@
+#include "src/builder/DdJaniModelBuilder.h"
+
+#include <sstream>
+
+#include <boost/algorithm/string/join.hpp>
+
+#include "src/logic/Formulas.h"
+
+#include "src/storage/jani/Model.h"
+#include "src/storage/jani/RenameComposition.h"
+#include "src/storage/jani/AutomatonComposition.h"
+#include "src/storage/jani/ParallelComposition.h"
+
+#include "src/storage/dd/Add.h"
+#include "src/storage/dd/Bdd.h"
+#include "src/adapters/AddExpressionAdapter.h"
+
+#include "src/models/symbolic/Dtmc.h"
+#include "src/models/symbolic/Ctmc.h"
+#include "src/models/symbolic/Mdp.h"
+#include "src/models/symbolic/StandardRewardModel.h"
+
+#include "src/settings/SettingsManager.h"
+#include "src/settings/modules/MarkovChainSettings.h"
+
+#include "src/utility/macros.h"
+#include "src/utility/jani.h"
+#include "src/utility/dd.h"
+#include "src/utility/math.h"
+#include "src/exceptions/WrongFormatException.h"
+#include "src/exceptions/InvalidArgumentException.h"
+#include "src/exceptions/InvalidStateException.h"
+
+namespace storm {
+    namespace builder {
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        DdJaniModelBuilder<Type, ValueType>::Options::Options() : buildAllRewardModels(true), rewardModelsToBuild(), constantDefinitions(), terminalStates(), negatedTerminalStates() {
+            // Intentionally left empty.
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        DdJaniModelBuilder<Type, ValueType>::Options::Options(storm::logic::Formula const& formula) : buildAllRewardModels(false), rewardModelsToBuild(), constantDefinitions(), terminalStates(), negatedTerminalStates() {
+            this->preserveFormula(formula);
+            this->setTerminalStatesFromFormula(formula);
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        DdJaniModelBuilder<Type, ValueType>::Options::Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas) : buildAllRewardModels(false), rewardModelsToBuild(), constantDefinitions(), terminalStates(), negatedTerminalStates() {
+            if (formulas.empty()) {
+                this->buildAllRewardModels = true;
+            } else {
+                for (auto const& formula : formulas) {
+                    this->preserveFormula(*formula);
+                }
+                if (formulas.size() == 1) {
+                    this->setTerminalStatesFromFormula(*formulas.front());
+                }
+            }
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        void DdJaniModelBuilder<Type, ValueType>::Options::preserveFormula(storm::logic::Formula const& formula) {
+            // If we already had terminal states, we need to erase them.
+            if (terminalStates) {
+                terminalStates.reset();
+            }
+            if (negatedTerminalStates) {
+                negatedTerminalStates.reset();
+            }
+            
+            // If we are not required to build all reward models, we determine the reward models we need to build.
+            if (!buildAllRewardModels) {
+                std::set<std::string> referencedRewardModels = formula.getReferencedRewardModels();
+                rewardModelsToBuild.insert(referencedRewardModels.begin(), referencedRewardModels.end());
+            }
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        void DdJaniModelBuilder<Type, ValueType>::Options::setTerminalStatesFromFormula(storm::logic::Formula const& formula) {
+            if (formula.isAtomicExpressionFormula()) {
+                terminalStates = formula.asAtomicExpressionFormula().getExpression();
+            } else if (formula.isEventuallyFormula()) {
+                storm::logic::Formula const& sub = formula.asEventuallyFormula().getSubformula();
+                if (sub.isAtomicExpressionFormula() || sub.isAtomicLabelFormula()) {
+                    this->setTerminalStatesFromFormula(sub);
+                }
+            } else if (formula.isUntilFormula()) {
+                storm::logic::Formula const& right = formula.asUntilFormula().getRightSubformula();
+                if (right.isAtomicExpressionFormula() || right.isAtomicLabelFormula()) {
+                    this->setTerminalStatesFromFormula(right);
+                }
+                storm::logic::Formula const& left = formula.asUntilFormula().getLeftSubformula();
+                if (left.isAtomicExpressionFormula()) {
+                    negatedTerminalStates = left.asAtomicExpressionFormula().getExpression();
+                }
+            } else if (formula.isProbabilityOperatorFormula()) {
+                storm::logic::Formula const& sub = formula.asProbabilityOperatorFormula().getSubformula();
+                if (sub.isEventuallyFormula() || sub.isUntilFormula()) {
+                    this->setTerminalStatesFromFormula(sub);
+                }
+            }
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        DdJaniModelBuilder<Type, ValueType>::DdJaniModelBuilder(storm::jani::Model const& model, Options const& options) : model(model), options(options) {
+            if (this->model->hasUndefinedConstants()) {
+                std::vector<std::reference_wrapper<storm::jani::Constant const>> undefinedConstants = this->model->getUndefinedConstants();
+                std::vector<std::string> strings;
+                for (auto const& constant : undefinedConstants) {
+                    std::stringstream stream;
+                    stream << constant.get().getName() << " (" << constant.get().getType() << ")";
+                    strings.push_back(stream.str());
+                }
+                STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Program still contains these undefined constants: " << boost::join(strings, ", ") << ".");
+            }
+            
+            this->model = this->model->substituteConstants();
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        struct CompositionVariables {
+            CompositionVariables() : manager(std::make_shared<storm::dd::DdManager<Type>>()),
+            variableToRowMetaVariableMap(std::make_shared<std::map<storm::expressions::Variable, storm::expressions::Variable>>()),
+            rowExpressionAdapter(std::make_shared<storm::adapters::AddExpressionAdapter<Type>>(manager, variableToRowMetaVariableMap)),
+            variableToColumnMetaVariableMap(std::make_shared<std::map<storm::expressions::Variable, storm::expressions::Variable>>()),
+            columnExpressionAdapter(std::make_shared<storm::adapters::AddExpressionAdapter<Type>>(manager, variableToColumnMetaVariableMap)) {
+                // Intentionally left empty.
+            }
+            
+            std::shared_ptr<storm::dd::DdManager<Type>> manager;
+            
+            // The meta variables for the row encoding.
+            std::set<storm::expressions::Variable> rowMetaVariables;
+            std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> variableToRowMetaVariableMap;
+            std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> rowExpressionAdapter;
+            
+            // The meta variables for the column encoding.
+            std::set<storm::expressions::Variable> columnMetaVariables;
+            std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> variableToColumnMetaVariableMap;
+            std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> columnExpressionAdapter;
+            
+            // All pairs of row/column meta variables.
+            std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> rowColumnMetaVariablePairs;
+            
+            // A mapping from automata to the meta variable encoding their location.
+            std::map<std::string, std::pair<storm::expressions::Variable, storm::expressions::Variable>> automatonToLocationVariableMap;
+            
+            // A mapping from action indices to the meta variables used to encode these actions.
+            std::map<uint64_t, storm::expressions::Variable> actionVariablesMap;
+            
+            // The meta variables used to encode the remaining nondeterminism.
+            std::vector<storm::expressions::Variable> localNondeterminismVariables;
+            
+            // The meta variables used to encode the actions and nondeterminism.
+            std::set<storm::expressions::Variable> allNondeterminismVariables;
+            
+            // DDs representing the identity for each variable.
+            std::map<storm::expressions::Variable, storm::dd::Add<Type, ValueType>> variableToIdentityMap;
+            
+            // DDs representing the ranges of each variable.
+            std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> variableToRangeMap;
+            
+            // A set of all meta variables that correspond to global variables.
+            std::set<storm::expressions::Variable> allGlobalVariables;
+            
+            // DDs representing the identity for each automaton.
+            std::map<std::string, storm::dd::Add<Type, ValueType>> automatonToIdentityMap;
+            
+            // DDs representing the valid ranges of the variables of each automaton.
+            std::map<std::string, storm::dd::Add<Type, ValueType>> automatonToRangeMap;
+            
+            // A DD representing the valid ranges of the global variables.
+            storm::dd::Add<Type, ValueType> globalVariableRanges;
+        };
+        
+        // A class responsible for creating the necessary variables for a subsequent composition of automata.
+        template <storm::dd::DdType Type, typename ValueType>
+        class CompositionVariableCreator : public storm::jani::CompositionVisitor {
+        public:
+            CompositionVariableCreator(storm::jani::Model const& model) : model(model) {
+                // Intentionally left empty.
+            }
+            
+            CompositionVariables<Type, ValueType> create() {
+                // First, check whether every automaton appears exactly once in the system composition.
+                automata.clear();
+                this->model.getSystemComposition().accept(*this, boost::none);
+                STORM_LOG_THROW(automata.size() == this->model.getNumberOfAutomata(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model whose system composition refers to a subset of automata.");
+                
+                // Then, check that the model does not contain unbounded integer variables.
+                STORM_LOG_THROW(!this->model.getGlobalVariables().containsUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains global unbounded integer variables.");
+                for (auto const& automaton : this->model.getAutomata()) {
+                    STORM_LOG_THROW(!automaton.getVariables().containsUnboundedIntegerVariables(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model that contains unbounded integer variables in automaton '" << automaton.getName() << "'.");
+                }
+                
+                // Based on this assumption, we create the variables.
+                return createVariables();
+            }
+            
+            boost::any visit(storm::jani::AutomatonComposition const& composition, boost::any const& data) override {
+                auto it = automata.find(composition.getAutomatonName());
+                STORM_LOG_THROW(it == automata.end(), storm::exceptions::InvalidArgumentException, "Cannot build symbolic model from JANI model whose system composition that refers to the automaton '" << composition.getAutomatonName() << "' multiple times.");
+                automata.insert(it, composition.getAutomatonName());
+                return boost::none;
+            }
+            
+            boost::any visit(storm::jani::RenameComposition const& composition, boost::any const& data) override {
+                composition.getSubcomposition().accept(*this, boost::none);
+                return boost::none;
+            }
+            
+            boost::any visit(storm::jani::ParallelComposition const& composition, boost::any const& data) override {
+                composition.getLeftSubcomposition().accept(*this, boost::none);
+                composition.getRightSubcomposition().accept(*this, boost::none);
+                return boost::none;
+            }
+            
+        private:
+            CompositionVariables<Type, ValueType> createVariables() {
+                CompositionVariables<Type, ValueType> result;
+                
+                for (auto const& action : this->model.getActions()) {
+                    if (this->model.getActionIndex(action.getName()) != this->model.getSilentActionIndex()) {
+                        std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = result.manager->addMetaVariable(action.getName());
+                        result.actionVariablesMap[this->model.getActionIndex(action.getName())] = variablePair.first;
+                        result.allNondeterminismVariables.insert(variablePair.first);
+                    }
+                }
+                
+                // FIXME: check how many nondeterminism variables we should actually allocate.
+                uint64_t numberOfNondeterminismVariables = this->model.getNumberOfAutomata();
+                for (auto const& automaton : this->model.getAutomata()) {
+                    numberOfNondeterminismVariables += automaton.getNumberOfEdges();
+                }
+                for (uint_fast64_t i = 0; i < numberOfNondeterminismVariables; ++i) {
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = result.manager->addMetaVariable("nondet" + std::to_string(i));
+                    result.localNondeterminismVariables.push_back(variablePair.first);
+                    result.allNondeterminismVariables.insert(variablePair.first);
+                }
+                
+                for (auto const& automaton : this->model.getAutomata()) {
+                    // Start by creating a meta variable for the location of the automaton.
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = result.manager->addMetaVariable("l_" + automaton.getName(), 0, automaton.getNumberOfLocations() - 1);
+                    result.automatonToLocationVariableMap[automaton.getName()] = variablePair;
+                    
+                    // Add the location variable to the row/column variables.
+                    result.rowMetaVariables.insert(variablePair.first);
+                    result.columnMetaVariables.insert(variablePair.second);
+                    
+                    // Add the legal range for the location variables.
+                    result.variableToRangeMap.emplace(variablePair.first, result.manager->getRange(variablePair.first));
+                    result.variableToRangeMap.emplace(variablePair.second, result.manager->getRange(variablePair.second));
+                }
+                
+                // Create global variables.
+                storm::dd::Bdd<Type> globalVariableRanges = result.manager->getBddOne();
+                for (auto const& variable : this->model.getGlobalVariables()) {
+                    createVariable(variable, result);
+                    globalVariableRanges &= result.manager->getRange(result.variableToRowMetaVariableMap->at(variable.getExpressionVariable()));
+                }
+                result.globalVariableRanges = globalVariableRanges.template toAdd<ValueType>();
+                
+                // Create the variables for the individual automata.
+                for (auto const& automaton : this->model.getAutomata()) {
+                    storm::dd::Bdd<Type> identity = result.manager->getBddOne();
+                    storm::dd::Bdd<Type> range = result.manager->getBddOne();
+                    
+                    // Add the identity and ranges of the location variables to the ones of the automaton.
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> const& locationVariables = result.automatonToLocationVariableMap[automaton.getName()];
+                    storm::dd::Add<Type, ValueType> variableIdentity = result.manager->template getIdentity<ValueType>(locationVariables.first).equals(result.manager->template getIdentity<ValueType>(locationVariables.second)).template toAdd<ValueType>() * result.manager->getRange(locationVariables.first).template toAdd<ValueType>() * result.manager->getRange(locationVariables.second).template toAdd<ValueType>();
+                    identity &= variableIdentity.toBdd();
+                    range &= result.manager->getRange(locationVariables.first);
+                    
+                    // Then create variables for the variables of the automaton.
+                    for (auto const& variable : automaton.getVariables()) {
+                        createVariable(variable, result);
+                        identity &= result.variableToIdentityMap.at(variable.getExpressionVariable()).toBdd();
+                        range &= result.manager->getRange(result.variableToRowMetaVariableMap->at(variable.getExpressionVariable()));
+                    }
+                    
+                    result.automatonToIdentityMap[automaton.getName()] = identity.template toAdd<ValueType>();
+                    result.automatonToRangeMap[automaton.getName()] = (range && globalVariableRanges).template toAdd<ValueType>();
+                }
+                
+                return result;
+            }
+            
+            void createVariable(storm::jani::Variable const& variable, CompositionVariables<Type, ValueType>& result) {
+                if (variable.isBooleanVariable()) {
+                    createVariable(variable.asBooleanVariable(), result);
+                } else if (variable.isBoundedIntegerVariable()) {
+                    createVariable(variable.asBoundedIntegerVariable(), result);
+                } else {
+                    STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Invalid type of variable in JANI model.");
+                }
+            }
+            
+            void createVariable(storm::jani::BoundedIntegerVariable const& variable, CompositionVariables<Type, ValueType>& result) {
+                int_fast64_t low = variable.getLowerBound().evaluateAsInt();
+                int_fast64_t high = variable.getUpperBound().evaluateAsInt();
+                std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = result.manager->addMetaVariable(variable.getName(), low, high);
+                
+                STORM_LOG_TRACE("Created meta variables for global integer variable: " << variablePair.first.getName() << "] and " << variablePair.second.getName() << ".");
+                
+                result.rowMetaVariables.insert(variablePair.first);
+                result.variableToRowMetaVariableMap->emplace(variable.getExpressionVariable(), variablePair.first);
+                
+                result.columnMetaVariables.insert(variablePair.second);
+                result.variableToColumnMetaVariableMap->emplace(variable.getExpressionVariable(), variablePair.second);
+                
+                storm::dd::Add<Type, ValueType> variableIdentity = result.manager->template getIdentity<ValueType>(variablePair.first).equals(result.manager->template getIdentity<ValueType>(variablePair.second)).template toAdd<ValueType>() * result.manager->getRange(variablePair.first).template toAdd<ValueType>() * result.manager->getRange(variablePair.second).template toAdd<ValueType>();
+                result.variableToIdentityMap.emplace(variable.getExpressionVariable(), variableIdentity);
+                result.rowColumnMetaVariablePairs.push_back(variablePair);
+                result.variableToRangeMap.emplace(variablePair.first, result.manager->getRange(variablePair.first));
+                result.variableToRangeMap.emplace(variablePair.second, result.manager->getRange(variablePair.second));
+                
+                result.allGlobalVariables.insert(variable.getExpressionVariable());
+            }
+            
+            void createVariable(storm::jani::BooleanVariable const& variable, CompositionVariables<Type, ValueType>& result) {
+                std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = result.manager->addMetaVariable(variable.getName());
+                
+                STORM_LOG_TRACE("Created meta variables for global boolean variable: " << variablePair.first.getName() << " and " << variablePair.second.getName() << ".");
+                
+                result.rowMetaVariables.insert(variablePair.first);
+                result.variableToRowMetaVariableMap->emplace(variable.getExpressionVariable(), variablePair.first);
+                
+                result.columnMetaVariables.insert(variablePair.second);
+                result.variableToColumnMetaVariableMap->emplace(variable.getExpressionVariable(), variablePair.second);
+                
+                storm::dd::Add<Type, ValueType> variableIdentity = result.manager->template getIdentity<ValueType>(variablePair.first).equals(result.manager->template getIdentity<ValueType>(variablePair.second)).template toAdd<ValueType>();
+                result.variableToIdentityMap.emplace(variable.getExpressionVariable(), variableIdentity);
+                
+                result.variableToRangeMap.emplace(variablePair.first, result.manager->getRange(variablePair.first));
+                result.variableToRangeMap.emplace(variablePair.second, result.manager->getRange(variablePair.second));
+                
+                result.rowColumnMetaVariablePairs.push_back(variablePair);
+                result.allGlobalVariables.insert(variable.getExpressionVariable());
+            }
+            
+            storm::jani::Model const& model;
+            std::set<std::string> automata;
+        };
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        struct ComposerResult {
+            ComposerResult(storm::dd::Add<Type, ValueType> const& transitions, storm::dd::Bdd<Type> const& illegalFragment, uint64_t numberOfNondeterminismVariables = 0) : transitions(transitions), illegalFragment(illegalFragment), numberOfNondeterminismVariables(numberOfNondeterminismVariables) {
+                // Intentionally left empty.
+            }
+            
+            storm::dd::Add<Type, ValueType> transitions;
+            storm::dd::Bdd<Type> illegalFragment;
+            uint64_t numberOfNondeterminismVariables;
+        };
+        
+        // A class that is responsible for performing the actual composition. This
+        template <storm::dd::DdType Type, typename ValueType>
+        class SystemComposer : public storm::jani::CompositionVisitor {
+        public:
+            SystemComposer(storm::jani::Model const& model, CompositionVariables<Type, ValueType> const& variables) : model(model), variables(variables) {
+                // Intentionally left empty.
+            }
+            
+            virtual ComposerResult<Type, ValueType> compose() = 0;
+
+        protected:
+            // The model that is referred to by the composition.
+            storm::jani::Model const& model;
+            
+            // The variable to use when building an automaton.
+            CompositionVariables<Type, ValueType> const& variables;
+        };
+
+        // This structure represents an edge destination.
+        template <storm::dd::DdType Type, typename ValueType>
+        struct EdgeDestinationDd {
+            EdgeDestinationDd(storm::dd::Add<Type, ValueType> const& transitions, std::set<storm::expressions::Variable> const& writtenGlobalVariables = {}) : transitions(transitions), writtenGlobalVariables(writtenGlobalVariables) {
+                // Intentionally left empty.
+            }
+            
+            storm::dd::Add<Type, ValueType> transitions;
+            std::set<storm::expressions::Variable> writtenGlobalVariables;
+        };
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        EdgeDestinationDd<Type, ValueType> buildEdgeDestinationDd(storm::jani::Automaton const& automaton, storm::jani::EdgeDestination const& destination, storm::dd::Add<Type, ValueType> const& guard, CompositionVariables<Type, ValueType> const& variables) {
+            storm::dd::Add<Type, ValueType> transitions = variables.rowExpressionAdapter->translateExpression(destination.getProbability());
+            
+            STORM_LOG_TRACE("Translating edge destination.");
+            
+            // Iterate over all assignments (boolean and integer) and build the DD for it.
+            std::set<storm::expressions::Variable> assignedVariables;
+            for (auto const& assignment : destination.getAssignments()) {
+                // Record the variable as being written.
+                STORM_LOG_TRACE("Assigning to variable " << variables.variableToRowMetaVariableMap->at(assignment.getExpressionVariable()).getName());
+                assignedVariables.insert(assignment.getExpressionVariable());
+                
+                // Translate the written variable.
+                auto const& primedMetaVariable = variables.variableToColumnMetaVariableMap->at(assignment.getExpressionVariable());
+                storm::dd::Add<Type, ValueType> writtenVariable = variables.manager->template getIdentity<ValueType>(primedMetaVariable);
+                
+                // Translate the expression that is being assigned.
+                storm::dd::Add<Type, ValueType> assignedExpression = variables.rowExpressionAdapter->translateExpression(assignment.getAssignedExpression());
+                
+                // Combine the assigned expression with the guard.
+                storm::dd::Add<Type, ValueType> result = assignedExpression * guard;
+                
+                // Combine the variable and the assigned expression.
+                result = result.equals(writtenVariable).template toAdd<ValueType>();
+                result *= guard;
+
+                // Restrict the transitions to the range of the written variable.
+                result = result * variables.variableToRangeMap.at(primedMetaVariable).template toAdd<ValueType>();
+                
+                // Combine the assignment DDs.
+                transitions *= result;
+            }
+            
+            // Compute the set of assigned global variables.
+            std::set<storm::expressions::Variable> assignedGlobalVariables;
+            std::set_intersection(assignedVariables.begin(), assignedVariables.end(), variables.allGlobalVariables.begin(), variables.allGlobalVariables.end(), std::inserter(assignedGlobalVariables, assignedGlobalVariables.begin()));
+            
+            // All unassigned boolean variables need to keep their value.
+            for (storm::jani::BooleanVariable const& variable : automaton.getVariables().getBooleanVariables()) {
+                if (assignedVariables.find(variable.getExpressionVariable()) == assignedVariables.end()) {
+                    STORM_LOG_TRACE("Multiplying identity of variable " << variable.getName());
+                    transitions *= variables.variableToIdentityMap.at(variable.getExpressionVariable());
+                }
+            }
+            
+            // All unassigned integer variables need to keep their value.
+            for (storm::jani::BoundedIntegerVariable const& variable : automaton.getVariables().getBoundedIntegerVariables()) {
+                if (assignedVariables.find(variable.getExpressionVariable()) == assignedVariables.end()) {
+                    STORM_LOG_TRACE("Multiplying identity of variable " << variable.getName());
+                    transitions *= variables.variableToIdentityMap.at(variable.getExpressionVariable());
+                }
+            }
+            
+            transitions *= variables.manager->getEncoding(variables.automatonToLocationVariableMap.at(automaton.getName()).second, destination.getLocationIndex()).template toAdd<ValueType>();
+            
+            return EdgeDestinationDd<Type, ValueType>(transitions, assignedGlobalVariables);
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        storm::dd::Add<Type, ValueType> encodeAction(boost::optional<uint64_t> const& actionIndex, CompositionVariables<Type, ValueType> const& variables) {
+            storm::dd::Add<Type, ValueType> encoding = variables.manager->template getAddOne<ValueType>();
+            
+            for (auto it = variables.actionVariablesMap.rbegin(), ite = variables.actionVariablesMap.rend(); it != ite; ++it) {
+                if (actionIndex && it->first == actionIndex.get()) {
+                    encoding *= variables.manager->getEncoding(it->second, 1).template toAdd<ValueType>();
+                } else {
+                    encoding *= variables.manager->getEncoding(it->second, 0).template toAdd<ValueType>();
+                }
+            }
+            
+            return encoding;
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        storm::dd::Add<Type, ValueType> encodeIndex(uint64_t index, uint64_t localNondeterminismVariableOffset, uint64_t numberOfLocalNondeterminismVariables, CompositionVariables<Type, ValueType> const& variables) {
+            storm::dd::Add<Type, ValueType> result = variables.manager->template getAddZero<ValueType>();
+            
+            std::map<storm::expressions::Variable, int_fast64_t> metaVariableNameToValueMap;
+            for (uint_fast64_t i = 0; i < numberOfLocalNondeterminismVariables; ++i) {
+                if (index & (1ull << (numberOfLocalNondeterminismVariables - i - 1))) {
+                    metaVariableNameToValueMap.emplace(variables.localNondeterminismVariables[localNondeterminismVariableOffset + i], 1);
+                } else {
+                    metaVariableNameToValueMap.emplace(variables.localNondeterminismVariables[localNondeterminismVariableOffset + i], 0);
+                }
+            }
+            
+            result.setValue(metaVariableNameToValueMap, 1);
+            return result;
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        class SeparateEdgesSystemComposer : public SystemComposer<Type, ValueType> {
+        public:
+            // This structure represents an edge.
+            struct EdgeDd {
+                EdgeDd(storm::dd::Add<Type> const& guard = storm::dd::Add<Type>(), storm::dd::Add<Type, ValueType> const& transitions = storm::dd::Add<Type, ValueType>(), std::set<storm::expressions::Variable> const& writtenGlobalVariables = {}, std::set<storm::expressions::Variable> const& globalVariablesWrittenMultipleTimes = {}) : guard(guard), transitions(transitions), writtenGlobalVariables(writtenGlobalVariables), globalVariablesWrittenMultipleTimes(globalVariablesWrittenMultipleTimes) {
+                    // Intentionally left empty.
+                }
+                
+                EdgeDd(EdgeDd const& other) : guard(other.guard), transitions(other.transitions), writtenGlobalVariables(other.writtenGlobalVariables), globalVariablesWrittenMultipleTimes(other.globalVariablesWrittenMultipleTimes) {
+                    // Intentionally left empty.
+                }
+                
+                EdgeDd& operator=(EdgeDd const& other) {
+                    if (this != &other) {
+                        globalVariablesWrittenMultipleTimes = other.globalVariablesWrittenMultipleTimes;
+                        writtenGlobalVariables = other.writtenGlobalVariables;
+                        guard = other.guard;
+                        transitions = other.transitions;
+                    }
+                    return *this;
+                }
+                
+                storm::dd::Add<Type, ValueType> guard;
+                storm::dd::Add<Type, ValueType> transitions;
+                std::set<storm::expressions::Variable> writtenGlobalVariables;
+                std::set<storm::expressions::Variable> globalVariablesWrittenMultipleTimes;
+            };
+            
+            // This structure represents a subcomponent of a composition.
+            struct AutomatonDd {
+                AutomatonDd(storm::dd::Add<Type, ValueType> const& identity) : identity(identity) {
+                    // Intentionally left empty.
+                }
+                
+                std::map<uint64_t, std::vector<EdgeDd>> actionIndexToEdges;
+                storm::dd::Add<Type, ValueType> identity;
+            };
+            
+            SeparateEdgesSystemComposer(storm::jani::Model const& model, CompositionVariables<Type, ValueType> const& variables) : SystemComposer<Type, ValueType>(model, variables) {
+                // Intentionally left empty.
+            }
+            
+            ComposerResult<Type, ValueType> compose() override {
+                AutomatonDd globalAutomaton = boost::any_cast<AutomatonDd>(this->model.getSystemComposition().accept(*this, boost::none));
+                return buildSystemFromAutomaton(globalAutomaton);
+            }
+            
+            boost::any visit(storm::jani::AutomatonComposition const& composition, boost::any const& data) override {
+                return buildAutomatonDd(composition.getAutomatonName());
+            }
+            
+            boost::any visit(storm::jani::RenameComposition const& composition, boost::any const& data) override {
+                AutomatonDd subautomaton = boost::any_cast<AutomatonDd>(composition.getSubcomposition().accept(*this, boost::none));
+                
+                // Build a mapping from indices to indices for the renaming.
+                std::map<uint64_t, uint64_t> renamingIndexToIndex;
+                for (auto const& entry : composition.getRenaming()) {
+                    if (this->model.getActionIndex(entry.first) != this->model.getSilentActionIndex()) {
+                        // Distinguish the cases where we hide the action or properly rename it.
+                        if (entry.second) {
+                            renamingIndexToIndex.emplace(this->model.getActionIndex(entry.first), this->model.getActionIndex(entry.second.get()));
+                        } else {
+                            renamingIndexToIndex.emplace(this->model.getActionIndex(entry.first), this->model.getSilentActionIndex());
+                        }
+                    } else {
+                        STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Renaming composition must not rename the silent action.");
+                    }
+                }
+                
+                // Finally, apply the renaming.
+                AutomatonDd result(subautomaton.identity);
+                for (auto const& actionEdges : subautomaton.actionIndexToEdges) {
+                    auto it = renamingIndexToIndex.find(actionEdges.first);
+                    if (it != renamingIndexToIndex.end()) {
+                        // If we are to rename the action, do so.
+                        result.actionIndexToEdges[it->second].insert(result.actionIndexToEdges[it->second].end(), actionEdges.second.begin(), actionEdges.second.end());
+                    } else {
+                        // Otherwise copy over the edges.
+                        result.actionIndexToEdges[it->first].insert(result.actionIndexToEdges[it->first].begin(), actionEdges.second.begin(), actionEdges.second.end());
+                    }
+                }
+                return result;
+            }
+            
+            boost::any visit(storm::jani::ParallelComposition const& composition, boost::any const& data) override {
+                AutomatonDd leftSubautomaton = boost::any_cast<AutomatonDd>(composition.getLeftSubcomposition().accept(*this, boost::none));
+                AutomatonDd rightSubautomaton = boost::any_cast<AutomatonDd>(composition.getRightSubcomposition().accept(*this, boost::none));
+                
+                // Build the set of synchronizing action indices.
+                std::set<uint64_t> synchronizingActionIndices;
+                for (auto const& entry : composition.getSynchronizationAlphabet()) {
+                    if (this->model.getActionIndex(entry) != this->model.getSilentActionIndex()) {
+                        synchronizingActionIndices.insert(this->model.getActionIndex(entry));
+                    } else {
+                        STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Parallel composition must not synchronize over silent action.");
+                    }
+                }
+                
+                // Perform the composition.
+                
+                // First, consider all actions in the left subcomposition.
+                AutomatonDd result(leftSubautomaton.identity * rightSubautomaton.identity);
+                uint64_t index = 0;
+                for (auto const& actionEdges : leftSubautomaton.actionIndexToEdges) {
+                    // If we need to synchronize over this action, do so now.
+                    if (synchronizingActionIndices.find(actionEdges.first) != synchronizingActionIndices.end()) {
+                        auto rightIt = rightSubautomaton.actionIndexToEdges.find(actionEdges.first);
+                        if (rightIt != rightSubautomaton.actionIndexToEdges.end()) {
+                            for (auto const& edge1 : actionEdges.second) {
+                                for (auto const& edge2 : rightIt->second) {
+                                    EdgeDd edgeDd = composeEdgesInParallel(edge1, edge2);
+                                    if (!edgeDd.guard.isZero()) {
+                                        result.actionIndexToEdges[actionEdges.first].push_back(edgeDd);
+                                    }
+                                    index++;
+                                }
+                            }
+                        }
+                    } else {
+                        // Extend all edges by the missing identity (unsynchronizing) and copy them over.
+                        for (auto const& edge : actionEdges.second) {
+                            result.actionIndexToEdges[actionEdges.first].push_back(extendEdgeWithIdentity(edge, rightSubautomaton.identity));
+                        }
+                    }
+                }
+                
+                // Then, consider all actions in the right subcomposition. All synchronizing actions can be ignored, because
+                // we would have dealt with them earlier if there was a suitable synchronization partner. Since there is none,
+                // such transitions can not be taken and we can drop them.
+                for (auto const& actionEdges : rightSubautomaton.actionIndexToEdges) {
+                    if (synchronizingActionIndices.find(actionEdges.first) == synchronizingActionIndices.end()) {
+                        for (auto const& edge : actionEdges.second) {
+                            result.actionIndexToEdges[actionEdges.first].push_back(extendEdgeWithIdentity(edge, leftSubautomaton.identity));
+                        }
+                    }
+                }
+                
+                return result;
+            }
+            
+        private:
+            storm::dd::Add<Type, ValueType> combineEdgesBySummation(std::vector<EdgeDd> const& edges, CompositionVariables<Type, ValueType> const& variables) {
+                storm::dd::Add<Type, ValueType> result = variables.manager->template getAddZero<ValueType>();
+                for (auto const& edge : edges) {
+                    // Simply add all actions, but make sure to include the missing global variable identities.
+                    result += edge.transitions * computeMissingGlobalVariableIdentities(edge, variables);
+                }
+                return result;
+            }
+            
+            std::pair<uint64_t, storm::dd::Add<Type, ValueType>> combineEdgesByNondeterministicChoice(std::vector<EdgeDd>& edges) {
+                // Complete all edges by adding the missing global variable identities.
+                for (auto& edge : edges) {
+                    edge.transitions *= computeMissingGlobalVariableIdentities(edge, this->variables);
+                }
+                
+                // Sum all guards, so we can read off the maximal number of nondeterministic choices in any given state.
+                storm::dd::Add<Type, ValueType> sumOfGuards = this->variables.manager->template getAddZero<ValueType>();
+                for (auto const& edge : edges) {
+                    sumOfGuards += edge.guard;
+                }
+                uint_fast64_t maxChoices = static_cast<uint_fast64_t>(sumOfGuards.getMax());
+                STORM_LOG_TRACE("Found " << maxChoices << " local choices.");
+                
+                // Depending on the maximal number of nondeterminstic choices, we need to use some variables to encode the nondeterminism.
+                if (maxChoices == 0) {
+                    return std::make_pair(0, this->variables.manager->template getAddZero<ValueType>());
+                } else if (maxChoices == 1) {
+                    return std::make_pair(0, combineEdgesBySummation(edges, this->variables));
+                } else {
+                    // Calculate number of required variables to encode the nondeterminism.
+                    uint_fast64_t numberOfBinaryVariables = static_cast<uint_fast64_t>(std::ceil(storm::utility::math::log2(maxChoices)));
+                    
+                    storm::dd::Add<Type, ValueType> allEdges = this->variables.manager->template getAddZero<ValueType>();
+                    
+                    storm::dd::Bdd<Type> equalsNumberOfChoicesDd;
+                    std::vector<storm::dd::Add<Type, ValueType>> choiceDds(maxChoices, this->variables.manager->template getAddZero<ValueType>());
+                    std::vector<storm::dd::Bdd<Type>> remainingDds(maxChoices, this->variables.manager->getBddZero());
+                    
+                    for (uint_fast64_t currentChoices = 1; currentChoices <= maxChoices; ++currentChoices) {
+                        // Determine the set of states with exactly currentChoices choices.
+                        equalsNumberOfChoicesDd = sumOfGuards.equals(this->variables.manager->getConstant(static_cast<double>(currentChoices)));
+                        
+                        // If there is no such state, continue with the next possible number of choices.
+                        if (equalsNumberOfChoicesDd.isZero()) {
+                            continue;
+                        }
+                        
+                        // Reset the previously used intermediate storage.
+                        for (uint_fast64_t j = 0; j < currentChoices; ++j) {
+                            choiceDds[j] = this->variables.manager->template getAddZero<ValueType>();
+                            remainingDds[j] = equalsNumberOfChoicesDd;
+                        }
+                        
+                        for (std::size_t j = 0; j < edges.size(); ++j) {
+                            // Check if edge guard overlaps with equalsNumberOfChoicesDd. That is, there are states with exactly currentChoices
+                            // choices such that one outgoing choice is given by the j-th edge.
+                            storm::dd::Bdd<Type> guardChoicesIntersection = edges[j].guard.toBdd() && equalsNumberOfChoicesDd;
+                            
+                            // If there is no such state, continue with the next command.
+                            if (guardChoicesIntersection.isZero()) {
+                                continue;
+                            }
+                            
+                            // Split the currentChoices nondeterministic choices.
+                            for (uint_fast64_t k = 0; k < currentChoices; ++k) {
+                                // Calculate the overlapping part of command guard and the remaining DD.
+                                storm::dd::Bdd<Type> remainingGuardChoicesIntersection = guardChoicesIntersection && remainingDds[k];
+                                
+                                // Check if we can add some overlapping parts to the current index.
+                                if (!remainingGuardChoicesIntersection.isZero()) {
+                                    // Remove overlapping parts from the remaining DD.
+                                    remainingDds[k] = remainingDds[k] && !remainingGuardChoicesIntersection;
+                                    
+                                    // Combine the overlapping part of the guard with command updates and add it to the resulting DD.
+                                    choiceDds[k] += remainingGuardChoicesIntersection.template toAdd<ValueType>() * edges[j].transitions;
+                                }
+                                
+                                // Remove overlapping parts from the command guard DD
+                                guardChoicesIntersection = guardChoicesIntersection && !remainingGuardChoicesIntersection;
+                                
+                                // If the guard DD has become equivalent to false, we can stop here.
+                                if (guardChoicesIntersection.isZero()) {
+                                    break;
+                                }
+                            }
+                        }
+                        
+                        // Add the meta variables that encode the nondeterminisim to the different choices.
+                        for (uint_fast64_t j = 0; j < currentChoices; ++j) {
+                            allEdges += encodeIndex(j, 0, numberOfBinaryVariables, this->variables) * choiceDds[j];
+                        }
+                        
+                        // Delete currentChoices out of overlapping DD
+                        sumOfGuards = sumOfGuards * (!equalsNumberOfChoicesDd).template toAdd<ValueType>();
+                    }
+                    
+                    return std::make_pair(numberOfBinaryVariables, allEdges);
+                }
+            }
+            
+            storm::dd::Bdd<Type> computeIllegalFragmentFromEdges(std::map<uint64_t, std::vector<EdgeDd>> const& actionIndexToEdges) {
+                // Create the illegal fragment. For this, we need to find the edges that write global variables multiple times.
+                storm::dd::Bdd<Type> illegalFragment = this->variables.manager->getBddZero();
+                for (auto const& action : actionIndexToEdges) {
+                    for (auto const& edge : action.second) {
+                        if (!edge.globalVariablesWrittenMultipleTimes.empty()) {
+                            for (auto const& variable : edge.globalVariablesWrittenMultipleTimes) {
+                                STORM_LOG_WARN("The global variable '" << variable.getName() << "' is written along multiple synchronizing edges. If such a transition is contained in the reachable state space, an error is raised.");
+                                illegalFragment |= edge.guard.toBdd();
+                            }
+                        }
+                    }
+                }
+                return illegalFragment;
+            }
+            
+            ComposerResult<Type, ValueType> buildSystemFromAutomaton(AutomatonDd& automatonDd) {
+                // If the model is an MDP, we need to encode the nondeterminism using additional variables.
+                if (this->model.getModelType() == storm::jani::ModelType::MDP) {
+                    std::map<uint64_t, std::pair<uint64_t, storm::dd::Add<Type, ValueType>>> actionIndexToUsedVariablesAndDd;
+                    
+                    // Combine the edges of each action individually and keep track of how many local nondeterminism variables
+                    // were used.
+                    uint64_t highestNumberOfUsedNondeterminismVariables = 0;
+                    for (auto& action : automatonDd.actionIndexToEdges) {
+                        std::pair<uint64_t, storm::dd::Add<Type, ValueType>> usedVariablesAndDd = combineEdgesByNondeterministicChoice(action.second);
+                        actionIndexToUsedVariablesAndDd.emplace(action.first, usedVariablesAndDd);
+                        highestNumberOfUsedNondeterminismVariables = std::max(highestNumberOfUsedNondeterminismVariables, usedVariablesAndDd.first);
+                    }
+                    
+                    storm::dd::Add<Type, ValueType> result = this->variables.manager->template getAddZero<ValueType>();
+                    for (auto const& element : actionIndexToUsedVariablesAndDd) {
+                        result += element.second.second * encodeAction(element.first != this->model.getSilentActionIndex() ? boost::optional<uint64_t>(element.first) : boost::none, this->variables) * encodeIndex(0, element.second.first, highestNumberOfUsedNondeterminismVariables - element.second.first, this->variables);
+                    }
+                    
+                    return ComposerResult<Type, ValueType>(result, computeIllegalFragmentFromEdges(automatonDd.actionIndexToEdges), highestNumberOfUsedNondeterminismVariables);
+                } else if (this->model.getModelType() == storm::jani::ModelType::DTMC || this->model.getModelType() == storm::jani::ModelType::CTMC) {
+                    storm::dd::Add<Type, ValueType> result = this->variables.manager->template getAddZero<ValueType>();
+                    for (auto const& action : automatonDd.actionIndexToEdges) {
+                        result += combineEdgesBySummation(action.second, this->variables);
+                    }
+                    return ComposerResult<Type, ValueType>(result, computeIllegalFragmentFromEdges(automatonDd.actionIndexToEdges), 0);
+                }
+                
+                STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Illegal model type.");
+            }
+            
+            storm::dd::Add<Type, ValueType> computeMissingGlobalVariableIdentities(EdgeDd const& edge, CompositionVariables<Type, ValueType> const& variables) {
+                std::set<storm::expressions::Variable> missingIdentities;
+                std::set_difference(variables.allGlobalVariables.begin(), variables.allGlobalVariables.end(), edge.writtenGlobalVariables.begin(), edge.writtenGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
+                storm::dd::Add<Type, ValueType> identityEncoding = variables.manager->template getAddOne<ValueType>();
+                for (auto const& variable : missingIdentities) {
+                    identityEncoding *= variables.variableToIdentityMap.at(variable);
+                }
+                return identityEncoding;
+            }
+            
+            EdgeDd extendEdgeWithIdentity(EdgeDd const& edge, storm::dd::Add<Type, ValueType> const& identity) {
+                EdgeDd result(edge);
+                result.transitions *= identity;
+                return result;
+            }
+            
+            EdgeDd composeEdgesInParallel(EdgeDd const& edge1, EdgeDd const& edge2) {
+                EdgeDd result;
+                
+                // Compose the guards.
+                result.guard = edge1.guard * edge2.guard;
+                
+                // If the composed guard is already zero, we can immediately return an empty result.
+                if (result.guard.isZero()) {
+                    result.transitions = edge1.transitions.getDdManager().template getAddZero<ValueType>();
+                    return result;
+                }
+                
+                // Compute the set of variables written multiple times by the composition.
+                std::set<storm::expressions::Variable> oldVariablesWrittenMultipleTimes;
+                std::set_union(edge1.globalVariablesWrittenMultipleTimes.begin(), edge1.globalVariablesWrittenMultipleTimes.end(), edge2.globalVariablesWrittenMultipleTimes.begin(), edge2.globalVariablesWrittenMultipleTimes.end(), std::inserter(oldVariablesWrittenMultipleTimes, oldVariablesWrittenMultipleTimes.begin()));
+                
+                std::set<storm::expressions::Variable> newVariablesWrittenMultipleTimes;
+                std::set_intersection(edge1.writtenGlobalVariables.begin(), edge1.writtenGlobalVariables.end(), edge2.writtenGlobalVariables.begin(), edge2.writtenGlobalVariables.end(), std::inserter(newVariablesWrittenMultipleTimes, newVariablesWrittenMultipleTimes.begin()));
+                
+                std::set<storm::expressions::Variable> variablesWrittenMultipleTimes;
+                std::set_union(oldVariablesWrittenMultipleTimes.begin(), oldVariablesWrittenMultipleTimes.end(), newVariablesWrittenMultipleTimes.begin(), newVariablesWrittenMultipleTimes.end(), std::inserter(variablesWrittenMultipleTimes, variablesWrittenMultipleTimes.begin()));
+                
+                result.globalVariablesWrittenMultipleTimes = std::move(variablesWrittenMultipleTimes);
+                
+                // Compute the set of variables written by the composition.
+                std::set<storm::expressions::Variable> variablesWritten;
+                std::set_union(edge1.writtenGlobalVariables.begin(), edge1.writtenGlobalVariables.end(), edge2.writtenGlobalVariables.begin(), edge2.writtenGlobalVariables.end(), std::inserter(variablesWritten, variablesWritten.begin()));
+                
+                result.writtenGlobalVariables = variablesWritten;
+                
+                // Compose the guards.
+                result.guard = edge1.guard * edge2.guard;
+                
+                // Compose the transitions.
+                result.transitions = edge1.transitions * edge2.transitions;
+                
+                return result;
+            }
+            
+            /*!
+             * Builds the DD for the given edge.
+             */
+            EdgeDd buildEdgeDd(storm::jani::Automaton const& automaton, storm::jani::Edge const& edge) {
+                STORM_LOG_TRACE("Translating guard " << edge.getGuard());
+                storm::dd::Add<Type, ValueType> guard = this->variables.rowExpressionAdapter->translateExpression(edge.getGuard());// * this->variables.automatonToRangeMap.at(automaton.getName());
+                STORM_LOG_WARN_COND(!guard.isZero(), "The guard '" << edge.getGuard() << "' is unsatisfiable.");
+                
+                if (!guard.isZero()) {
+                    // Create the DDs representing the individual updates.
+                    std::vector<EdgeDestinationDd<Type, ValueType>> destinationDds;
+                    for (storm::jani::EdgeDestination const& destination : edge.getDestinations()) {
+                        destinationDds.push_back(buildEdgeDestinationDd(automaton, destination, guard, this->variables));
+                        
+                        STORM_LOG_WARN_COND(!destinationDds.back().transitions.isZero(), "Destination does not have any effect.");
+                    }
+
+                    // Start by gathering all variables that were written in at least one update.
+                    std::set<storm::expressions::Variable> globalVariablesInSomeUpdate;
+                    
+                    // If the edge is not labeled with the silent action, we have to analyze which portion of the global
+                    // variables was written by any of the updates and make all update results equal w.r.t. this set. If
+                    // the edge is labeled with the silent action, we can already multiply the identities of all global variables.
+                    if (edge.getActionIndex() != this->model.getSilentActionIndex()) {
+                        for (auto const& edgeDestinationDd : destinationDds) {
+                            globalVariablesInSomeUpdate.insert(edgeDestinationDd.writtenGlobalVariables.begin(), edgeDestinationDd.writtenGlobalVariables.end());
+                        }
+                    } else {
+                        globalVariablesInSomeUpdate = this->variables.allGlobalVariables;
+                    }
+                    
+                    // Then, multiply the missing identities.
+                    for (auto& destinationDd : destinationDds) {
+                        std::set<storm::expressions::Variable> missingIdentities;
+                        std::set_difference(globalVariablesInSomeUpdate.begin(), globalVariablesInSomeUpdate.end(), destinationDd.writtenGlobalVariables.begin(), destinationDd.writtenGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
+                        
+                        for (auto const& variable : missingIdentities) {
+                            STORM_LOG_TRACE("Multiplying identity for variable " << variable.getName() << " to destination DD.");
+                            destinationDd.transitions *= this->variables.variableToIdentityMap.at(variable);
+                        }
+                    }
+                    
+                    // Now combine the destination DDs to the edge DD.
+                    storm::dd::Add<Type, ValueType> transitions = this->variables.manager->template getAddZero<ValueType>();
+                    for (auto const& destinationDd : destinationDds) {
+                        transitions += destinationDd.transitions;
+                    }
+                    
+                    // Add the source location and the guard.
+                    transitions *= this->variables.manager->getEncoding(this->variables.automatonToLocationVariableMap.at(automaton.getName()).first, edge.getSourceLocationIndex()).template toAdd<ValueType>() * guard;
+                    
+                    // If we multiply the ranges of global variables, make sure everything stays within its bounds.
+                    if (!globalVariablesInSomeUpdate.empty()) {
+                        transitions *= this->variables.globalVariableRanges;
+                    }
+                    
+                    // If the edge has a rate, we multiply it to the DD.
+                    if (edge.hasRate()) {
+                        transitions *= this->variables.rowExpressionAdapter->translateExpression(edge.getRate());
+                    }
+                    return EdgeDd(guard, transitions, globalVariablesInSomeUpdate);
+                } else {
+                    return EdgeDd(this->variables.manager->template getAddZero<ValueType>(), this->variables.manager->template getAddZero<ValueType>());
+                }
+            }
+            
+            /*!
+             * Builds the DD for the automaton with the given name.
+             */
+            AutomatonDd buildAutomatonDd(std::string const& automatonName) {
+                AutomatonDd result(this->variables.automatonToIdentityMap.at(automatonName));
+                
+                storm::jani::Automaton const& automaton = this->model.getAutomaton(automatonName);
+                for (auto const& edge : automaton.getEdges()) {
+                    // Build the edge and add it if it adds transitions.
+                    EdgeDd edgeDd = buildEdgeDd(automaton, edge);
+                    if (!edgeDd.guard.isZero()) {
+                        result.actionIndexToEdges[edge.getActionIndex()].push_back(edgeDd);
+                    }
+                }
+                
+                return result;
+            }
+        };
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        class CombinedEdgesSystemComposer : public SystemComposer<Type, ValueType> {
+        public:
+            // This structure represents an edge.
+            struct EdgeDd {
+                EdgeDd(storm::dd::Add<Type> const& guard = storm::dd::Add<Type>(), storm::dd::Add<Type, ValueType> const& transitions = storm::dd::Add<Type, ValueType>(), std::set<storm::expressions::Variable> const& writtenGlobalVariables = {}) : guard(guard), transitions(transitions), writtenGlobalVariables(writtenGlobalVariables) {
+                    // Intentionally left empty.
+                }
+                
+                // A DD that represents all states that have this edge enabled.
+                storm::dd::Add<Type, ValueType> guard;
+                
+                // A DD that represents the transitions of this edge.
+                storm::dd::Add<Type, ValueType> transitions;
+                
+                // The set of global variables written by this edge.
+                std::set<storm::expressions::Variable> writtenGlobalVariables;
+            };
+            
+            // This structure represents an edge.
+            struct ActionDd {
+                ActionDd(storm::dd::Add<Type> const& guard = storm::dd::Add<Type>(), storm::dd::Add<Type, ValueType> const& transitions = storm::dd::Add<Type, ValueType>(), std::pair<uint64_t, uint64_t> localNondeterminismVariables = std::pair<uint64_t, uint64_t>(0, 0), std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> const& variableToWritingFragment = {}, storm::dd::Bdd<Type> const& illegalFragment = storm::dd::Bdd<Type>()) : guard(guard), transitions(transitions), localNondeterminismVariables(localNondeterminismVariables), variableToWritingFragment(variableToWritingFragment), illegalFragment(illegalFragment) {
+                    // Intentionally left empty.
+                }
+                
+                uint64_t getLowestLocalNondeterminismVariable() const {
+                    return localNondeterminismVariables.first;
+                }
+
+                uint64_t getHighestLocalNondeterminismVariable() const {
+                    return localNondeterminismVariables.second;
+                }
+                
+                std::pair<uint64_t, uint64_t> const& getLocalNondeterminismVariables() const {
+                    return localNondeterminismVariables;
+                }
+
+                // A DD that represents all states that have this edge enabled.
+                storm::dd::Add<Type, ValueType> guard;
+                
+                // A DD that represents the transitions of this edge.
+                storm::dd::Add<Type, ValueType> transitions;
+                
+                // The local nondeterminism variables used by this action DD, given as the lowest
+                std::pair<uint64_t, uint64_t> localNondeterminismVariables;
+                
+                // A mapping from global variables to a DD that characterizes choices (nondeterminism variables) in
+                // states that write to this global variable.
+                std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> variableToWritingFragment;
+                
+                // A DD characterizing the fragment of the states satisfying the guard that are illegal because
+                // there are synchronizing edges enabled that write to the same global variable.
+                storm::dd::Bdd<Type> illegalFragment;
+            };
+            
+            // This structure represents a subcomponent of a composition.
+            struct AutomatonDd {
+                AutomatonDd(storm::dd::Add<Type, ValueType> const& identity) : actionIndexToAction(), identity(identity), localNondeterminismVariables(std::make_pair<uint64_t, uint64_t>(0, 0)) {
+                    // Intentionally left empty.
+                }
+                
+                uint64_t getLowestLocalNondeterminismVariable() const {
+                    return localNondeterminismVariables.first;
+                }
+
+                void setLowestLocalNondeterminismVariable(uint64_t newValue) {
+                    localNondeterminismVariables.first = newValue;
+                }
+                
+                uint64_t getHighestLocalNondeterminismVariable() const {
+                    return localNondeterminismVariables.second;
+                }
+
+                void setHighestLocalNondeterminismVariable(uint64_t newValue) {
+                    localNondeterminismVariables.second = newValue;
+                }
+                
+                void extendLocalNondeterminismVariables(std::pair<uint64_t, uint64_t> const& localNondeterminismVariables) {
+                    setLowestLocalNondeterminismVariable(std::min(localNondeterminismVariables.first, getLowestLocalNondeterminismVariable()));
+                    setHighestLocalNondeterminismVariable(std::max(localNondeterminismVariables.second, getHighestLocalNondeterminismVariable()));
+                }
+                
+                // A mapping from action indices to the action DDs.
+                std::map<uint64_t, ActionDd> actionIndexToAction;
+                
+                // The identity of the automaton's variables.
+                storm::dd::Add<Type, ValueType> identity;
+                
+                // The local nondeterminism variables used by this action DD, given as the lowest
+                std::pair<uint64_t, uint64_t> localNondeterminismVariables;
+
+            };
+            
+            CombinedEdgesSystemComposer(storm::jani::Model const& model, CompositionVariables<Type, ValueType> const& variables) : SystemComposer<Type, ValueType>(model, variables) {
+                // Intentionally left empty.
+            }
+
+            ComposerResult<Type, ValueType> compose() override {
+                std::map<uint_fast64_t, uint_fast64_t> actionIndexToLocalNondeterminismVariableOffset;
+                for (auto const& action : this->model.getActions()) {
+                    actionIndexToLocalNondeterminismVariableOffset[this->model.getActionIndex(action.getName())] = 0;
+                }
+                
+                AutomatonDd globalAutomaton = boost::any_cast<AutomatonDd>(this->model.getSystemComposition().accept(*this, actionIndexToLocalNondeterminismVariableOffset));
+                return buildSystemFromAutomaton(globalAutomaton);
+            }
+            
+            boost::any visit(storm::jani::AutomatonComposition const& composition, boost::any const& data) override {
+                std::map<uint_fast64_t, uint_fast64_t> const& actionIndexToLocalNondeterminismVariableOffset = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                return buildAutomatonDd(composition.getAutomatonName(), actionIndexToLocalNondeterminismVariableOffset);
+            }
+            
+            boost::any visit(storm::jani::RenameComposition const& composition, boost::any const& data) override {
+                // Build a mapping from indices to indices for the renaming.
+                std::map<uint64_t, uint64_t> renamingIndexToIndex;
+                for (auto const& entry : composition.getRenaming()) {
+                    if (this->model.getActionIndex(entry.first) != this->model.getSilentActionIndex()) {
+                        // Distinguish the cases where we hide the action or properly rename it.
+                        if (entry.second) {
+                            renamingIndexToIndex.emplace(this->model.getActionIndex(entry.first), this->model.getActionIndex(entry.second.get()));
+                        } else {
+                            renamingIndexToIndex.emplace(this->model.getActionIndex(entry.first), this->model.getSilentActionIndex());
+                        }
+                    } else {
+                        STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Renaming composition must not rename the silent action.");
+                    }
+                }
+                
+                // Prepare the new offset mapping.
+                std::map<uint_fast64_t, uint_fast64_t> const& actionIndexToLocalNondeterminismVariableOffset = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                std::map<uint_fast64_t, uint_fast64_t> newSynchronizingActionToOffsetMap = actionIndexToLocalNondeterminismVariableOffset;
+                for (auto const& indexPair : renamingIndexToIndex) {
+                    auto it = actionIndexToLocalNondeterminismVariableOffset.find(indexPair.second);
+                    STORM_LOG_THROW(it != actionIndexToLocalNondeterminismVariableOffset.end(), storm::exceptions::InvalidArgumentException, "Invalid action index " << indexPair.second << ".");
+                    newSynchronizingActionToOffsetMap[indexPair.first] = it->second;
+                }
+                
+                // Then, we translate the subcomposition.
+                AutomatonDd subautomaton = boost::any_cast<AutomatonDd>(composition.getSubcomposition().accept(*this, newSynchronizingActionToOffsetMap));
+
+                // Now perform the renaming and return result.
+                return rename(subautomaton, renamingIndexToIndex);
+            }
+            
+            boost::any visit(storm::jani::ParallelComposition const& composition, boost::any const& data) override {
+                // Build the set of synchronizing action indices.
+                std::set<uint64_t> synchronizingActionIndices;
+                for (auto const& entry : composition.getSynchronizationAlphabet()) {
+                    if (this->model.getActionIndex(entry) != this->model.getSilentActionIndex()) {
+                        synchronizingActionIndices.insert(this->model.getActionIndex(entry));
+                    } else {
+                        STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Parallel composition must not synchronize over silent action.");
+                    }
+                }
+                
+                // Then translate the left subcomposition.
+                AutomatonDd left = boost::any_cast<AutomatonDd>(composition.getLeftSubcomposition().accept(*this, data));
+                
+                // Prepare the new offset mapping.
+                std::map<uint64_t, uint64_t> const& actionIndexToLocalNondeterminismVariableOffset = boost::any_cast<std::map<uint64_t, uint64_t> const&>(data);
+                std::map<uint64_t, uint64_t> newActionIndexToLocalNondeterminismVariableOffset = actionIndexToLocalNondeterminismVariableOffset;
+                for (auto const& actionIndex : synchronizingActionIndices) {
+                    auto it = left.actionIndexToAction.find(actionIndex);
+                    if (it != left.actionIndexToAction.end()) {
+                        newActionIndexToLocalNondeterminismVariableOffset[actionIndex] = it->second.getHighestLocalNondeterminismVariable();
+                    }
+                }
+                
+                // Then translate the right subcomposition.
+                AutomatonDd right = boost::any_cast<AutomatonDd>(composition.getRightSubcomposition().accept(*this, newActionIndexToLocalNondeterminismVariableOffset));
+
+                return composeInParallel(left, right, synchronizingActionIndices);
+            }
+            
+        private:
+            AutomatonDd composeInParallel(AutomatonDd const& automaton1, AutomatonDd const& automaton2, std::set<uint64_t> const& synchronizingActionIndices) {
+                AutomatonDd result(automaton1);
+                
+                // Treat all actions of the first automaton.
+                for (auto const& action1 : automaton1.actionIndexToAction) {
+                    // If we need to synchronize over this action index, we try to do so now.
+                    if (synchronizingActionIndices.find(action1.first) != synchronizingActionIndices.end()) {
+                        auto action2It = automaton2.actionIndexToAction.find(action1.first);
+                        if (action2It != automaton2.actionIndexToAction.end()) {
+                            ActionDd newAction = combineSynchronizingActions(action1.second, action2It->second);
+                            result.actionIndexToAction[action1.first] = newAction;
+                            result.extendLocalNondeterminismVariables(newAction.getLocalNondeterminismVariables());
+                        }
+                    } else {
+                        // If we don't synchronize over this action, we need to construct the interleaving.
+                        
+                        // If both automata contain the action, we need to combine the actions in an unsynchronized way.
+                        auto action2It = automaton2.actionIndexToAction.find(action1.first);
+                        if (action2It != automaton2.actionIndexToAction.end()) {
+                            ActionDd newAction = combineUnsynchronizedActions(action1.second, action2It->second, automaton1.identity, automaton2.identity);
+                            result.actionIndexToAction[action1.first] = newAction;
+                            result.extendLocalNondeterminismVariables(newAction.getLocalNondeterminismVariables());
+                        } else {
+                            // If only the first automaton has this action, we only need to apply the identity of the
+                            // second automaton.
+                            result.actionIndexToAction[action1.first] = ActionDd(action1.second.guard, action1.second.transitions * automaton2.identity, action1.second.localNondeterminismVariables, action1.second.variableToWritingFragment, action1.second.illegalFragment);
+                        }
+                    }
+                }
+                
+                // Treat the actions of the second automaton.
+                for (auto const& action2 : automaton2.actionIndexToAction) {
+                    // Here, we only need to treat actions that the first automaton does not have, because we have handled
+                    // this case earlier. Likewise, we have to consider non-synchronizing actions only.
+                    if (automaton1.actionIndexToAction.find(action2.first) == automaton1.actionIndexToAction.end()) {
+                        if (synchronizingActionIndices.find(action2.first) == synchronizingActionIndices.end()) {
+                            // If only the second automaton has this action, we only need to apply the identity of the
+                            // first automaton.
+                            result.actionIndexToAction[action2.first] = ActionDd(action2.second.guard, action2.second.transitions * automaton1.identity, action2.second.localNondeterminismVariables, action2.second.variableToWritingFragment, action2.second.illegalFragment);
+                        }
+                    }
+                }
+                
+                result.identity = automaton1.identity * automaton2.identity;
+                
+                return result;
+            }
+            
+            ActionDd combineSynchronizingActions(ActionDd action1, ActionDd action2) {
+                storm::dd::Bdd<Type> illegalFragment = this->variables.manager->getBddZero();
+                storm::dd::Bdd<Type> guard1 = action1.guard.toBdd();
+                storm::dd::Bdd<Type> guard2 = action2.guard.toBdd();
+                storm::dd::Bdd<Type> combinedGuard = guard1 && guard2;
+                
+                // Cross-multiply the guards to the other fragments that write global variables and check for overlapping
+                // parts. This finds illegal parts in which a global variable is written multiple times.
+                std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> globalVariableToWritingFragment;
+                for (auto& entry : action1.variableToWritingFragment) {
+                    entry.second &= guard2;
+                    globalVariableToWritingFragment[entry.first] = entry.second;
+                }
+                for (auto& entry : action2.variableToWritingFragment) {
+                    entry.second &= guard1;
+                    auto it = globalVariableToWritingFragment.find(entry.first);
+                    if (it != globalVariableToWritingFragment.end()) {
+                        auto action1LocalNondeterminismVariableSet = std::set<storm::expressions::Variable>(this->variables.localNondeterminismVariables.begin() + action1.getLowestLocalNondeterminismVariable(), this->variables.localNondeterminismVariables.begin() + action1.getHighestLocalNondeterminismVariable());
+                        auto action2LocalNondeterminismVariableSet = std::set<storm::expressions::Variable>(this->variables.localNondeterminismVariables.begin() + action2.getLowestLocalNondeterminismVariable(), this->variables.localNondeterminismVariables.begin() + action2.getHighestLocalNondeterminismVariable());
+                        illegalFragment |= it->second.existsAbstract(action1LocalNondeterminismVariableSet) && entry.second.existsAbstract(action2LocalNondeterminismVariableSet);
+                        it->second &= entry.second;
+                    } else {
+                        globalVariableToWritingFragment[entry.first] = entry.second;
+                    }
+                }
+                
+                return ActionDd(action1.guard * action2.guard, action1.transitions * action2.transitions, std::make_pair(std::min(action1.getLowestLocalNondeterminismVariable(), action2.getLowestLocalNondeterminismVariable()), std::max(action1.getHighestLocalNondeterminismVariable(), action2.getHighestLocalNondeterminismVariable())), globalVariableToWritingFragment, illegalFragment);
+            }
+            
+            ActionDd combineUnsynchronizedActions(ActionDd action1, ActionDd action2, storm::dd::Add<Type, ValueType> const& identity1, storm::dd::Add<Type, ValueType> const& identity2) {
+                // First extend the action DDs by the other identities.
+                STORM_LOG_TRACE("Multiplying identities to combine unsynchronized actions.");
+                action1.transitions = action1.transitions * identity2;
+                action2.transitions = action2.transitions * identity1;
+                
+                // Then combine the extended action DDs.
+                return combineUnsynchronizedActions(action1, action2);
+            }
+            
+            ActionDd combineUnsynchronizedActions(ActionDd action1, ActionDd action2) {
+                STORM_LOG_TRACE("Combining unsynchronized actions.");
+                
+                if (this->model.getModelType() == storm::jani::ModelType::DTMC || this->model.getModelType() == storm::jani::ModelType::CTMC) {
+                    return ActionDd(action1.guard + action2.guard, action1.transitions + action2.transitions, std::make_pair<uint64_t, uint64_t>(0, 0), joinVariableWritingFragmentMaps(action1.variableToWritingFragment, action2.variableToWritingFragment), this->variables.manager->getBddZero());
+                } else if (this->model.getModelType() == storm::jani::ModelType::MDP) {
+                    if (action1.transitions.isZero()) {
+                        return action2;
+                    } else if (action2.transitions.isZero()) {
+                        return action1;
+                    }
+                    
+                    // Bring both choices to the same number of variables that encode the nondeterminism.
+                    assert(action1.getLowestLocalNondeterminismVariable() == action2.getLowestLocalNondeterminismVariable());
+                    uint_fast64_t highestLocalNondeterminismVariable = std::max(action1.getHighestLocalNondeterminismVariable(), action2.getHighestLocalNondeterminismVariable());
+                    if (action1.getHighestLocalNondeterminismVariable() > action2.getHighestLocalNondeterminismVariable()) {
+                        storm::dd::Add<Type, ValueType> nondeterminismEncoding = this->variables.manager->template getAddOne<ValueType>();
+                        
+                        for (uint_fast64_t i = action2.getHighestLocalNondeterminismVariable(); i < action1.getHighestLocalNondeterminismVariable(); ++i) {
+                            nondeterminismEncoding *= this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[i], 0).template toAdd<ValueType>();
+                        }
+                        action2.transitions *= nondeterminismEncoding;
+                    } else if (action2.getHighestLocalNondeterminismVariable() > action1.getHighestLocalNondeterminismVariable()) {
+                        storm::dd::Add<Type, ValueType> nondeterminismEncoding = this->variables.manager->template getAddOne<ValueType>();
+                        
+                        for (uint_fast64_t i = action1.getHighestLocalNondeterminismVariable(); i < action2.getHighestLocalNondeterminismVariable(); ++i) {
+                            nondeterminismEncoding *= this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[i], 0).template toAdd<ValueType>();
+                        }
+                        action1.transitions *= nondeterminismEncoding;
+                    }
+                    
+                    // Add a new variable that resolves the nondeterminism between the two choices.
+                    storm::dd::Add<Type, ValueType> combinedTransitions = this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[highestLocalNondeterminismVariable], 1).ite(action2.transitions, action1.transitions);
+                    
+                    // Add the new variable to the writing fragments of each global variable before joining them.
+                    for (auto& entry : action1.variableToWritingFragment) {
+                        entry.second = this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[highestLocalNondeterminismVariable], 0) && entry.second;
+                    }
+                    for (auto& entry : action2.variableToWritingFragment) {
+                        entry.second = this->variables.manager->getEncoding(this->variables.localNondeterminismVariables[highestLocalNondeterminismVariable], 1) && entry.second;
+                    }
+                    
+                    return ActionDd((action1.guard.toBdd() || action2.guard.toBdd()).template toAdd<ValueType>(), combinedTransitions, std::make_pair(action1.getLowestLocalNondeterminismVariable(), highestLocalNondeterminismVariable + 1), joinVariableWritingFragmentMaps(action1.variableToWritingFragment, action2.variableToWritingFragment), action1.illegalFragment || action2.illegalFragment);
+                } else {
+                    STORM_LOG_THROW(false, storm::exceptions::InvalidStateException, "Illegal model type.");
+                }
+            }
+            
+            AutomatonDd rename(AutomatonDd const& automaton, std::map<uint64_t, uint64_t> const& indexToIndex) {
+                AutomatonDd result(automaton.identity);
+                
+                for (auto const& action : automaton.actionIndexToAction) {
+                    auto renamingIt = indexToIndex.find(action.first);
+                    if (renamingIt != indexToIndex.end()) {
+                        // If the action is to be renamed and an action with the target index already exists, we need
+                        // to combine the action DDs.
+                        auto itNewActions = result.actionIndexToAction.find(renamingIt->second);
+                        if (itNewActions != result.actionIndexToAction.end()) {
+                            itNewActions->second = combineUnsynchronizedActions(action.second, itNewActions->second);
+                        } else {
+                            // In this case, we can simply copy the action over.
+                            result.actionIndexToAction[renamingIt->second] = action.second;
+                        }
+                    } else {
+                        // If the action is not to be renamed, we need to copy it over. However, if some other action
+                        // was renamed to the very same action name before, we need to combine the transitions.
+                        auto itNewActions = result.actionIndexToAction.find(action.first);
+                        if (itNewActions != result.actionIndexToAction.end()) {
+                            itNewActions->second = combineUnsynchronizedActions(action.second, itNewActions->second);
+                        } else {
+                            // In this case, we can simply copy the action over.
+                            result.actionIndexToAction[action.first] = action.second;
+                        }
+                    }
+                }
+                
+                return result;
+            }
+            
+            EdgeDd buildEdgeDd(storm::jani::Automaton const& automaton, storm::jani::Edge const& edge) {
+                STORM_LOG_TRACE("Translating guard " << edge.getGuard());
+                
+                // We keep the guard and a "ranged" version seperate, because building the destinations tends to be
+                // slower when the full range is applied.
+                storm::dd::Add<Type, ValueType> guard = this->variables.rowExpressionAdapter->translateExpression(edge.getGuard());
+                storm::dd::Add<Type, ValueType> rangedGuard = guard * this->variables.automatonToRangeMap.at(automaton.getName());
+                STORM_LOG_WARN_COND(!rangedGuard.isZero(), "The guard '" << edge.getGuard() << "' is unsatisfiable.");
+                
+                if (!rangedGuard.isZero()) {
+                    // Create the DDs representing the individual updates.
+                    std::vector<EdgeDestinationDd<Type, ValueType>> destinationDds;
+                    for (storm::jani::EdgeDestination const& destination : edge.getDestinations()) {
+                        destinationDds.push_back(buildEdgeDestinationDd(automaton, destination, guard, this->variables));
+                        
+                        STORM_LOG_WARN_COND(!destinationDds.back().transitions.isZero(), "Destination does not have any effect.");
+                    }
+                    
+                    // Now that we have built the destinations, we always take the full guard.
+                    guard = rangedGuard;
+                    
+                    // Start by gathering all variables that were written in at least one destination.
+                    std::set<storm::expressions::Variable> globalVariablesInSomeDestination;
+                    
+                    // If the edge is not labeled with the silent action, we have to analyze which portion of the global
+                    // variables was written by any of the updates and make all update results equal w.r.t. this set. If
+                    // the edge is labeled with the silent action, we can already multiply the identities of all global variables.
+                    if (edge.getActionIndex() != this->model.getSilentActionIndex()) {
+                        for (auto const& edgeDestinationDd : destinationDds) {
+                            globalVariablesInSomeDestination.insert(edgeDestinationDd.writtenGlobalVariables.begin(), edgeDestinationDd.writtenGlobalVariables.end());
+                        }
+                    } else {
+                        globalVariablesInSomeDestination = this->variables.allGlobalVariables;
+                    }
+                    
+                    // Then, multiply the missing identities.
+                    for (auto& destinationDd : destinationDds) {
+                        std::set<storm::expressions::Variable> missingIdentities;
+                        std::set_difference(globalVariablesInSomeDestination.begin(), globalVariablesInSomeDestination.end(), destinationDd.writtenGlobalVariables.begin(), destinationDd.writtenGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
+                        
+                        for (auto const& variable : missingIdentities) {
+                            STORM_LOG_TRACE("Multiplying identity for variable " << variable.getName() << " to destination DD.");
+                            destinationDd.transitions *= this->variables.variableToIdentityMap.at(variable);
+                        }
+                    }
+                    
+                    // Now combine the destination DDs to the edge DD.
+                    storm::dd::Add<Type, ValueType> transitions = this->variables.manager->template getAddZero<ValueType>();
+                    for (auto const& destinationDd : destinationDds) {
+                        transitions += destinationDd.transitions;
+                    }
+                    
+                    // Add the source location and the guard.
+                    transitions *= this->variables.manager->getEncoding(this->variables.automatonToLocationVariableMap.at(automaton.getName()).first, edge.getSourceLocationIndex()).template toAdd<ValueType>() * guard;
+                    
+                    // If we multiply the ranges of global variables, make sure everything stays within its bounds.
+                    if (!globalVariablesInSomeDestination.empty()) {
+                        transitions *= this->variables.globalVariableRanges;
+                    }
+                    
+                    // If the edge has a rate, we multiply it to the DD.
+                    if (edge.hasRate()) {
+                        transitions *= this->variables.rowExpressionAdapter->translateExpression(edge.getRate());
+                    }
+                    
+                    return EdgeDd(guard, guard * transitions, globalVariablesInSomeDestination);
+                } else {
+                    return EdgeDd(this->variables.manager->template getAddZero<ValueType>(), this->variables.manager->template getAddZero<ValueType>());
+                }
+            }
+            
+            ActionDd buildActionDdForActionIndex(storm::jani::Automaton const& automaton, uint64_t actionIndex, uint64_t localNondeterminismVariableOffset) {
+                // Translate the individual edges.
+                std::vector<EdgeDd> edgeDds;
+                for (auto const& edge : automaton.getEdges()) {
+                    if (edge.getActionIndex() == actionIndex) {
+                        edgeDds.push_back(buildEdgeDd(automaton, edge));
+                    }
+                }
+                
+                // Now combine the edges to a single action.
+                if (!edgeDds.empty()) {
+                    switch (this->model.getModelType()){
+                        case storm::jani::ModelType::DTMC:
+                        case storm::jani::ModelType::CTMC:
+                            return combineEdgesToActionMarkovChain(edgeDds);
+                            break;
+                        case storm::jani::ModelType::MDP:
+                            return combineEdgesToActionMdp(edgeDds, localNondeterminismVariableOffset);
+                            break;
+                        default:
+                            STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Cannot translate model of this type.");
+                    }
+                } else {
+                    return ActionDd(this->variables.manager->template getAddZero<ValueType>(), this->variables.manager->template getAddZero<ValueType>(), std::make_pair<uint64_t, uint64_t>(0, 0), {}, this->variables.manager->getBddZero());
+                }
+            }
+            
+            ActionDd combineEdgesToActionMarkovChain(std::vector<EdgeDd> const& edgeDds) {
+                storm::dd::Bdd<Type> allGuards = this->variables.manager->getBddZero();
+                storm::dd::Add<Type, ValueType> allTransitions = this->variables.manager->template getAddZero<ValueType>();
+                storm::dd::Bdd<Type> temporary;
+                
+                std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> globalVariableToWritingFragment;
+                for (auto const& edgeDd : edgeDds) {
+                    // Check for overlapping guards.
+                    storm::dd::Bdd<Type> guardBdd = edgeDd.guard.toBdd();
+                    temporary = guardBdd && allGuards;
+                    
+                    // Issue a warning if there are overlapping guards in a DTMC.
+                    STORM_LOG_WARN_COND(temporary.isZero() || this->model.getModelType() == storm::jani::ModelType::CTMC, "Guard of a command overlaps with previous guards.");
+                    
+                    // Add the elements of the current edge to the global ones.
+                    allGuards |= guardBdd;
+                    allTransitions += edgeDd.transitions;
+                    
+                    // Keep track of the fragment that is writing global variables.
+                    for (auto const& variable : edgeDd.writtenGlobalVariables) {
+                        auto it = globalVariableToWritingFragment.find(variable);
+                        if (it != globalVariableToWritingFragment.end()) {
+                            it->second |= guardBdd;
+                        } else {
+                            globalVariableToWritingFragment[variable] = guardBdd;
+                        }
+                    }
+                }
+                
+                return ActionDd(allGuards.template toAdd<ValueType>(), allTransitions, std::make_pair<uint64_t, uint64_t>(0, 0), globalVariableToWritingFragment, this->variables.manager->getBddZero());
+            }
+            
+            void addToVariableWritingFragmentMap(std::map<storm::expressions::Variable, storm::dd::Bdd<Type>>& globalVariableToWritingFragment, storm::expressions::Variable const& variable, storm::dd::Bdd<Type> const& partToAdd) const {
+                auto it = globalVariableToWritingFragment.find(variable);
+                if (it != globalVariableToWritingFragment.end()) {
+                    it->second |= partToAdd;
+                } else {
+                    globalVariableToWritingFragment.emplace(variable, partToAdd);
+                }
+            }
+            
+            std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> joinVariableWritingFragmentMaps(std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> const& globalVariableToWritingFragment1, std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> const& globalVariableToWritingFragment2) {
+                std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> result = globalVariableToWritingFragment1;
+                
+                for (auto const& entry : globalVariableToWritingFragment2) {
+                    auto resultIt = result.find(entry.first);
+                    if (resultIt != result.end()) {
+                        resultIt->second |= entry.second;
+                    } else {
+                        result[entry.first] = entry.second;
+                    }
+                }
+                
+                return result;
+            }
+            
+            ActionDd combineEdgesBySummation(storm::dd::Add<Type, ValueType> const& guard, std::vector<EdgeDd> const& edges) {
+                storm::dd::Add<Type, ValueType> transitions = this->variables.manager->template getAddZero<ValueType>();
+                std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> globalVariableToWritingFragment;
+                for (auto const& edge : edges) {
+                    transitions += edge.transitions;
+                    for (auto const& variable : edge.writtenGlobalVariables) {
+                        addToVariableWritingFragmentMap(globalVariableToWritingFragment, variable, edge.guard.toBdd());
+                    }
+                }
+                return ActionDd(guard, transitions, std::make_pair<uint64_t, uint64_t>(0, 0), globalVariableToWritingFragment, this->variables.manager->getBddZero());
+            }
+            
+            ActionDd combineEdgesToActionMdp(std::vector<EdgeDd> const& edges, uint64_t localNondeterminismVariableOffset) {
+                // Sum all guards, so we can read off the maximal number of nondeterministic choices in any given state.
+                storm::dd::Bdd<Type> allGuards = this->variables.manager->getBddZero();
+                storm::dd::Add<Type, ValueType> sumOfGuards = this->variables.manager->template getAddZero<ValueType>();
+                for (auto const& edge : edges) {
+                    sumOfGuards += edge.guard;
+                    allGuards |= edge.guard.toBdd();
+                }
+                uint_fast64_t maxChoices = static_cast<uint_fast64_t>(sumOfGuards.getMax());
+                STORM_LOG_TRACE("Found " << maxChoices << " local choices.");
+                
+                // Depending on the maximal number of nondeterminstic choices, we need to use some variables to encode the nondeterminism.
+                if (maxChoices <= 1) {
+                    return combineEdgesBySummation(allGuards.template toAdd<ValueType>(), edges);
+                } else {
+                    // Calculate number of required variables to encode the nondeterminism.
+                    uint_fast64_t numberOfBinaryVariables = static_cast<uint_fast64_t>(std::ceil(storm::utility::math::log2(maxChoices)));
+                    
+                    storm::dd::Add<Type, ValueType> allEdges = this->variables.manager->template getAddZero<ValueType>();
+                    std::map<storm::expressions::Variable, storm::dd::Bdd<Type>> globalVariableToWritingFragment;
+                    
+                    storm::dd::Bdd<Type> equalsNumberOfChoicesDd;
+                    std::vector<storm::dd::Add<Type, ValueType>> choiceDds(maxChoices, this->variables.manager->template getAddZero<ValueType>());
+                    std::vector<storm::dd::Bdd<Type>> remainingDds(maxChoices, this->variables.manager->getBddZero());
+                    std::vector<std::pair<storm::dd::Bdd<Type>, storm::dd::Add<Type, ValueType>>> indicesEncodedWithLocalNondeterminismVariables;
+                    for (uint64_t j = 0; j < maxChoices; ++j) {
+                        storm::dd::Add<Type, ValueType> indexEncoding = encodeIndex(j, localNondeterminismVariableOffset, numberOfBinaryVariables, this->variables);
+                        indicesEncodedWithLocalNondeterminismVariables.push_back(std::make_pair(indexEncoding.toBdd(), indexEncoding));
+                    }
+                    
+                    for (uint_fast64_t currentChoices = 1; currentChoices <= maxChoices; ++currentChoices) {
+                        // Determine the set of states with exactly currentChoices choices.
+                        equalsNumberOfChoicesDd = sumOfGuards.equals(this->variables.manager->getConstant(static_cast<double>(currentChoices)));
+                        
+                        // If there is no such state, continue with the next possible number of choices.
+                        if (equalsNumberOfChoicesDd.isZero()) {
+                            continue;
+                        }
+                        
+                        // Reset the previously used intermediate storage.
+                        for (uint_fast64_t j = 0; j < currentChoices; ++j) {
+                            choiceDds[j] = this->variables.manager->template getAddZero<ValueType>();
+                            remainingDds[j] = equalsNumberOfChoicesDd;
+                        }
+                        
+                        for (std::size_t j = 0; j < edges.size(); ++j) {
+                            EdgeDd const& currentEdge = edges[j];
+                            
+                            // Check if edge guard overlaps with equalsNumberOfChoicesDd. That is, there are states with exactly currentChoices
+                            // choices such that one outgoing choice is given by the j-th edge.
+                            storm::dd::Bdd<Type> guardChoicesIntersection = currentEdge.guard.toBdd() && equalsNumberOfChoicesDd;
+                            
+                            // If there is no such state, continue with the next command.
+                            if (guardChoicesIntersection.isZero()) {
+                                continue;
+                            }
+                            
+                            // Split the currentChoices nondeterministic choices.
+                            for (uint_fast64_t k = 0; k < currentChoices; ++k) {
+                                // Calculate the overlapping part of command guard and the remaining DD.
+                                storm::dd::Bdd<Type> remainingGuardChoicesIntersection = guardChoicesIntersection && remainingDds[k];
+                                
+                                // Check if we can add some overlapping parts to the current index.
+                                if (!remainingGuardChoicesIntersection.isZero()) {
+                                    // Remove overlapping parts from the remaining DD.
+                                    remainingDds[k] = remainingDds[k] && !remainingGuardChoicesIntersection;
+                                    
+                                    // Combine the overlapping part of the guard with command updates and add it to the resulting DD.
+                                    choiceDds[k] += remainingGuardChoicesIntersection.template toAdd<ValueType>() * currentEdge.transitions;
+                                    
+                                    // Keep track of the written global variables of the fragment.
+                                    for (auto const& variable : currentEdge.writtenGlobalVariables) {
+                                        addToVariableWritingFragmentMap(globalVariableToWritingFragment, variable, remainingGuardChoicesIntersection && indicesEncodedWithLocalNondeterminismVariables[k].first);
+                                    }
+                                }
+                                
+                                // Remove overlapping parts from the command guard DD
+                                guardChoicesIntersection = guardChoicesIntersection && !remainingGuardChoicesIntersection;
+                                
+                                // If the guard DD has become equivalent to false, we can stop here.
+                                if (guardChoicesIntersection.isZero()) {
+                                    break;
+                                }
+                            }
+                        }
+                        
+                        // Add the meta variables that encode the nondeterminisim to the different choices.
+                        for (uint_fast64_t j = 0; j < currentChoices; ++j) {
+                            allEdges += indicesEncodedWithLocalNondeterminismVariables[j].second * choiceDds[j];
+                        }
+                        
+                        // Delete currentChoices out of overlapping DD
+                        sumOfGuards = sumOfGuards * (!equalsNumberOfChoicesDd).template toAdd<ValueType>();
+                    }
+                    
+                    return ActionDd(allGuards.template toAdd<ValueType>(), allEdges, std::make_pair(localNondeterminismVariableOffset, localNondeterminismVariableOffset + numberOfBinaryVariables), globalVariableToWritingFragment, this->variables.manager->getBddZero());
+                }
+            }
+            
+            AutomatonDd buildAutomatonDd(std::string const& automatonName, std::map<uint_fast64_t, uint_fast64_t> const& actionIndexToLocalNondeterminismVariableOffset) {
+                AutomatonDd result(this->variables.automatonToIdentityMap.at(automatonName));
+                
+                storm::jani::Automaton const& automaton = this->model.getAutomaton(automatonName);
+                for (auto const& action : this->model.getActions()) {
+                    uint64_t actionIndex = this->model.getActionIndex(action.getName());
+                    if (!automaton.hasEdgeLabeledWithActionIndex(actionIndex)) {
+                        continue;
+                    }
+                    ActionDd actionDd = buildActionDdForActionIndex(automaton, actionIndex, actionIndexToLocalNondeterminismVariableOffset.at(actionIndex));
+                    result.actionIndexToAction[actionIndex] = actionDd;
+                    result.setLowestLocalNondeterminismVariable(std::max(result.getLowestLocalNondeterminismVariable(), actionDd.getLowestLocalNondeterminismVariable()));
+                    result.setHighestLocalNondeterminismVariable(std::max(result.getHighestLocalNondeterminismVariable(), actionDd.getHighestLocalNondeterminismVariable()));
+                }
+                return result;
+            }
+
+            void addMissingGlobalVariableIdentities(ActionDd& action) {
+                // Build a DD that we can multiply to the transitions and adds all missing global variable identities that way.
+                storm::dd::Add<Type, ValueType> missingIdentities = this->variables.manager->template getAddOne<ValueType>();
+                
+                for (auto const& variable : this->variables.allGlobalVariables) {
+                    auto it = action.variableToWritingFragment.find(variable);
+                    if (it != action.variableToWritingFragment.end()) {
+                        missingIdentities *= (it->second).ite(this->variables.manager->template getAddOne<ValueType>(), this->variables.variableToIdentityMap.at(variable));
+                    } else {
+                        missingIdentities *= this->variables.variableToIdentityMap.at(variable);
+                    }
+                }
+                
+                action.transitions *= missingIdentities;
+            }
+            
+            ComposerResult<Type, ValueType> buildSystemFromAutomaton(AutomatonDd& automaton) {
+                // If the model is an MDP, we need to encode the nondeterminism using additional variables.
+                if (this->model.getModelType() == storm::jani::ModelType::MDP) {
+                    storm::dd::Add<Type, ValueType> result = this->variables.manager->template getAddZero<ValueType>();
+                    storm::dd::Bdd<Type> illegalFragment = this->variables.manager->getBddZero();
+                    
+                    // First, determine the highest number of nondeterminism variables that is used in any action and make
+                    // all actions use the same amout of nondeterminism variables.
+                    uint64_t numberOfUsedNondeterminismVariables = automaton.getHighestLocalNondeterminismVariable();
+                    
+                    // Add missing global variable identities, action and nondeterminism encodings.
+                    for (auto& action : automaton.actionIndexToAction) {
+                        illegalFragment |= action.second.illegalFragment;
+                        addMissingGlobalVariableIdentities(action.second);
+                        storm::dd::Add<Type, ValueType> actionEncoding = encodeAction(action.first != this->model.getSilentActionIndex() ? boost::optional<uint64_t>(action.first) : boost::none, this->variables);
+                        storm::dd::Add<Type, ValueType> missingNondeterminismEncoding = encodeIndex(0, action.second.getHighestLocalNondeterminismVariable(), numberOfUsedNondeterminismVariables - action.second.getHighestLocalNondeterminismVariable(), this->variables);
+                        storm::dd::Add<Type, ValueType> extendedTransitions = actionEncoding * missingNondeterminismEncoding * action.second.transitions;
+                        result += extendedTransitions;
+                    }
+                    
+                    return ComposerResult<Type, ValueType>(result, illegalFragment, numberOfUsedNondeterminismVariables);
+                } else if (this->model.getModelType() == storm::jani::ModelType::DTMC || this->model.getModelType() == storm::jani::ModelType::CTMC) {
+                    // Simply add all actions, but make sure to include the missing global variable identities.
+
+                    storm::dd::Add<Type, ValueType> result = this->variables.manager->template getAddZero<ValueType>();
+                    storm::dd::Bdd<Type> illegalFragment = this->variables.manager->getBddZero();
+                    for (auto& action : automaton.actionIndexToAction) {
+                        illegalFragment |= action.second.illegalFragment;
+                        addMissingGlobalVariableIdentities(action.second);
+                        result += action.second.transitions;
+                    }
+
+                    return ComposerResult<Type, ValueType>(result, illegalFragment, 0);
+                } else {
+                    STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Illegal model type.");
+                }
+            }
+        };
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        struct ModelComponents {
+            storm::dd::Bdd<Type> reachableStates;
+            storm::dd::Bdd<Type> initialStates;
+            storm::dd::Bdd<Type> deadlockStates;
+            storm::dd::Add<Type, ValueType> transitionMatrix;
+            std::unordered_map<std::string, storm::models::symbolic::StandardRewardModel<Type, ValueType>> rewardModels;
+        };
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> createModel(storm::jani::ModelType const& modelType, CompositionVariables<Type, ValueType> const& variables, ModelComponents<Type, ValueType> const& modelComponents) {
+            if (modelType == storm::jani::ModelType::DTMC) {
+                return std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>>(new storm::models::symbolic::Dtmc<Type, ValueType>(variables.manager, modelComponents.reachableStates, modelComponents.initialStates, modelComponents.deadlockStates, modelComponents.transitionMatrix, variables.rowMetaVariables, variables.rowExpressionAdapter, variables.columnMetaVariables, variables.columnExpressionAdapter, variables.rowColumnMetaVariablePairs, std::map<std::string, storm::expressions::Expression>(), modelComponents.rewardModels));
+            } else if (modelType == storm::jani::ModelType::CTMC) {
+                return std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>>(new storm::models::symbolic::Ctmc<Type, ValueType>(variables.manager, modelComponents.reachableStates, modelComponents.initialStates, modelComponents.deadlockStates, modelComponents.transitionMatrix, variables.rowMetaVariables, variables.rowExpressionAdapter, variables.columnMetaVariables, variables.columnExpressionAdapter, variables.rowColumnMetaVariablePairs, std::map<std::string, storm::expressions::Expression>(), modelComponents.rewardModels));
+            } else if (modelType == storm::jani::ModelType::MDP) {
+                return std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>>(new storm::models::symbolic::Mdp<Type, ValueType>(variables.manager, modelComponents.reachableStates, modelComponents.initialStates, modelComponents.deadlockStates, modelComponents.transitionMatrix, variables.rowMetaVariables, variables.rowExpressionAdapter, variables.columnMetaVariables, variables.columnExpressionAdapter, variables.rowColumnMetaVariablePairs, variables.allNondeterminismVariables, std::map<std::string, storm::expressions::Expression>(), modelComponents.rewardModels));
+            } else {
+                STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Invalid model type.");
+            }
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        void postprocessVariables(storm::jani::ModelType const& modelType, ComposerResult<Type, ValueType>& system, CompositionVariables<Type, ValueType>& variables) {
+            // Add all action/row/column variables to the DD. If we omitted multiplying edges in the construction, this will
+            // introduce the variables so they can later be abstracted without raising an error.
+            system.transitions.addMetaVariables(variables.rowMetaVariables);
+            system.transitions.addMetaVariables(variables.columnMetaVariables);
+            
+            // If the model is an MDP, we also add all action variables.
+            if (modelType == storm::jani::ModelType::MDP) {
+                for (auto const& actionVariablePair : variables.actionVariablesMap) {
+                    system.transitions.addMetaVariable(actionVariablePair.second);
+                }
+            }
+            
+            // Get rid of the local nondeterminism variables that were not used.
+            for (uint64_t index = system.numberOfNondeterminismVariables; index < variables.localNondeterminismVariables.size(); ++index) {
+                variables.allNondeterminismVariables.erase(variables.localNondeterminismVariables[index]);
+            }
+            variables.localNondeterminismVariables.resize(system.numberOfNondeterminismVariables);
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        storm::dd::Bdd<Type> postprocessSystem(storm::jani::Model const& model, ComposerResult<Type, ValueType>& system, CompositionVariables<Type, ValueType> const& variables, typename DdJaniModelBuilder<Type, ValueType>::Options const& options) {
+            // For DTMCs, we normalize each row to 1 (to account for non-determinism).
+            if (model.getModelType() == storm::jani::ModelType::DTMC) {
+                system.transitions = system.transitions / system.transitions.sumAbstract(variables.columnMetaVariables);
+            }
+            
+            // If we were asked to treat some states as terminal states, we cut away their transitions now.
+            if (options.terminalStates || options.negatedTerminalStates) {
+                std::map<storm::expressions::Variable, storm::expressions::Expression> constantsSubstitution = model.getConstantsSubstitution();
+                
+                storm::dd::Bdd<Type> terminalStatesBdd = variables.manager->getBddZero();
+                if (options.terminalStates) {
+                    storm::expressions::Expression terminalExpression = options.terminalStates.get().substitute(constantsSubstitution);
+                    STORM_LOG_TRACE("Making the states satisfying " << terminalExpression << " terminal.");
+                    terminalStatesBdd = variables.rowExpressionAdapter->translateExpression(terminalExpression).toBdd();
+                }
+                if (options.negatedTerminalStates) {
+                    storm::expressions::Expression negatedTerminalExpression = options.negatedTerminalStates.get().substitute(constantsSubstitution);
+                    STORM_LOG_TRACE("Making the states *not* satisfying " << negatedTerminalExpression << " terminal.");
+                    terminalStatesBdd |= !variables.rowExpressionAdapter->translateExpression(negatedTerminalExpression).toBdd();
+                }
+                
+                system.transitions *= (!terminalStatesBdd).template toAdd<ValueType>();
+                return terminalStatesBdd;
+            }
+            return variables.manager->getBddZero();
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        storm::dd::Bdd<Type> computeInitialStates(storm::jani::Model const& model, CompositionVariables<Type, ValueType> const& variables) {
+            storm::dd::Bdd<Type> initialStates = variables.rowExpressionAdapter->translateExpression(model.getInitialStatesExpression(true)).toBdd();
+            for (auto const& automaton : model.getAutomata()) {
+                storm::dd::Bdd<Type> initialLocationIndices = variables.manager->getBddZero();
+                for (auto const& locationIndex : automaton.getInitialLocationIndices()) {
+                    initialLocationIndices |= variables.manager->getEncoding(variables.automatonToLocationVariableMap.at(automaton.getName()).first, locationIndex);
+                }
+                initialStates &= initialLocationIndices;
+            }
+            for (auto const& metaVariable : variables.rowMetaVariables) {
+                initialStates &= variables.variableToRangeMap.at(metaVariable);
+            }
+            return initialStates;
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        storm::dd::Bdd<Type> fixDeadlocks(storm::jani::ModelType const& modelType, storm::dd::Add<Type, ValueType>& transitionMatrix, storm::dd::Bdd<Type> const& transitionMatrixBdd, storm::dd::Bdd<Type> const& reachableStates, CompositionVariables<Type, ValueType> const& variables) {
+            // Detect deadlocks and 1) fix them if requested 2) throw an error otherwise.
+            storm::dd::Bdd<Type> statesWithTransition = transitionMatrixBdd.existsAbstract(variables.columnMetaVariables);
+            storm::dd::Bdd<Type> deadlockStates = reachableStates && !statesWithTransition;
+            
+            if (!deadlockStates.isZero()) {
+                // If we need to fix deadlocks, we do so now.
+                if (!storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().isDontFixDeadlocksSet()) {
+                    STORM_LOG_INFO("Fixing deadlocks in " << deadlockStates.getNonZeroCount() << " states. The first three of these states are: ");
+                    
+                    storm::dd::Add<Type, ValueType> deadlockStatesAdd = deadlockStates.template toAdd<ValueType>();
+                    uint_fast64_t count = 0;
+                    for (auto it = deadlockStatesAdd.begin(), ite = deadlockStatesAdd.end(); it != ite && count < 3; ++it, ++count) {
+                        STORM_LOG_INFO((*it).first.toPrettyString(variables.rowMetaVariables) << std::endl);
+                    }
+                    
+                    // Create a global identity DD.
+                    storm::dd::Add<Type, ValueType> globalIdentity = variables.manager->template getAddOne<ValueType>();
+                    for (auto const& identity : variables.automatonToIdentityMap) {
+                        globalIdentity *= identity.second;
+                    }
+                    for (auto const& variable : variables.allGlobalVariables) {
+                        globalIdentity *= variables.variableToIdentityMap.at(variable);
+                    }
+                    
+                    if (modelType == storm::jani::ModelType::DTMC || modelType == storm::jani::ModelType::CTMC) {
+                        // For DTMCs, we can simply add the identity of the global module for all deadlock states.
+                        transitionMatrix += deadlockStatesAdd * globalIdentity;
+                    } else if (modelType == storm::jani::ModelType::MDP) {
+                        // For MDPs, however, we need to select an action associated with the self-loop, if we do not
+                        // want to attach a lot of self-loops to the deadlock states.
+                        storm::dd::Add<Type, ValueType> action = variables.manager->template getAddOne<ValueType>();
+                        for (auto const& variable : variables.actionVariablesMap) {
+                            action *= variables.manager->template getIdentity<ValueType>(variable.second);
+                        }
+                        for (auto const& variable : variables.localNondeterminismVariables) {
+                            action *= variables.manager->template getIdentity<ValueType>(variable);
+                        }
+                        transitionMatrix += deadlockStatesAdd * globalIdentity * action;
+                    }
+                } else {
+                    STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "The model contains " << deadlockStates.getNonZeroCount() << " deadlock states. Please unset the option to not fix deadlocks, if you want to fix them automatically.");
+                }
+            }
+            return deadlockStates;
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> DdJaniModelBuilder<Type, ValueType>::build() {
+            // Create all necessary variables.
+            CompositionVariableCreator<Type, ValueType> variableCreator(*this->model);
+            CompositionVariables<Type, ValueType> variables = variableCreator.create();
+            
+            // Create a builder to compose and build the model.
+//            SeparateEdgesSystemComposer<Type, ValueType> composer(*this->model, variables);
+            CombinedEdgesSystemComposer<Type, ValueType> composer(*this->model, variables);
+            ComposerResult<Type, ValueType> system = composer.compose();
+            
+            // Postprocess the variables in place.
+            postprocessVariables(this->model->getModelType(), system, variables);
+            
+            // Postprocess the system in place and get the states that were terminal (i.e. whose transitions were cut off).
+            storm::dd::Bdd<Type> terminalStates = postprocessSystem(*this->model, system, variables, options);
+            
+            // Start creating the model components.
+            ModelComponents<Type, ValueType> modelComponents;
+            
+            // Build initial states.
+            modelComponents.initialStates = computeInitialStates(*this->model, variables);
+            
+            // Perform reachability analysis to obtain reachable states.
+            storm::dd::Bdd<Type> transitionMatrixBdd = system.transitions.notZero();
+            if (this->model->getModelType() == storm::jani::ModelType::MDP) {
+                transitionMatrixBdd = transitionMatrixBdd.existsAbstract(variables.allNondeterminismVariables);
+            }
+            modelComponents.reachableStates = storm::utility::dd::computeReachableStates(modelComponents.initialStates, transitionMatrixBdd, variables.rowMetaVariables, variables.columnMetaVariables);
+            
+            // Check that the reachable fragment does not overlap with the illegal fragment.
+            storm::dd::Bdd<Type> reachableIllegalFragment = modelComponents.reachableStates && system.illegalFragment;
+            STORM_LOG_THROW(reachableIllegalFragment.isZero(), storm::exceptions::WrongFormatException, "There are reachable states in the model that have synchronizing edges enabled that write the same global variable.");
+            
+            // Cut transitions to reachable states.
+            storm::dd::Add<Type, ValueType> reachableStatesAdd = modelComponents.reachableStates.template toAdd<ValueType>();
+            modelComponents.transitionMatrix = system.transitions * reachableStatesAdd;
+            
+            // Fix deadlocks if existing.
+            modelComponents.deadlockStates = fixDeadlocks(this->model->getModelType(), modelComponents.transitionMatrix, transitionMatrixBdd, modelComponents.reachableStates, variables);
+            
+            // Cut the deadlock states by removing all states that we 'converted' to deadlock states by making them terminal.
+            modelComponents.deadlockStates = modelComponents.deadlockStates && !terminalStates;
+            
+            // Finally, create the model.
+            return createModel(this->model->getModelType(), variables, modelComponents);
+        }
+        
+        template class DdJaniModelBuilder<storm::dd::DdType::CUDD, double>;
+        template class DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>;
+    }
+}
\ No newline at end of file
diff --git a/src/builder/DdJaniModelBuilder.h b/src/builder/DdJaniModelBuilder.h
new file mode 100644
index 000000000..348d017ad
--- /dev/null
+++ b/src/builder/DdJaniModelBuilder.h
@@ -0,0 +1,111 @@
+#pragma once
+
+#include <boost/optional.hpp>
+
+#include "src/storage/dd/DdType.h"
+
+#include "src/logic/Formula.h"
+
+#include "src/storage/jani/Model.h"
+
+namespace storm {
+    namespace models {
+        namespace symbolic {
+            template <storm::dd::DdType Type, typename ValueType>
+            class Model;
+        }
+    }
+    
+    namespace builder {
+        
+        template <storm::dd::DdType Type, typename ValueType = double>
+        class DdJaniModelBuilder {
+        public:            
+            struct Options {
+                /*!
+                 * Creates an object representing the default building options.
+                 */
+                Options();
+                
+                /*! Creates an object representing the suggested building options assuming that the given formula is the
+                 * only one to check. Additional formulas may be preserved by calling <code>preserveFormula</code>.
+                 *
+                 * @param formula The formula based on which to choose the building options.
+                 */
+                Options(storm::logic::Formula const& formula);
+                
+                /*! Creates an object representing the suggested building options assuming that the given formulas are
+                 * the only ones to check. Additional formulas may be preserved by calling <code>preserveFormula</code>.
+                 *
+                 * @param formula Thes formula based on which to choose the building options.
+                 */
+                Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas);
+                                
+                /*!
+                 * Changes the options in a way that ensures that the given formula can be checked on the model once it
+                 * has been built.
+                 *
+                 * @param formula The formula that is to be ''preserved''.
+                 */
+                void preserveFormula(storm::logic::Formula const& formula);
+                
+                /*!
+                 * Analyzes the given formula and sets an expression for the states states of the model that can be
+                 * treated as terminal states. Note that this may interfere with checking properties different than the
+                 * one provided.
+                 *
+                 * @param formula The formula used to (possibly) derive an expression for the terminal states of the
+                 * model.
+                 */
+                void setTerminalStatesFromFormula(storm::logic::Formula const& formula);
+                
+                // A flag that indicates whether or not all reward models are to be build.
+                bool buildAllRewardModels;
+                
+                // A list of reward models to be build in case not all reward models are to be build.
+                std::set<std::string> rewardModelsToBuild;
+                
+                // An optional mapping that, if given, contains defining expressions for undefined constants.
+                boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> constantDefinitions;
+                
+                // An optional expression or label that (a subset of) characterizes the terminal states of the model.
+                // If this is set, the outgoing transitions of these states are replaced with a self-loop.
+                boost::optional<storm::expressions::Expression> terminalStates;
+                
+                // An optional expression or label whose negation characterizes (a subset of) the terminal states of the
+                // model. If this is set, the outgoing transitions of these states are replaced with a self-loop.
+                boost::optional<storm::expressions::Expression> negatedTerminalStates;
+            };
+            
+            /*!
+             * Creates a builder for the given model that uses the given options.
+             */
+            DdJaniModelBuilder(storm::jani::Model const& model, Options const& options = Options());
+            
+            /*!
+             * Translates the given program into a symbolic model (i.e. one that stores the transition relation as a
+             * decision diagram).
+             *
+             * @param model The model to translate.
+             * @return A pointer to the resulting model.
+             */
+            std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> build();
+            
+            /*!
+             * Retrieves the model that was actually translated (i.e. including constant substitutions etc.). Note
+             * that this function may only be called after a succesful translation.
+             *
+             * @return The translated model.
+             */
+            storm::jani::Model const& getTranslatedModel() const;
+                        
+        private:
+            /// The model to translate.
+            boost::optional<storm::jani::Model> model;
+            
+            /// The options to use for building the model.
+            Options options;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/builder/DdPrismModelBuilder.cpp b/src/builder/DdPrismModelBuilder.cpp
index 5505a0061..1f38fa4a8 100644
--- a/src/builder/DdPrismModelBuilder.cpp
+++ b/src/builder/DdPrismModelBuilder.cpp
@@ -1,21 +1,25 @@
 #include "src/builder/DdPrismModelBuilder.h"
 
+#include <boost/algorithm/string/join.hpp>
+
 #include "src/models/symbolic/Dtmc.h"
 #include "src/models/symbolic/Ctmc.h"
 #include "src/models/symbolic/Mdp.h"
 #include "src/models/symbolic/StandardRewardModel.h"
 
-#include "src/storage/dd/DdManager.h"
 #include "src/settings/SettingsManager.h"
 
 #include "src/exceptions/InvalidStateException.h"
-
+#include "src/exceptions/NotSupportedException.h"
 #include "src/exceptions/InvalidArgumentException.h"
 
 #include "src/utility/prism.h"
 #include "src/utility/math.h"
-#include "src/storage/prism/Program.h"
+#include "src/utility/dd.h"
 
+#include "src/storage/dd/DdManager.h"
+#include "src/storage/prism/Program.h"
+#include "src/storage/prism/Compositions.h"
 #include "src/storage/dd/Add.h"
 #include "src/storage/dd/cudd/CuddAddIterator.h"
 #include "src/storage/dd/Bdd.h"
@@ -27,181 +31,460 @@ namespace storm {
         
         template <storm::dd::DdType Type, typename ValueType>
         class DdPrismModelBuilder<Type, ValueType>::GenerationInformation {
-            public:
-                GenerationInformation(storm::prism::Program const& program) : program(program), manager(std::make_shared<storm::dd::DdManager<Type>>()), rowMetaVariables(), variableToRowMetaVariableMap(), rowExpressionAdapter(nullptr), columnMetaVariables(), variableToColumnMetaVariableMap(), columnExpressionAdapter(nullptr), rowColumnMetaVariablePairs(), nondeterminismMetaVariables(), variableToIdentityMap(), allGlobalVariables(), moduleToIdentityMap() {
-                    // Initializes variables and identity DDs.
-                    createMetaVariablesAndIdentities();
-                    
-                    rowExpressionAdapter = std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>>(new storm::adapters::AddExpressionAdapter<Type>(manager, variableToRowMetaVariableMap));
-                    columnExpressionAdapter = std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>>(new storm::adapters::AddExpressionAdapter<Type>(manager, variableToColumnMetaVariableMap));
+        public:
+            GenerationInformation(storm::prism::Program const& program) : program(program), manager(std::make_shared<storm::dd::DdManager<Type>>()), rowMetaVariables(), variableToRowMetaVariableMap(std::make_shared<std::map<storm::expressions::Variable, storm::expressions::Variable>>()), rowExpressionAdapter(std::make_shared<storm::adapters::AddExpressionAdapter<Type>>(manager, variableToRowMetaVariableMap)), columnMetaVariables(), variableToColumnMetaVariableMap((std::make_shared<std::map<storm::expressions::Variable, storm::expressions::Variable>>())), columnExpressionAdapter(std::make_shared<storm::adapters::AddExpressionAdapter<Type>>(manager, variableToColumnMetaVariableMap)), rowColumnMetaVariablePairs(), nondeterminismMetaVariables(), variableToIdentityMap(), allGlobalVariables(), moduleToIdentityMap() {
+                // Initializes variables and identity DDs.
+                createMetaVariablesAndIdentities();
+                
+                rowExpressionAdapter = std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>>(new storm::adapters::AddExpressionAdapter<Type>(manager, variableToRowMetaVariableMap));
+                columnExpressionAdapter = std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>>(new storm::adapters::AddExpressionAdapter<Type>(manager, variableToColumnMetaVariableMap));
+            }
+            
+            // The program that is currently translated.
+            storm::prism::Program const& program;
+            
+            // The manager used to build the decision diagrams.
+            std::shared_ptr<storm::dd::DdManager<Type>> manager;
+            
+            // The meta variables for the row encoding.
+            std::set<storm::expressions::Variable> rowMetaVariables;
+            std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> variableToRowMetaVariableMap;
+            std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> rowExpressionAdapter;
+            
+            // The meta variables for the column encoding.
+            std::set<storm::expressions::Variable> columnMetaVariables;
+            std::shared_ptr<std::map<storm::expressions::Variable, storm::expressions::Variable>> variableToColumnMetaVariableMap;
+            std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> columnExpressionAdapter;
+            
+            // All pairs of row/column meta variables.
+            std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> rowColumnMetaVariablePairs;
+            
+            // The meta variables used to encode the nondeterminism.
+            std::vector<storm::expressions::Variable> nondeterminismMetaVariables;
+            
+            // The meta variables used to encode the synchronization.
+            std::vector<storm::expressions::Variable> synchronizationMetaVariables;
+            
+            // A set of all variables used for encoding the nondeterminism (i.e. nondetermism + synchronization
+            // variables). This is handy to abstract from this variable set.
+            std::set<storm::expressions::Variable> allNondeterminismVariables;
+            
+            // As set of all variables used for encoding the synchronization.
+            std::set<storm::expressions::Variable> allSynchronizationMetaVariables;
+            
+            // DDs representing the identity for each variable.
+            std::map<storm::expressions::Variable, storm::dd::Add<Type, ValueType>> variableToIdentityMap;
+            
+            // A set of all meta variables that correspond to global variables.
+            std::set<storm::expressions::Variable> allGlobalVariables;
+            
+            // DDs representing the identity for each module.
+            std::map<std::string, storm::dd::Add<Type, ValueType>> moduleToIdentityMap;
+            
+            // DDs representing the valid ranges of the variables of each module.
+            std::map<std::string, storm::dd::Add<Type, ValueType>> moduleToRangeMap;
+            
+        private:
+            /*!
+             * Creates the required meta variables and variable/module identities.
+             */
+            void createMetaVariablesAndIdentities() {
+                // Add synchronization variables.
+                for (auto const& actionIndex : program.getSynchronizingActionIndices()) {
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(program.getActionName(actionIndex));
+                    synchronizationMetaVariables.push_back(variablePair.first);
+                    allSynchronizationMetaVariables.insert(variablePair.first);
+                    allNondeterminismVariables.insert(variablePair.first);
                 }
                 
-                // The program that is currently translated.
-                storm::prism::Program const& program;
+                // Add nondeterminism variables (number of modules + number of commands).
+                uint_fast64_t numberOfNondeterminismVariables = program.getModules().size();
+                for (auto const& module : program.getModules()) {
+                    numberOfNondeterminismVariables += module.getNumberOfCommands();
+                }
+                for (uint_fast64_t i = 0; i < numberOfNondeterminismVariables; ++i) {
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable("nondet" + std::to_string(i));
+                    nondeterminismMetaVariables.push_back(variablePair.first);
+                    allNondeterminismVariables.insert(variablePair.first);
+                }
                 
-                // The manager used to build the decision diagrams.
-                std::shared_ptr<storm::dd::DdManager<Type>> manager;
-
-                // The meta variables for the row encoding.
-                std::set<storm::expressions::Variable> rowMetaVariables;
-                std::map<storm::expressions::Variable, storm::expressions::Variable> variableToRowMetaVariableMap;
-                std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> rowExpressionAdapter;
-                
-                // The meta variables for the column encoding.
-                std::set<storm::expressions::Variable> columnMetaVariables;
-                std::map<storm::expressions::Variable, storm::expressions::Variable> variableToColumnMetaVariableMap;
-                std::shared_ptr<storm::adapters::AddExpressionAdapter<Type>> columnExpressionAdapter;
-                
-                // All pairs of row/column meta variables.
-                std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> rowColumnMetaVariablePairs;
-                
-                // The meta variables used to encode the nondeterminism.
-                std::vector<storm::expressions::Variable> nondeterminismMetaVariables;
-                
-                // The meta variables used to encode the synchronization.
-                std::vector<storm::expressions::Variable> synchronizationMetaVariables;
-                
-                // A set of all variables used for encoding the nondeterminism (i.e. nondetermism + synchronization
-                // variables). This is handy to abstract from this variable set.
-                std::set<storm::expressions::Variable> allNondeterminismVariables;
-            
-                // As set of all variables used for encoding the synchronization.
-                std::set<storm::expressions::Variable> allSynchronizationMetaVariables;
-            
-                // DDs representing the identity for each variable.
-                std::map<storm::expressions::Variable, storm::dd::Add<Type, ValueType>> variableToIdentityMap;
-            
-                // A set of all meta variables that correspond to global variables.
-                std::set<storm::expressions::Variable> allGlobalVariables;
-            
-                // DDs representing the identity for each module.
-                std::map<std::string, storm::dd::Add<Type, ValueType>> moduleToIdentityMap;
-                
-                // DDs representing the valid ranges of the variables of each module.
-                std::map<std::string, storm::dd::Add<Type, ValueType>> moduleToRangeMap;
-                
-            private:
-                /*!
-                 * Creates the required meta variables and variable/module identities.
-                 */
-                void createMetaVariablesAndIdentities() {
-                    // Add synchronization variables.
-                    for (auto const& actionIndex : program.getSynchronizingActionIndices()) {
-                        std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(program.getActionName(actionIndex));
-                        synchronizationMetaVariables.push_back(variablePair.first);
-                        allSynchronizationMetaVariables.insert(variablePair.first);
-                        allNondeterminismVariables.insert(variablePair.first);
-                    }
+                // Create meta variables for global program variables.
+                for (storm::prism::IntegerVariable const& integerVariable : program.getGlobalIntegerVariables()) {
+                    int_fast64_t low = integerVariable.getLowerBoundExpression().evaluateAsInt();
+                    int_fast64_t high = integerVariable.getUpperBoundExpression().evaluateAsInt();
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(integerVariable.getName(), low, high);
                     
-                    // Add nondeterminism variables (number of modules + number of commands).
-                    uint_fast64_t numberOfNondeterminismVariables = program.getModules().size();
-                    for (auto const& module : program.getModules()) {
-                        numberOfNondeterminismVariables += module.getNumberOfCommands();
-                    }
-                    for (uint_fast64_t i = 0; i < numberOfNondeterminismVariables; ++i) {
-                        std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable("nondet" + std::to_string(i));
-                        nondeterminismMetaVariables.push_back(variablePair.first);
-                        allNondeterminismVariables.insert(variablePair.first);
-                    }
+                    STORM_LOG_TRACE("Created meta variables for global integer variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
+                    
+                    rowMetaVariables.insert(variablePair.first);
+                    variableToRowMetaVariableMap->emplace(integerVariable.getExpressionVariable(), variablePair.first);
+                    
+                    columnMetaVariables.insert(variablePair.second);
+                    variableToColumnMetaVariableMap->emplace(integerVariable.getExpressionVariable(), variablePair.second);
+                    
+                    storm::dd::Add<Type, ValueType> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)).template toAdd<ValueType>() * manager->getRange(variablePair.first).template toAdd<ValueType>() * manager->getRange(variablePair.second).template toAdd<ValueType>();
+                    variableToIdentityMap.emplace(integerVariable.getExpressionVariable(), variableIdentity);
+                    rowColumnMetaVariablePairs.push_back(variablePair);
+                    
+                    allGlobalVariables.insert(integerVariable.getExpressionVariable());
+                }
+                for (storm::prism::BooleanVariable const& booleanVariable : program.getGlobalBooleanVariables()) {
+                    std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(booleanVariable.getName());
+                    
+                    STORM_LOG_TRACE("Created meta variables for global boolean variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
+                    
+                    rowMetaVariables.insert(variablePair.first);
+                    variableToRowMetaVariableMap->emplace(booleanVariable.getExpressionVariable(), variablePair.first);
+                    
+                    columnMetaVariables.insert(variablePair.second);
+                    variableToColumnMetaVariableMap->emplace(booleanVariable.getExpressionVariable(), variablePair.second);
+                    
+                    storm::dd::Add<Type, ValueType> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)).template toAdd<ValueType>();
+                    variableToIdentityMap.emplace(booleanVariable.getExpressionVariable(), variableIdentity);
                     
-                    // Create meta variables for global program variables.
-                    for (storm::prism::IntegerVariable const& integerVariable : program.getGlobalIntegerVariables()) {
+                    rowColumnMetaVariablePairs.push_back(variablePair);
+                    allGlobalVariables.insert(booleanVariable.getExpressionVariable());
+                }
+                
+                // Create meta variables for each of the modules' variables.
+                for (storm::prism::Module const& module : program.getModules()) {
+                    storm::dd::Bdd<Type> moduleIdentity = manager->getBddOne();
+                    storm::dd::Bdd<Type> moduleRange = manager->getBddOne();
+                    
+                    for (storm::prism::IntegerVariable const& integerVariable : module.getIntegerVariables()) {
                         int_fast64_t low = integerVariable.getLowerBoundExpression().evaluateAsInt();
                         int_fast64_t high = integerVariable.getUpperBoundExpression().evaluateAsInt();
                         std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(integerVariable.getName(), low, high);
+                        STORM_LOG_TRACE("Created meta variables for integer variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
                         
-                        STORM_LOG_TRACE("Created meta variables for global integer variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
-
                         rowMetaVariables.insert(variablePair.first);
-                        variableToRowMetaVariableMap.emplace(integerVariable.getExpressionVariable(), variablePair.first);
+                        variableToRowMetaVariableMap->emplace(integerVariable.getExpressionVariable(), variablePair.first);
                         
                         columnMetaVariables.insert(variablePair.second);
-                        variableToColumnMetaVariableMap.emplace(integerVariable.getExpressionVariable(), variablePair.second);
+                        variableToColumnMetaVariableMap->emplace(integerVariable.getExpressionVariable(), variablePair.second);
                         
-                        storm::dd::Add<Type, ValueType> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)).template toAdd<ValueType>() * manager->getRange(variablePair.first).template toAdd<ValueType>() * manager->getRange(variablePair.second).template toAdd<ValueType>();
-                        variableToIdentityMap.emplace(integerVariable.getExpressionVariable(), variableIdentity);
-                        rowColumnMetaVariablePairs.push_back(variablePair);
+                        storm::dd::Bdd<Type> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)) && manager->getRange(variablePair.first) && manager->getRange(variablePair.second);
+                        variableToIdentityMap.emplace(integerVariable.getExpressionVariable(), variableIdentity.template toAdd<ValueType>());
+                        moduleIdentity &= variableIdentity;
+                        moduleRange &= manager->getRange(variablePair.first);
                         
-                        allGlobalVariables.insert(integerVariable.getExpressionVariable());
+                        rowColumnMetaVariablePairs.push_back(variablePair);
                     }
-                    for (storm::prism::BooleanVariable const& booleanVariable : program.getGlobalBooleanVariables()) {
+                    for (storm::prism::BooleanVariable const& booleanVariable : module.getBooleanVariables()) {
                         std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(booleanVariable.getName());
-                        
-                        STORM_LOG_TRACE("Created meta variables for global boolean variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
+                        STORM_LOG_TRACE("Created meta variables for boolean variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
                         
                         rowMetaVariables.insert(variablePair.first);
-                        variableToRowMetaVariableMap.emplace(booleanVariable.getExpressionVariable(), variablePair.first);
+                        variableToRowMetaVariableMap->emplace(booleanVariable.getExpressionVariable(), variablePair.first);
                         
                         columnMetaVariables.insert(variablePair.second);
-                        variableToColumnMetaVariableMap.emplace(booleanVariable.getExpressionVariable(), variablePair.second);
+                        variableToColumnMetaVariableMap->emplace(booleanVariable.getExpressionVariable(), variablePair.second);
                         
-                        storm::dd::Add<Type, ValueType> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)).template toAdd<ValueType>();
-                        variableToIdentityMap.emplace(booleanVariable.getExpressionVariable(), variableIdentity);
+                        storm::dd::Bdd<Type> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)) && manager->getRange(variablePair.first) && manager->getRange(variablePair.second);
+                        variableToIdentityMap.emplace(booleanVariable.getExpressionVariable(), variableIdentity.template toAdd<ValueType>());
+                        moduleIdentity &= variableIdentity;
+                        moduleRange &= manager->getRange(variablePair.first);
                         
                         rowColumnMetaVariablePairs.push_back(variablePair);
-                        allGlobalVariables.insert(booleanVariable.getExpressionVariable());
                     }
+                    moduleToIdentityMap[module.getName()] = moduleIdentity.template toAdd<ValueType>();
+                    moduleToRangeMap[module.getName()] = moduleRange.template toAdd<ValueType>();
+                }
+            }
+        };
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        class ModuleComposer : public storm::prism::CompositionVisitor {
+        public:
+            ModuleComposer(typename DdPrismModelBuilder<Type, ValueType>::GenerationInformation& generationInfo) : generationInfo(generationInfo) {
+                // Intentionally left empty.
+            }
+            
+            typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram compose(storm::prism::Composition const& composition) {
+                return boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.accept(*this, newSynchronizingActionToOffsetMap()));
+            }
+            
+            std::map<uint_fast64_t, uint_fast64_t> newSynchronizingActionToOffsetMap() const {
+                std::map<uint_fast64_t, uint_fast64_t> result;
+                for (auto const& actionIndex : generationInfo.program.getSynchronizingActionIndices()) {
+                    result[actionIndex] = 0;
+                }
+                return result;
+            }
+            
+            std::map<uint_fast64_t, uint_fast64_t> updateSynchronizingActionToOffsetMap(typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram const& sub, std::map<uint_fast64_t, uint_fast64_t> const& oldMapping) const {
+                std::map<uint_fast64_t, uint_fast64_t> result = oldMapping;
+                for (auto const& action : sub.synchronizingActionToDecisionDiagramMap) {
+                    result[action.first] = action.second.numberOfUsedNondeterminismVariables;
+                }
+                return result;
+            }
+            
+            virtual boost::any visit(storm::prism::ModuleComposition const& composition, boost::any const& data) override {
+                STORM_LOG_TRACE("Translating module '" << composition.getModuleName() << "'.");
+                std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram result = DdPrismModelBuilder<Type, ValueType>::createModuleDecisionDiagram(generationInfo, generationInfo.program.getModule(composition.getModuleName()), synchronizingActionToOffsetMap);
+                
+                return result;
+            }
+            
+            virtual boost::any visit(storm::prism::RenamingComposition const& composition, boost::any const& data) override {
+                // Create the mapping from action indices to action indices.
+                std::map<uint_fast64_t, uint_fast64_t> renaming;
+                for (auto const& namePair : composition.getActionRenaming()) {
+                    STORM_LOG_THROW(generationInfo.program.hasAction(namePair.first), storm::exceptions::InvalidArgumentException, "Composition refers to unknown action '" << namePair.first << "'.");
+                    STORM_LOG_THROW(generationInfo.program.hasAction(namePair.second), storm::exceptions::InvalidArgumentException, "Composition refers to unknown action '" << namePair.second << "'.");
+                    renaming.emplace(generationInfo.program.getActionIndex(namePair.first), generationInfo.program.getActionIndex(namePair.second));
+                }
+
+                // Prepare the new offset mapping.
+                std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                std::map<uint_fast64_t, uint_fast64_t> newSynchronizingActionToOffsetMap = synchronizingActionToOffsetMap;
+                for (auto const& indexPair : renaming) {
+                    auto it = synchronizingActionToOffsetMap.find(indexPair.second);
+                    STORM_LOG_THROW(it != synchronizingActionToOffsetMap.end(), storm::exceptions::InvalidArgumentException, "Invalid action index " << indexPair.second << ".");
+                    newSynchronizingActionToOffsetMap[indexPair.first] = it->second;
+                }
+                
+                // Then, we translate the subcomposition.
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram sub = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getSubcomposition().accept(*this, newSynchronizingActionToOffsetMap));
+                
+                // Perform the renaming and return result.
+                return rename(sub, renaming);
+            }
+            
+            virtual boost::any visit(storm::prism::HidingComposition const& composition, boost::any const& data) override {
+                // Create the mapping from action indices to action indices.
+                std::set<uint_fast64_t> actionIndicesToHide;
+                for (auto const& action : composition.getActionsToHide()) {
+                    STORM_LOG_THROW(generationInfo.program.hasAction(action), storm::exceptions::InvalidArgumentException, "Composition refers to unknown action '" << action << "'.");
+                    actionIndicesToHide.insert(generationInfo.program.getActionIndex(action));
+                }
+
+                // Prepare the new offset mapping.
+                std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                std::map<uint_fast64_t, uint_fast64_t> newSynchronizingActionToOffsetMap = synchronizingActionToOffsetMap;
+                for (auto const& index : actionIndicesToHide) {
+                    newSynchronizingActionToOffsetMap[index] = 0;
+                }
+                
+                // Then, we translate the subcomposition.
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram sub = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getSubcomposition().accept(*this, newSynchronizingActionToOffsetMap));
+                
+                // Perform the hiding and return result.
+                hide(sub, actionIndicesToHide);
+                return sub;
+            }
+            
+            virtual boost::any visit(storm::prism::SynchronizingParallelComposition const& composition, boost::any const& data) override {
+                // First, we translate the subcompositions.
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram left = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getLeftSubcomposition().accept(*this, data));
+
+                // Prepare the new offset mapping.
+                std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                std::map<uint_fast64_t, uint_fast64_t> newSynchronizingActionToOffsetMap = synchronizingActionToOffsetMap;
+                for (auto const& action : left.synchronizingActionToDecisionDiagramMap) {
+                    newSynchronizingActionToOffsetMap[action.first] = action.second.numberOfUsedNondeterminismVariables;
+                }
+                
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram right = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getRightSubcomposition().accept(*this, newSynchronizingActionToOffsetMap));
+                
+                // Then, determine the action indices on which we need to synchronize.
+                std::set<uint_fast64_t> leftSynchronizationActionIndices = left.getSynchronizingActionIndices();
+                std::set<uint_fast64_t> rightSynchronizationActionIndices = right.getSynchronizingActionIndices();
+                std::set<uint_fast64_t> synchronizationActionIndices;
+                std::set_intersection(leftSynchronizationActionIndices.begin(), leftSynchronizationActionIndices.end(), rightSynchronizationActionIndices.begin(), rightSynchronizationActionIndices.end(), std::inserter(synchronizationActionIndices, synchronizationActionIndices.begin()));
+                
+                // Finally, we compose the subcompositions to create the result.
+                composeInParallel(left, right, synchronizationActionIndices);
+                return left;
+            }
+            
+            virtual boost::any visit(storm::prism::InterleavingParallelComposition const& composition, boost::any const& data) override {
+                // First, we translate the subcompositions.
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram left = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getLeftSubcomposition().accept(*this, data));
+                
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram right = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getRightSubcomposition().accept(*this, data));
+
+                // Finally, we compose the subcompositions to create the result.
+                composeInParallel(left, right, std::set<uint_fast64_t>());
+                return left;
+            }
+            
+            virtual boost::any visit(storm::prism::RestrictedParallelComposition const& composition, boost::any const& data) override {
+                // Construct the synchronizing action indices from the synchronizing action names.
+                std::set<uint_fast64_t> synchronizingActionIndices;
+                for (auto const& action : composition.getSynchronizingActions()) {
+                    synchronizingActionIndices.insert(generationInfo.program.getActionIndex(action));
+                }
+                
+                // Then, we translate the subcompositions.
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram left = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getLeftSubcomposition().accept(*this, data));
+                
+                // Prepare the new offset mapping.
+                std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap = boost::any_cast<std::map<uint_fast64_t, uint_fast64_t> const&>(data);
+                std::map<uint_fast64_t, uint_fast64_t> newSynchronizingActionToOffsetMap = synchronizingActionToOffsetMap;
+                for (auto const& actionIndex : synchronizingActionIndices) {
+                    auto it = left.synchronizingActionToDecisionDiagramMap.find(actionIndex);
+                    if (it != left.synchronizingActionToDecisionDiagramMap.end()) {
+                        newSynchronizingActionToOffsetMap[actionIndex] = it->second.numberOfUsedNondeterminismVariables;
+                    }
+                }
+                
+                typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram right = boost::any_cast<typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram>(composition.getRightSubcomposition().accept(*this, newSynchronizingActionToOffsetMap));
+                
+                std::set<uint_fast64_t> leftSynchronizationActionIndices = left.getSynchronizingActionIndices();
+                bool isContainedInLeft = std::includes(leftSynchronizationActionIndices.begin(), leftSynchronizationActionIndices.end(), synchronizingActionIndices.begin(), synchronizingActionIndices.end());
+                STORM_LOG_WARN_COND(isContainedInLeft, "Left subcomposition of composition '" << composition << "' does not include all actions over which to synchronize.");
 
-                    // Create meta variables for each of the modules' variables.
-                    for (storm::prism::Module const& module : program.getModules()) {
-                        storm::dd::Bdd<Type> moduleIdentity = manager->getBddOne();
-                        storm::dd::Bdd<Type> moduleRange = manager->getBddOne();
-                        
-                        for (storm::prism::IntegerVariable const& integerVariable : module.getIntegerVariables()) {
-                            int_fast64_t low = integerVariable.getLowerBoundExpression().evaluateAsInt();
-                            int_fast64_t high = integerVariable.getUpperBoundExpression().evaluateAsInt();
-                            std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(integerVariable.getName(), low, high);
-                            STORM_LOG_TRACE("Created meta variables for integer variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
-                            
-                            rowMetaVariables.insert(variablePair.first);
-                            variableToRowMetaVariableMap.emplace(integerVariable.getExpressionVariable(), variablePair.first);
-                            
-                            columnMetaVariables.insert(variablePair.second);
-                            variableToColumnMetaVariableMap.emplace(integerVariable.getExpressionVariable(), variablePair.second);
-                            
-                            storm::dd::Bdd<Type> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)) && manager->getRange(variablePair.first) && manager->getRange(variablePair.second);
-                            variableToIdentityMap.emplace(integerVariable.getExpressionVariable(), variableIdentity.template toAdd<ValueType>());
-                            moduleIdentity &= variableIdentity;
-                            moduleRange &= manager->getRange(variablePair.first);
+                std::set<uint_fast64_t> rightSynchronizationActionIndices = right.getSynchronizingActionIndices();
+                bool isContainedInRight = std::includes(rightSynchronizationActionIndices.begin(), rightSynchronizationActionIndices.end(), synchronizingActionIndices.begin(), synchronizingActionIndices.end());
+                STORM_LOG_WARN_COND(isContainedInRight, "Right subcomposition of composition '" << composition << "' does not include all actions over which to synchronize.");
+                
+                // Finally, we compose the subcompositions to create the result.
+                composeInParallel(left, right, synchronizingActionIndices);
+                return left;
+            }
+
+        private:
+            /*!
+             * Hides the actions of the given module according to the given set. As a result, the module is modified in
+             * place.
+             */
+            void hide(typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram& sub, std::set<uint_fast64_t> const& actionIndicesToHide) const {
+                STORM_LOG_TRACE("Hiding actions.");
+
+                for (auto const& actionIndex : actionIndicesToHide) {
+                    auto it = sub.synchronizingActionToDecisionDiagramMap.find(actionIndex);
+                    if (it != sub.synchronizingActionToDecisionDiagramMap.end()) {
+                        sub.independentAction = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, sub.independentAction, it->second);
+                        sub.numberOfUsedNondeterminismVariables = std::max(sub.numberOfUsedNondeterminismVariables, sub.independentAction.numberOfUsedNondeterminismVariables);
+                        sub.synchronizingActionToDecisionDiagramMap.erase(it);
+                    }
+                }
+            }
+            
+            /*!
+             * Renames the actions of the given module according to the given renaming.
+             */
+            typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram rename(typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram& sub, std::map<uint_fast64_t, uint_fast64_t> const& renaming) const {
+                STORM_LOG_TRACE("Renaming actions.");
+                std::map<uint_fast64_t, typename DdPrismModelBuilder<Type, ValueType>::ActionDecisionDiagram> actionIndexToDdMap;
+                
+                // Go through all action DDs with a synchronizing label and rename them if they appear in the renaming.
+                for (auto& action : sub.synchronizingActionToDecisionDiagramMap) {
+                    auto renamingIt = renaming.find(action.first);
+                    if (renamingIt != renaming.end()) {
+                        // If the action is to be renamed and an action with the target index already exists, we need
+                        // to combine the action DDs.
+                        auto itNewActions = actionIndexToDdMap.find(renamingIt->second);
+                        if (itNewActions != actionIndexToDdMap.end()) {
+                            actionIndexToDdMap[renamingIt->second] = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, action.second, itNewActions->second);
                             
-                            rowColumnMetaVariablePairs.push_back(variablePair);
+                        } else {
+                            // In this case, we can simply copy the action over.
+                            actionIndexToDdMap[renamingIt->second] = action.second;
+                        }
+                    } else {
+                        // If the action is not to be renamed, we need to copy it over. However, if some other action
+                        // was renamed to the very same action name before, we need to combine the transitions.
+                        auto itNewActions = actionIndexToDdMap.find(action.first);
+                        if (itNewActions != actionIndexToDdMap.end()) {
+                            actionIndexToDdMap[action.first] = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, action.second, itNewActions->second);
+                        } else {
+                            // In this case, we can simply copy the action over.
+                            actionIndexToDdMap[action.first] = action.second;
                         }
-                        for (storm::prism::BooleanVariable const& booleanVariable : module.getBooleanVariables()) {
-                            std::pair<storm::expressions::Variable, storm::expressions::Variable> variablePair = manager->addMetaVariable(booleanVariable.getName());
-                            STORM_LOG_TRACE("Created meta variables for boolean variable: " << variablePair.first.getName() << "[" << variablePair.first.getIndex() << "] and " << variablePair.second.getName() << "[" << variablePair.second.getIndex() << "]");
+                    }
+                }
+                
+                return typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram(sub.independentAction, actionIndexToDdMap, sub.identity, sub.numberOfUsedNondeterminismVariables);
+            }
+            
+            /*!
+             * Composes the given modules while synchronizing over the provided action indices. As a result, the first
+             * module is modified in place and will contain the composition after a call to this method.
+             */
+            void composeInParallel(typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram& left, typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram& right, std::set<uint_fast64_t> const& synchronizationActionIndices) const {
+                STORM_LOG_TRACE("Composing two modules.");
+                
+                // Combine the tau action.
+                uint_fast64_t numberOfUsedNondeterminismVariables = right.independentAction.numberOfUsedNondeterminismVariables;
+                left.independentAction = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, left.independentAction, right.independentAction, left.identity, right.identity);
+                numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, left.independentAction.numberOfUsedNondeterminismVariables);
 
-                            rowMetaVariables.insert(variablePair.first);
-                            variableToRowMetaVariableMap.emplace(booleanVariable.getExpressionVariable(), variablePair.first);
-                            
-                            columnMetaVariables.insert(variablePair.second);
-                            variableToColumnMetaVariableMap.emplace(booleanVariable.getExpressionVariable(), variablePair.second);
-                            
-                            storm::dd::Bdd<Type> variableIdentity = manager->template getIdentity<ValueType>(variablePair.first).equals(manager->template getIdentity<ValueType>(variablePair.second)) && manager->getRange(variablePair.first) && manager->getRange(variablePair.second);
-                            variableToIdentityMap.emplace(booleanVariable.getExpressionVariable(), variableIdentity.template toAdd<ValueType>());
-                            moduleIdentity &= variableIdentity;
-                            moduleRange &= manager->getRange(variablePair.first);
+                // Create an empty action for the case where one of the modules does not have a certain action.
+                typename DdPrismModelBuilder<Type, ValueType>::ActionDecisionDiagram emptyAction(*generationInfo.manager);
 
-                            rowColumnMetaVariablePairs.push_back(variablePair);
+                // Treat all non-tau actions of the left module.
+                for (auto& action : left.synchronizingActionToDecisionDiagramMap) {
+                    // If we need to synchronize over this action index, we try to do so now.
+                    if (synchronizationActionIndices.find(action.first) != synchronizationActionIndices.end()) {
+                        // If we are to synchronize over an action that does not exist in the second module, the result
+                        // is that the synchronization is the empty action.
+                        if (!right.hasSynchronizingAction(action.first)) {
+                            action.second = emptyAction;
+                        } else {
+                            // Otherwise, the actions of the modules are synchronized.
+                            action.second = DdPrismModelBuilder<Type, ValueType>::combineSynchronizingActions(generationInfo, action.second, right.synchronizingActionToDecisionDiagramMap[action.first]);
+                        }
+                    } else {
+                        // If we don't synchronize over this action, we need to construct the interleaving.
+                        
+                        // If both modules contain the action, we need to mutually multiply the other identity.
+                        if (right.hasSynchronizingAction(action.first)) {
+                            action.second = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, action.second, right.synchronizingActionToDecisionDiagramMap[action.first], left.identity, right.identity);
+                        } else {
+                            // If only the first module has this action, we need to use a dummy action decision diagram
+                            // for the second module.
+                            action.second = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, action.second, emptyAction, left.identity, right.identity);
+                        }
+                    }
+                    numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, action.second.numberOfUsedNondeterminismVariables);
+                }
+                
+                // Treat all non-tau actions of the right module.
+                for (auto const& actionIndex : right.getSynchronizingActionIndices()) {
+                    // Here, we only need to treat actions that the first module does not have, because we have handled
+                    // this case earlier.
+                    if (!left.hasSynchronizingAction(actionIndex)) {
+                        if (synchronizationActionIndices.find(actionIndex) != synchronizationActionIndices.end()) {
+                            // If we are to synchronize over this action that does not exist in the first module, the
+                            // result is that the synchronization is the empty action.
+                            left.synchronizingActionToDecisionDiagramMap[actionIndex] = emptyAction;
+                        } else {
+                            // If only the second module has this action, we need to use a dummy action decision diagram
+                            // for the first module.
+                            left.synchronizingActionToDecisionDiagramMap[actionIndex] = DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(generationInfo, emptyAction, right.synchronizingActionToDecisionDiagramMap[actionIndex], left.identity, right.identity);
                         }
-                        moduleToIdentityMap[module.getName()] = moduleIdentity.template toAdd<ValueType>();
-                        moduleToRangeMap[module.getName()] = moduleRange.template toAdd<ValueType>();
                     }
+                    numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, left.synchronizingActionToDecisionDiagramMap[actionIndex].numberOfUsedNondeterminismVariables);
                 }
-            };
+                
+                // Combine identity matrices.
+                left.identity = left.identity * right.identity;
+                
+                // Keep track of the number of nondeterminism variables used.
+                left.numberOfUsedNondeterminismVariables = std::max(left.numberOfUsedNondeterminismVariables, numberOfUsedNondeterminismVariables);
+            }
             
+            typename DdPrismModelBuilder<Type, ValueType>::GenerationInformation& generationInfo;
+        };
+        
         template <storm::dd::DdType Type, typename ValueType>
-        DdPrismModelBuilder<Type, ValueType>::Options::Options() : buildAllRewardModels(true), rewardModelsToBuild(), constantDefinitions(), buildAllLabels(true), labelsToBuild(), terminalStates(), negatedTerminalStates() {
+        DdPrismModelBuilder<Type, ValueType>::Options::Options() : buildAllRewardModels(true), rewardModelsToBuild(), buildAllLabels(true), labelsToBuild(), terminalStates(), negatedTerminalStates() {
             // Intentionally left empty.
         }
         
         template <storm::dd::DdType Type, typename ValueType>
-        DdPrismModelBuilder<Type, ValueType>::Options::Options(storm::logic::Formula const& formula) : buildAllRewardModels(false), rewardModelsToBuild(), constantDefinitions(), buildAllLabels(false), labelsToBuild(std::set<std::string>()), terminalStates(), negatedTerminalStates() {
+        DdPrismModelBuilder<Type, ValueType>::Options::Options(storm::logic::Formula const& formula) : buildAllRewardModels(false), rewardModelsToBuild(), buildAllLabels(false), labelsToBuild(std::set<std::string>()), terminalStates(), negatedTerminalStates() {
             this->preserveFormula(formula);
             this->setTerminalStatesFromFormula(formula);
         }
         
         template <storm::dd::DdType Type, typename ValueType>
-        DdPrismModelBuilder<Type, ValueType>::Options::Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas) : buildAllRewardModels(false), rewardModelsToBuild(), constantDefinitions(), buildAllLabels(false), labelsToBuild(), terminalStates(), negatedTerminalStates() {
+        DdPrismModelBuilder<Type, ValueType>::Options::Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas) : buildAllRewardModels(false), rewardModelsToBuild(), buildAllLabels(false), labelsToBuild(), terminalStates(), negatedTerminalStates() {
             if (formulas.empty()) {
                 this->buildAllRewardModels = true;
                 this->buildAllLabels = true;
@@ -224,7 +507,7 @@ namespace storm {
             if (negatedTerminalStates) {
                 negatedTerminalStates.reset();
             }
-
+            
             // If we are not required to build all reward models, we determine the reward models we need to build.
             if (!buildAllRewardModels) {
                 std::set<std::string> referencedRewardModels = formula.getReferencedRewardModels();
@@ -271,22 +554,6 @@ namespace storm {
             }
         }
         
-        template <storm::dd::DdType Type, typename ValueType>
-        void DdPrismModelBuilder<Type, ValueType>::Options::addConstantDefinitionsFromString(storm::prism::Program const& program, std::string const& constantDefinitionString) {
-            std::map<storm::expressions::Variable, storm::expressions::Expression> newConstantDefinitions = storm::utility::prism::parseConstantDefinitionString(program, constantDefinitionString);
-            
-            // If there is at least one constant that is defined, and the constant definition map does not yet exist,
-            // we need to create it.
-            if (!constantDefinitions && !newConstantDefinitions.empty()) {
-                constantDefinitions = std::map<storm::expressions::Variable, storm::expressions::Expression>();
-            }
-            
-            // Now insert all the entries that need to be defined.
-            for (auto const& entry : newConstantDefinitions) {
-                constantDefinitions.get().insert(entry);
-            }
-        }
-        
         template <storm::dd::DdType Type, typename ValueType>
         struct DdPrismModelBuilder<Type, ValueType>::SystemResult {
             SystemResult(storm::dd::Add<Type, ValueType> const& allTransitionsDd, DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram const& globalModule, storm::dd::Add<Type, ValueType> const& stateActionDd) : allTransitionsDd(allTransitionsDd), globalModule(globalModule), stateActionDd(stateActionDd) {
@@ -309,11 +576,11 @@ namespace storm {
             std::set<storm::expressions::Variable> assignedVariables;
             for (auto const& assignment : assignments) {
                 // Record the variable as being written.
-                STORM_LOG_TRACE("Assigning to variable " << generationInfo.variableToRowMetaVariableMap.at(assignment.getVariable()).getName());
+                STORM_LOG_TRACE("Assigning to variable " << generationInfo.variableToRowMetaVariableMap->at(assignment.getVariable()).getName());
                 assignedVariables.insert(assignment.getVariable());
                 
                 // Translate the written variable.
-                auto const& primedMetaVariable = generationInfo.variableToColumnMetaVariableMap.at(assignment.getVariable());
+                auto const& primedMetaVariable = generationInfo.variableToColumnMetaVariableMap->at(assignment.getVariable());
                 storm::dd::Add<Type, ValueType> writtenVariable = generationInfo.manager->template getIdentity<ValueType>(primedMetaVariable);
                 
                 // Translate the expression that is being assigned.
@@ -323,6 +590,7 @@ namespace storm {
                 storm::dd::Add<Type, ValueType> result = updateExpression * guard;
                 
                 // Combine the variable and the assigned expression.
+                storm::dd::Add<Type, ValueType> tmp = result;
                 result = result.equals(writtenVariable).template toAdd<ValueType>();
                 result *= guard;
                 
@@ -369,7 +637,7 @@ namespace storm {
                     
                     STORM_LOG_WARN_COND(!updateResults.back().updateDd.isZero(), "Update '" << update << "' does not have any effect.");
                 }
-
+                
                 // Start by gathering all variables that were written in at least one update.
                 std::set<storm::expressions::Variable> globalVariablesInSomeUpdate;
                 
@@ -386,7 +654,7 @@ namespace storm {
                 for (auto& updateResult : updateResults) {
                     std::set<storm::expressions::Variable> missingIdentities;
                     std::set_difference(globalVariablesInSomeUpdate.begin(), globalVariablesInSomeUpdate.end(), updateResult.assignedGlobalVariables.begin(), updateResult.assignedGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
-
+                    
                     for (auto const& variable : missingIdentities) {
                         STORM_LOG_TRACE("Multiplying identity for variable " << variable.getName() << "[" << variable.getIndex() << "] to update.");
                         updateResult.updateDd *= generationInfo.variableToIdentityMap.at(variable);
@@ -424,7 +692,7 @@ namespace storm {
                 // At this point, the command is known to be relevant for the action.
                 commandDds.push_back(createCommandDecisionDiagram(generationInfo, module, command));
             }
-            
+
             ActionDecisionDiagram result(*generationInfo.manager);
             if (!commandDds.empty()) {
                 switch (generationInfo.program.getModelType()){
@@ -448,7 +716,7 @@ namespace storm {
             // Start by gathering all variables that were written in at least one action DD.
             std::set<storm::expressions::Variable> globalVariablesInActionDd;
             std::set_union(action1.assignedGlobalVariables.begin(), action1.assignedGlobalVariables.end(), action2.assignedGlobalVariables.begin(), action2.assignedGlobalVariables.end(), std::inserter(globalVariablesInActionDd, globalVariablesInActionDd.begin()));
-
+            
             std::set<storm::expressions::Variable> missingIdentitiesInAction1;
             std::set_difference(globalVariablesInActionDd.begin(), globalVariablesInActionDd.end(), action1.assignedGlobalVariables.begin(), action1.assignedGlobalVariables.end(), std::inserter(missingIdentitiesInAction1, missingIdentitiesInAction1.begin()));
             for (auto const& variable : missingIdentitiesInAction1) {
@@ -460,7 +728,7 @@ namespace storm {
             for (auto const& variable : missingIdentitiesInAction2) {
                 action2.transitionsDd *= generationInfo.variableToIdentityMap.at(variable);
             }
-
+            
             return globalVariablesInActionDd;
         }
         
@@ -473,7 +741,7 @@ namespace storm {
             }
             
             STORM_LOG_TRACE("Equalizing assigned global variables.");
-
+            
             // Then multiply the transitions of each action with the missing identities.
             for (auto& actionDd : actionDds) {
                 STORM_LOG_TRACE("Equalizing next action.");
@@ -505,7 +773,7 @@ namespace storm {
                 STORM_LOG_WARN_COND(temporary.isZero() || generationInfo.program.getModelType() == storm::prism::Program::ModelType::CTMC, "Guard of a command overlaps with previous guards.");
                 
                 allGuards += commandDd.guardDd;
-                allCommands += commandDd.guardDd * commandDd.transitionsDd;
+                allCommands += commandDd.transitionsDd;
             }
             
             return ActionDecisionDiagram(allGuards, allCommands, assignedGlobalVariables);
@@ -545,7 +813,7 @@ namespace storm {
                 allGuards |= commandDd.guardDd.toBdd();
             }
             uint_fast64_t maxChoices = static_cast<uint_fast64_t>(sumOfGuards.getMax());
-
+            
             STORM_LOG_TRACE("Found " << maxChoices << " local choices.");
             
             // Depending on the maximal number of nondeterminstic choices, we need to use some variables to encode the nondeterminism.
@@ -590,7 +858,7 @@ namespace storm {
                             continue;
                         }
                         
-                        // Split the currentChoices nondeterministic choices.
+                        // Split the nondeterministic choices.
                         for (uint_fast64_t k = 0; k < currentChoices; ++k) {
                             // Calculate the overlapping part of command guard and the remaining DD.
                             storm::dd::Bdd<Type> remainingGuardChoicesIntersection = guardChoicesIntersection && remainingDds[k];
@@ -626,7 +894,7 @@ namespace storm {
                 return ActionDecisionDiagram(allGuards.template toAdd<ValueType>(), allCommands, assignedGlobalVariables, nondeterminismVariableOffset + numberOfBinaryVariables);
             }
         }
-
+        
         template <storm::dd::DdType Type, typename ValueType>
         typename DdPrismModelBuilder<Type, ValueType>::ActionDecisionDiagram DdPrismModelBuilder<Type, ValueType>::combineSynchronizingActions(GenerationInformation const& generationInfo, ActionDecisionDiagram const& action1, ActionDecisionDiagram const& action2) {
             std::set<storm::expressions::Variable> assignedGlobalVariables;
@@ -636,21 +904,30 @@ namespace storm {
         
         template <storm::dd::DdType Type, typename ValueType>
         typename DdPrismModelBuilder<Type, ValueType>::ActionDecisionDiagram DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(GenerationInformation const& generationInfo, ActionDecisionDiagram& action1, ActionDecisionDiagram& action2, storm::dd::Add<Type, ValueType> const& identityDd1, storm::dd::Add<Type, ValueType> const& identityDd2) {
-            storm::dd::Add<Type, ValueType> action1Extended = action1.transitionsDd * identityDd2;
-            storm::dd::Add<Type, ValueType> action2Extended = action2.transitionsDd * identityDd1;
-
+            
+            // First extend the action DDs by the other identities.
+            STORM_LOG_TRACE("Multiplying identities to combine unsynchronized actions.");
+            action1.transitionsDd = action1.transitionsDd * identityDd2;
+            action2.transitionsDd = action2.transitionsDd * identityDd1;
+            
+            // Then combine the extended action DDs.
+            return combineUnsynchronizedActions(generationInfo, action1, action2);
+        }
+        
+        template <storm::dd::DdType Type, typename ValueType>
+        typename DdPrismModelBuilder<Type, ValueType>::ActionDecisionDiagram DdPrismModelBuilder<Type, ValueType>::combineUnsynchronizedActions(GenerationInformation const& generationInfo, ActionDecisionDiagram& action1, ActionDecisionDiagram& action2) {
             STORM_LOG_TRACE("Combining unsynchronized actions.");
             
             // Make both action DDs write to the same global variables.
             std::set<storm::expressions::Variable> assignedGlobalVariables = equalizeAssignedGlobalVariables(generationInfo, action1, action2);
             
             if (generationInfo.program.getModelType() == storm::prism::Program::ModelType::DTMC || generationInfo.program.getModelType() == storm::prism::Program::ModelType::CTMC) {
-                return ActionDecisionDiagram(action1.guardDd + action2.guardDd, action1Extended + action2Extended, assignedGlobalVariables, 0);
+                return ActionDecisionDiagram(action1.guardDd + action2.guardDd, action1.transitionsDd + action2.transitionsDd, assignedGlobalVariables, 0);
             } else if (generationInfo.program.getModelType() == storm::prism::Program::ModelType::MDP) {
                 if (action1.transitionsDd.isZero()) {
-                    return ActionDecisionDiagram(action2.guardDd, action2Extended, assignedGlobalVariables, action2.numberOfUsedNondeterminismVariables);
+                    return ActionDecisionDiagram(action2.guardDd, action2.transitionsDd, assignedGlobalVariables, action2.numberOfUsedNondeterminismVariables);
                 } else if (action2.transitionsDd.isZero()) {
-                    return ActionDecisionDiagram(action1.guardDd, action1Extended, assignedGlobalVariables, action1.numberOfUsedNondeterminismVariables);
+                    return ActionDecisionDiagram(action1.guardDd, action1.transitionsDd, assignedGlobalVariables, action1.numberOfUsedNondeterminismVariables);
                 }
                 
                 // Bring both choices to the same number of variables that encode the nondeterminism.
@@ -661,25 +938,25 @@ namespace storm {
                     for (uint_fast64_t i = action2.numberOfUsedNondeterminismVariables; i < action1.numberOfUsedNondeterminismVariables; ++i) {
                         nondeterminismEncoding *= generationInfo.manager->getEncoding(generationInfo.nondeterminismMetaVariables[i], 0).template toAdd<ValueType>();
                     }
-                    action2Extended *= nondeterminismEncoding;
+                    action2.transitionsDd *= nondeterminismEncoding;
                 } else if (action2.numberOfUsedNondeterminismVariables > action1.numberOfUsedNondeterminismVariables) {
                     storm::dd::Add<Type, ValueType> nondeterminismEncoding = generationInfo.manager->template getAddOne<ValueType>();
                     
                     for (uint_fast64_t i = action1.numberOfUsedNondeterminismVariables; i < action2.numberOfUsedNondeterminismVariables; ++i) {
                         nondeterminismEncoding *= generationInfo.manager->getEncoding(generationInfo.nondeterminismMetaVariables[i], 0).template toAdd<ValueType>();
                     }
-                    action1Extended *= nondeterminismEncoding;
+                    action1.transitionsDd *= nondeterminismEncoding;
                 }
                 
                 // Add a new variable that resolves the nondeterminism between the two choices.
-                storm::dd::Add<Type, ValueType> combinedTransitions = generationInfo.manager->getEncoding(generationInfo.nondeterminismMetaVariables[numberOfUsedNondeterminismVariables], 1).ite(action2Extended, action1Extended);
+                storm::dd::Add<Type, ValueType> combinedTransitions = generationInfo.manager->getEncoding(generationInfo.nondeterminismMetaVariables[numberOfUsedNondeterminismVariables], 1).ite(action2.transitionsDd, action1.transitionsDd);
                 
                 return ActionDecisionDiagram((action1.guardDd.toBdd() || action2.guardDd.toBdd()).template toAdd<ValueType>(), combinedTransitions, assignedGlobalVariables, numberOfUsedNondeterminismVariables + 1);
             } else {
                 STORM_LOG_THROW(false, storm::exceptions::InvalidStateException, "Illegal model type.");
             }
         }
-
+        
         template <storm::dd::DdType Type, typename ValueType>
         typename DdPrismModelBuilder<Type, ValueType>::ModuleDecisionDiagram DdPrismModelBuilder<Type, ValueType>::createModuleDecisionDiagram(GenerationInformation& generationInfo, storm::prism::Module const& module, std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap) {
             // Start by creating the action DD for the independent action.
@@ -694,7 +971,7 @@ namespace storm {
                 numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, tmp.numberOfUsedNondeterminismVariables);
                 actionIndexToDdMap.emplace(actionIndex, tmp);
             }
-            
+
             return ModuleDecisionDiagram(independentActionDd, actionIndexToDdMap, generationInfo.moduleToIdentityMap.at(module.getName()), numberOfUsedNondeterminismVariables);
         }
         
@@ -726,7 +1003,7 @@ namespace storm {
                 // First, determine the highest number of nondeterminism variables that is used in any action and make
                 // all actions use the same amout of nondeterminism variables.
                 uint_fast64_t numberOfUsedNondeterminismVariables = module.numberOfUsedNondeterminismVariables;
-
+                
                 // Compute missing global variable identities in independent action.
                 std::set<storm::expressions::Variable> missingIdentities;
                 std::set_difference(generationInfo.allGlobalVariables.begin(), generationInfo.allGlobalVariables.end(), module.independentAction.assignedGlobalVariables.begin(), module.independentAction.assignedGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
@@ -742,7 +1019,7 @@ namespace storm {
                     nondeterminismEncoding *= generationInfo.manager->getEncoding(generationInfo.nondeterminismMetaVariables[i], 0).template toAdd<ValueType>();
                 }
                 result = identityEncoding * module.independentAction.transitionsDd * nondeterminismEncoding;
-
+                
                 // Add variables to synchronized action DDs.
                 std::map<uint_fast64_t, storm::dd::Add<Type, ValueType>> synchronizingActionToDdMap;
                 for (auto const& synchronizingAction : module.synchronizingActionToDecisionDiagramMap) {
@@ -773,13 +1050,33 @@ namespace storm {
                 for (auto const& synchronizingAction : synchronizingActionToDdMap) {
                     result += synchronizingAction.second;
                 }
-
+                
                 return result;
             } else if (generationInfo.program.getModelType() == storm::prism::Program::ModelType::DTMC || generationInfo.program.getModelType() == storm::prism::Program::ModelType::CTMC) {
-                // Simply add all actions.
-                storm::dd::Add<Type, ValueType> result = module.independentAction.transitionsDd;
+                // Simply add all actions, but make sure to include the missing global variable identities.
+                
+                // Compute missing global variable identities in independent action.
+                std::set<storm::expressions::Variable> missingIdentities;
+                std::set_difference(generationInfo.allGlobalVariables.begin(), generationInfo.allGlobalVariables.end(), module.independentAction.assignedGlobalVariables.begin(), module.independentAction.assignedGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
+                storm::dd::Add<Type, ValueType> identityEncoding = generationInfo.manager->template getAddOne<ValueType>();
+                for (auto const& variable : missingIdentities) {
+                    STORM_LOG_TRACE("Multiplying identity of global variable " << variable.getName() << " to independent action.");
+                    identityEncoding *= generationInfo.variableToIdentityMap.at(variable);
+                }
+
+                storm::dd::Add<Type, ValueType> result = identityEncoding * module.independentAction.transitionsDd;
+                
                 for (auto const& synchronizingAction : module.synchronizingActionToDecisionDiagramMap) {
-                    result += synchronizingAction.second.transitionsDd;
+                    // Compute missing global variable identities in synchronizing actions.
+                    missingIdentities = std::set<storm::expressions::Variable>();
+                    std::set_difference(generationInfo.allGlobalVariables.begin(), generationInfo.allGlobalVariables.end(), synchronizingAction.second.assignedGlobalVariables.begin(), synchronizingAction.second.assignedGlobalVariables.end(), std::inserter(missingIdentities, missingIdentities.begin()));
+                    identityEncoding = generationInfo.manager->template getAddOne<ValueType>();
+                    for (auto const& variable : missingIdentities) {
+                        STORM_LOG_TRACE("Multiplying identity of global variable " << variable.getName() << " to synchronizing action '" << synchronizingAction.first << "'.");
+                        identityEncoding *= generationInfo.variableToIdentityMap.at(variable);
+                    }
+                    
+                    result += identityEncoding * synchronizingAction.second.transitionsDd;
                 }
                 return result;
             } else {
@@ -789,67 +1086,14 @@ namespace storm {
         
         template <storm::dd::DdType Type, typename ValueType>
         typename DdPrismModelBuilder<Type, ValueType>::SystemResult DdPrismModelBuilder<Type, ValueType>::createSystemDecisionDiagram(GenerationInformation& generationInfo) {
-            // Create the initial offset mapping.
-            std::map<uint_fast64_t, uint_fast64_t> synchronizingActionToOffsetMap;
-            for (auto const& actionIndex : generationInfo.program.getSynchronizingActionIndices()) {
-                synchronizingActionToOffsetMap[actionIndex] = 0;
-            }
-
-            // Start by creating DDs for the first module.
-            STORM_LOG_TRACE("Translating (first) module '" << generationInfo.program.getModule(0).getName() << "'.");
-            ModuleDecisionDiagram system = createModuleDecisionDiagram(generationInfo, generationInfo.program.getModule(0), synchronizingActionToOffsetMap);
+            ModuleComposer<Type, ValueType> composer(generationInfo);
+            ModuleDecisionDiagram system = composer.compose(generationInfo.program.specifiesSystemComposition() ? generationInfo.program.getSystemCompositionConstruct().getSystemComposition() : *generationInfo.program.getDefaultSystemComposition());
 
-            // No translate module by module and combine it with the system created thus far.
-            for (uint_fast64_t i = 1; i < generationInfo.program.getNumberOfModules(); ++i) {
-                storm::prism::Module const& currentModule = generationInfo.program.getModule(i);
-                STORM_LOG_TRACE("Translating module '" << currentModule.getName() << "'.");
-                
-                // Update the offset index.
-                for (auto const& actionIndex : generationInfo.program.getSynchronizingActionIndices()) {
-                    if (system.hasSynchronizingAction(actionIndex)) {
-                        synchronizingActionToOffsetMap[actionIndex] = system.synchronizingActionToDecisionDiagramMap[actionIndex].numberOfUsedNondeterminismVariables;
-                    }
-                }
-                
-                ModuleDecisionDiagram currentModuleDd = createModuleDecisionDiagram(generationInfo, currentModule, synchronizingActionToOffsetMap);
-                
-                // Combine the non-synchronizing action.
-                uint_fast64_t numberOfUsedNondeterminismVariables = currentModuleDd.numberOfUsedNondeterminismVariables;
-                system.independentAction = combineUnsynchronizedActions(generationInfo, system.independentAction, currentModuleDd.independentAction, system.identity, currentModuleDd.identity);
-                numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, system.independentAction.numberOfUsedNondeterminismVariables);
-                
-                ActionDecisionDiagram emptyAction(*generationInfo.manager);
-                
-                // For all synchronizing actions that the next module does not have, we need to multiply the identity of the next module.
-                for (auto& action : system.synchronizingActionToDecisionDiagramMap) {
-                    if (!currentModuleDd.hasSynchronizingAction(action.first)) {
-                        action.second = combineUnsynchronizedActions(generationInfo, action.second, emptyAction, system.identity, currentModuleDd.identity);
-                    }
-                }
-                
-                // Combine synchronizing actions.
-                for (auto const& actionIndex : currentModule.getSynchronizingActionIndices()) {
-                    if (system.hasSynchronizingAction(actionIndex)) {
-                        system.synchronizingActionToDecisionDiagramMap[actionIndex] = combineSynchronizingActions(generationInfo, system.synchronizingActionToDecisionDiagramMap[actionIndex], currentModuleDd.synchronizingActionToDecisionDiagramMap[actionIndex]);
-                        numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, system.synchronizingActionToDecisionDiagramMap[actionIndex].numberOfUsedNondeterminismVariables);
-                    } else {
-                        system.synchronizingActionToDecisionDiagramMap[actionIndex] = combineUnsynchronizedActions(generationInfo, emptyAction, currentModuleDd.synchronizingActionToDecisionDiagramMap[actionIndex], system.identity, currentModuleDd.identity);
-                        numberOfUsedNondeterminismVariables = std::max(numberOfUsedNondeterminismVariables, system.synchronizingActionToDecisionDiagramMap[actionIndex].numberOfUsedNondeterminismVariables);
-                    }
-                }
-                
-                // Combine identity matrices.
-                system.identity = system.identity * currentModuleDd.identity;
-                
-                // Keep track of the number of nondeterminism variables used.
-                system.numberOfUsedNondeterminismVariables = std::max(system.numberOfUsedNondeterminismVariables, numberOfUsedNondeterminismVariables);
-            }
-            
             storm::dd::Add<Type, ValueType> result = createSystemFromModule(generationInfo, system);
-
+            
             // Create an auxiliary DD that is used later during the construction of reward models.
             storm::dd::Add<Type, ValueType> stateActionDd = result.sumAbstract(generationInfo.columnMetaVariables);
-
+            
             // For DTMCs, we normalize each row to 1 (to account for non-determinism).
             if (generationInfo.program.getModelType() == storm::prism::Program::ModelType::DTMC) {
                 result = result / stateActionDd;
@@ -892,7 +1136,7 @@ namespace storm {
             // Next, build the state-action reward vector.
             boost::optional<storm::dd::Add<Type, ValueType>> stateActionRewards;
             if (rewardModel.hasStateActionRewards()) {
-                 stateActionRewards = generationInfo.manager->template getAddZero<ValueType>();
+                stateActionRewards = generationInfo.manager->template getAddZero<ValueType>();
                 
                 for (auto const& stateActionReward : rewardModel.getStateActionRewards()) {
                     storm::dd::Add<Type, ValueType> states = generationInfo.rowExpressionAdapter->translateExpression(stateActionReward.getStatePredicateExpression());
@@ -980,19 +1224,15 @@ namespace storm {
             
             return storm::models::symbolic::StandardRewardModel<Type, double>(stateRewards, stateActionRewards, transitionRewards);
         }
-    
+        
         template <storm::dd::DdType Type, typename ValueType>
         storm::prism::Program const& DdPrismModelBuilder<Type, ValueType>::getTranslatedProgram() const {
             return preparedProgram.get();
         }
         
         template <storm::dd::DdType Type, typename ValueType>
-        std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> DdPrismModelBuilder<Type, ValueType>::translateProgram(storm::prism::Program const& program, Options const& options) {
-            if (options.constantDefinitions) {
-                preparedProgram = program.defineUndefinedConstants(options.constantDefinitions.get());
-            } else {
-                preparedProgram = program;
-            }
+        std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> DdPrismModelBuilder<Type, ValueType>::build(storm::prism::Program const& program, Options const& options) {
+            preparedProgram = program;
             
             if (preparedProgram->hasUndefinedConstants()) {
                 std::vector<std::reference_wrapper<storm::prism::Constant const>> undefinedConstants = preparedProgram->getUndefinedConstants();
@@ -1017,7 +1257,7 @@ namespace storm {
             // Start by initializing the structure used for storing all information needed during the model generation.
             // In particular, this creates the meta variables used to encode the model.
             GenerationInformation generationInfo(*preparedProgram);
-
+            
             SystemResult system = createSystemDecisionDiagram(generationInfo);
             storm::dd::Add<Type, ValueType> transitionMatrix = system.allTransitionsDd;
             
@@ -1025,39 +1265,51 @@ namespace storm {
             storm::dd::Add<Type, ValueType> stateActionDd = system.stateActionDd;
             
             // If we were asked to treat some states as terminal states, we cut away their transitions now.
+            storm::dd::Bdd<Type> terminalStatesBdd = generationInfo.manager->getBddZero();
             if (options.terminalStates || options.negatedTerminalStates) {
                 std::map<storm::expressions::Variable, storm::expressions::Expression> constantsSubstitution = preparedProgram->getConstantsSubstitution();
                 
-                storm::dd::Bdd<Type> terminalStatesBdd = generationInfo.manager->getBddZero();
                 if (options.terminalStates) {
                     storm::expressions::Expression terminalExpression;
                     if (options.terminalStates.get().type() == typeid(storm::expressions::Expression)) {
                         terminalExpression = boost::get<storm::expressions::Expression>(options.terminalStates.get());
                     } else {
                         std::string const& labelName = boost::get<std::string>(options.terminalStates.get());
-                        terminalExpression = preparedProgram->getLabelExpression(labelName);
-                    }
-                
-                    // If the expression refers to constants of the model, we need to substitute them.
-                    terminalExpression = terminalExpression.substitute(constantsSubstitution);
+                        if (program.hasLabel(labelName)) {
+                            terminalExpression = preparedProgram->getLabelExpression(labelName);
+                        } else {
+                            STORM_LOG_THROW(labelName == "init" || labelName == "deadlock", storm::exceptions::InvalidArgumentException, "Terminal states refer to illegal label '" << labelName << "'.");
+                        }
+                        }
                     
-                    STORM_LOG_TRACE("Making the states satisfying " << terminalExpression << " terminal.");
-                    terminalStatesBdd = generationInfo.rowExpressionAdapter->translateExpression(terminalExpression).toBdd();
+                    if (terminalExpression.isInitialized()) {
+                        // If the expression refers to constants of the model, we need to substitute them.
+                        terminalExpression = terminalExpression.substitute(constantsSubstitution);
+                        
+                        STORM_LOG_TRACE("Making the states satisfying " << terminalExpression << " terminal.");
+                        terminalStatesBdd = generationInfo.rowExpressionAdapter->translateExpression(terminalExpression).toBdd();
+                    }
                 }
                 if (options.negatedTerminalStates) {
                     storm::expressions::Expression negatedTerminalExpression;
                     if (options.negatedTerminalStates.get().type() == typeid(storm::expressions::Expression)) {
                         negatedTerminalExpression = boost::get<storm::expressions::Expression>(options.negatedTerminalStates.get());
                     } else {
-                        std::string const& labelName = boost::get<std::string>(options.terminalStates.get());
-                        negatedTerminalExpression = preparedProgram->getLabelExpression(labelName);
+                        std::string const& labelName = boost::get<std::string>(options.negatedTerminalStates.get());
+                        if (program.hasLabel(labelName)) {
+                            negatedTerminalExpression = preparedProgram->getLabelExpression(labelName);
+                        } else {
+                            STORM_LOG_THROW(labelName == "init" || labelName == "deadlock", storm::exceptions::InvalidArgumentException, "Terminal states refer to illegal label '" << labelName << "'.");
+                        }
                     }
                     
-                    // If the expression refers to constants of the model, we need to substitute them.
-                    negatedTerminalExpression = negatedTerminalExpression.substitute(constantsSubstitution);
-                    
-                    STORM_LOG_TRACE("Making the states *not* satisfying " << negatedTerminalExpression << " terminal.");
-                    terminalStatesBdd |= !generationInfo.rowExpressionAdapter->translateExpression(negatedTerminalExpression).toBdd();
+                    if (negatedTerminalExpression.isInitialized()) {
+                        // If the expression refers to constants of the model, we need to substitute them.
+                        negatedTerminalExpression = negatedTerminalExpression.substitute(constantsSubstitution);
+                        
+                        STORM_LOG_TRACE("Making the states *not* satisfying " << negatedTerminalExpression << " terminal.");
+                        terminalStatesBdd |= !generationInfo.rowExpressionAdapter->translateExpression(negatedTerminalExpression).toBdd();
+                    }
                 }
                 
                 transitionMatrix *= (!terminalStatesBdd).template toAdd<ValueType>();
@@ -1065,52 +1317,64 @@ namespace storm {
             
             // Cut the transitions and rewards to the reachable fragment of the state space.
             storm::dd::Bdd<Type> initialStates = createInitialStatesDecisionDiagram(generationInfo);
+                        
             storm::dd::Bdd<Type> transitionMatrixBdd = transitionMatrix.notZero();
             if (program.getModelType() == storm::prism::Program::ModelType::MDP) {
                 transitionMatrixBdd = transitionMatrixBdd.existsAbstract(generationInfo.allNondeterminismVariables);
             }
             
-            storm::dd::Bdd<Type> reachableStates = computeReachableStates(generationInfo, initialStates, transitionMatrixBdd);
+            storm::dd::Bdd<Type> reachableStates = storm::utility::dd::computeReachableStates<Type>(initialStates, transitionMatrixBdd, generationInfo.rowMetaVariables, generationInfo.columnMetaVariables);
             storm::dd::Add<Type, ValueType> reachableStatesAdd = reachableStates.template toAdd<ValueType>();
             transitionMatrix *= reachableStatesAdd;
             stateActionDd *= reachableStatesAdd;
             
             // Detect deadlocks and 1) fix them if requested 2) throw an error otherwise.
             storm::dd::Bdd<Type> statesWithTransition = transitionMatrixBdd.existsAbstract(generationInfo.columnMetaVariables);
-            storm::dd::Add<Type, ValueType> deadlockStates = (reachableStates && !statesWithTransition).template toAdd<ValueType>();
-
+            storm::dd::Bdd<Type> deadlockStates = reachableStates && !statesWithTransition;
+            
+            // If there are deadlocks, either fix them or raise an error.
             if (!deadlockStates.isZero()) {
                 // If we need to fix deadlocks, we do so now.
                 if (!storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().isDontFixDeadlocksSet()) {
                     STORM_LOG_INFO("Fixing deadlocks in " << deadlockStates.getNonZeroCount() << " states. The first three of these states are: ");
-                    
+
+                    storm::dd::Add<Type, ValueType> deadlockStatesAdd = deadlockStates.template toAdd<ValueType>();
                     uint_fast64_t count = 0;
-                    for (auto it = deadlockStates.begin(), ite = deadlockStates.end(); it != ite && count < 3; ++it, ++count) {
+                    for (auto it = deadlockStatesAdd.begin(), ite = deadlockStatesAdd.end(); it != ite && count < 3; ++it, ++count) {
                         STORM_LOG_INFO((*it).first.toPrettyString(generationInfo.rowMetaVariables) << std::endl);
                     }
+                    
+                    if (program.getModelType() == storm::prism::Program::ModelType::DTMC || program.getModelType() == storm::prism::Program::ModelType::CTMC) {
+                        storm::dd::Add<Type, ValueType> identity = globalModule.identity;
+                        
+                        // Make sure that global variables do not change along the introduced self-loops.
+                        for (auto const& var : generationInfo.allGlobalVariables) {
+                            identity *= generationInfo.variableToIdentityMap.at(var);
+                        }
 
-                    if (program.getModelType() == storm::prism::Program::ModelType::DTMC) {
                         // For DTMCs, we can simply add the identity of the global module for all deadlock states.
-                        transitionMatrix += deadlockStates * globalModule.identity;
+                        transitionMatrix += deadlockStatesAdd * identity;
                     } else if (program.getModelType() == storm::prism::Program::ModelType::MDP) {
                         // For MDPs, however, we need to select an action associated with the self-loop, if we do not
                         // want to attach a lot of self-loops to the deadlock states.
                         storm::dd::Add<Type, ValueType> action = generationInfo.manager->template getAddOne<ValueType>();
-                        std::for_each(generationInfo.allNondeterminismVariables.begin(), generationInfo.allNondeterminismVariables.end(),
-                                      [&action, &generationInfo] (storm::expressions::Variable const& metaVariable) {
-                                          action *= generationInfo.manager->template getIdentity<ValueType>(metaVariable);
-                                      });
+                        for (auto const& metaVariable : generationInfo.allNondeterminismVariables) {
+                            action *= generationInfo.manager->template getIdentity<ValueType>(metaVariable);
+                        }
                         // Make sure that global variables do not change along the introduced self-loops.
                         for (auto const& var : generationInfo.allGlobalVariables) {
                             action *= generationInfo.variableToIdentityMap.at(var);
                         }
-                        transitionMatrix += deadlockStates * globalModule.identity * action;
+                        transitionMatrix += deadlockStatesAdd * globalModule.identity * action;
                     }
                 } else {
                     STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "The model contains " << deadlockStates.getNonZeroCount() << " deadlock states. Please unset the option to not fix deadlocks, if you want to fix them automatically.");
                 }
             }
             
+            // Reduce the deadlock states by the states that we did simply not explore.
+            deadlockStates = deadlockStates && !terminalStatesBdd;
+            
             // Now build the reward models.
             std::vector<std::reference_wrapper<storm::prism::RewardModel const>> selectedRewardModels;
             
@@ -1142,11 +1406,11 @@ namespace storm {
             }
             
             if (program.getModelType() == storm::prism::Program::ModelType::DTMC) {
-                return std::shared_ptr<storm::models::symbolic::Model<Type>>(new storm::models::symbolic::Dtmc<Type>(generationInfo.manager, reachableStates, initialStates, transitionMatrix, generationInfo.rowMetaVariables, generationInfo.rowExpressionAdapter, generationInfo.columnMetaVariables, generationInfo.columnExpressionAdapter, generationInfo.rowColumnMetaVariablePairs, labelToExpressionMapping, rewardModels));
+                return std::shared_ptr<storm::models::symbolic::Model<Type>>(new storm::models::symbolic::Dtmc<Type>(generationInfo.manager, reachableStates, initialStates, deadlockStates, transitionMatrix, generationInfo.rowMetaVariables, generationInfo.rowExpressionAdapter, generationInfo.columnMetaVariables, generationInfo.columnExpressionAdapter, generationInfo.rowColumnMetaVariablePairs, labelToExpressionMapping, rewardModels));
             } else if (program.getModelType() == storm::prism::Program::ModelType::CTMC) {
-                return std::shared_ptr<storm::models::symbolic::Model<Type>>(new storm::models::symbolic::Ctmc<Type>(generationInfo.manager, reachableStates, initialStates, transitionMatrix, generationInfo.rowMetaVariables, generationInfo.rowExpressionAdapter, generationInfo.columnMetaVariables, generationInfo.columnExpressionAdapter, generationInfo.rowColumnMetaVariablePairs, labelToExpressionMapping, rewardModels));
+                return std::shared_ptr<storm::models::symbolic::Model<Type>>(new storm::models::symbolic::Ctmc<Type>(generationInfo.manager, reachableStates, initialStates, deadlockStates, transitionMatrix, generationInfo.rowMetaVariables, generationInfo.rowExpressionAdapter, generationInfo.columnMetaVariables, generationInfo.columnExpressionAdapter, generationInfo.rowColumnMetaVariablePairs, labelToExpressionMapping, rewardModels));
             } else if (program.getModelType() == storm::prism::Program::ModelType::MDP) {
-                return std::shared_ptr<storm::models::symbolic::Model<Type>>(new storm::models::symbolic::Mdp<Type>(generationInfo.manager, reachableStates, initialStates, transitionMatrix, generationInfo.rowMetaVariables, generationInfo.rowExpressionAdapter, generationInfo.columnMetaVariables, generationInfo.columnExpressionAdapter, generationInfo.rowColumnMetaVariablePairs, generationInfo.allNondeterminismVariables, labelToExpressionMapping, rewardModels));
+                return std::shared_ptr<storm::models::symbolic::Model<Type>>(new storm::models::symbolic::Mdp<Type>(generationInfo.manager, reachableStates, initialStates, deadlockStates, transitionMatrix, generationInfo.rowMetaVariables, generationInfo.rowExpressionAdapter, generationInfo.columnMetaVariables, generationInfo.columnExpressionAdapter, generationInfo.rowColumnMetaVariablePairs, generationInfo.allNondeterminismVariables, labelToExpressionMapping, rewardModels));
             } else {
                 STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Invalid model type.");
             }
@@ -1163,36 +1427,10 @@ namespace storm {
             return initialStates;
         }
         
-        template <storm::dd::DdType Type, typename ValueType>
-        storm::dd::Bdd<Type> DdPrismModelBuilder<Type, ValueType>::computeReachableStates(GenerationInformation& generationInfo, storm::dd::Bdd<Type> const& initialStates, storm::dd::Bdd<Type> const& transitionBdd) {
-            storm::dd::Bdd<Type> reachableStates = initialStates;
-            
-            // Perform the BFS to discover all reachable states.
-            bool changed = true;
-            uint_fast64_t iteration = 0;
-            do {
-                STORM_LOG_TRACE("Iteration " << iteration << " of reachability analysis.");
-                changed = false;
-                storm::dd::Bdd<Type> tmp = reachableStates.relationalProduct(transitionBdd, generationInfo.rowMetaVariables, generationInfo.columnMetaVariables);
-                storm::dd::Bdd<Type> newReachableStates = tmp && (!reachableStates);
-                                
-                // Check whether new states were indeed discovered.
-                if (!newReachableStates.isZero()) {
-                    changed = true;
-                }
-                
-                reachableStates |= newReachableStates;
-                
-                ++iteration;
-            } while (changed);
-            
-            return reachableStates;
-        }
-        
         // Explicitly instantiate the symbolic model builder.
         template class DdPrismModelBuilder<storm::dd::DdType::CUDD>;
         template class DdPrismModelBuilder<storm::dd::DdType::Sylvan>;
-
+        
     } // namespace adapters
 } // namespace storm
 
diff --git a/src/builder/DdPrismModelBuilder.h b/src/builder/DdPrismModelBuilder.h
index 3a468d6bc..0cb8cc6fd 100644
--- a/src/builder/DdPrismModelBuilder.h
+++ b/src/builder/DdPrismModelBuilder.h
@@ -50,16 +50,6 @@ namespace storm {
                  */
                 Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas);
                 
-                /*!
-                 * Sets the constants definitions from the given string. The string must be of the form 'X=a,Y=b,Z=c',
-                 * etc. where X,Y,Z are the variable names and a,b,c are the values of the constants.
-                 *
-                 * @param program The program managing the constants that shall be defined. Note that the program itself
-                 * is not modified whatsoever.
-                 * @param constantDefinitionString The string from which to parse the constants' values.
-                 */
-                void addConstantDefinitionsFromString(storm::prism::Program const& program, std::string const& constantDefinitionString);
-                
                 /*!
                  * Changes the options in a way that ensures that the given formula can be checked on the model once it
                  * has been built.
@@ -84,9 +74,6 @@ namespace storm {
                 // A list of reward models to be build in case not all reward models are to be build.
                 std::set<std::string> rewardModelsToBuild;
                 
-                // An optional mapping that, if given, contains defining expressions for undefined constants.
-                boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> constantDefinitions;
-                
                 // A flag indicating whether all labels are to be build.
                 bool buildAllLabels;
                 
@@ -109,7 +96,7 @@ namespace storm {
              * @param program The program to translate.
              * @return A pointer to the resulting model.
              */
-            std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> translateProgram(storm::prism::Program const& program, Options const& options = Options());
+            std::shared_ptr<storm::models::symbolic::Model<Type, ValueType>> build(storm::prism::Program const& program, Options const& options = Options());
             
             /*!
              * Retrieves the program that was actually translated (i.e. including constant substitutions etc.). Note
@@ -188,6 +175,14 @@ namespace storm {
                     return synchronizingActionToDecisionDiagramMap.find(actionIndex) != synchronizingActionToDecisionDiagramMap.end();
                 }
                 
+                std::set<uint_fast64_t> getSynchronizingActionIndices() const {
+                    std::set<uint_fast64_t> result;
+                    for (auto const& entry : synchronizingActionToDecisionDiagramMap) {
+                        result.insert(entry.first);
+                    }
+                    return result;
+                }
+                
                 // The decision diagram for the independent action.
                 ActionDecisionDiagram independentAction;
                 
@@ -210,7 +205,11 @@ namespace storm {
              * Structure to store the result of the system creation phase.
              */
             struct SystemResult;
+            
         private:
+            template <storm::dd::DdType TypePrime, typename ValueTypePrime>
+            friend class ModuleComposer;
+            
             static std::set<storm::expressions::Variable> equalizeAssignedGlobalVariables(GenerationInformation const& generationInfo, ActionDecisionDiagram& action1, ActionDecisionDiagram& action2);
             
             static std::set<storm::expressions::Variable> equalizeAssignedGlobalVariables(GenerationInformation const& generationInfo, std::vector<ActionDecisionDiagram>& actionDds);
@@ -230,6 +229,8 @@ namespace storm {
             static ActionDecisionDiagram combineSynchronizingActions(GenerationInformation const& generationInfo, ActionDecisionDiagram const& action1, ActionDecisionDiagram const& action2);
 
             static ActionDecisionDiagram combineUnsynchronizedActions(GenerationInformation const& generationInfo, ActionDecisionDiagram& action1, ActionDecisionDiagram& action2, storm::dd::Add<Type, ValueType> const& identityDd1, storm::dd::Add<Type, ValueType> const& identityDd2);
+            
+            static ActionDecisionDiagram combineUnsynchronizedActions(GenerationInformation const& generationInfo, ActionDecisionDiagram& action1, ActionDecisionDiagram& action2);
 
             static ModuleDecisionDiagram createModuleDecisionDiagram(GenerationInformation& generationInfo, storm::prism::Module const& module, std::map<uint_fast64_t, uint_fast64_t> const& synchronizingActionToOffsetMap);
 
@@ -242,8 +243,6 @@ namespace storm {
             static SystemResult createSystemDecisionDiagram(GenerationInformation& generationInfo);
             
             static storm::dd::Bdd<Type> createInitialStatesDecisionDiagram(GenerationInformation& generationInfo);
-
-            static storm::dd::Bdd<Type> computeReachableStates(GenerationInformation& generationInfo, storm::dd::Bdd<Type> const& initialStates, storm::dd::Bdd<Type> const& transitions);
             
             // This member holds the program that was most recently translated (if any).
             boost::optional<storm::prism::Program> preparedProgram;
diff --git a/src/builder/ExplicitModelBuilder.cpp b/src/builder/ExplicitModelBuilder.cpp
new file mode 100644
index 000000000..352694187
--- /dev/null
+++ b/src/builder/ExplicitModelBuilder.cpp
@@ -0,0 +1,361 @@
+#include "src/builder/ExplicitModelBuilder.h"
+
+#include <map>
+
+#include "src/models/sparse/Dtmc.h"
+#include "src/models/sparse/Ctmc.h"
+#include "src/models/sparse/Mdp.h"
+#include "src/models/sparse/StandardRewardModel.h"
+
+#include "src/storage/expressions/ExpressionManager.h"
+
+#include "src/settings/modules/MarkovChainSettings.h"
+#include "src/settings/modules/IOSettings.h"
+
+#include "src/generator/PrismNextStateGenerator.h"
+#include "src/generator/JaniNextStateGenerator.h"
+
+#include "src/utility/prism.h"
+#include "src/utility/constants.h"
+#include "src/utility/macros.h"
+#include "src/utility/ConstantsComparator.h"
+#include "src/exceptions/WrongFormatException.h"
+
+#include "src/exceptions/InvalidArgumentException.h"
+#include "src/exceptions/InvalidOperationException.h"
+
+namespace storm {
+    namespace builder {
+       
+        /*!
+         * A structure that is used to keep track of a reward model currently being built.
+         */
+        template <typename ValueType>
+        class RewardModelBuilder {
+        public:
+            RewardModelBuilder(storm::generator::RewardModelInformation const& rewardModelInformation) : rewardModelName(rewardModelInformation.getName()), stateRewards(rewardModelInformation.hasStateRewards()), stateActionRewards(rewardModelInformation.hasStateActionRewards()), stateRewardVector(), stateActionRewardVector() {
+                STORM_LOG_THROW(!rewardModelInformation.hasTransitionRewards(), storm::exceptions::InvalidArgumentException, "Unable to treat transition rewards.");
+            }
+            
+            storm::models::sparse::StandardRewardModel<ValueType> build(uint_fast64_t rowCount, uint_fast64_t columnCount, uint_fast64_t rowGroupCount) {
+                boost::optional<std::vector<ValueType>> optionalStateRewardVector;
+                if (hasStateRewards()) {
+                    stateRewardVector.resize(rowGroupCount);
+                    optionalStateRewardVector = std::move(stateRewardVector);
+                }
+                
+                boost::optional<std::vector<ValueType>> optionalStateActionRewardVector;
+                if (hasStateActionRewards()) {
+                    stateActionRewardVector.resize(rowCount);
+                    optionalStateActionRewardVector = std::move(stateActionRewardVector);
+                }
+                
+                return storm::models::sparse::StandardRewardModel<ValueType>(std::move(optionalStateRewardVector), std::move(optionalStateActionRewardVector));
+            }
+            
+            std::string const& getName() const {
+                return rewardModelName;
+            }
+            
+            void addStateReward(ValueType const& value) {
+                stateRewardVector.push_back(value);
+            }
+
+            void addStateActionReward(ValueType const& value) {
+                stateActionRewardVector.push_back(value);
+            }
+            
+            bool hasStateRewards() const {
+                return stateRewards;
+            }
+            
+            bool hasStateActionRewards() const {
+                return stateActionRewards;
+            }
+            
+        private:
+            std::string rewardModelName;
+
+            bool stateRewards;
+            bool stateActionRewards;
+            
+            // The state reward vector.
+            std::vector<ValueType> stateRewardVector;
+            
+            // The state-action reward vector.
+            std::vector<ValueType> stateActionRewardVector;
+        };
+                        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        ExplicitModelBuilder<ValueType, RewardModelType, StateType>::ModelComponents::ModelComponents() : transitionMatrix(), stateLabeling(), rewardModels(), choiceLabeling() {
+            // Intentionally left empty.
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        ExplicitModelBuilder<ValueType, RewardModelType, StateType>::Options::Options() : explorationOrder(storm::settings::getModule<storm::settings::modules::IOSettings>().getExplorationOrder()), buildStateValuations(false) {
+            // Intentionally left empty.
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        ExplicitModelBuilder<ValueType, RewardModelType, StateType>::ExplicitModelBuilder(std::shared_ptr<storm::generator::NextStateGenerator<ValueType, StateType>> const& generator, Options const& options) : generator(generator), options(options), stateStorage(generator->getStateSize()) {
+            // Intentionally left empty.
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        ExplicitModelBuilder<ValueType, RewardModelType, StateType>::ExplicitModelBuilder(storm::prism::Program const& program, storm::generator::NextStateGeneratorOptions const& generatorOptions, Options const& builderOptions) : ExplicitModelBuilder(std::make_shared<storm::generator::PrismNextStateGenerator<ValueType, StateType>>(program, generatorOptions), builderOptions) {
+            // Intentionally left empty.
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        ExplicitModelBuilder<ValueType, RewardModelType, StateType>::ExplicitModelBuilder(storm::jani::Model const& model, storm::generator::NextStateGeneratorOptions const& generatorOptions, Options const& builderOptions) : ExplicitModelBuilder(std::make_shared<storm::generator::JaniNextStateGenerator<ValueType, StateType>>(model, generatorOptions), builderOptions) {
+            // Intentionally left empty.
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        storm::storage::sparse::StateValuations const& ExplicitModelBuilder<ValueType, RewardModelType, StateType>::getStateValuations() const {
+            STORM_LOG_THROW(static_cast<bool>(stateValuations), storm::exceptions::InvalidOperationException, "The state information was not properly build.");
+            return stateValuations.get();
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>> ExplicitModelBuilder<ValueType, RewardModelType, StateType>::build() {
+            STORM_LOG_DEBUG("Exploration order is: " << options.explorationOrder);
+            ModelComponents modelComponents = buildModelComponents();
+            
+            std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>> result;
+            switch (generator->getModelType()) {
+                case storm::generator::ModelType::DTMC:
+                    result = std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>(new storm::models::sparse::Dtmc<ValueType, RewardModelType>(std::move(modelComponents.transitionMatrix), std::move(modelComponents.stateLabeling), std::move(modelComponents.rewardModels), std::move(modelComponents.choiceLabeling)));
+                    break;
+                case storm::generator::ModelType::CTMC:
+                    result = std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>(new storm::models::sparse::Ctmc<ValueType, RewardModelType>(std::move(modelComponents.transitionMatrix), std::move(modelComponents.stateLabeling), std::move(modelComponents.rewardModels), std::move(modelComponents.choiceLabeling)));
+                    break;
+                case storm::generator::ModelType::MDP:
+                    result = std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>(new storm::models::sparse::Mdp<ValueType, RewardModelType>(std::move(modelComponents.transitionMatrix), std::move(modelComponents.stateLabeling), std::move(modelComponents.rewardModels), std::move(modelComponents.choiceLabeling)));
+                    break;
+                default:
+                    STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error while creating model from probabilistic program: cannot handle this model type.");
+                    break;
+            }
+            
+            return result;
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        StateType ExplicitModelBuilder<ValueType, RewardModelType, StateType>::getOrAddStateIndex(CompressedState const& state) {
+            StateType newIndex = static_cast<StateType>(stateStorage.getNumberOfStates());
+            
+            // Check, if the state was already registered.
+            std::pair<StateType, std::size_t> actualIndexBucketPair = stateStorage.stateToId.findOrAddAndGetBucket(state, newIndex);
+            
+            if (actualIndexBucketPair.first == newIndex) {
+                if (options.explorationOrder == ExplorationOrder::Dfs) {
+                    statesToExplore.push_front(state);
+
+                    // Reserve one slot for the new state in the remapping.
+                    stateRemapping.get().push_back(storm::utility::zero<StateType>());
+                } else if (options.explorationOrder == ExplorationOrder::Bfs) {
+                    statesToExplore.push_back(state);
+                } else {
+                    STORM_LOG_ASSERT(false, "Invalid exploration order.");
+                }
+            }
+            
+            return actualIndexBucketPair.first;
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> ExplicitModelBuilder<ValueType, RewardModelType, StateType>::buildMatrices(storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder, std::vector<RewardModelBuilder<typename RewardModelType::ValueType>>& rewardModelBuilders) {
+            // Create choice labels, if requested,
+            boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> choiceLabels;
+            if (generator->getOptions().isBuildChoiceLabelsSet()) {
+                choiceLabels = std::vector<boost::container::flat_set<uint_fast64_t>>();
+            }
+
+            // Create a callback for the next-state generator to enable it to request the index of states.
+            std::function<StateType (CompressedState const&)> stateToIdCallback = std::bind(&ExplicitModelBuilder<ValueType, RewardModelType, StateType>::getOrAddStateIndex, this, std::placeholders::_1);
+            
+            // If the exploration order is something different from breadth-first, we need to keep track of the remapping
+            // from state ids to row groups. For this, we actually store the reversed mapping of row groups to state-ids
+            // and later reverse it.
+            if (options.explorationOrder != ExplorationOrder::Bfs) {
+                stateRemapping = std::vector<uint_fast64_t>();
+            }
+            
+            // Let the generator create all initial states.
+            this->stateStorage.initialStateIndices = generator->getInitialStates(stateToIdCallback);
+            
+            // Now explore the current state until there is no more reachable state.
+            uint_fast64_t currentRowGroup = 0;
+            uint_fast64_t currentRow = 0;
+
+            // Perform a search through the model.
+            while (!statesToExplore.empty()) {
+                // Get the first state in the queue.
+                CompressedState currentState = statesToExplore.front();
+                StateType currentIndex = stateStorage.stateToId.getValue(currentState);
+                statesToExplore.pop_front();
+                
+                // If the exploration order differs from breadth-first, we remember that this row group was actually
+                // filled with the transitions of a different state.
+                if (options.explorationOrder != ExplorationOrder::Bfs) {
+                    stateRemapping.get()[currentIndex] = currentRowGroup;
+                }
+                
+                STORM_LOG_TRACE("Exploring state with id " << currentIndex << ".");
+                
+                generator->load(currentState);
+                storm::generator::StateBehavior<ValueType, StateType> behavior = generator->expand(stateToIdCallback);
+                
+                // If there is no behavior, we might have to introduce a self-loop.
+                if (behavior.empty()) {
+                    if (!storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().isDontFixDeadlocksSet() || !behavior.wasExpanded()) {
+                        // If the behavior was actually expanded and yet there are no transitions, then we have a deadlock state.
+                        if (behavior.wasExpanded()) {
+                            this->stateStorage.deadlockStateIndices.push_back(currentIndex);
+                        }
+                        
+                        if (generator->getOptions().isBuildChoiceLabelsSet()) {
+                            // Insert empty choice labeling for added self-loop transitions.
+                            choiceLabels.get().push_back(boost::container::flat_set<uint_fast64_t>());
+                        }
+                        if (!generator->isDeterministicModel()) {
+                            transitionMatrixBuilder.newRowGroup(currentRow);
+                        }
+                        
+                        transitionMatrixBuilder.addNextValue(currentRow, currentIndex, storm::utility::one<ValueType>());
+                        
+                        for (auto& rewardModelBuilder : rewardModelBuilders) {
+                            if (rewardModelBuilder.hasStateRewards()) {
+                                rewardModelBuilder.addStateReward(storm::utility::zero<ValueType>());
+                            }
+                            
+                            if (rewardModelBuilder.hasStateActionRewards()) {
+                                rewardModelBuilder.addStateActionReward(storm::utility::zero<ValueType>());
+                            }
+                        }
+                        
+                        ++currentRow;
+                        ++currentRowGroup;
+                    } else {
+                        STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error while creating sparse matrix from probabilistic program: found deadlock state (" << generator->toValuation(currentState).toString(true) << "). For fixing these, please provide the appropriate option.");
+                    }
+                } else {
+                    // Add the state rewards to the corresponding reward models.
+                    auto stateRewardIt = behavior.getStateRewards().begin();
+                    for (auto& rewardModelBuilder : rewardModelBuilders) {
+                        if (rewardModelBuilder.hasStateRewards()) {
+                            rewardModelBuilder.addStateReward(*stateRewardIt);
+                        }
+                        ++stateRewardIt;
+                    }
+                    
+                    // If the model is nondeterministic, we need to open a row group.
+                    if (!generator->isDeterministicModel()) {
+                        transitionMatrixBuilder.newRowGroup(currentRow);
+                    }
+                    
+                    // Now add all choices.
+                    for (auto const& choice : behavior) {
+                        // Add command labels if requested.
+                        if (generator->getOptions().isBuildChoiceLabelsSet()) {
+                            choiceLabels.get().push_back(choice.getChoiceLabels());
+                        }
+                        
+                        // Add the probabilistic behavior to the matrix.
+                        for (auto const& stateProbabilityPair : choice) {
+                            transitionMatrixBuilder.addNextValue(currentRow, stateProbabilityPair.first, stateProbabilityPair.second);
+                        }
+                        
+                        // Add the rewards to the reward models.
+                        auto choiceRewardIt = choice.getChoiceRewards().begin();
+                        for (auto& rewardModelBuilder : rewardModelBuilders) {
+                            if (rewardModelBuilder.hasStateActionRewards()) {
+                                rewardModelBuilder.addStateActionReward(*choiceRewardIt);
+                            }
+                            ++choiceRewardIt;
+                        }
+                        ++currentRow;
+                    }
+                    ++currentRowGroup;
+                }
+            }
+
+            // If the exploration order was not breadth-first, we need to fix the entries in the matrix according to
+            // (reversed) mapping of row groups to indices.
+            if (options.explorationOrder != ExplorationOrder::Bfs) {
+                STORM_LOG_ASSERT(stateRemapping, "Unable to fix columns without mapping.");
+                std::vector<uint_fast64_t> const& remapping = stateRemapping.get();
+                
+                // We need to fix the following entities:
+                // (a) the transition matrix
+                // (b) the initial states
+                // (c) the hash map storing the mapping states -> ids
+                
+                // Fix (a).
+                transitionMatrixBuilder.replaceColumns(remapping, 0);
+
+                // Fix (b).
+                std::vector<StateType> newInitialStateIndices(this->stateStorage.initialStateIndices.size());
+                std::transform(this->stateStorage.initialStateIndices.begin(), this->stateStorage.initialStateIndices.end(), newInitialStateIndices.begin(), [&remapping] (StateType const& state) { return remapping[state]; } );
+                std::sort(newInitialStateIndices.begin(), newInitialStateIndices.end());
+                this->stateStorage.initialStateIndices = std::move(newInitialStateIndices);
+                
+                // Fix (c).
+                this->stateStorage.stateToId.remap([&remapping] (StateType const& state) { return remapping[state]; } );
+            }
+            
+            return choiceLabels;
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        typename ExplicitModelBuilder<ValueType, RewardModelType, StateType>::ModelComponents ExplicitModelBuilder<ValueType, RewardModelType, StateType>::buildModelComponents() {
+            ModelComponents modelComponents;
+                        
+            // Determine whether we have to combine different choices to one or whether this model can have more than
+            // one choice per state.
+            bool deterministicModel = generator->isDeterministicModel();
+            
+            // Prepare the transition matrix builder and the reward model builders.
+            storm::storage::SparseMatrixBuilder<ValueType> transitionMatrixBuilder(0, 0, 0, false, !deterministicModel, 0);
+            std::vector<RewardModelBuilder<typename RewardModelType::ValueType>> rewardModelBuilders;
+            for (uint64_t i = 0; i < generator->getNumberOfRewardModels(); ++i) {
+                rewardModelBuilders.emplace_back(generator->getRewardModelInformation(i));
+            }
+            
+            modelComponents.choiceLabeling = buildMatrices(transitionMatrixBuilder, rewardModelBuilders);
+            modelComponents.transitionMatrix = transitionMatrixBuilder.build();
+            
+            // Now finalize all reward models.
+            for (auto& rewardModelBuilder : rewardModelBuilders) {
+                modelComponents.rewardModels.emplace(rewardModelBuilder.getName(), rewardModelBuilder.build(modelComponents.transitionMatrix.getRowCount(), modelComponents.transitionMatrix.getColumnCount(), modelComponents.transitionMatrix.getRowGroupCount()));
+            }
+            
+            // Build the state labeling.
+            modelComponents.stateLabeling = buildStateLabeling();
+            
+            // Finally -- if requested -- build the state information that can be retrieved from the outside.
+            if (options.buildStateValuations) {
+                stateValuations = storm::storage::sparse::StateValuations(stateStorage.getNumberOfStates());
+                for (auto const& bitVectorIndexPair : stateStorage.stateToId) {
+                    stateValuations.get().valuations[bitVectorIndexPair.second] = generator->toValuation(bitVectorIndexPair.first);
+                }
+            }
+            
+            return modelComponents;
+        }
+        
+        template <typename ValueType, typename RewardModelType, typename StateType>
+        storm::models::sparse::StateLabeling ExplicitModelBuilder<ValueType, RewardModelType, StateType>::buildStateLabeling() {
+            return generator->label(stateStorage.stateToId, stateStorage.initialStateIndices, stateStorage.deadlockStateIndices);
+        }
+        
+        // Explicitly instantiate the class.
+        template class ExplicitModelBuilder<double, storm::models::sparse::StandardRewardModel<double>, uint32_t>;
+        
+#ifdef STORM_HAVE_CARL
+        template class ExplicitModelBuilder<double, storm::models::sparse::StandardRewardModel<storm::Interval>, uint32_t>;
+        template class ExplicitModelBuilder<RationalFunction, storm::models::sparse::StandardRewardModel<RationalFunction>, uint32_t>;
+#endif
+    }
+}
diff --git a/src/builder/ExplicitModelBuilder.h b/src/builder/ExplicitModelBuilder.h
new file mode 100644
index 000000000..296c15b7d
--- /dev/null
+++ b/src/builder/ExplicitModelBuilder.h
@@ -0,0 +1,185 @@
+#ifndef STORM_BUILDER_ExplicitModelBuilder_H
+#define	STORM_BUILDER_ExplicitModelBuilder_H
+
+#include <memory>
+#include <utility>
+#include <vector>
+#include <deque>
+#include <cstdint>
+#include <boost/functional/hash.hpp>
+#include <boost/container/flat_set.hpp>
+#include <boost/container/flat_map.hpp>
+#include <boost/variant.hpp>
+#include "src/models/sparse/StandardRewardModel.h"
+
+#include "src/storage/prism/Program.h"
+#include "src/storage/expressions/ExpressionEvaluator.h"
+#include "src/storage/BitVectorHashMap.h"
+#include "src/logic/Formulas.h"
+#include "src/models/sparse/StateAnnotation.h"
+#include "src/models/sparse/Model.h"
+#include "src/models/sparse/StateLabeling.h"
+#include "src/storage/SparseMatrix.h"
+#include "src/storage/sparse/StateValuations.h"
+#include "src/storage/sparse/StateStorage.h"
+#include "src/settings/SettingsManager.h"
+
+#include "src/utility/prism.h"
+
+#include "src/builder/ExplorationOrder.h"
+
+#include "src/generator/NextStateGenerator.h"
+#include "src/generator/CompressedState.h"
+#include "src/generator/VariableInformation.h"
+
+namespace storm {
+    namespace utility {
+        template<typename ValueType> class ConstantsComparator;
+    }
+    
+    namespace builder {
+        
+        using namespace storm::utility::prism;
+        using namespace storm::generator;
+        
+        // Forward-declare classes.
+        template <typename ValueType> struct RewardModelBuilder;
+        
+        template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>, typename StateType = uint32_t>
+        class ExplicitModelBuilder {
+        public:
+            // A structure holding the individual components of a model.
+            struct ModelComponents {
+                ModelComponents();
+                
+                // The transition matrix.
+                storm::storage::SparseMatrix<ValueType> transitionMatrix;
+                
+                // The state labeling.
+                storm::models::sparse::StateLabeling stateLabeling;
+                
+                // The reward models associated with the model.
+                std::unordered_map<std::string, storm::models::sparse::StandardRewardModel<typename RewardModelType::ValueType>> rewardModels;
+                
+                // A vector that stores a labeling for each choice.
+                boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> choiceLabeling;
+            };
+            
+            struct Options {
+                /*!
+                 * Creates an object representing the default building options.
+                 */
+                Options();
+                
+                // The order in which to explore the model.
+                ExplorationOrder explorationOrder;
+                
+                // A flag that indicates whether or not to store the state information after successfully building the
+                // model. If it is to be preserved, it can be retrieved via the appropriate methods after a successful
+                // call to <code>translateProgram</code>.
+                bool buildStateValuations;
+            };
+            
+            /*!
+             * Creates an explicit model builder that uses the provided generator.
+             *
+             * @param generator The generator to use.
+             */
+            ExplicitModelBuilder(std::shared_ptr<storm::generator::NextStateGenerator<ValueType, StateType>> const& generator, Options const& options = Options());
+
+            /*!
+             * Creates an explicit model builder for the given PRISM program.
+             *
+             * @param program The program for which to build the model.
+             */
+            ExplicitModelBuilder(storm::prism::Program const& program, storm::generator::NextStateGeneratorOptions const& generatorOptions = storm::generator::NextStateGeneratorOptions(), Options const& builderOptions = Options());
+
+            /*!
+             * Creates an explicit model builder for the given JANI model.
+             *
+             * @param model The JANI model for which to build the model.
+             */
+            ExplicitModelBuilder(storm::jani::Model const& model, storm::generator::NextStateGeneratorOptions const& generatorOptions = storm::generator::NextStateGeneratorOptions(), Options const& builderOptions = Options());
+            
+            /*!
+             * Convert the program given at construction time to an abstract model. The type of the model is the one
+             * specified in the program. The given reward model name selects the rewards that the model will contain.
+             *
+             * @param program The program to translate.
+             * @param constantDefinitionString A string that contains a comma-separated definition of all undefined
+             * constants in the model.
+             * @param rewardModel The reward model that is to be built.
+             * @return The explicit model that was given by the probabilistic program.
+             */
+            std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>> build();
+            
+            /*!
+             * If requested in the options, information about the variable valuations in the reachable states can be
+             * retrieved via this function.
+             *
+             * @return A structure that stores information about all reachable states.
+             */
+            storm::storage::sparse::StateValuations const& getStateValuations() const;
+            
+        private:
+            /*!
+             * Retrieves the state id of the given state. If the state has not been encountered yet, it will be added to
+             * the lists of all states with a new id. If the state was already known, the object that is pointed to by
+             * the given state pointer is deleted and the old state id is returned. Note that the pointer should not be
+             * used after invoking this method.
+             *
+             * @param state A pointer to a state for which to retrieve the index. This must not be used after the call.
+             * @return A pair indicating whether the state was already discovered before and the state id of the state.
+             */
+            StateType getOrAddStateIndex(CompressedState const& state);
+    
+            /*!
+             * Builds the transition matrix and the transition reward matrix based for the given program.
+             *
+             * @param transitionMatrixBuilder The builder of the transition matrix.
+             * @param rewardModelBuilders The builders for the selected reward models.
+             * @return A tuple containing a vector with all rows at which the nondeterministic choices of each state begin
+             * and a vector containing the labels associated with each choice.
+             */
+            boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> buildMatrices(storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder, std::vector<RewardModelBuilder<typename RewardModelType::ValueType>>& rewardModelBuilders);
+            
+            /*!
+             * Explores the state space of the given program and returns the components of the model as a result.
+             *
+             * @return A structure containing the components of the resulting model.
+             */
+            ModelComponents buildModelComponents();
+            
+            /*!
+             * Builds the state labeling for the given program.
+             *
+             * @return The state labeling of the given program.
+             */
+            storm::models::sparse::StateLabeling buildStateLabeling();
+            
+            /// The generator to use for the building process.
+            std::shared_ptr<storm::generator::NextStateGenerator<ValueType, StateType>> generator;
+            
+            /// The options to be used for the building process.
+            Options options;
+
+            /// Internal information about the states that were explored.
+            storm::storage::sparse::StateStorage<StateType> stateStorage;
+            
+            /// This member holds information about reachable states that can be retrieved from the outside after a
+            /// successful build.
+            boost::optional<storm::storage::sparse::StateValuations> stateValuations;
+            
+            /// A set of states that still need to be explored.
+            std::deque<CompressedState> statesToExplore;
+            
+            /// An optional mapping from state indices to the row groups in which they actually reside. This needs to be
+            /// built in case the exploration order is not BFS.
+            boost::optional<std::vector<uint_fast64_t>> stateRemapping;
+
+        };
+        
+    } // namespace adapters
+} // namespace storm
+
+#endif	/* STORM_BUILDER_ExplicitModelBuilder_H */
diff --git a/src/builder/ExplicitPrismModelBuilder.cpp b/src/builder/ExplicitPrismModelBuilder.cpp
deleted file mode 100644
index b94cb9f47..000000000
--- a/src/builder/ExplicitPrismModelBuilder.cpp
+++ /dev/null
@@ -1,493 +0,0 @@
-#include "src/builder/ExplicitPrismModelBuilder.h"
-
-#include <map>
-
-#include "src/models/sparse/Dtmc.h"
-#include "src/models/sparse/Ctmc.h"
-#include "src/models/sparse/Mdp.h"
-#include "src/models/sparse/StandardRewardModel.h"
-
-#include "src/storage/expressions/ExpressionManager.h"
-
-#include "src/settings/modules/MarkovChainSettings.h"
-#include "src/settings/modules/IOSettings.h"
-
-#include "src/generator/PrismNextStateGenerator.h"
-#include "src/generator/PrismStateLabelingGenerator.h"
-
-#include "src/utility/prism.h"
-#include "src/utility/constants.h"
-#include "src/utility/macros.h"
-#include "src/utility/ConstantsComparator.h"
-#include "src/exceptions/WrongFormatException.h"
-
-#include "src/exceptions/InvalidArgumentException.h"
-#include "src/exceptions/InvalidOperationException.h"
-
-namespace storm {
-    namespace builder {
-       
-        /*!
-         * A structure that is used to keep track of a reward model currently being built.
-         */
-        template <typename ValueType>
-        struct RewardModelBuilder {
-        public:
-            RewardModelBuilder(bool deterministicModel, bool hasStateRewards, bool hasStateActionRewards, bool hasTransitionRewards) : hasStateRewards(hasStateRewards), hasStateActionRewards(hasStateActionRewards), hasTransitionRewards(hasTransitionRewards), stateRewardVector(), stateActionRewardVector() {
-                // Intentionally left empty.
-            }
-            
-            storm::models::sparse::StandardRewardModel<ValueType> build(uint_fast64_t rowCount, uint_fast64_t columnCount, uint_fast64_t rowGroupCount) {
-                boost::optional<std::vector<ValueType>> optionalStateRewardVector;
-                if (hasStateRewards) {
-                    stateRewardVector.resize(rowGroupCount);
-                    optionalStateRewardVector = std::move(stateRewardVector);
-                }
-                
-                boost::optional<std::vector<ValueType>> optionalStateActionRewardVector;
-                if (hasStateActionRewards) {
-                    stateActionRewardVector.resize(rowCount);
-                    optionalStateActionRewardVector = std::move(stateActionRewardVector);
-                }
-                
-                return storm::models::sparse::StandardRewardModel<ValueType>(std::move(optionalStateRewardVector), std::move(optionalStateActionRewardVector));
-            }
-            
-            bool hasStateRewards;
-            bool hasStateActionRewards;
-            bool hasTransitionRewards;
-            
-            // The state reward vector.
-            std::vector<ValueType> stateRewardVector;
-            
-            // The state-action reward vector.
-            std::vector<ValueType> stateActionRewardVector;
-        };
-                        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::ModelComponents::ModelComponents() : transitionMatrix(), stateLabeling(), rewardModels(), choiceLabeling() {
-            // Intentionally left empty.
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::Options::Options() : explorationOrder(storm::settings::getModule<storm::settings::modules::IOSettings>().getExplorationOrder()), buildCommandLabels(false), buildAllRewardModels(true), buildStateValuations(false), rewardModelsToBuild(), constantDefinitions(), buildAllLabels(true), labelsToBuild(), expressionLabels(), terminalStates(), negatedTerminalStates() {
-            // Intentionally left empty.
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::Options::Options(storm::logic::Formula const& formula) : explorationOrder(storm::settings::getModule<storm::settings::modules::IOSettings>().getExplorationOrder()), buildCommandLabels(false), buildAllRewardModels(false), buildStateValuations(false), rewardModelsToBuild(), constantDefinitions(), buildAllLabels(false), labelsToBuild(std::set<std::string>()), expressionLabels(std::vector<storm::expressions::Expression>()), terminalStates(), negatedTerminalStates() {
-            this->preserveFormula(formula);
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::Options::Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas) : explorationOrder(storm::settings::getModule<storm::settings::modules::IOSettings>().getExplorationOrder()), buildCommandLabels(false), buildAllRewardModels(false), buildStateValuations(false), rewardModelsToBuild(), constantDefinitions(), buildAllLabels(false), labelsToBuild(), expressionLabels(), terminalStates(), negatedTerminalStates() {
-            if (formulas.empty()) {
-                this->buildAllRewardModels = true;
-                this->buildAllLabels = true;
-            } else {
-                for (auto const& formula : formulas) {
-                    this->preserveFormula(*formula);
-                }
-                if (formulas.size() == 1) {
-                    this->setTerminalStatesFromFormula(*formulas.front());
-                }
-            }
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        void ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::Options::setTerminalStatesFromFormula(storm::logic::Formula const& formula) {
-            if (formula.isAtomicExpressionFormula()) {
-                terminalStates = formula.asAtomicExpressionFormula().getExpression();
-            } else if (formula.isAtomicLabelFormula()) {
-                terminalStates = formula.asAtomicLabelFormula().getLabel();
-            } else if (formula.isEventuallyFormula()) {
-                storm::logic::Formula const& sub = formula.asEventuallyFormula().getSubformula();
-                if (sub.isAtomicExpressionFormula() || sub.isAtomicLabelFormula()) {
-                    this->setTerminalStatesFromFormula(sub);
-                }
-            } else if (formula.isUntilFormula()) {
-                storm::logic::Formula const& right = formula.asUntilFormula().getRightSubformula();
-                if (right.isAtomicExpressionFormula() || right.isAtomicLabelFormula()) {
-                    this->setTerminalStatesFromFormula(right);
-                }
-                storm::logic::Formula const& left = formula.asUntilFormula().getLeftSubformula();
-                if (left.isAtomicExpressionFormula()) {
-                    negatedTerminalStates = left.asAtomicExpressionFormula().getExpression();
-                } else if (left.isAtomicLabelFormula()) {
-                    negatedTerminalStates = left.asAtomicLabelFormula().getLabel();
-                }
-            } else if (formula.isProbabilityOperatorFormula()) {
-                storm::logic::Formula const& sub = formula.asProbabilityOperatorFormula().getSubformula();
-                if (sub.isEventuallyFormula() || sub.isUntilFormula()) {
-                    this->setTerminalStatesFromFormula(sub);
-                }
-            }
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        void ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::Options::preserveFormula(storm::logic::Formula const& formula) {
-            // If we already had terminal states, we need to erase them.
-            if (terminalStates) {
-                terminalStates.reset();
-            }
-            if (negatedTerminalStates) {
-                negatedTerminalStates.reset();
-            }
-            
-            // If we are not required to build all reward models, we determine the reward models we need to build.
-            if (!buildAllRewardModels) {
-                std::set<std::string> referencedRewardModels = formula.getReferencedRewardModels();
-                rewardModelsToBuild.insert(referencedRewardModels.begin(), referencedRewardModels.end());
-            }
-            
-            // Extract all the labels used in the formula.
-            if (!buildAllLabels) {
-                if (!labelsToBuild) {
-                    labelsToBuild = std::set<std::string>();
-                }
-                
-                std::vector<std::shared_ptr<storm::logic::AtomicLabelFormula const>> atomicLabelFormulas = formula.getAtomicLabelFormulas();
-                for (auto const& formula : atomicLabelFormulas) {
-                    labelsToBuild.get().insert(formula.get()->getLabel());
-                }
-            }
-            
-            // Extract all the expressions used in the formula.
-            std::vector<std::shared_ptr<storm::logic::AtomicExpressionFormula const>> atomicExpressionFormulas = formula.getAtomicExpressionFormulas();
-            for (auto const& formula : atomicExpressionFormulas) {
-                if (!expressionLabels) {
-                    expressionLabels = std::vector<storm::expressions::Expression>();
-                }
-                expressionLabels.get().push_back(formula.get()->getExpression());
-            }
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        void ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::Options::addConstantDefinitionsFromString(storm::prism::Program const& program, std::string const& constantDefinitionString) {
-            constantDefinitions = storm::utility::prism::parseConstantDefinitionString(program, constantDefinitionString);
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::ExplicitPrismModelBuilder(storm::prism::Program const& program, Options const& options) : program(storm::utility::prism::preprocessProgram<ValueType>(program, options.constantDefinitions, !options.buildAllLabels ? options.labelsToBuild : boost::none, options.expressionLabels)), options(options), variableInformation(this->program), stateStorage(variableInformation.getTotalBitOffset(true)) {
-            // Intentionally left empty.
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        storm::storage::sparse::StateValuations const& ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::getStateValuations() const {
-            STORM_LOG_THROW(static_cast<bool>(stateValuations), storm::exceptions::InvalidOperationException, "The state information was not properly build.");
-            return stateValuations.get();
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        storm::prism::Program const& ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::getTranslatedProgram() const {
-            return program;
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>> ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::translate() {
-            STORM_LOG_DEBUG("Building representation of program:" << std::endl << program << std::endl);
-            STORM_LOG_DEBUG("Exploration order is: " << options.explorationOrder);
-            
-            // Select the appropriate reward models (after the constants have been substituted).
-            std::vector<std::reference_wrapper<storm::prism::RewardModel const>> selectedRewardModels;
-            
-            // First, we make sure that all selected reward models actually exist.
-            for (auto const& rewardModelName : options.rewardModelsToBuild) {
-                STORM_LOG_THROW(rewardModelName.empty() || program.hasRewardModel(rewardModelName), storm::exceptions::InvalidArgumentException, "Model does not possess a reward model with the name '" << rewardModelName << "'.");
-            }
-            
-            for (auto const& rewardModel : program.getRewardModels()) {
-                if (options.buildAllRewardModels || options.rewardModelsToBuild.find(rewardModel.getName()) != options.rewardModelsToBuild.end()) {
-                    selectedRewardModels.push_back(rewardModel);
-                }
-            }
-            // If no reward model was selected until now and a referenced reward model appears to be unique, we build
-            // the only existing reward model (given that no explicit name was given for the referenced reward model).
-            if (selectedRewardModels.empty() && program.getNumberOfRewardModels() == 1 && options.rewardModelsToBuild.size() == 1 && *options.rewardModelsToBuild.begin() == "") {
-                selectedRewardModels.push_back(program.getRewardModel(0));
-            }
-            
-            ModelComponents modelComponents = buildModelComponents(selectedRewardModels);
-            
-            std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>> result;
-            switch (program.getModelType()) {
-                case storm::prism::Program::ModelType::DTMC:
-                    result = std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>(new storm::models::sparse::Dtmc<ValueType, RewardModelType>(std::move(modelComponents.transitionMatrix), std::move(modelComponents.stateLabeling), std::move(modelComponents.rewardModels), std::move(modelComponents.choiceLabeling)));
-                    break;
-                case storm::prism::Program::ModelType::CTMC:
-                    result = std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>(new storm::models::sparse::Ctmc<ValueType, RewardModelType>(std::move(modelComponents.transitionMatrix), std::move(modelComponents.stateLabeling), std::move(modelComponents.rewardModels), std::move(modelComponents.choiceLabeling)));
-                    break;
-                case storm::prism::Program::ModelType::MDP:
-                    result = std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>>(new storm::models::sparse::Mdp<ValueType, RewardModelType>(std::move(modelComponents.transitionMatrix), std::move(modelComponents.stateLabeling), std::move(modelComponents.rewardModels), std::move(modelComponents.choiceLabeling)));
-                    break;
-                default:
-                    STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error while creating model from probabilistic program: cannot handle this model type.");
-                    break;
-            }
-            
-            return result;
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        StateType ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::getOrAddStateIndex(CompressedState const& state) {
-            StateType newIndex = static_cast<StateType>(stateStorage.getNumberOfStates());
-            
-            // Check, if the state was already registered.
-            std::pair<StateType, std::size_t> actualIndexBucketPair = stateStorage.stateToId.findOrAddAndGetBucket(state, newIndex);
-            
-            if (actualIndexBucketPair.first == newIndex) {
-                if (options.explorationOrder == ExplorationOrder::Dfs) {
-                    statesToExplore.push_front(state);
-
-                    // Reserve one slot for the new state in the remapping.
-                    stateRemapping.get().push_back(storm::utility::zero<StateType>());
-                } else if (options.explorationOrder == ExplorationOrder::Bfs) {
-                    statesToExplore.push_back(state);
-                } else {
-                    STORM_LOG_ASSERT(false, "Invalid exploration order.");
-                }
-            }
-            
-            return actualIndexBucketPair.first;
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::buildMatrices(std::vector<std::reference_wrapper<storm::prism::RewardModel const>> const& selectedRewardModels, storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder, std::vector<RewardModelBuilder<typename RewardModelType::ValueType>>& rewardModelBuilders, boost::optional<storm::expressions::Expression> const& terminalExpression) {
-            // Create choice labels, if requested,
-            boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> choiceLabels;
-            if (options.buildCommandLabels) {
-                choiceLabels = std::vector<boost::container::flat_set<uint_fast64_t>>();
-            }
-
-            // Create a generator that is able to expand states.
-            storm::generator::PrismNextStateGenerator<ValueType, StateType> generator(program, variableInformation, options.buildCommandLabels);
-            if (terminalExpression) {
-                generator.setTerminalExpression(terminalExpression.get());
-            }
-            for (auto const& rewardModel : selectedRewardModels) {
-                generator.addRewardModel(rewardModel.get());
-            }
-
-            // Create a callback for the next-state generator to enable it to request the index of states.
-            std::function<StateType (CompressedState const&)> stateToIdCallback = std::bind(&ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::getOrAddStateIndex, this, std::placeholders::_1);
-            
-            // If the exploration order is something different from breadth-first, we need to keep track of the remapping
-            // from state ids to row groups. For this, we actually store the reversed mapping of row groups to state-ids
-            // and later reverse it.
-            if (options.explorationOrder != ExplorationOrder::Bfs) {
-                stateRemapping = std::vector<uint_fast64_t>();
-            }
-            
-            // Let the generator create all initial states.
-            this->stateStorage.initialStateIndices = generator.getInitialStates(stateToIdCallback);
-            
-            // Now explore the current state until there is no more reachable state.
-            uint_fast64_t currentRowGroup = 0;
-            uint_fast64_t currentRow = 0;
-
-            // Perform a search through the model.
-            while (!statesToExplore.empty()) {
-                // Get the first state in the queue.
-                CompressedState currentState = statesToExplore.front();
-                StateType currentIndex = stateStorage.stateToId.getValue(currentState);
-                statesToExplore.pop_front();
-                
-                // If the exploration order differs from breadth-first, we remember that this row group was actually
-                // filled with the transitions of a different state.
-                if (options.explorationOrder != ExplorationOrder::Bfs) {
-                    stateRemapping.get()[currentIndex] = currentRowGroup;
-                }
-                
-                STORM_LOG_TRACE("Exploring state with id " << currentIndex << ".");
-                
-                generator.load(currentState);
-                storm::generator::StateBehavior<ValueType, StateType> behavior = generator.expand(stateToIdCallback);
-                
-                // If there is no behavior, we might have to introduce a self-loop.
-                if (behavior.empty()) {
-                    if (!storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().isDontFixDeadlocksSet() || !behavior.wasExpanded()) {
-                        if (options.buildCommandLabels) {
-                            // Insert empty choice labeling for added self-loop transitions.
-                            choiceLabels.get().push_back(boost::container::flat_set<uint_fast64_t>());
-                        }
-                        if (!generator.isDeterministicModel()) {
-                            transitionMatrixBuilder.newRowGroup(currentRow);
-                        }
-                        
-                        transitionMatrixBuilder.addNextValue(currentRow, currentIndex, storm::utility::one<ValueType>());
-                        
-                        auto builderIt = rewardModelBuilders.begin();
-                        for (auto const& rewardModel : selectedRewardModels) {
-                            if (rewardModel.get().hasStateRewards()) {
-                                builderIt->stateRewardVector.push_back(storm::utility::zero<ValueType>());
-                            }
-                            
-                            if (rewardModel.get().hasStateActionRewards()) {
-                                builderIt->stateActionRewardVector.push_back(storm::utility::zero<ValueType>());
-                            }
-                            ++builderIt;
-                        }
-                        
-                        ++currentRow;
-                        ++currentRowGroup;
-                    } else {
-                        std::cout << storm::generator::unpackStateIntoValuation(currentState, variableInformation, program.getManager()).toString(true) << std::endl;
-                        STORM_LOG_THROW(false, storm::exceptions::WrongFormatException,
-                                        "Error while creating sparse matrix from probabilistic program: found deadlock state. For fixing these, please provide the appropriate option.");
-                    }
-                } else {
-                    // Add the state rewards to the corresponding reward models.
-                    auto builderIt = rewardModelBuilders.begin();
-                    auto stateRewardIt = behavior.getStateRewards().begin();
-                    for (auto const& rewardModel : selectedRewardModels) {
-                        if (rewardModel.get().hasStateRewards()) {
-                            builderIt->stateRewardVector.push_back(*stateRewardIt);
-                        }
-                        ++stateRewardIt;
-                        ++builderIt;
-                    }
-                    
-                    // If the model is nondeterministic, we need to open a row group.
-                    if (!generator.isDeterministicModel()) {
-                        transitionMatrixBuilder.newRowGroup(currentRow);
-                    }
-                    
-                    // Now add all choices.
-                    for (auto const& choice : behavior) {
-                        // Add command labels if requested.
-                        if (options.buildCommandLabels) {
-                            choiceLabels.get().push_back(choice.getChoiceLabels());
-                        }
-                        
-                        // Add the probabilistic behavior to the matrix.
-                        for (auto const& stateProbabilityPair : choice) {
-                            transitionMatrixBuilder.addNextValue(currentRow, stateProbabilityPair.first, stateProbabilityPair.second);
-                        }
-                        
-                        // Add the rewards to the reward models.
-                        auto builderIt = rewardModelBuilders.begin();
-                        auto choiceRewardIt = choice.getChoiceRewards().begin();
-                        for (auto const& rewardModel : selectedRewardModels) {
-                            if (rewardModel.get().hasStateActionRewards()) {
-                                builderIt->stateActionRewardVector.push_back(*choiceRewardIt);
-                            }
-                            ++choiceRewardIt;
-                            ++builderIt;
-                        }
-                        ++currentRow;
-                    }
-                    ++currentRowGroup;
-                }
-            }
-
-            // If the exploration order was not breadth-first, we need to fix the entries in the matrix according to
-            // (reversed) mapping of row groups to indices.
-            if (options.explorationOrder != ExplorationOrder::Bfs) {
-                STORM_LOG_ASSERT(stateRemapping, "Unable to fix columns without mapping.");
-                std::vector<uint_fast64_t> const& remapping = stateRemapping.get();
-                
-                // We need to fix the following entities:
-                // (a) the transition matrix
-                // (b) the initial states
-                // (c) the hash map storing the mapping states -> ids
-                
-                // Fix (a).
-                transitionMatrixBuilder.replaceColumns(remapping, 0);
-
-                // Fix (b).
-                std::vector<StateType> newInitialStateIndices(this->stateStorage.initialStateIndices.size());
-                std::transform(this->stateStorage.initialStateIndices.begin(), this->stateStorage.initialStateIndices.end(), newInitialStateIndices.begin(), [&remapping] (StateType const& state) { return remapping[state]; } );
-                std::sort(newInitialStateIndices.begin(), newInitialStateIndices.end());
-                this->stateStorage.initialStateIndices = std::move(newInitialStateIndices);
-                
-                // Fix (c).
-                this->stateStorage.stateToId.remap([&remapping] (StateType const& state) { return remapping[state]; } );
-            }
-            
-            return choiceLabels;
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        typename ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::ModelComponents ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::buildModelComponents(std::vector<std::reference_wrapper<storm::prism::RewardModel const>> const& selectedRewardModels) {
-            ModelComponents modelComponents;
-                        
-            // Determine whether we have to combine different choices to one or whether this model can have more than
-            // one choice per state.
-            bool deterministicModel = program.isDeterministicModel();
-            
-            // Prepare the transition matrix builder and the reward model builders.
-            storm::storage::SparseMatrixBuilder<ValueType> transitionMatrixBuilder(0, 0, 0, false, !deterministicModel, 0);
-            std::vector<RewardModelBuilder<typename RewardModelType::ValueType>> rewardModelBuilders;
-            for (auto const& rewardModel : selectedRewardModels) {
-                rewardModelBuilders.emplace_back(deterministicModel, rewardModel.get().hasStateRewards(), rewardModel.get().hasStateActionRewards(), rewardModel.get().hasTransitionRewards());
-            }
-            
-            // If we were asked to treat some states as terminal states, we determine an expression characterizing the
-            // terminal states of the model that we pass on to the matrix building routine.
-            boost::optional<storm::expressions::Expression> terminalExpression;
-            if (options.terminalStates) {
-                if (options.terminalStates.get().type() == typeid(storm::expressions::Expression)) {
-                    terminalExpression = boost::get<storm::expressions::Expression>(options.terminalStates.get());
-                } else {
-                    std::string const& labelName = boost::get<std::string>(options.terminalStates.get());
-                    terminalExpression = program.getLabelExpression(labelName);
-                }
-            }
-            if (options.negatedTerminalStates) {
-                if (options.negatedTerminalStates.get().type() == typeid(storm::expressions::Expression)) {
-                    if (terminalExpression) {
-                        terminalExpression = terminalExpression.get() || !boost::get<storm::expressions::Expression>(options.negatedTerminalStates.get());
-                    } else {
-                        terminalExpression = !boost::get<storm::expressions::Expression>(options.negatedTerminalStates.get());
-                    }
-                } else {
-                    std::string const& labelName = boost::get<std::string>(options.negatedTerminalStates.get());
-                    if (terminalExpression) {
-                        terminalExpression = terminalExpression.get() || !program.getLabelExpression(labelName);
-                    } else {
-                        terminalExpression = !program.getLabelExpression(labelName);
-                    }
-                }
-            }
-            if (terminalExpression) {
-                STORM_LOG_TRACE("Making the states satisfying " << terminalExpression.get() << " terminal.");
-            }
-            
-            modelComponents.choiceLabeling = buildMatrices(selectedRewardModels, transitionMatrixBuilder, rewardModelBuilders, terminalExpression);
-            modelComponents.transitionMatrix = transitionMatrixBuilder.build();
-            
-            // Now finalize all reward models.
-            auto builderIt = rewardModelBuilders.begin();
-            for (auto rewardModelIt = selectedRewardModels.begin(), rewardModelIte = selectedRewardModels.end(); rewardModelIt != rewardModelIte; ++rewardModelIt, ++builderIt) {
-                modelComponents.rewardModels.emplace(rewardModelIt->get().getName(), builderIt->build(modelComponents.transitionMatrix.getRowCount(), modelComponents.transitionMatrix.getColumnCount(), modelComponents.transitionMatrix.getRowGroupCount()));
-            }
-            
-            // Build the state labeling.
-            modelComponents.stateLabeling = buildStateLabeling();
-            
-            // Finally -- if requested -- build the state information that can be retrieved from the outside.
-            if (options.buildStateValuations) {
-                stateValuations = storm::storage::sparse::StateValuations(stateStorage.getNumberOfStates());
-                for (auto const& bitVectorIndexPair : stateStorage.stateToId) {
-                    stateValuations.get().valuations[bitVectorIndexPair.second] = unpackStateIntoValuation(bitVectorIndexPair.first, variableInformation, program.getManager());
-                }
-            }
-            
-            return modelComponents;
-        }
-        
-        template <typename ValueType, typename RewardModelType, typename StateType>
-        storm::models::sparse::StateLabeling ExplicitPrismModelBuilder<ValueType, RewardModelType, StateType>::buildStateLabeling() {
-            storm::generator::PrismStateLabelingGenerator<ValueType, StateType> generator(program, variableInformation);
-            return generator.generate(stateStorage.stateToId, stateStorage.initialStateIndices);
-        }
-        
-        // Explicitly instantiate the class.
-        template class ExplicitPrismModelBuilder<double, storm::models::sparse::StandardRewardModel<double>, uint32_t>;
-        
-#ifdef STORM_HAVE_CARL
-        template class ExplicitPrismModelBuilder<double, storm::models::sparse::StandardRewardModel<storm::Interval>, uint32_t>;
-        template class ExplicitPrismModelBuilder<RationalFunction, storm::models::sparse::StandardRewardModel<RationalFunction>, uint32_t>;
-#endif
-    }
-}
diff --git a/src/builder/ExplicitPrismModelBuilder.h b/src/builder/ExplicitPrismModelBuilder.h
deleted file mode 100644
index 92de20f2f..000000000
--- a/src/builder/ExplicitPrismModelBuilder.h
+++ /dev/null
@@ -1,268 +0,0 @@
-#ifndef STORM_BUILDER_EXPLICITPRISMMODELBUILDER_H
-#define	STORM_BUILDER_EXPLICITPRISMMODELBUILDER_H
-
-#include <memory>
-#include <utility>
-#include <vector>
-#include <deque>
-#include <cstdint>
-#include <boost/functional/hash.hpp>
-#include <boost/container/flat_set.hpp>
-#include <boost/container/flat_map.hpp>
-#include <boost/variant.hpp>
-#include <src/models/sparse/StandardRewardModel.h>
-
-#include "src/storage/prism/Program.h"
-#include "src/storage/expressions/SimpleValuation.h"
-#include "src/storage/expressions/ExpressionEvaluator.h"
-#include "src/storage/BitVectorHashMap.h"
-#include "src/logic/Formulas.h"
-#include "src/models/sparse/StateAnnotation.h"
-#include "src/models/sparse/Model.h"
-#include "src/models/sparse/StateLabeling.h"
-#include "src/storage/SparseMatrix.h"
-#include "src/storage/sparse/StateValuations.h"
-#include "src/storage/sparse/StateStorage.h"
-#include "src/settings/SettingsManager.h"
-
-#include "src/utility/prism.h"
-
-#include "src/builder/ExplorationOrder.h"
-
-#include "src/generator/CompressedState.h"
-#include "src/generator/VariableInformation.h"
-
-namespace storm {
-    namespace utility {
-        template<typename ValueType> class ConstantsComparator;
-    }
-    
-    namespace builder {
-        
-        using namespace storm::utility::prism;
-        using namespace storm::generator;
-        
-        // Forward-declare classes.
-        template <typename ValueType> struct RewardModelBuilder;
-        
-        template<typename ValueType, typename RewardModelType = storm::models::sparse::StandardRewardModel<ValueType>, typename StateType = uint32_t>
-        class ExplicitPrismModelBuilder {
-        public:
-            // A structure holding the individual components of a model.
-            struct ModelComponents {
-                ModelComponents();
-                
-                // The transition matrix.
-                storm::storage::SparseMatrix<ValueType> transitionMatrix;
-                
-                // The state labeling.
-                storm::models::sparse::StateLabeling stateLabeling;
-                
-                // The reward models associated with the model.
-                std::unordered_map<std::string, storm::models::sparse::StandardRewardModel<typename RewardModelType::ValueType>> rewardModels;
-                
-                // A vector that stores a labeling for each choice.
-                boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> choiceLabeling;
-            };
-            
-            struct Options {
-                /*!
-                 * Creates an object representing the default building options.
-                 */
-                Options();
-                
-                /*!
-                 * Copies the given set of options.
-                 */
-                Options(Options const& other) = default;
-                
-                /*! Creates an object representing the suggested building options assuming that the given formula is the
-                 * only one to check. Additional formulas may be preserved by calling <code>preserveFormula</code>.
-                 *
-                 * @param formula The formula based on which to choose the building options.
-                 */
-                Options(storm::logic::Formula const& formula);
-
-                /*! Creates an object representing the suggested building options assuming that the given formulas are
-                 * the only ones to check. Additional formulas may be preserved by calling <code>preserveFormula</code>.
-                 *
-                 * @param formula Thes formula based on which to choose the building options.
-                 */
-                Options(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas);
-                
-                /*!
-                 * Sets the constants definitions from the given string. The string must be of the form 'X=a,Y=b,Z=c',
-                 * etc. where X,Y,Z are the variable names and a,b,c are the values of the constants.
-                 *
-                 * @param program The program managing the constants that shall be defined. Note that the program itself
-                 * is not modified whatsoever.
-                 * @param constantDefinitionString The string from which to parse the constants' values.
-                 */
-                void addConstantDefinitionsFromString(storm::prism::Program const& program, std::string const& constantDefinitionString);
-                
-                /*!
-                 * Changes the options in a way that ensures that the given formula can be checked on the model once it
-                 * has been built.
-                 *
-                 * @param formula The formula that is to be ''preserved''.
-                 */
-                void preserveFormula(storm::logic::Formula const& formula);
-                
-                /*!
-                 * Analyzes the given formula and sets an expression for the states states of the model that can be
-                 * treated as terminal states. Note that this may interfere with checking properties different than the
-                 * one provided.
-                 *
-                 * @param formula The formula used to (possibly) derive an expression for the terminal states of the
-                 * model.
-                 */
-                void setTerminalStatesFromFormula(storm::logic::Formula const& formula);
-                
-                // The order in which to explore the model.
-                ExplorationOrder explorationOrder;
-                
-                // A flag that indicates whether or not command labels are to be built.
-                bool buildCommandLabels;
-                
-                // A flag that indicates whether or not all reward models are to be build.
-                bool buildAllRewardModels;
-                
-                // A flag that indicates whether or not to store the state information after successfully building the
-                // model. If it is to be preserved, it can be retrieved via the appropriate methods after a successful
-                // call to <code>translateProgram</code>.
-                bool buildStateValuations;
-                
-                // A list of reward models to be build in case not all reward models are to be build.
-                std::set<std::string> rewardModelsToBuild;
-                
-                // An optional mapping that, if given, contains defining expressions for undefined constants.
-                boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> constantDefinitions;
-                
-                // A flag that indicates whether all labels are to be build.
-                bool buildAllLabels;
-                
-                // An optional set of labels that, if given, restricts the labels that are built.
-                boost::optional<std::set<std::string>> labelsToBuild;
-                
-                // An optional set of expressions for which labels need to be built.
-                boost::optional<std::vector<storm::expressions::Expression>> expressionLabels;
-                
-                // An optional expression or label that characterizes (a subset of) the terminal states of the model. If
-                // this is set, the outgoing transitions of these states are replaced with a self-loop.
-                boost::optional<boost::variant<storm::expressions::Expression, std::string>> terminalStates;
-                
-                // An optional expression or label whose negation characterizes (a subset of) the terminal states of the
-                // model. If this is set, the outgoing transitions of these states are replaced with a self-loop.
-                boost::optional<boost::variant<storm::expressions::Expression, std::string>> negatedTerminalStates;
-            };
-            
-            /*!
-             * Creates a builder for the given program.
-             *
-             * @param program The program to build.
-             */
-            ExplicitPrismModelBuilder(storm::prism::Program const& program, Options const& options = Options());
-            
-            /*!
-             * Convert the program given at construction time to an abstract model. The type of the model is the one
-             * specified in the program. The given reward model name selects the rewards that the model will contain.
-             *
-             * @param program The program to translate.
-             * @param constantDefinitionString A string that contains a comma-separated definition of all undefined
-             * constants in the model.
-             * @param rewardModel The reward model that is to be built.
-             * @return The explicit model that was given by the probabilistic program.
-             */
-            std::shared_ptr<storm::models::sparse::Model<ValueType, RewardModelType>> translate();
-            
-            /*!
-             * If requested in the options, information about the variable valuations in the reachable states can be
-             * retrieved via this function.
-             *
-             * @return A structure that stores information about all reachable states.
-             */
-            storm::storage::sparse::StateValuations const& getStateValuations() const;
-            
-            /*!
-             * Retrieves the program that was actually translated (i.e. including constant substitutions etc.).
-             *
-             * @return The translated program.
-             */
-            storm::prism::Program const& getTranslatedProgram() const;
-            
-        private:
-            /*!
-             * Retrieves the state id of the given state. If the state has not been encountered yet, it will be added to
-             * the lists of all states with a new id. If the state was already known, the object that is pointed to by
-             * the given state pointer is deleted and the old state id is returned. Note that the pointer should not be
-             * used after invoking this method.
-             *
-             * @param state A pointer to a state for which to retrieve the index. This must not be used after the call.
-             * @return A pair indicating whether the state was already discovered before and the state id of the state.
-             */
-            StateType getOrAddStateIndex(CompressedState const& state);
-    
-            /*!
-             * Builds the transition matrix and the transition reward matrix based for the given program.
-             *
-             * @param program The program for which to build the matrices.
-             * @param variableInformation A structure containing information about the variables in the program.
-             * @param transitionRewards A list of transition rewards that are to be considered in the transition reward
-             * matrix.
-             * @param deterministicModel A flag indicating whether the model is supposed to be deterministic or not.
-             * @param transitionMatrix A reference to an initialized matrix which is filled with all transitions by this
-             * function.
-             * @param rewardModelBuilders A vector of reward model builders that is used to build the vector of selected
-             * reward models.
-             * @param terminalExpression If given, terminal states are not explored further.
-             * @return A tuple containing a vector with all rows at which the nondeterministic choices of each state begin
-             * and a vector containing the labels associated with each choice.
-             */
-            boost::optional<std::vector<boost::container::flat_set<uint_fast64_t>>> buildMatrices(std::vector<std::reference_wrapper<storm::prism::RewardModel const>> const& selectedRewardModels, storm::storage::SparseMatrixBuilder<ValueType>& transitionMatrixBuilder, std::vector<RewardModelBuilder<typename RewardModelType::ValueType>>& rewardModelBuilders, boost::optional<storm::expressions::Expression> const& terminalExpression);
-            
-            /*!
-             * Explores the state space of the given program and returns the components of the model as a result.
-             *
-             * @param program The program whose state space to explore.
-             * @param selectedRewardModels The reward models that are to be considered.
-             * @param options A set of options used to customize the building process.
-             * @return A structure containing the components of the resulting model.
-             */
-            ModelComponents buildModelComponents(std::vector<std::reference_wrapper<storm::prism::RewardModel const>> const& selectedRewardModels);
-            
-            /*!
-             * Builds the state labeling for the given program.
-             *
-             * @return The state labeling of the given program.
-             */
-            storm::models::sparse::StateLabeling buildStateLabeling();
-            
-            // The program to translate. The necessary transformations are performed upon construction of the builder.
-            storm::prism::Program program;
-            
-            // The options to be used for translating the program.
-            Options options;
-            
-            // The variable information.
-            VariableInformation variableInformation;
-            
-            // Internal information about the states that were explored.
-            storm::storage::sparse::StateStorage<StateType> stateStorage;
-            
-            // This member holds information about reachable states that can be retrieved from the outside after a
-            // successful build.
-            boost::optional<storm::storage::sparse::StateValuations> stateValuations;
-            
-            // A set of states that still need to be explored.
-            std::deque<CompressedState> statesToExplore;
-            
-            // An optional mapping from state indices to the row groups in which they actually reside. This needs to be
-            // built in case the exploration order is not BFS.
-            boost::optional<std::vector<uint_fast64_t>> stateRemapping;
-
-        };
-        
-    } // namespace adapters
-} // namespace storm
-
-#endif	/* STORM_BUILDER_EXPLICITPRISMMODELBUILDER_H */
diff --git a/src/cli/entrypoints.h b/src/cli/entrypoints.h
index b8352ae49..a3702875b 100644
--- a/src/cli/entrypoints.h
+++ b/src/cli/entrypoints.h
@@ -59,8 +59,15 @@ namespace storm {
             for (auto const& formula : formulas) {
                 STORM_LOG_THROW(program.getModelType() == storm::prism::Program::ModelType::DTMC || program.getModelType() == storm::prism::Program::ModelType::MDP, storm::exceptions::InvalidSettingsException, "Currently exploration-based verification is only available for DTMCs and MDPs.");
                 std::cout << std::endl << "Model checking property: " << *formula << " ...";
-                storm::modelchecker::CheckTask<storm::logic::Formula> task(*formula, onlyInitialStatesRelevant);
-                storm::modelchecker::SparseExplorationModelChecker<ValueType> checker(program, storm::utility::prism::parseConstantDefinitionString(program, storm::settings::getModule<storm::settings::modules::IOSettings>().getConstantDefinitionString()));
+                
+                std::string constantDefinitionString = storm::settings::getModule<storm::settings::modules::IOSettings>().getConstantDefinitionString();
+                storm::prism::Program preprocessedProgram = storm::utility::prism::preprocess<ValueType>(program, constantDefinitionString);
+                std::map<storm::expressions::Variable, storm::expressions::Expression> constantsSubstitution = preprocessedProgram.getConstantsSubstitution();
+
+                storm::modelchecker::SparseExplorationModelChecker<ValueType> checker(program);
+
+                std::shared_ptr<storm::logic::Formula> substitutedFormula = formula->substitute(constantsSubstitution);
+                storm::modelchecker::CheckTask<storm::logic::Formula> task(*substitutedFormula, onlyInitialStatesRelevant);
                 std::unique_ptr<storm::modelchecker::CheckResult> result;
                 if (checker.canHandle(task)) {
                     result = checker.check(task);
@@ -162,7 +169,7 @@ namespace storm {
                 modelFormulasPair.model->printModelInformationToStream(std::cout);
 
                 // Verify the model, if a formula was given.
-                if (!formulas.empty()) {
+                if (!modelFormulasPair.formulas.empty()) {
                     if (modelFormulasPair.model->isSparseModel()) {
                         if (storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().isCounterexampleSet()) {
                             // If we were requested to generate a counterexample, we now do so for each formula.
diff --git a/src/exceptions/InvalidJaniException.h b/src/exceptions/InvalidJaniException.h
new file mode 100644
index 000000000..b3b0e35c1
--- /dev/null
+++ b/src/exceptions/InvalidJaniException.h
@@ -0,0 +1,15 @@
+#ifndef STORM_INVALIDJANIEXCEPTION_H
+#define STORM_INVALIDJANIEXCEPTION_H
+
+#include "src/exceptions/BaseException.h"
+#include "src/exceptions/ExceptionMacros.h"
+
+namespace storm {
+    namespace exceptions {
+
+        STORM_NEW_EXCEPTION(InvalidJaniException)
+
+    } // namespace exceptions
+} // namespace storm
+
+#endif //STORM_INVALIDJANIEXCEPTION_H
diff --git a/src/exceptions/UnsupportedModelException.h b/src/exceptions/UnsupportedModelException.h
new file mode 100644
index 000000000..d2794fbb0
--- /dev/null
+++ b/src/exceptions/UnsupportedModelException.h
@@ -0,0 +1,14 @@
+#ifndef STORM_UNSUPPORTEDMODELEXCEPTION_H
+#define STORM_UNSUPPORTEDMODELEXCEPTION_H
+
+#include "src/exceptions/BaseException.h"
+#include "src/exceptions/ExceptionMacros.h"
+
+namespace storm {
+    namespace exceptions {
+
+        STORM_NEW_EXCEPTION(UnsupportedModelException)
+
+    } // namespace exceptions
+} // namespace storm
+#endif //STORM_UNSUPPORTEDMODELEXCEPTION_H
diff --git a/src/generator/JaniNextStateGenerator.cpp b/src/generator/JaniNextStateGenerator.cpp
new file mode 100644
index 000000000..7202ebcc7
--- /dev/null
+++ b/src/generator/JaniNextStateGenerator.cpp
@@ -0,0 +1,498 @@
+#include "src/generator/JaniNextStateGenerator.h"
+
+#include "src/models/sparse/StateLabeling.h"
+
+#include "src/storage/expressions/SimpleValuation.h"
+
+#include "src/solver/SmtSolver.h"
+
+#include "src/utility/constants.h"
+#include "src/utility/macros.h"
+#include "src/utility/solver.h"
+#include "src/exceptions/InvalidSettingsException.h"
+#include "src/exceptions/WrongFormatException.h"
+
+namespace storm {
+    namespace generator {
+        
+        template<typename ValueType, typename StateType>
+        JaniNextStateGenerator<ValueType, StateType>::JaniNextStateGenerator(storm::jani::Model const& model, NextStateGeneratorOptions const& options) : JaniNextStateGenerator(model.substituteConstants(), options, false) {
+            // Intentionally left empty.
+        }
+        
+        template<typename ValueType, typename StateType>
+        JaniNextStateGenerator<ValueType, StateType>::JaniNextStateGenerator(storm::jani::Model const& model, NextStateGeneratorOptions const& options, bool flag) : NextStateGenerator<ValueType, StateType>(model.getExpressionManager(), VariableInformation(model), options), model(model) {
+            STORM_LOG_THROW(model.hasDefaultComposition(), storm::exceptions::WrongFormatException, "The explicit next-state generator currently does not support custom system compositions.");
+            STORM_LOG_THROW(!this->options.isBuildAllRewardModelsSet() && this->options.getRewardModelNames().empty(), storm::exceptions::InvalidSettingsException, "The explicit next-state generator currently does not support building reward models.");
+            STORM_LOG_THROW(!this->options.isBuildChoiceLabelsSet(), storm::exceptions::InvalidSettingsException, "JANI next-state generator cannot generate choice labels.");
+            
+            // If there are terminal states we need to handle, we now need to translate all labels to expressions.
+            if (this->options.hasTerminalStates()) {
+                for (auto const& expressionOrLabelAndBool : this->options.getTerminalStates()) {
+                    if (expressionOrLabelAndBool.first.isExpression()) {
+                        this->terminalStates.push_back(std::make_pair(expressionOrLabelAndBool.first.getExpression(), expressionOrLabelAndBool.second));
+                    } else {
+                        STORM_LOG_THROW(expressionOrLabelAndBool.first.getLabel() == "init" || expressionOrLabelAndBool.first.getLabel() == "deadlock", storm::exceptions::InvalidSettingsException, "Terminal states refer to illegal label '" << expressionOrLabelAndBool.first.getLabel() << "'.");
+                    }
+                }
+            }
+        }
+        
+        template<typename ValueType, typename StateType>
+        ModelType JaniNextStateGenerator<ValueType, StateType>::getModelType() const {
+            switch (model.getModelType()) {
+                case storm::jani::ModelType::DTMC: return ModelType::DTMC;
+                case storm::jani::ModelType::CTMC: return ModelType::CTMC;
+                case storm::jani::ModelType::MDP: return ModelType::MDP;
+                case storm::jani::ModelType::MA: return ModelType::MA;
+                default:
+                    STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Invalid model type.");
+            }
+        }
+        
+        template<typename ValueType, typename StateType>
+        bool JaniNextStateGenerator<ValueType, StateType>::isDeterministicModel() const {
+            return model.isDeterministicModel();
+        }
+        
+        template<typename ValueType, typename StateType>
+        bool JaniNextStateGenerator<ValueType, StateType>::isDiscreteTimeModel() const {
+            return model.isDiscreteTimeModel();
+        }
+        
+        template<typename ValueType, typename StateType>
+        uint64_t JaniNextStateGenerator<ValueType, StateType>::getLocation(CompressedState const& state, LocationVariableInformation const& locationVariable) const {
+            if (locationVariable.bitWidth == 0) {
+                return 0;
+            } else {
+                return state.getAsInt(locationVariable.bitOffset, locationVariable.bitWidth);
+            }
+        }
+        
+        template<typename ValueType, typename StateType>
+        void JaniNextStateGenerator<ValueType, StateType>::setLocation(CompressedState& state, LocationVariableInformation const& locationVariable, uint64_t locationIndex) const {
+            if (locationVariable.bitWidth != 0) {
+                state.setFromInt(locationVariable.bitOffset, locationVariable.bitWidth, locationIndex);
+            }
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::vector<uint64_t> JaniNextStateGenerator<ValueType, StateType>::getLocations(CompressedState const& state) const {
+            std::vector<uint64_t> result(this->variableInformation.locationVariables.size());
+            
+            auto resultIt = result.begin();
+            for (auto it = this->variableInformation.locationVariables.begin(), ite = this->variableInformation.locationVariables.end(); it != ite; ++it, ++resultIt) {
+                *resultIt = getLocation(state, *it);
+            }
+            
+            return result;
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::vector<StateType> JaniNextStateGenerator<ValueType, StateType>::getInitialStates(StateToIdCallback const& stateToIdCallback) {
+            // Prepare an SMT solver to enumerate all initial states.
+            storm::utility::solver::SmtSolverFactory factory;
+            std::unique_ptr<storm::solver::SmtSolver> solver = factory.create(model.getExpressionManager());
+            
+            std::vector<storm::expressions::Expression> rangeExpressions = model.getAllRangeExpressions();
+            for (auto const& expression : rangeExpressions) {
+                solver->add(expression);
+            }
+            solver->add(model.getInitialStatesExpression(true));
+            
+            // Proceed as long as the solver can still enumerate initial states.
+            std::vector<StateType> initialStateIndices;
+            while (solver->check() == storm::solver::SmtSolver::CheckResult::Sat) {
+                // Create fresh state.
+                CompressedState initialState(this->variableInformation.getTotalBitOffset());
+                
+                // Read variable assignment from the solution of the solver. Also, create an expression we can use to
+                // prevent the variable assignment from being enumerated again.
+                storm::expressions::Expression blockingExpression;
+                std::shared_ptr<storm::solver::SmtSolver::ModelReference> model = solver->getModel();
+                for (auto const& booleanVariable : this->variableInformation.booleanVariables) {
+                    bool variableValue = model->getBooleanValue(booleanVariable.variable);
+                    storm::expressions::Expression localBlockingExpression = variableValue ? !booleanVariable.variable : booleanVariable.variable;
+                    blockingExpression = blockingExpression.isInitialized() ? blockingExpression || localBlockingExpression : localBlockingExpression;
+                    initialState.set(booleanVariable.bitOffset, variableValue);
+                }
+                for (auto const& integerVariable : this->variableInformation.integerVariables) {
+                    int_fast64_t variableValue = model->getIntegerValue(integerVariable.variable);
+                    storm::expressions::Expression localBlockingExpression = integerVariable.variable != model->getManager().integer(variableValue);
+                    blockingExpression = blockingExpression.isInitialized() ? blockingExpression || localBlockingExpression : localBlockingExpression;
+                    initialState.setFromInt(integerVariable.bitOffset, integerVariable.bitWidth, static_cast<uint_fast64_t>(variableValue - integerVariable.lowerBound));
+                }
+                
+                // Gather iterators to the initial locations of all the automata.
+                std::vector<std::set<uint64_t>::const_iterator> initialLocationsIterators;
+                uint64_t currentLocationVariable = 0;
+                for (auto const& automaton : this->model.getAutomata()) {
+                    initialLocationsIterators.push_back(automaton.getInitialLocationIndices().cbegin());
+                    
+                    // Initialize the locations to the first possible combination.
+                    setLocation(initialState, this->variableInformation.locationVariables[currentLocationVariable], *initialLocationsIterators.back());
+                    ++currentLocationVariable;
+                }
+                
+                // Now iterate through all combinations of initial locations.
+                while (true) {
+                    // Register initial state.
+                    StateType id = stateToIdCallback(initialState);
+                    initialStateIndices.push_back(id);
+                    
+                    uint64_t index = 0;
+                    for (; index < initialLocationsIterators.size(); ++index) {
+                        ++initialLocationsIterators[index];
+                        if (initialLocationsIterators[index] == this->model.getAutomata()[index].getInitialLocationIndices().cend()) {
+                            initialLocationsIterators[index] = this->model.getAutomata()[index].getInitialLocationIndices().cbegin();
+                        } else {
+                            break;
+                        }
+                    }
+                    
+                    // If we are at the end, leave the loop. Otherwise, create the next initial state.
+                    if (index == initialLocationsIterators.size()) {
+                        break;
+                    } else {
+                        for (uint64_t j = 0; j <= index; ++j) {
+                            setLocation(initialState, this->variableInformation.locationVariables[j], *initialLocationsIterators[j]);
+                        }
+                    }
+                }
+                
+                // Block the current initial state to search for the next one.
+                solver->add(blockingExpression);
+            }
+            
+            return initialStateIndices;
+        }
+        
+        template<typename ValueType, typename StateType>
+        CompressedState JaniNextStateGenerator<ValueType, StateType>::applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& destination) {
+            CompressedState newState(state);
+            
+            // NOTE: the following process assumes that the assignments of the destination are ordered in such a way
+            // that the assignments to boolean variables precede the assignments to all integer variables and that
+            // within the types, the assignments to variables are ordered (in ascending order) by the expression variables.
+            // This is guaranteed for JANI models, by sorting the assignments as soon as an edge destination is created.
+            
+            auto assignmentIt = destination.getAssignments().begin();
+            auto assignmentIte = destination.getAssignments().end();
+            
+            // Iterate over all boolean assignments and carry them out.
+            auto boolIt = this->variableInformation.booleanVariables.begin();
+            for (; assignmentIt != assignmentIte && assignmentIt->getAssignedExpression().hasBooleanType(); ++assignmentIt) {
+                while (assignmentIt->getExpressionVariable() != boolIt->variable) {
+                    ++boolIt;
+                }
+                newState.set(boolIt->bitOffset, this->evaluator.asBool(assignmentIt->getAssignedExpression()));
+            }
+            
+            // Iterate over all integer assignments and carry them out.
+            auto integerIt = this->variableInformation.integerVariables.begin();
+            for (; assignmentIt != assignmentIte && assignmentIt->getAssignedExpression().hasIntegerType(); ++assignmentIt) {
+                while (assignmentIt->getExpressionVariable() != integerIt->variable) {
+                    ++integerIt;
+                }
+                int_fast64_t assignedValue = this->evaluator.asInt(assignmentIt->getAssignedExpression());
+                STORM_LOG_THROW(assignedValue <= integerIt->upperBound, storm::exceptions::WrongFormatException, "The update " << assignmentIt->getExpressionVariable().getName() << " := " << assignmentIt->getAssignedExpression() << " leads to an out-of-bounds value (" << assignedValue << ") for the variable '" << assignmentIt->getExpressionVariable().getName() << "'.");
+                newState.setFromInt(integerIt->bitOffset, integerIt->bitWidth, assignedValue - integerIt->lowerBound);
+                STORM_LOG_ASSERT(static_cast<int_fast64_t>(newState.getAsInt(integerIt->bitOffset, integerIt->bitWidth)) + integerIt->lowerBound == assignedValue, "Writing to the bit vector bucket failed (read " << newState.getAsInt(integerIt->bitOffset, integerIt->bitWidth) << " but wrote " << assignedValue << ").");
+            }
+            
+            // Check that we processed all assignments.
+            STORM_LOG_ASSERT(assignmentIt == assignmentIte, "Not all assignments were consumed.");
+            
+            return newState;
+        }
+        
+        template<typename ValueType, typename StateType>
+        StateBehavior<ValueType, StateType> JaniNextStateGenerator<ValueType, StateType>::expand(StateToIdCallback const& stateToIdCallback) {
+            // Prepare the result, in case we return early.
+            StateBehavior<ValueType, StateType> result;
+            
+            // If a terminal expression was set and we must not expand this state, return now.
+            if (!this->terminalStates.empty()) {
+                for (auto const& expressionBool : this->terminalStates) {
+                    if (this->evaluator.asBool(expressionBool.first) == expressionBool.second) {
+                        return result;
+                    }
+                }
+            }
+            
+            // Retrieve the locations from the state.
+            std::vector<uint64_t> locations = getLocations(*this->state);
+            
+            // Get all choices for the state.
+            std::vector<Choice<ValueType>> allChoices = getSilentActionChoices(locations, *this->state, stateToIdCallback);
+            std::vector<Choice<ValueType>> allLabeledChoices = getNonsilentActionChoices(locations, *this->state, stateToIdCallback);
+            for (auto& choice : allLabeledChoices) {
+                allChoices.push_back(std::move(choice));
+            }
+            
+            std::size_t totalNumberOfChoices = allChoices.size();
+            
+            // If there is not a single choice, we return immediately, because the state has no behavior (other than
+            // the state reward).
+            if (totalNumberOfChoices == 0) {
+                return result;
+            }
+            
+            // If the model is a deterministic model, we need to fuse the choices into one.
+            if (this->isDeterministicModel() && totalNumberOfChoices > 1) {
+                Choice<ValueType> globalChoice;
+                
+                // Iterate over all choices and combine the probabilities/rates into one choice.
+                for (auto const& choice : allChoices) {
+                    for (auto const& stateProbabilityPair : choice) {
+                        if (this->isDiscreteTimeModel()) {
+                            globalChoice.addProbability(stateProbabilityPair.first, stateProbabilityPair.second / totalNumberOfChoices);
+                        } else {
+                            globalChoice.addProbability(stateProbabilityPair.first, stateProbabilityPair.second);
+                        }
+                    }
+                    
+                    if (this->options.isBuildChoiceLabelsSet()) {
+                        globalChoice.addChoiceLabels(choice.getChoiceLabels());
+                    }
+                }
+                
+                // Move the newly fused choice in place.
+                allChoices.clear();
+                allChoices.push_back(std::move(globalChoice));
+            }
+            
+            // Move all remaining choices in place.
+            for (auto& choice : allChoices) {
+                result.addChoice(std::move(choice));
+            }
+            
+            result.setExpanded();
+            return result;
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::vector<Choice<ValueType>> JaniNextStateGenerator<ValueType, StateType>::getSilentActionChoices(std::vector<uint64_t> const& locations, CompressedState const& state, StateToIdCallback stateToIdCallback) {
+            std::vector<Choice<ValueType>> result;
+            
+            // Iterate over all automata.
+            uint64_t automatonIndex = 0;
+            for (auto const& automaton : model.getAutomata()) {
+                uint64_t location = locations[automatonIndex];
+                
+                // Iterate over all edges from the source location.
+                for (auto const& edge : automaton.getEdgesFromLocation(location)) {
+                    // Skip the edge if it is labeled with a non-silent action.
+                    if (edge.getActionIndex() != model.getSilentActionIndex()) {
+                        continue;
+                    }
+                    
+                    // Skip the command, if it is not enabled.
+                    if (!this->evaluator.asBool(edge.getGuard())) {
+                        continue;
+                    }
+                    
+                    result.push_back(Choice<ValueType>(edge.getActionIndex()));
+                    Choice<ValueType>& choice = result.back();
+                    
+                    // Iterate over all updates of the current command.
+                    ValueType probabilitySum = storm::utility::zero<ValueType>();
+                    for (auto const& destination : edge.getDestinations()) {
+                        // Obtain target state index and add it to the list of known states. If it has not yet been
+                        // seen, we also add it to the set of states that have yet to be explored.
+                        StateType stateIndex = stateToIdCallback(applyUpdate(state, destination));
+                        
+                        // Update the choice by adding the probability/target state to it.
+                        ValueType probability = this->evaluator.asRational(destination.getProbability());
+                        choice.addProbability(stateIndex, probability);
+                        probabilitySum += probability;
+                    }
+                    
+                    // Check that the resulting distribution is in fact a distribution.
+                    STORM_LOG_THROW(!this->isDiscreteTimeModel() || this->comparator.isOne(probabilitySum), storm::exceptions::WrongFormatException, "Probabilities do not sum to one for edge (actually sum to " << probabilitySum << ").");
+                }
+                
+                ++automatonIndex;
+            }
+            
+            return result;
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::vector<Choice<ValueType>> JaniNextStateGenerator<ValueType, StateType>::getNonsilentActionChoices(std::vector<uint64_t> const& locations, CompressedState const& state, StateToIdCallback stateToIdCallback) {
+            std::vector<Choice<ValueType>> result;
+            
+            for (uint64_t actionIndex : model.getNonsilentActionIndices()) {
+                std::vector<std::vector<storm::jani::Edge const*>> enabledEdges = getEnabledEdges(locations, actionIndex);
+                
+                // Only process this action, if there is at least one feasible solution.
+                if (!enabledEdges.empty()) {
+                    // Check whether a global variable is written multiple times in any combination.
+                    checkGlobalVariableWritesValid(enabledEdges);
+                    
+                    std::vector<std::vector<storm::jani::Edge const*>::const_iterator> iteratorList(enabledEdges.size());
+                    
+                    // Initialize the list of iterators.
+                    for (size_t i = 0; i < enabledEdges.size(); ++i) {
+                        iteratorList[i] = enabledEdges[i].cbegin();
+                    }
+                    
+                    // As long as there is one feasible combination of commands, keep on expanding it.
+                    bool done = false;
+                    while (!done) {
+                        boost::container::flat_map<CompressedState, ValueType>* currentTargetStates = new boost::container::flat_map<CompressedState, ValueType>();
+                        boost::container::flat_map<CompressedState, ValueType>* newTargetStates = new boost::container::flat_map<CompressedState, ValueType>();
+                        
+                        currentTargetStates->emplace(state, storm::utility::one<ValueType>());
+                        
+                        for (uint_fast64_t i = 0; i < iteratorList.size(); ++i) {
+                            storm::jani::Edge const& edge = **iteratorList[i];
+                            
+                            for (auto const& destination : edge.getDestinations()) {
+                                for (auto const& stateProbabilityPair : *currentTargetStates) {
+                                    // Compute the new state under the current update and add it to the set of new target states.
+                                    CompressedState newTargetState = applyUpdate(stateProbabilityPair.first, destination);
+                                    
+                                    // If the new state was already found as a successor state, update the probability
+                                    // and otherwise insert it.
+                                    auto targetStateIt = newTargetStates->find(newTargetState);
+                                    if (targetStateIt != newTargetStates->end()) {
+                                        targetStateIt->second += stateProbabilityPair.second * this->evaluator.asRational(destination.getProbability());
+                                    } else {
+                                        newTargetStates->emplace(newTargetState, stateProbabilityPair.second * this->evaluator.asRational(destination.getProbability()));
+                                    }
+                                }
+                            }
+                            
+                            // If there is one more command to come, shift the target states one time step back.
+                            if (i < iteratorList.size() - 1) {
+                                delete currentTargetStates;
+                                currentTargetStates = newTargetStates;
+                                newTargetStates = new boost::container::flat_map<CompressedState, ValueType>();
+                            }
+                        }
+                        
+                        // At this point, we applied all commands of the current command combination and newTargetStates
+                        // contains all target states and their respective probabilities. That means we are now ready to
+                        // add the choice to the list of transitions.
+                        result.push_back(Choice<ValueType>(actionIndex));
+                        
+                        // Now create the actual distribution.
+                        Choice<ValueType>& choice = result.back();
+                        
+                        // Add the probabilities/rates to the newly created choice.
+                        ValueType probabilitySum = storm::utility::zero<ValueType>();
+                        for (auto const& stateProbabilityPair : *newTargetStates) {
+                            StateType actualIndex = stateToIdCallback(stateProbabilityPair.first);
+                            choice.addProbability(actualIndex, stateProbabilityPair.second);
+                            probabilitySum += stateProbabilityPair.second;
+                        }
+                        
+                        // Check that the resulting distribution is in fact a distribution.
+                        STORM_LOG_THROW(!this->isDiscreteTimeModel() || !this->comparator.isConstant(probabilitySum) || this->comparator.isOne(probabilitySum), storm::exceptions::WrongFormatException, "Sum of update probabilities do not some to one for some command (actually sum to " << probabilitySum << ").");
+                        
+                        // Dispose of the temporary maps.
+                        delete currentTargetStates;
+                        delete newTargetStates;
+                        
+                        // Now, check whether there is one more command combination to consider.
+                        bool movedIterator = false;
+                        for (uint64_t j = 0; !movedIterator && j < iteratorList.size(); ++j) {
+                            ++iteratorList[j];
+                            if (iteratorList[j] != enabledEdges[j].end()) {
+                                movedIterator = true;
+                            } else {
+                                // Reset the iterator to the beginning of the list.
+                                iteratorList[j] = enabledEdges[j].begin();
+                            }
+                        }
+                        
+                        done = !movedIterator;
+                    }
+                }
+            }
+            
+            return result;
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::vector<std::vector<storm::jani::Edge const*>> JaniNextStateGenerator<ValueType, StateType>::getEnabledEdges(std::vector<uint64_t> const& locationIndices, uint64_t actionIndex) {
+            std::vector<std::vector<storm::jani::Edge const*>> result;
+            
+            // Iterate over all automata.
+            uint64_t automatonIndex = 0;
+            for (auto const& automaton : model.getAutomata()) {
+                
+                // If the automaton has no edge labeled with the given action, we can skip it.
+                if (!automaton.hasEdgeLabeledWithActionIndex(actionIndex)) {
+                    continue;
+                }
+                
+                auto edges = automaton.getEdgesFromLocation(locationIndices[automatonIndex], actionIndex);
+                
+                // If the automaton contains the action, but there is no edge available labeled with
+                // this action, we don't have any feasible command combinations.
+                if (edges.empty()) {
+                    return std::vector<std::vector<storm::jani::Edge const*>>();
+                }
+                
+                std::vector<storm::jani::Edge const*> edgePointers;
+                for (auto const& edge : edges) {
+                    if (this->evaluator.asBool(edge.getGuard())) {
+                        edgePointers.push_back(&edge);
+                    }
+                }
+                
+                // If there was no enabled edge although the automaton has some edge with the required action, we must
+                // not return anything.
+                if (edgePointers.empty()) {
+                    return std::vector<std::vector<storm::jani::Edge const*>>();
+                }
+                
+                result.emplace_back(std::move(edgePointers));
+                ++automatonIndex;
+            }
+            
+            return result;
+        }
+        
+        template<typename ValueType, typename StateType>
+        void JaniNextStateGenerator<ValueType, StateType>::checkGlobalVariableWritesValid(std::vector<std::vector<storm::jani::Edge const*>> const& enabledEdges) const {
+            std::map<storm::expressions::Variable, uint64_t> writtenGlobalVariables;
+            for (auto edgeSetIt = enabledEdges.begin(), edgeSetIte = enabledEdges.end(); edgeSetIt != edgeSetIte; ++edgeSetIt) {
+                for (auto const& edge : *edgeSetIt) {
+                    for (auto const& globalVariable : edge->getWrittenGlobalVariables()) {
+                        auto it = writtenGlobalVariables.find(globalVariable);
+                        
+                        auto index = std::distance(enabledEdges.begin(), edgeSetIt);
+                        if (it != writtenGlobalVariables.end()) {
+                            STORM_LOG_THROW(it->second == index, storm::exceptions::WrongFormatException, "Multiple writes to global variable '" << globalVariable.getName() << "' in synchronizing edges.");
+                        } else {
+                            writtenGlobalVariables.emplace(globalVariable, index);
+                        }
+                    }
+                }
+            }
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::size_t JaniNextStateGenerator<ValueType, StateType>::getNumberOfRewardModels() const {
+            return 0;
+        }
+        
+        template<typename ValueType, typename StateType>
+        RewardModelInformation JaniNextStateGenerator<ValueType, StateType>::getRewardModelInformation(uint64_t const& index) const {
+            STORM_LOG_THROW(false, storm::exceptions::InvalidSettingsException, "Cannot retrieve reward model information.");
+            return RewardModelInformation("", false, false, false);
+        }
+        
+        template<typename ValueType, typename StateType>
+        storm::models::sparse::StateLabeling JaniNextStateGenerator<ValueType, StateType>::label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices, std::vector<StateType> const& deadlockStateIndices) {
+            return NextStateGenerator<ValueType, StateType>::label(states, initialStateIndices, deadlockStateIndices, {});
+        }
+        
+        template class JaniNextStateGenerator<double>;
+        template class JaniNextStateGenerator<storm::RationalFunction>;
+        
+    }
+}
\ No newline at end of file
diff --git a/src/generator/JaniNextStateGenerator.h b/src/generator/JaniNextStateGenerator.h
new file mode 100644
index 000000000..316d6e074
--- /dev/null
+++ b/src/generator/JaniNextStateGenerator.h
@@ -0,0 +1,97 @@
+#pragma once
+
+#include "src/generator/NextStateGenerator.h"
+
+#include "src/storage/jani/Model.h"
+
+namespace storm {
+    namespace generator {
+        
+        template<typename ValueType, typename StateType = uint32_t>
+        class JaniNextStateGenerator : public NextStateGenerator<ValueType, StateType> {
+        public:
+            typedef typename NextStateGenerator<ValueType, StateType>::StateToIdCallback StateToIdCallback;
+            
+            JaniNextStateGenerator(storm::jani::Model const& model, NextStateGeneratorOptions const& options = NextStateGeneratorOptions());
+            
+            virtual ModelType getModelType() const override;
+            virtual bool isDeterministicModel() const override;
+            virtual bool isDiscreteTimeModel() const override;
+            virtual std::vector<StateType> getInitialStates(StateToIdCallback const& stateToIdCallback) override;
+            
+            virtual StateBehavior<ValueType, StateType> expand(StateToIdCallback const& stateToIdCallback) override;
+            
+            virtual std::size_t getNumberOfRewardModels() const override;
+            virtual RewardModelInformation getRewardModelInformation(uint64_t const& index) const override;
+                        
+            virtual storm::models::sparse::StateLabeling label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices = {}, std::vector<StateType> const& deadlockStateIndices = {}) override;
+            
+        private:
+            /*!
+             * Retrieves the location index from the given state.
+             */
+            uint64_t getLocation(CompressedState const& state, LocationVariableInformation const& locationVariable) const;
+            
+            /*!
+             * Sets the location index from the given state.
+             */
+            void setLocation(CompressedState& state, LocationVariableInformation const& locationVariable, uint64_t locationIndex) const;
+            
+            /*!
+             * Retrieves the tuple of locations of the given state.
+             */
+            std::vector<uint64_t> getLocations(CompressedState const& state) const;
+            
+            /*!
+             * A delegate constructor that is used to preprocess the model before the constructor of the superclass is
+             * being called. The last argument is only present to distinguish the signature of this constructor from the
+             * public one.
+             */
+            JaniNextStateGenerator(storm::jani::Model const& model, NextStateGeneratorOptions const& options, bool flag);
+            
+            /*!
+             * Applies an update to the state currently loaded into the evaluator and applies the resulting values to
+             * the given compressed state.
+             * @params state The state to which to apply the new values.
+             * @params update The update to apply.
+             * @return The resulting state.
+             */
+            CompressedState applyUpdate(CompressedState const& state, storm::jani::EdgeDestination const& update);
+            
+            /*!
+             * Retrieves all choices labeled with the silent action possible from the given state.
+             *
+             * @param locations The current locations of all automata.
+             * @param state The state for which to retrieve the silent choices.
+             * @return The silent action choices of the state.
+             */
+            std::vector<Choice<ValueType>> getSilentActionChoices(std::vector<uint64_t> const& locations, CompressedState const& state, StateToIdCallback stateToIdCallback);
+            
+            /*!
+             * Retrieves all choices labeled with some non-silent action possible from the given state.
+             *
+             * @param locations THe current locations of all automata.
+             * @param state The state for which to retrieve the non-silent choices.
+             * @return The non-silent action choices of the state.
+             */
+            std::vector<Choice<ValueType>> getNonsilentActionChoices(std::vector<uint64_t> const& locations, CompressedState const& state, StateToIdCallback stateToIdCallback);
+            
+            /*!
+             * Retrieves a list of lists of edges such that the list at index i are all edges of automaton i enabled in 
+             * the current state. If the list is empty, it means there was at least one automaton containing edges with
+             * the desired action, but none of them were enabled.
+             */
+            std::vector<std::vector<storm::jani::Edge const*>> getEnabledEdges(std::vector<uint64_t> const& locationIndices, uint64_t actionIndex);
+            
+            /*!
+             * Checks the list of enabled edges (obtained by a call to <code>getEnabledEdges</code>) for multiple
+             * synchronized writes to the same global variable.
+             */
+            void checkGlobalVariableWritesValid(std::vector<std::vector<storm::jani::Edge const*>> const& enabledEdges) const;
+            
+            /// The model used for the generation of next states.
+            storm::jani::Model model;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/generator/NextStateGenerator.cpp b/src/generator/NextStateGenerator.cpp
new file mode 100644
index 000000000..00b8d794c
--- /dev/null
+++ b/src/generator/NextStateGenerator.cpp
@@ -0,0 +1,303 @@
+#include "src/generator/NextStateGenerator.h"
+
+#include "src/adapters/CarlAdapter.h"
+
+#include "src/logic/Formulas.h"
+
+#include "src/storage/expressions/ExpressionManager.h"
+#include "src/storage/expressions/SimpleValuation.h"
+
+#include "src/models/sparse/StateLabeling.h"
+
+#include "src/utility/macros.h"
+#include "src/exceptions/InvalidSettingsException.h"
+
+namespace storm {
+    namespace generator {
+        
+        LabelOrExpression::LabelOrExpression(storm::expressions::Expression const& expression) : labelOrExpression(expression) {
+            // Intentionally left empty.
+        }
+        
+        LabelOrExpression::LabelOrExpression(std::string const& label) : labelOrExpression(label) {
+            // Intentionally left empty.
+        }
+        
+        bool LabelOrExpression::isLabel() const {
+            return labelOrExpression.which() == 0;
+        }
+        
+        std::string const& LabelOrExpression::getLabel() const {
+            return boost::get<std::string const&>(labelOrExpression);
+        }
+        
+        bool LabelOrExpression::isExpression() const {
+            return labelOrExpression.which() == 1;
+        }
+        
+        storm::expressions::Expression const& LabelOrExpression::getExpression() const {
+            return boost::get<storm::expressions::Expression const&>(labelOrExpression);
+        }
+        
+        NextStateGeneratorOptions::NextStateGeneratorOptions(bool buildAllRewardModels, bool buildAllLabels) : buildAllRewardModels(buildAllRewardModels), buildAllLabels(buildAllLabels), buildChoiceLabels(false) {
+            // Intentionally left empty.
+        }
+        
+        NextStateGeneratorOptions::NextStateGeneratorOptions(storm::logic::Formula const& formula) : NextStateGeneratorOptions() {
+            this->preserveFormula(formula);
+            this->setTerminalStatesFromFormula(formula);
+        }
+        
+        NextStateGeneratorOptions::NextStateGeneratorOptions(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas) : NextStateGeneratorOptions() {
+            if (!formulas.empty()) {
+                for (auto const& formula : formulas) {
+                    this->preserveFormula(*formula);
+                }
+                if (formulas.size() == 1) {
+                    this->setTerminalStatesFromFormula(*formulas.front());
+                }
+            }
+        }
+        
+        void NextStateGeneratorOptions::preserveFormula(storm::logic::Formula const& formula) {
+            // If we already had terminal states, we need to erase them.
+            if (hasTerminalStates()) {
+                clearTerminalStates();
+            }
+            
+            // Determine the reward models we need to build.
+            std::set<std::string> referencedRewardModels = formula.getReferencedRewardModels();
+            for (auto const& rewardModelName : referencedRewardModels) {
+                rewardModelNames.push_back(rewardModelName);
+            }
+            
+            // Extract all the labels used in the formula.
+            std::vector<std::shared_ptr<storm::logic::AtomicLabelFormula const>> atomicLabelFormulas = formula.getAtomicLabelFormulas();
+            for (auto const& formula : atomicLabelFormulas) {
+                addLabel(formula->getLabel());
+            }
+            
+            // Extract all the expressions used in the formula.
+            std::vector<std::shared_ptr<storm::logic::AtomicExpressionFormula const>> atomicExpressionFormulas = formula.getAtomicExpressionFormulas();
+            for (auto const& formula : atomicExpressionFormulas) {
+                addLabel(formula->getExpression());
+            }
+        }
+        
+        void NextStateGeneratorOptions::setTerminalStatesFromFormula(storm::logic::Formula const& formula) {
+            if (formula.isAtomicExpressionFormula()) {
+                addTerminalExpression(formula.asAtomicExpressionFormula().getExpression(), true);
+            } else if (formula.isAtomicLabelFormula()) {
+                addTerminalLabel(formula.asAtomicLabelFormula().getLabel(), true);
+            } else if (formula.isEventuallyFormula()) {
+                storm::logic::Formula const& sub = formula.asEventuallyFormula().getSubformula();
+                if (sub.isAtomicExpressionFormula() || sub.isAtomicLabelFormula()) {
+                    this->setTerminalStatesFromFormula(sub);
+                }
+            } else if (formula.isUntilFormula()) {
+                storm::logic::Formula const& right = formula.asUntilFormula().getRightSubformula();
+                if (right.isAtomicExpressionFormula() || right.isAtomicLabelFormula()) {
+                    this->setTerminalStatesFromFormula(right);
+                }
+                storm::logic::Formula const& left = formula.asUntilFormula().getLeftSubformula();
+                if (left.isAtomicExpressionFormula()) {
+                    addTerminalExpression(left.asAtomicExpressionFormula().getExpression(), false);
+                } else if (left.isAtomicLabelFormula()) {
+                    addTerminalLabel(left.asAtomicLabelFormula().getLabel(), false);
+                }
+            } else if (formula.isProbabilityOperatorFormula()) {
+                storm::logic::Formula const& sub = formula.asProbabilityOperatorFormula().getSubformula();
+                if (sub.isEventuallyFormula() || sub.isUntilFormula()) {
+                    this->setTerminalStatesFromFormula(sub);
+                }
+            }
+        }
+        
+        std::vector<std::string> const& NextStateGeneratorOptions::getRewardModelNames() const {
+            return rewardModelNames;
+        }
+        
+        std::set<std::string> const& NextStateGeneratorOptions::getLabelNames() const {
+            return labelNames;
+        }
+        
+        std::vector<storm::expressions::Expression> const& NextStateGeneratorOptions::getExpressionLabels() const {
+            return expressionLabels;
+        }
+        
+        std::vector<std::pair<LabelOrExpression, bool>> const& NextStateGeneratorOptions::getTerminalStates() const {
+            return terminalStates;
+        }
+        
+        bool NextStateGeneratorOptions::hasTerminalStates() const {
+            return !terminalStates.empty();
+        }
+        
+        void NextStateGeneratorOptions::clearTerminalStates() {
+            terminalStates.clear();
+        }
+        
+        bool NextStateGeneratorOptions::isBuildChoiceLabelsSet() const {
+            return buildChoiceLabels;
+        }
+        
+        bool NextStateGeneratorOptions::isBuildAllRewardModelsSet() const {
+            return buildAllRewardModels;
+        }
+        
+        bool NextStateGeneratorOptions::isBuildAllLabelsSet() const {
+            return buildAllLabels;
+        }
+
+        NextStateGeneratorOptions& NextStateGeneratorOptions::setBuildAllRewardModels() {
+            buildAllRewardModels = true;
+            return *this;
+        }
+        
+        NextStateGeneratorOptions& NextStateGeneratorOptions::addRewardModel(std::string const& rewardModelName) {
+            STORM_LOG_THROW(!buildAllRewardModels, storm::exceptions::InvalidSettingsException, "Cannot add reward model, because all reward models are built anyway.");
+            rewardModelNames.emplace_back(rewardModelName);
+            return *this;
+        }
+
+        NextStateGeneratorOptions& NextStateGeneratorOptions::setBuildAllLabels() {
+            buildAllLabels = true;
+            return *this;
+        }
+
+        NextStateGeneratorOptions& NextStateGeneratorOptions::addLabel(storm::expressions::Expression const& expression) {
+            expressionLabels.emplace_back(expression);
+            return *this;
+        }
+        
+        NextStateGeneratorOptions& NextStateGeneratorOptions::addLabel(std::string const& labelName) {
+            STORM_LOG_THROW(!buildAllLabels, storm::exceptions::InvalidSettingsException, "Cannot add label, because all labels are built anyway.");
+            labelNames.insert(labelName);
+            return *this;
+        }
+        
+        NextStateGeneratorOptions& NextStateGeneratorOptions::addTerminalExpression(storm::expressions::Expression const& expression, bool value) {
+            terminalStates.push_back(std::make_pair(LabelOrExpression(expression), value));
+            return *this;
+        }
+
+        NextStateGeneratorOptions& NextStateGeneratorOptions::addTerminalLabel(std::string const& label, bool value) {
+            terminalStates.push_back(std::make_pair(LabelOrExpression(label), value));
+            return *this;
+        }
+        
+        NextStateGeneratorOptions& NextStateGeneratorOptions::setBuildChoiceLabels(bool newValue) {
+            buildChoiceLabels = newValue;
+            return *this;
+        }
+        
+        RewardModelInformation::RewardModelInformation(std::string const& name, bool stateRewards, bool stateActionRewards, bool transitionRewards) : name(name), stateRewards(stateRewards), stateActionRewards(stateActionRewards), transitionRewards(transitionRewards) {
+            // Intentionally left empty.
+        }
+        
+        std::string const& RewardModelInformation::getName() const {
+            return name;
+        }
+        
+        bool RewardModelInformation::hasStateRewards() const {
+            return stateRewards;
+        }
+        
+        bool RewardModelInformation::hasStateActionRewards() const {
+            return stateActionRewards;
+        }
+        
+        bool RewardModelInformation::hasTransitionRewards() const {
+            return transitionRewards;
+        }
+        
+        template<typename ValueType, typename StateType>
+        NextStateGenerator<ValueType, StateType>::NextStateGenerator(storm::expressions::ExpressionManager const& expressionManager, VariableInformation const& variableInformation, NextStateGeneratorOptions const& options) : options(options), expressionManager(expressionManager.getSharedPointer()), variableInformation(variableInformation), evaluator(expressionManager), state(nullptr) {
+            // Intentionally left empty.
+        }
+        
+        template<typename ValueType, typename StateType>
+        NextStateGeneratorOptions const& NextStateGenerator<ValueType, StateType>::getOptions() const {
+            return options;
+        }
+        
+        template<typename ValueType, typename StateType>
+        uint64_t NextStateGenerator<ValueType, StateType>::getStateSize() const {
+            return variableInformation.getTotalBitOffset(true);
+        }
+        
+        template<typename ValueType, typename StateType>
+        void NextStateGenerator<ValueType, StateType>::load(CompressedState const& state) {
+            // Since almost all subsequent operations are based on the evaluator, we load the state into it now.
+            unpackStateIntoEvaluator(state, variableInformation, evaluator);
+            
+            // Also, we need to store a pointer to the state itself, because we need to be able to access it when expanding it.
+            this->state = &state;
+        }
+        
+        template<typename ValueType, typename StateType>
+        bool NextStateGenerator<ValueType, StateType>::satisfies(storm::expressions::Expression const& expression) const {
+            if (expression.isTrue()) {
+                return true;
+            }
+            return evaluator.asBool(expression);
+        }
+        
+        template<typename ValueType, typename StateType>
+        storm::models::sparse::StateLabeling NextStateGenerator<ValueType, StateType>::label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices, std::vector<StateType> const& deadlockStateIndices, std::vector<std::pair<std::string, storm::expressions::Expression>> labelsAndExpressions) {
+            // Make the labels unique.
+            std::sort(labelsAndExpressions.begin(), labelsAndExpressions.end(), [] (std::pair<std::string, storm::expressions::Expression> const& a, std::pair<std::string, storm::expressions::Expression> const& b) { return a.first < b.first; } );
+            auto it = std::unique(labelsAndExpressions.begin(), labelsAndExpressions.end(), [] (std::pair<std::string, storm::expressions::Expression> const& a, std::pair<std::string, storm::expressions::Expression> const& b) { return a.first == b.first; } );
+            labelsAndExpressions.resize(std::distance(labelsAndExpressions.begin(), it));
+            
+            for (auto const& expression : this->options.getExpressionLabels()) {
+                std::stringstream stream;
+                stream << expression;
+                labelsAndExpressions.push_back(std::make_pair(stream.str(), expression));
+            }
+            
+            // Prepare result.
+            storm::models::sparse::StateLabeling result(states.size());
+            
+            // Initialize labeling.
+            for (auto const& label : labelsAndExpressions) {
+                result.addLabel(label.first);
+            }
+            for (auto const& stateIndexPair : states) {
+                unpackStateIntoEvaluator(stateIndexPair.first, variableInformation, this->evaluator);
+                
+                for (auto const& label : labelsAndExpressions) {
+                    // Add label to state, if the corresponding expression is true.
+                    if (evaluator.asBool(label.second)) {
+                        result.addLabelToState(label.first, stateIndexPair.second);
+                    }
+                }
+            }
+            
+            if (!result.containsLabel("init")) {
+                // Also label the initial state with the special label "init".
+                result.addLabel("init");
+                for (auto index : initialStateIndices) {
+                    result.addLabelToState("init", index);
+                }
+            }
+            if (!result.containsLabel("deadlock")) {
+                result.addLabel("deadlock");
+                for (auto index : deadlockStateIndices) {
+                    result.addLabelToState("deadlock", index);
+                }
+            }
+            
+            return result;
+        }
+        
+        template<typename ValueType, typename StateType>
+        storm::expressions::SimpleValuation NextStateGenerator<ValueType, StateType>::toValuation(CompressedState const& state) const {
+            return unpackStateIntoValuation(state, variableInformation, *expressionManager);
+        }
+
+        template class NextStateGenerator<double>;
+        template class NextStateGenerator<storm::RationalFunction>;
+        
+    }
+}
\ No newline at end of file
diff --git a/src/generator/NextStateGenerator.h b/src/generator/NextStateGenerator.h
index 7dab9f470..2e6214c70 100644
--- a/src/generator/NextStateGenerator.h
+++ b/src/generator/NextStateGenerator.h
@@ -4,24 +4,209 @@
 #include <vector>
 #include <cstdint>
 
+#include <boost/variant.hpp>
+
 #include "src/storage/expressions/Expression.h"
+#include "src/storage/BitVectorHashMap.h"
+#include "src/storage/expressions/ExpressionEvaluator.h"
 
+#include "src/generator/VariableInformation.h"
 #include "src/generator/CompressedState.h"
 #include "src/generator/StateBehavior.h"
 
+#include "src/utility/ConstantsComparator.h"
+
 namespace storm {
+    namespace expressions {
+        class Expression;
+        class ExpressionManager;
+    }
+    
+    namespace models {
+        namespace sparse {
+            class StateLabeling;
+        }
+    }
+    
+    namespace logic {
+        class Formula;
+    }
+    
     namespace generator {
+        class LabelOrExpression {
+        public:
+            LabelOrExpression(storm::expressions::Expression const& expression);
+            LabelOrExpression(std::string const& label);
+            
+            bool isLabel() const;
+            std::string const& getLabel() const;
+            bool isExpression() const;
+            storm::expressions::Expression const& getExpression() const;
+            
+        private:
+            /// An optional label for the expression.
+            boost::variant<std::string, storm::expressions::Expression> labelOrExpression;
+        };
+        
+        class NextStateGeneratorOptions {
+        public:
+            /*!
+             * Creates an object representing the default options.
+             */
+            NextStateGeneratorOptions(bool buildAllRewardModels = false, bool buildAllLabels = false);
+            
+            /*!
+             * Creates an object representing the suggested building options assuming that the given formula is the
+             * only one to check. Additional formulas may be preserved by calling <code>preserveFormula</code>.
+             *
+             * @param formula The formula based on which to choose the building options.
+             */
+            NextStateGeneratorOptions(storm::logic::Formula const& formula);
+            
+            /*! 
+             * Creates an object representing the suggested building options assuming that the given formulas are
+             * the only ones to check. Additional formulas may be preserved by calling <code>preserveFormula</code>.
+             *
+             * @param formula Thes formula based on which to choose the building options.
+             */
+            NextStateGeneratorOptions(std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas);
+            
+            /*!
+             * Changes the options in a way that ensures that the given formula can be checked on the model once it
+             * has been built.
+             *
+             * @param formula The formula that is to be ''preserved''.
+             */
+            void preserveFormula(storm::logic::Formula const& formula);
+            
+            /*!
+             * Analyzes the given formula and sets an expression for the states states of the model that can be
+             * treated as terminal states. Note that this may interfere with checking properties different than the
+             * one provided.
+             *
+             * @param formula The formula used to (possibly) derive an expression for the terminal states of the
+             * model.
+             */
+            void setTerminalStatesFromFormula(storm::logic::Formula const& formula);
+            
+            std::vector<std::string> const& getRewardModelNames() const;
+            std::set<std::string> const& getLabelNames() const;
+            std::vector<storm::expressions::Expression> const& getExpressionLabels() const;
+            std::vector<std::pair<LabelOrExpression, bool>> const& getTerminalStates() const;
+            bool hasTerminalStates() const;
+            void clearTerminalStates();
+            bool isBuildChoiceLabelsSet() const;
+            bool isBuildAllRewardModelsSet() const;
+            bool isBuildAllLabelsSet() const;
+            
+            NextStateGeneratorOptions& setBuildAllRewardModels();
+            NextStateGeneratorOptions& addRewardModel(std::string const& rewardModelName);
+            NextStateGeneratorOptions& setBuildAllLabels();
+            NextStateGeneratorOptions& addLabel(storm::expressions::Expression const& expression);
+            NextStateGeneratorOptions& addLabel(std::string const& labelName);
+            NextStateGeneratorOptions& addTerminalExpression(storm::expressions::Expression const& expression, bool value);
+            NextStateGeneratorOptions& addTerminalLabel(std::string const& label, bool value);
+            NextStateGeneratorOptions& setBuildChoiceLabels(bool newValue);
+            
+        private:
+            /// A flag that indicates whether all reward models are to be built. In this case, the reward model names are
+            /// to be ignored.
+            bool buildAllRewardModels;
+            
+            /// The names of the reward models to generate.
+            std::vector<std::string> rewardModelNames;
+
+            /// A flag that indicates whether all labels are to be built. In this case, the label names are to be ignored.
+            bool buildAllLabels;
+            
+            /// A set of labels to build.
+            std::set<std::string> labelNames;
+            
+            /// The expression that are to be used for creating the state labeling.
+            std::vector<storm::expressions::Expression> expressionLabels;
+            
+            /// If one of these labels/expressions evaluates to the given bool, the state generator can abort the exploration.
+            std::vector<std::pair<LabelOrExpression, bool>> terminalStates;
+            
+            /// A flag indicating whether or not to build choice labels.
+            bool buildChoiceLabels;
+        };
+        
+        enum class ModelType {
+            DTMC,
+            CTMC,
+            MDP,
+            MA
+        };
+        
+        class RewardModelInformation {
+        public:
+            RewardModelInformation(std::string const& name, bool stateRewards, bool stateActionRewards, bool transitionRewards);
+            
+            std::string const& getName() const;
+            bool hasStateRewards() const;
+            bool hasStateActionRewards() const;
+            bool hasTransitionRewards() const;
+            
+        private:
+            std::string name;
+            bool stateRewards;
+            bool stateActionRewards;
+            bool transitionRewards;
+        };
+        
         template<typename ValueType, typename StateType = uint32_t>
         class NextStateGenerator {
         public:
             typedef std::function<StateType (CompressedState const&)> StateToIdCallback;
 
+            NextStateGenerator(storm::expressions::ExpressionManager const& expressionManager, VariableInformation const& variableInformation, NextStateGeneratorOptions const& options);
+            
+            uint64_t getStateSize() const;
+            virtual ModelType getModelType() const = 0;
             virtual bool isDeterministicModel() const = 0;
+            virtual bool isDiscreteTimeModel() const = 0;
             virtual std::vector<StateType> getInitialStates(StateToIdCallback const& stateToIdCallback) = 0;
             
-            virtual void load(CompressedState const& state) = 0;
+            void load(CompressedState const& state);
             virtual StateBehavior<ValueType, StateType> expand(StateToIdCallback const& stateToIdCallback) = 0;
-            virtual bool satisfies(storm::expressions::Expression const& expression) const = 0;
+            bool satisfies(storm::expressions::Expression const& expression) const;
+            
+            virtual std::size_t getNumberOfRewardModels() const = 0;
+            virtual RewardModelInformation getRewardModelInformation(uint64_t const& index) const = 0;
+            
+            storm::expressions::SimpleValuation toValuation(CompressedState const& state) const;
+            
+            virtual storm::models::sparse::StateLabeling label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices = {}, std::vector<StateType> const& deadlockStateIndices = {}) = 0;
+            
+            NextStateGeneratorOptions const& getOptions() const;
+            
+        protected:
+            /*!
+             * Creates the state labeling for the given states using the provided labels and expressions.
+             */
+            storm::models::sparse::StateLabeling label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices, std::vector<StateType> const& deadlockStateIndices, std::vector<std::pair<std::string, storm::expressions::Expression>> labelsAndExpressions);
+            
+            /// The options to be used for next-state generation.
+            NextStateGeneratorOptions options;
+            
+            /// The expression manager used for evaluating expressions.
+            std::shared_ptr<storm::expressions::ExpressionManager const> expressionManager;
+            
+            /// The expressions that define terminal states.
+            std::vector<std::pair<storm::expressions::Expression, bool>> terminalStates;
+            
+            /// Information about how the variables are packed.
+            VariableInformation variableInformation;
+            
+            /// An evaluator used to evaluate expressions.
+            storm::expressions::ExpressionEvaluator<ValueType> evaluator;
+            
+            /// The currently loaded state.
+            CompressedState const* state;
+            
+            /// A comparator used to compare constants.
+            storm::utility::ConstantsComparator<ValueType> comparator;
         };
     }
 }
diff --git a/src/generator/PrismNextStateGenerator.cpp b/src/generator/PrismNextStateGenerator.cpp
index 0440074b1..77b547969 100644
--- a/src/generator/PrismNextStateGenerator.cpp
+++ b/src/generator/PrismNextStateGenerator.cpp
@@ -2,27 +2,84 @@
 
 #include <boost/container/flat_map.hpp>
 
+#include "src/models/sparse/StateLabeling.h"
+
+#include "src/storage/expressions/SimpleValuation.h"
+
+#include "src/solver/SmtSolver.h"
+
 #include "src/utility/constants.h"
 #include "src/utility/macros.h"
+#include "src/exceptions/InvalidArgumentException.h"
 #include "src/exceptions/WrongFormatException.h"
 
 namespace storm {
     namespace generator {
         
         template<typename ValueType, typename StateType>
-        PrismNextStateGenerator<ValueType, StateType>::PrismNextStateGenerator(storm::prism::Program const& program, VariableInformation const& variableInformation, bool buildChoiceLabeling) : program(program), selectedRewardModels(), buildChoiceLabeling(buildChoiceLabeling), variableInformation(variableInformation), evaluator(program.getManager()), state(nullptr), comparator() {
+        PrismNextStateGenerator<ValueType, StateType>::PrismNextStateGenerator(storm::prism::Program const& program, NextStateGeneratorOptions const& options) : PrismNextStateGenerator<ValueType, StateType>(program.substituteConstants(), options, false) {
             // Intentionally left empty.
         }
-                
+        
         template<typename ValueType, typename StateType>
-        void PrismNextStateGenerator<ValueType, StateType>::addRewardModel(storm::prism::RewardModel const& rewardModel) {
-            selectedRewardModels.push_back(rewardModel);
-            hasStateActionRewards |= rewardModel.hasStateActionRewards();
+        PrismNextStateGenerator<ValueType, StateType>::PrismNextStateGenerator(storm::prism::Program const& program, NextStateGeneratorOptions const& options, bool flag) : NextStateGenerator<ValueType, StateType>(program.getManager(), VariableInformation(program), options), program(program), rewardModels() {
+            STORM_LOG_THROW(!this->program.specifiesSystemComposition(), storm::exceptions::WrongFormatException, "The explicit next-state generator currently does not support custom system compositions.");
+            
+            if (this->options.isBuildAllRewardModelsSet()) {
+                for (auto const& rewardModel : this->program.getRewardModels()) {
+                    rewardModels.push_back(rewardModel);
+                }
+            } else {
+                // Extract the reward models from the program based on the names we were given.
+                for (auto const& rewardModelName : this->options.getRewardModelNames()) {
+                    if (this->program.hasRewardModel(rewardModelName)) {
+                        rewardModels.push_back(this->program.getRewardModel(rewardModelName));
+                    } else {
+                        STORM_LOG_THROW(rewardModelName.empty(), storm::exceptions::InvalidArgumentException, "Cannot build unknown reward model '" << rewardModelName << "'.");
+                        STORM_LOG_THROW(this->program.getNumberOfRewardModels() == 1, storm::exceptions::InvalidArgumentException, "Reference to standard reward model is ambiguous.");
+                        STORM_LOG_THROW(this->program.getNumberOfRewardModels() > 0, storm::exceptions::InvalidArgumentException, "Reference to standard reward model is invalid, because there is no reward model.");
+                    }
+                }
+                
+                // If no reward model was yet added, but there was one that was given in the options, we try to build
+                // standard reward model.
+                if (rewardModels.empty() && !this->options.getRewardModelNames().empty()) {
+                    rewardModels.push_back(this->program.getRewardModel(0));
+                }
+            }
+            
+            // Determine whether any reward model has state action rewards.
+            for (auto const& rewardModel : rewardModels) {
+                hasStateActionRewards |= rewardModel.get().hasStateActionRewards();
+            }
+            
+            // If there are terminal states we need to handle, we now need to translate all labels to expressions.
+            if (this->options.hasTerminalStates()) {
+                for (auto const& expressionOrLabelAndBool : this->options.getTerminalStates()) {
+                    if (expressionOrLabelAndBool.first.isExpression()) {
+                        this->terminalStates.push_back(std::make_pair(expressionOrLabelAndBool.first.getExpression(), expressionOrLabelAndBool.second));
+                    } else {
+                        if (program.hasLabel(expressionOrLabelAndBool.first.getLabel())) {
+                            this->terminalStates.push_back(std::make_pair(this->program.getLabelExpression(expressionOrLabelAndBool.first.getLabel()), expressionOrLabelAndBool.second));
+                        } else {
+                            // If the label is not present in the program and is not a special one, we raise an error.
+                            STORM_LOG_THROW(expressionOrLabelAndBool.first.getLabel() == "init" || expressionOrLabelAndBool.first.getLabel() == "deadlock", storm::exceptions::InvalidArgumentException, "Terminal states refer to illegal label '" << expressionOrLabelAndBool.first.getLabel() << "'.");
+                        }
+                    }
+                }
+            }
         }
-        
+
         template<typename ValueType, typename StateType>
-        void PrismNextStateGenerator<ValueType, StateType>::setTerminalExpression(storm::expressions::Expression const& terminalExpression) {
-            this->terminalExpression = terminalExpression;
+        ModelType PrismNextStateGenerator<ValueType, StateType>::getModelType() const {
+            switch (program.getModelType()) {
+                case storm::prism::Program::ModelType::DTMC: return ModelType::DTMC;
+                case storm::prism::Program::ModelType::CTMC: return ModelType::CTMC;
+                case storm::prism::Program::ModelType::MDP: return ModelType::MDP;
+                case storm::prism::Program::ModelType::MA: return ModelType::MA;
+                default:
+                    STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Invalid model type.");
+            }
         }
         
         template<typename ValueType, typename StateType>
@@ -31,38 +88,54 @@ namespace storm {
         }
         
         template<typename ValueType, typename StateType>
-        std::vector<StateType> PrismNextStateGenerator<ValueType, StateType>::getInitialStates(StateToIdCallback const& stateToIdCallback) {
-            // FIXME: This only works for models with exactly one initial state. We should make this more general.
-            CompressedState initialState(variableInformation.getTotalBitOffset());
-            
-            // We need to initialize the values of the variables to their initial value.
-            for (auto const& booleanVariable : variableInformation.booleanVariables) {
-                initialState.set(booleanVariable.bitOffset, booleanVariable.initialValue);
-            }
-            for (auto const& integerVariable : variableInformation.integerVariables) {
-                initialState.setFromInt(integerVariable.bitOffset, integerVariable.bitWidth, static_cast<uint_fast64_t>(integerVariable.initialValue - integerVariable.lowerBound));
-            }
-
-            // Register initial state and return it.
-            StateType id = stateToIdCallback(initialState);
-            return {id};
+        bool PrismNextStateGenerator<ValueType, StateType>::isDiscreteTimeModel() const {
+            return program.isDiscreteTimeModel();
         }
         
         template<typename ValueType, typename StateType>
-        void PrismNextStateGenerator<ValueType, StateType>::load(CompressedState const& state) {
-            // Since almost all subsequent operations are based on the evaluator, we load the state into it now.
-            unpackStateIntoEvaluator(state, variableInformation, evaluator);
+        std::vector<StateType> PrismNextStateGenerator<ValueType, StateType>::getInitialStates(StateToIdCallback const& stateToIdCallback) {
+            // Prepare an SMT solver to enumerate all initial states.
+            storm::utility::solver::SmtSolverFactory factory;
+            std::unique_ptr<storm::solver::SmtSolver> solver = factory.create(program.getManager());
             
-            // Also, we need to store a pointer to the state itself, because we need to be able to access it when expanding it.
-            this->state = &state;
-        }
-        
-        template<typename ValueType, typename StateType>
-        bool PrismNextStateGenerator<ValueType, StateType>::satisfies(storm::expressions::Expression const& expression) const {
-            if (expression.isTrue()) {
-                return true;
+            std::vector<storm::expressions::Expression> rangeExpressions = program.getAllRangeExpressions();
+            for (auto const& expression : rangeExpressions) {
+                solver->add(expression);
             }
-            return evaluator.asBool(expression);
+            solver->add(program.getInitialConstruct().getInitialStatesExpression());
+            
+            // Proceed ss long as the solver can still enumerate initial states.
+            std::vector<StateType> initialStateIndices;
+            while (solver->check() == storm::solver::SmtSolver::CheckResult::Sat) {
+                // Create fresh state.
+                CompressedState initialState(this->variableInformation.getTotalBitOffset());
+                
+                // Read variable assignment from the solution of the solver. Also, create an expression we can use to
+                // prevent the variable assignment from being enumerated again.
+                storm::expressions::Expression blockingExpression;
+                std::shared_ptr<storm::solver::SmtSolver::ModelReference> model = solver->getModel();
+                for (auto const& booleanVariable : this->variableInformation.booleanVariables) {
+                    bool variableValue = model->getBooleanValue(booleanVariable.variable);
+                    storm::expressions::Expression localBlockingExpression = variableValue ? !booleanVariable.variable : booleanVariable.variable;
+                    blockingExpression = blockingExpression.isInitialized() ? blockingExpression || localBlockingExpression : localBlockingExpression;
+                    initialState.set(booleanVariable.bitOffset, variableValue);
+                }
+                for (auto const& integerVariable : this->variableInformation.integerVariables) {
+                    int_fast64_t variableValue = model->getIntegerValue(integerVariable.variable);
+                    storm::expressions::Expression localBlockingExpression = integerVariable.variable != model->getManager().integer(variableValue);
+                    blockingExpression = blockingExpression.isInitialized() ? blockingExpression || localBlockingExpression : localBlockingExpression;
+                    initialState.setFromInt(integerVariable.bitOffset, integerVariable.bitWidth, static_cast<uint_fast64_t>(variableValue - integerVariable.lowerBound));
+                }
+                
+                // Register initial state and return it.
+                StateType id = stateToIdCallback(initialState);
+                initialStateIndices.push_back(id);
+                
+                // Block the current initial state to search for the next one.
+                solver->add(blockingExpression);
+            }
+            
+            return initialStateIndices;
         }
         
         template<typename ValueType, typename StateType>
@@ -72,12 +145,12 @@ namespace storm {
             
             // First, construct the state rewards, as we may return early if there are no choices later and we already
             // need the state rewards then.
-            for (auto const& rewardModel : selectedRewardModels) {
+            for (auto const& rewardModel : rewardModels) {
                 ValueType stateRewardValue = storm::utility::zero<ValueType>();
                 if (rewardModel.get().hasStateRewards()) {
                     for (auto const& stateReward : rewardModel.get().getStateRewards()) {
-                        if (evaluator.asBool(stateReward.getStatePredicateExpression())) {
-                            stateRewardValue += ValueType(evaluator.asRational(stateReward.getRewardValueExpression()));
+                        if (this->evaluator.asBool(stateReward.getStatePredicateExpression())) {
+                            stateRewardValue += ValueType(this->evaluator.asRational(stateReward.getRewardValueExpression()));
                         }
                     }
                 }
@@ -85,11 +158,16 @@ namespace storm {
             }
             
             // If a terminal expression was set and we must not expand this state, return now.
-            if (terminalExpression && evaluator.asBool(terminalExpression.get())) {
-                return result;
+            if (!this->terminalStates.empty()) {
+                for (auto const& expressionBool : this->terminalStates) {
+                    if (this->evaluator.asBool(expressionBool.first) == expressionBool.second) {
+                        return result;
+                    }
+                }
             }
             
             // Get all choices for the state.
+            result.setExpanded();
             std::vector<Choice<ValueType>> allChoices = getUnlabeledChoices(*this->state, stateToIdCallback);
             std::vector<Choice<ValueType>> allLabeledChoices = getLabeledChoices(*this->state, stateToIdCallback);
             for (auto& choice : allLabeledChoices) {
@@ -105,40 +183,40 @@ namespace storm {
             }
             
             // If the model is a deterministic model, we need to fuse the choices into one.
-            if (program.isDeterministicModel() && totalNumberOfChoices > 1) {
+            if (this->isDeterministicModel() && totalNumberOfChoices > 1) {
                 Choice<ValueType> globalChoice;
                 
                 // For CTMCs, we need to keep track of the total exit rate to scale the action rewards later. For DTMCs
                 // this is equal to the number of choices, which is why we initialize it like this here.
-                ValueType totalExitRate = program.isDiscreteTimeModel() ? static_cast<ValueType>(totalNumberOfChoices) : storm::utility::zero<ValueType>();
+                ValueType totalExitRate = this->isDiscreteTimeModel() ? static_cast<ValueType>(totalNumberOfChoices) : storm::utility::zero<ValueType>();
                 
                 // Iterate over all choices and combine the probabilities/rates into one choice.
                 for (auto const& choice : allChoices) {
                     for (auto const& stateProbabilityPair : choice) {
-                        if (program.isDiscreteTimeModel()) {
+                        if (this->isDiscreteTimeModel()) {
                             globalChoice.addProbability(stateProbabilityPair.first, stateProbabilityPair.second / totalNumberOfChoices);
                         } else {
                             globalChoice.addProbability(stateProbabilityPair.first, stateProbabilityPair.second);
                         }
                     }
                     
-                    if (hasStateActionRewards && !program.isDiscreteTimeModel()) {
+                    if (hasStateActionRewards && !this->isDiscreteTimeModel()) {
                         totalExitRate += choice.getTotalMass();
                     }
                     
-                    if (buildChoiceLabeling) {
+                    if (this->options.isBuildChoiceLabelsSet()) {
                         globalChoice.addChoiceLabels(choice.getChoiceLabels());
                     }
                 }
                 
                 // Now construct the state-action reward for all selected reward models.
-                for (auto const& rewardModel : selectedRewardModels) {
+                for (auto const& rewardModel : rewardModels) {
                     ValueType stateActionRewardValue = storm::utility::zero<ValueType>();
                     if (rewardModel.get().hasStateActionRewards()) {
                         for (auto const& stateActionReward : rewardModel.get().getStateActionRewards()) {
                             for (auto const& choice : allChoices) {
-                                if (stateActionReward.getActionIndex() == choice.getActionIndex() && evaluator.asBool(stateActionReward.getStatePredicateExpression())) {
-                                    stateActionRewardValue += ValueType(evaluator.asRational(stateActionReward.getRewardValueExpression())) * choice.getTotalMass() / totalExitRate;
+                                if (stateActionReward.getActionIndex() == choice.getActionIndex() && this->evaluator.asBool(stateActionReward.getStatePredicateExpression())) {
+                                    stateActionRewardValue += ValueType(this->evaluator.asRational(stateActionReward.getRewardValueExpression())) * choice.getTotalMass() / totalExitRate;
                                 }
                             }
                             
@@ -157,7 +235,6 @@ namespace storm {
                 result.addChoice(std::move(choice));
             }
             
-            result.setExpanded();
             return result;
         }
         
@@ -165,25 +242,30 @@ namespace storm {
         CompressedState PrismNextStateGenerator<ValueType, StateType>::applyUpdate(CompressedState const& state, storm::prism::Update const& update) {
             CompressedState newState(state);
             
+            // NOTE: the following process assumes that the assignments of the update are ordered in such a way that the
+            // assignments to boolean variables precede the assignments to all integer variables and that within the
+            // types, the assignments to variables are ordered (in ascending order) by the expression variables.
+            // This is guaranteed for PRISM models, by sorting the assignments as soon as an update is created.
+            
             auto assignmentIt = update.getAssignments().begin();
             auto assignmentIte = update.getAssignments().end();
             
             // Iterate over all boolean assignments and carry them out.
-            auto boolIt = variableInformation.booleanVariables.begin();
+            auto boolIt = this->variableInformation.booleanVariables.begin();
             for (; assignmentIt != assignmentIte && assignmentIt->getExpression().hasBooleanType(); ++assignmentIt) {
                 while (assignmentIt->getVariable() != boolIt->variable) {
                     ++boolIt;
                 }
-                newState.set(boolIt->bitOffset, evaluator.asBool(assignmentIt->getExpression()));
+                newState.set(boolIt->bitOffset, this->evaluator.asBool(assignmentIt->getExpression()));
             }
             
             // Iterate over all integer assignments and carry them out.
-            auto integerIt = variableInformation.integerVariables.begin();
+            auto integerIt = this->variableInformation.integerVariables.begin();
             for (; assignmentIt != assignmentIte && assignmentIt->getExpression().hasIntegerType(); ++assignmentIt) {
                 while (assignmentIt->getVariable() != integerIt->variable) {
                     ++integerIt;
                 }
-                int_fast64_t assignedValue = evaluator.asInt(assignmentIt->getExpression());
+                int_fast64_t assignedValue = this->evaluator.asInt(assignmentIt->getExpression());
                 STORM_LOG_THROW(assignedValue <= integerIt->upperBound, storm::exceptions::WrongFormatException, "The update " << update << " leads to an out-of-bounds value (" << assignedValue << ") for the variable '" << assignmentIt->getVariableName() << "'.");
                 newState.setFromInt(integerIt->bitOffset, integerIt->bitWidth, assignedValue - integerIt->lowerBound);
                 STORM_LOG_ASSERT(static_cast<int_fast64_t>(newState.getAsInt(integerIt->bitOffset, integerIt->bitWidth)) + integerIt->lowerBound == assignedValue, "Writing to the bit vector bucket failed (read " << newState.getAsInt(integerIt->bitOffset, integerIt->bitWidth) << " but wrote " << assignedValue << ").");
@@ -221,7 +303,7 @@ namespace storm {
                 // Look up commands by their indices and add them if the guard evaluates to true in the given state.
                 for (uint_fast64_t commandIndex : commandIndices) {
                     storm::prism::Command const& command = module.getCommand(commandIndex);
-                    if (evaluator.asBool(command.getGuardExpression())) {
+                    if (this->evaluator.asBool(command.getGuardExpression())) {
                         commands.push_back(command);
                     }
                 }
@@ -254,7 +336,7 @@ namespace storm {
                     if (command.isLabeled()) continue;
                     
                     // Skip the command, if it is not enabled.
-                    if (!evaluator.asBool(command.getGuardExpression())) {
+                    if (!this->evaluator.asBool(command.getGuardExpression())) {
                         continue;
                     }
                     
@@ -262,7 +344,7 @@ namespace storm {
                     Choice<ValueType>& choice = result.back();
                     
                     // Remember the command labels only if we were asked to.
-                    if (buildChoiceLabeling) {
+                    if (this->options.isBuildChoiceLabelsSet()) {
                         choice.addChoiceLabel(command.getGlobalIndex());
                     }
                     
@@ -276,18 +358,18 @@ namespace storm {
                         StateType stateIndex = stateToIdCallback(applyUpdate(state, update));
                         
                         // Update the choice by adding the probability/target state to it.
-                        ValueType probability = evaluator.asRational(update.getLikelihoodExpression());
+                        ValueType probability = this->evaluator.asRational(update.getLikelihoodExpression());
                         choice.addProbability(stateIndex, probability);
                         probabilitySum += probability;
                     }
                     
                     // Create the state-action reward for the newly created choice.
-                    for (auto const& rewardModel : selectedRewardModels) {
+                    for (auto const& rewardModel : rewardModels) {
                         ValueType stateActionRewardValue = storm::utility::zero<ValueType>();
                         if (rewardModel.get().hasStateActionRewards()) {
                             for (auto const& stateActionReward : rewardModel.get().getStateActionRewards()) {
-                                if (stateActionReward.getActionIndex() == choice.getActionIndex() && evaluator.asBool(stateActionReward.getStatePredicateExpression())) {
-                                    stateActionRewardValue += ValueType(evaluator.asRational(stateActionReward.getRewardValueExpression())) * choice.getTotalMass();
+                                if (stateActionReward.getActionIndex() == choice.getActionIndex() && this->evaluator.asBool(stateActionReward.getStatePredicateExpression())) {
+                                    stateActionRewardValue += ValueType(this->evaluator.asRational(stateActionReward.getRewardValueExpression())) * choice.getTotalMass();
                                 }
                             }
                         }
@@ -295,7 +377,7 @@ namespace storm {
                     }
                     
                     // Check that the resulting distribution is in fact a distribution.
-                    STORM_LOG_THROW(!program.isDiscreteTimeModel() || comparator.isOne(probabilitySum), storm::exceptions::WrongFormatException, "Probabilities do not sum to one for command '" << command << "' (actually sum to " << probabilitySum << ").");
+                    STORM_LOG_THROW(!program.isDiscreteTimeModel() || this->comparator.isOne(probabilitySum), storm::exceptions::WrongFormatException, "Probabilities do not sum to one for command '" << command << "' (actually sum to " << probabilitySum << ").");
                 }
             }
             
@@ -341,9 +423,9 @@ namespace storm {
                                     // and otherwise insert it.
                                     auto targetStateIt = newTargetStates->find(newTargetState);
                                     if (targetStateIt != newTargetStates->end()) {
-                                        targetStateIt->second += stateProbabilityPair.second * evaluator.asRational(update.getLikelihoodExpression());
+                                        targetStateIt->second += stateProbabilityPair.second * this->evaluator.asRational(update.getLikelihoodExpression());
                                     } else {
-                                        newTargetStates->emplace(newTargetState, stateProbabilityPair.second * evaluator.asRational(update.getLikelihoodExpression()));
+                                        newTargetStates->emplace(newTargetState, stateProbabilityPair.second * this->evaluator.asRational(update.getLikelihoodExpression()));
                                     }
                                 }
                             }
@@ -365,7 +447,7 @@ namespace storm {
                         Choice<ValueType>& choice = result.back();
                         
                         // Remember the command labels only if we were asked to.
-                        if (buildChoiceLabeling) {
+                        if (this->options.isBuildChoiceLabelsSet()) {
                             // Add the labels of all commands to this choice.
                             for (uint_fast64_t i = 0; i < iteratorList.size(); ++i) {
                                 choice.addChoiceLabel(iteratorList[i]->get().getGlobalIndex());
@@ -381,15 +463,15 @@ namespace storm {
                         }
                         
                         // Check that the resulting distribution is in fact a distribution.
-                        STORM_LOG_THROW(!program.isDiscreteTimeModel() || !comparator.isConstant(probabilitySum) || comparator.isOne(probabilitySum), storm::exceptions::WrongFormatException, "Sum of update probabilities do not some to one for some command (actually sum to " << probabilitySum << ").");
+                        STORM_LOG_THROW(!program.isDiscreteTimeModel() || !this->comparator.isConstant(probabilitySum) || this->comparator.isOne(probabilitySum), storm::exceptions::WrongFormatException, "Sum of update probabilities do not some to one for some command (actually sum to " << probabilitySum << ").");
                         
                         // Create the state-action reward for the newly created choice.
-                        for (auto const& rewardModel : selectedRewardModels) {
+                        for (auto const& rewardModel : rewardModels) {
                             ValueType stateActionRewardValue = storm::utility::zero<ValueType>();
                             if (rewardModel.get().hasStateActionRewards()) {
                                 for (auto const& stateActionReward : rewardModel.get().getStateActionRewards()) {
-                                    if (stateActionReward.getActionIndex() == choice.getActionIndex() && evaluator.asBool(stateActionReward.getStatePredicateExpression())) {
-                                        stateActionRewardValue += ValueType(evaluator.asRational(stateActionReward.getRewardValueExpression()));
+                                    if (stateActionReward.getActionIndex() == choice.getActionIndex() && this->evaluator.asBool(stateActionReward.getStatePredicateExpression())) {
+                                        stateActionRewardValue += ValueType(this->evaluator.asRational(stateActionReward.getRewardValueExpression()));
                                     }
                                 }
                             }
@@ -402,7 +484,7 @@ namespace storm {
                         
                         // Now, check whether there is one more command combination to consider.
                         bool movedIterator = false;
-                        for (int_fast64_t j = iteratorList.size() - 1; j >= 0; --j) {
+                        for (int_fast64_t j = iteratorList.size() - 1; !movedIterator && j >= 0; --j) {
                             ++iteratorList[j];
                             if (iteratorList[j] != activeCommandList[j].end()) {
                                 movedIterator = true;
@@ -420,6 +502,38 @@ namespace storm {
             return result;
         }
         
+        template<typename ValueType, typename StateType>
+        storm::models::sparse::StateLabeling PrismNextStateGenerator<ValueType, StateType>::label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices, std::vector<StateType> const& deadlockStateIndices) {
+            // Gather a vector of labels and their expressions.
+            std::vector<std::pair<std::string, storm::expressions::Expression>> labels;
+            if (this->options.isBuildAllLabelsSet()) {
+                for (auto const& label : program.getLabels()) {
+                    labels.push_back(std::make_pair(label.getName(), label.getStatePredicateExpression()));
+                }
+            } else {
+                for (auto const& labelName : this->options.getLabelNames()) {
+                    if (program.hasLabel(labelName)) {
+                        labels.push_back(std::make_pair(labelName, program.getLabelExpression(labelName)));
+                    } else {
+                        STORM_LOG_THROW(labelName == "init" || labelName == "deadlock", storm::exceptions::InvalidArgumentException, "Cannot build labeling for unknown label '" << labelName << "'.");
+                    }
+                }
+            }
+            
+            return NextStateGenerator<ValueType, StateType>::label(states, initialStateIndices, deadlockStateIndices, labels);
+        }
+        
+        template<typename ValueType, typename StateType>
+        std::size_t PrismNextStateGenerator<ValueType, StateType>::getNumberOfRewardModels() const {
+            return rewardModels.size();
+        }
+        
+        template<typename ValueType, typename StateType>
+        RewardModelInformation PrismNextStateGenerator<ValueType, StateType>::getRewardModelInformation(uint64_t const& index) const {
+            storm::prism::RewardModel const& rewardModel = rewardModels[index].get();
+            return RewardModelInformation(rewardModel.getName(), rewardModel.hasStateRewards(), rewardModel.hasStateActionRewards(), rewardModel.hasTransitionRewards());
+        }
+                
         template class PrismNextStateGenerator<double>;
         template class PrismNextStateGenerator<storm::RationalFunction>;
     }
diff --git a/src/generator/PrismNextStateGenerator.h b/src/generator/PrismNextStateGenerator.h
index fe997d73a..652903c98 100644
--- a/src/generator/PrismNextStateGenerator.h
+++ b/src/generator/PrismNextStateGenerator.h
@@ -2,12 +2,8 @@
 #define STORM_GENERATOR_PRISMNEXTSTATEGENERATOR_H_
 
 #include "src/generator/NextStateGenerator.h"
-#include "src/generator/VariableInformation.h"
 
 #include "src/storage/prism/Program.h"
-#include "src/storage/expressions/ExpressionEvaluator.h"
-
-#include "src/utility/ConstantsComparator.h"
 
 namespace storm {
     namespace generator {
@@ -17,26 +13,28 @@ namespace storm {
         public:
             typedef typename NextStateGenerator<ValueType, StateType>::StateToIdCallback StateToIdCallback;
             
-            PrismNextStateGenerator(storm::prism::Program const& program, VariableInformation const& variableInformation, bool buildChoiceLabeling);
-                        
-            /*!
-             * Adds a reward model to the list of selected reward models ()
-             */
-            void addRewardModel(storm::prism::RewardModel const& rewardModel);
-            
-            /*!
-             * Sets an expression such that if it evaluates to true in a state, prevents the exploration.
-             */
-            void setTerminalExpression(storm::expressions::Expression const& terminalExpression);
+            PrismNextStateGenerator(storm::prism::Program const& program, NextStateGeneratorOptions const& options = NextStateGeneratorOptions());
             
+            virtual ModelType getModelType() const override;
             virtual bool isDeterministicModel() const override;
+            virtual bool isDiscreteTimeModel() const override;
             virtual std::vector<StateType> getInitialStates(StateToIdCallback const& stateToIdCallback) override;
 
-            virtual void load(CompressedState const& state) override;
             virtual StateBehavior<ValueType, StateType> expand(StateToIdCallback const& stateToIdCallback) override;
-            virtual bool satisfies(storm::expressions::Expression const& expression) const override;
+
+            virtual std::size_t getNumberOfRewardModels() const override;
+            virtual RewardModelInformation getRewardModelInformation(uint64_t const& index) const override;
+            
+            virtual storm::models::sparse::StateLabeling label(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices = {}, std::vector<StateType> const& deadlockStateIndices = {}) override;
 
         private:
+            /*!
+             * A delegate constructor that is used to preprocess the program before the constructor of the superclass is
+             * being called. The last argument is only present to distinguish the signature of this constructor from the
+             * public one.
+             */
+            PrismNextStateGenerator(storm::prism::Program const& program, NextStateGeneratorOptions const& options, bool flag);
+            
             /*!
              * Applies an update to the state currently loaded into the evaluator and applies the resulting values to
              * the given compressed state.
@@ -81,30 +79,13 @@ namespace storm {
             std::vector<Choice<ValueType>> getLabeledChoices(CompressedState const& state, StateToIdCallback stateToIdCallback);
             
             // The program used for the generation of next states.
-            storm::prism::Program const& program;
+            storm::prism::Program program;
             
             // The reward models that need to be considered.
-            std::vector<std::reference_wrapper<storm::prism::RewardModel const>> selectedRewardModels;
+            std::vector<std::reference_wrapper<storm::prism::RewardModel const>> rewardModels;
             
             // A flag that stores whether at least one of the selected reward models has state-action rewards.
             bool hasStateActionRewards;
-            
-            // A flag that stores whether or not to build the choice labeling.
-            bool buildChoiceLabeling;
-            
-            // An optional expression that governs which states must not be explored.
-            boost::optional<storm::expressions::Expression> terminalExpression;
-
-            // Information about how the variables are packed.
-            VariableInformation const& variableInformation;
-            
-            // An evaluator used to evaluate expressions.
-            storm::expressions::ExpressionEvaluator<ValueType> evaluator;
-            
-            CompressedState const* state;
-            
-            // A comparator used to compare constants.
-            storm::utility::ConstantsComparator<ValueType> comparator;
         };
         
     }
diff --git a/src/generator/PrismStateLabelingGenerator.cpp b/src/generator/PrismStateLabelingGenerator.cpp
deleted file mode 100644
index 6022ce063..000000000
--- a/src/generator/PrismStateLabelingGenerator.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-#include "src/generator/PrismStateLabelingGenerator.h"
-
-#include "src/generator/CompressedState.h"
-
-#include "src/storage/expressions/ExpressionEvaluator.h"
-
-namespace storm {
-    namespace generator {
-        
-        template<typename ValueType, typename StateType>
-        PrismStateLabelingGenerator<ValueType, StateType>::PrismStateLabelingGenerator(storm::prism::Program const& program, VariableInformation const& variableInformation) : program(program), variableInformation(variableInformation) {
-            // Intentionally left empty.
-        }
-        
-        template<typename ValueType, typename StateType>
-        storm::models::sparse::StateLabeling PrismStateLabelingGenerator<ValueType, StateType>::generate(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices) {
-            std::vector<storm::prism::Label> const& labels = program.getLabels();
-            
-            storm::expressions::ExpressionEvaluator<ValueType> evaluator(program.getManager());
-            storm::models::sparse::StateLabeling result(states.size());
-            
-            // Initialize labeling.
-            for (auto const& label : labels) {
-                result.addLabel(label.getName());
-            }
-            for (auto const& stateIndexPair : states) {
-                unpackStateIntoEvaluator(stateIndexPair.first, variableInformation, evaluator);
-                
-                for (auto const& label : labels) {
-                    // Add label to state, if the corresponding expression is true.
-                    if (evaluator.asBool(label.getStatePredicateExpression())) {
-                        result.addLabelToState(label.getName(), stateIndexPair.second);
-                    }
-                }
-            }
-            
-            // Also label the initial state with the special label "init".
-            result.addLabel("init");
-            for (auto index : initialStateIndices) {
-                result.addLabelToState("init", index);
-            }
-            
-            return result;
-        }
-        
-        template class PrismStateLabelingGenerator<double, uint32_t>;
-        template class PrismStateLabelingGenerator<storm::RationalFunction, uint32_t>;
-
-    }
-}
\ No newline at end of file
diff --git a/src/generator/PrismStateLabelingGenerator.h b/src/generator/PrismStateLabelingGenerator.h
deleted file mode 100644
index 9859453ba..000000000
--- a/src/generator/PrismStateLabelingGenerator.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef STORM_GENERATOR_PRISMSTATELABELINGGENERATOR_H_
-#define STORM_GENERATOR_PRISMSTATELABELINGGENERATOR_H_
-
-#include "src/generator/StateLabelingGenerator.h"
-
-#include "src/generator/VariableInformation.h"
-
-#include "src/storage/prism/Program.h"
-
-namespace storm {
-    namespace generator {
-        
-        template<typename ValueType, typename StateType = uint32_t>
-        class PrismStateLabelingGenerator : public StateLabelingGenerator<StateType> {
-        public:
-            PrismStateLabelingGenerator(storm::prism::Program const& program, VariableInformation const& variableInformation);
-            
-            virtual storm::models::sparse::StateLabeling generate(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices = {}) override;
-            
-        private:
-            // The program for which to generate the labels.
-            storm::prism::Program const& program;
-            
-            // Information about how the variables are packed.
-            VariableInformation const& variableInformation;
-        };
-        
-    }
-}
-
-#endif /* STORM_GENERATOR_PRISMSTATELABELINGGENERATOR_H_ */
\ No newline at end of file
diff --git a/src/generator/StateLabelingGenerator.h b/src/generator/StateLabelingGenerator.h
deleted file mode 100644
index 17401c703..000000000
--- a/src/generator/StateLabelingGenerator.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef STORM_GENERATOR_STATELABELINGGENERATOR_H_
-#define STORM_GENERATOR_STATELABELINGGENERATOR_H_
-
-#include "src/models/sparse/StateLabeling.h"
-
-#include "src/storage/BitVectorHashMap.h"
-
-namespace storm {
-    namespace generator {
-        
-        template<typename StateType = uint32_t>
-        class StateLabelingGenerator {
-        public:
-            virtual storm::models::sparse::StateLabeling generate(storm::storage::BitVectorHashMap<StateType> const& states, std::vector<StateType> const& initialStateIndices = {}) = 0;
-        };
-        
-    }
-}
-
-#endif /* STORM_GENERATOR_STATELABELINGGENERATOR_H_ */
\ No newline at end of file
diff --git a/src/generator/VariableInformation.cpp b/src/generator/VariableInformation.cpp
index a5be93a6e..b009f849f 100644
--- a/src/generator/VariableInformation.cpp
+++ b/src/generator/VariableInformation.cpp
@@ -1,48 +1,86 @@
 #include "src/generator/VariableInformation.h"
 
+#include "src/storage/prism/Program.h"
+#include "src/storage/jani/Model.h"
+
 #include "src/utility/macros.h"
 #include "src/exceptions/InvalidArgumentException.h"
 
 namespace storm {
     namespace generator {
         
-        BooleanVariableInformation::BooleanVariableInformation(storm::expressions::Variable const& variable, bool initialValue, uint_fast64_t bitOffset) : variable(variable), initialValue(initialValue), bitOffset(bitOffset) {
+        BooleanVariableInformation::BooleanVariableInformation(storm::expressions::Variable const& variable, uint_fast64_t bitOffset, bool global) : variable(variable), bitOffset(bitOffset), global(global) {
+            // Intentionally left empty.
+        }
+        
+        IntegerVariableInformation::IntegerVariableInformation(storm::expressions::Variable const& variable, int_fast64_t lowerBound, int_fast64_t upperBound, uint_fast64_t bitOffset, uint_fast64_t bitWidth, bool global) : variable(variable), lowerBound(lowerBound), upperBound(upperBound), bitOffset(bitOffset), bitWidth(bitWidth), global(global) {
             // Intentionally left empty.
         }
         
-        IntegerVariableInformation::IntegerVariableInformation(storm::expressions::Variable const& variable, int_fast64_t initialValue, int_fast64_t lowerBound, int_fast64_t upperBound, uint_fast64_t bitOffset, uint_fast64_t bitWidth) : variable(variable), initialValue(initialValue), lowerBound(lowerBound), upperBound(upperBound), bitOffset(bitOffset), bitWidth(bitWidth) {
+        LocationVariableInformation::LocationVariableInformation(uint64_t highestValue, uint_fast64_t bitOffset, uint_fast64_t bitWidth) : highestValue(highestValue), bitOffset(bitOffset), bitWidth(bitWidth) {
             // Intentionally left empty.
         }
         
         VariableInformation::VariableInformation(storm::prism::Program const& program) : totalBitOffset(0) {
             for (auto const& booleanVariable : program.getGlobalBooleanVariables()) {
-                booleanVariables.emplace_back(booleanVariable.getExpressionVariable(), booleanVariable.getInitialValueExpression().evaluateAsBool(), totalBitOffset);
+                booleanVariables.emplace_back(booleanVariable.getExpressionVariable(), totalBitOffset, true);
                 ++totalBitOffset;
-                booleanVariableToIndexMap[booleanVariable.getExpressionVariable()] = booleanVariables.size() - 1;
             }
             for (auto const& integerVariable : program.getGlobalIntegerVariables()) {
                 int_fast64_t lowerBound = integerVariable.getLowerBoundExpression().evaluateAsInt();
                 int_fast64_t upperBound = integerVariable.getUpperBoundExpression().evaluateAsInt();
                 uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(upperBound - lowerBound + 1)));
-                integerVariables.emplace_back(integerVariable.getExpressionVariable(), integerVariable.getInitialValueExpression().evaluateAsInt(), lowerBound, upperBound, totalBitOffset, bitwidth);
+                integerVariables.emplace_back(integerVariable.getExpressionVariable(), lowerBound, upperBound, totalBitOffset, bitwidth, true);
                 totalBitOffset += bitwidth;
-                integerVariableToIndexMap[integerVariable.getExpressionVariable()] = integerVariables.size() - 1;
             }
             for (auto const& module : program.getModules()) {
                 for (auto const& booleanVariable : module.getBooleanVariables()) {
-                    booleanVariables.emplace_back(booleanVariable.getExpressionVariable(), booleanVariable.getInitialValueExpression().evaluateAsBool(), totalBitOffset);
+                    booleanVariables.emplace_back(booleanVariable.getExpressionVariable(), totalBitOffset);
                     ++totalBitOffset;
-                    booleanVariableToIndexMap[booleanVariable.getExpressionVariable()] = booleanVariables.size() - 1;
                 }
                 for (auto const& integerVariable : module.getIntegerVariables()) {
                     int_fast64_t lowerBound = integerVariable.getLowerBoundExpression().evaluateAsInt();
                     int_fast64_t upperBound = integerVariable.getUpperBoundExpression().evaluateAsInt();
                     uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(upperBound - lowerBound + 1)));
-                    integerVariables.emplace_back(integerVariable.getExpressionVariable(), integerVariable.getInitialValueExpression().evaluateAsInt(), lowerBound, upperBound, totalBitOffset, bitwidth);
+                    integerVariables.emplace_back(integerVariable.getExpressionVariable(), lowerBound, upperBound, totalBitOffset, bitwidth);
+                    totalBitOffset += bitwidth;
+                }
+            }
+            
+            sortVariables();
+        }
+        
+        VariableInformation::VariableInformation(storm::jani::Model const& model) : totalBitOffset(0) {
+            for (auto const& variable : model.getGlobalVariables().getBooleanVariables()) {
+                booleanVariables.emplace_back(variable.getExpressionVariable(), totalBitOffset, true);
+                ++totalBitOffset;
+            }
+            for (auto const& variable : model.getGlobalVariables().getBoundedIntegerVariables()) {
+                int_fast64_t lowerBound = variable.getLowerBound().evaluateAsInt();
+                int_fast64_t upperBound = variable.getUpperBound().evaluateAsInt();
+                uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(upperBound - lowerBound + 1)));
+                integerVariables.emplace_back(variable.getExpressionVariable(), lowerBound, upperBound, totalBitOffset, bitwidth, true);
+                totalBitOffset += bitwidth;
+            }
+            for (auto const& automaton : model.getAutomata()) {
+                uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(automaton.getNumberOfLocations())));
+                locationVariables.emplace_back(automaton.getNumberOfLocations() - 1, totalBitOffset, bitwidth);
+                totalBitOffset += bitwidth;
+                
+                for (auto const& variable : automaton.getVariables().getBooleanVariables()) {
+                    booleanVariables.emplace_back(variable.getExpressionVariable(), totalBitOffset);
+                    ++totalBitOffset;
+                }
+                for (auto const& variable : automaton.getVariables().getBoundedIntegerVariables()) {
+                    int_fast64_t lowerBound = variable.getLowerBound().evaluateAsInt();
+                    int_fast64_t upperBound = variable.getUpperBound().evaluateAsInt();
+                    uint_fast64_t bitwidth = static_cast<uint_fast64_t>(std::ceil(std::log2(upperBound - lowerBound + 1)));
+                    integerVariables.emplace_back(variable.getExpressionVariable(), lowerBound, upperBound, totalBitOffset, bitwidth);
                     totalBitOffset += bitwidth;
-                    integerVariableToIndexMap[integerVariable.getExpressionVariable()] = integerVariables.size() - 1;
                 }
             }
+            
+            sortVariables();
         }
         
         uint_fast64_t VariableInformation::getTotalBitOffset(bool roundTo64Bit) const {
@@ -53,25 +91,10 @@ namespace storm {
             return result;
         }
         
-        uint_fast64_t VariableInformation::getBitOffset(storm::expressions::Variable const& variable) const {
-            auto const& booleanIndex = booleanVariableToIndexMap.find(variable);
-            if (booleanIndex != booleanVariableToIndexMap.end()) {
-                return booleanVariables[booleanIndex->second].bitOffset;
-            }
-            auto const& integerIndex = integerVariableToIndexMap.find(variable);
-            if (integerIndex != integerVariableToIndexMap.end()) {
-                return integerVariables[integerIndex->second].bitOffset;
-            }
-            STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Cannot look-up bit index of unknown variable.");
-        }
-        
-        uint_fast64_t VariableInformation::getBitWidth(storm::expressions::Variable const& variable) const {
-            auto const& integerIndex = integerVariableToIndexMap.find(variable);
-            if (integerIndex != integerVariableToIndexMap.end()) {
-                return integerVariables[integerIndex->second].bitWidth;
-            }
-            STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Cannot look-up bit width of unknown variable.");
+        void VariableInformation::sortVariables() {
+            // Sort the variables so we can make some assumptions when iterating over them (in the next-state generators).
+            std::sort(booleanVariables.begin(), booleanVariables.end(), [] (BooleanVariableInformation const& a, BooleanVariableInformation const& b) { return a.variable < b.variable; } );
+            std::sort(integerVariables.begin(), integerVariables.end(), [] (IntegerVariableInformation const& a, IntegerVariableInformation const& b) { return a.variable < b.variable; });
         }
-        
     }
 }
\ No newline at end of file
diff --git a/src/generator/VariableInformation.h b/src/generator/VariableInformation.h
index 8c2841dfd..1aa8ee95c 100644
--- a/src/generator/VariableInformation.h
+++ b/src/generator/VariableInformation.h
@@ -5,35 +5,39 @@
 #include <boost/container/flat_map.hpp>
 
 #include "src/storage/expressions/Variable.h"
-#include "src/storage/prism/Program.h"
 
 namespace storm {
+    namespace prism {
+        class Program;
+    }
+    
+    namespace jani {
+        class Model;
+    }
+    
     namespace generator {
         
-        // A structure storing information about the boolean variables of the program.
+        // A structure storing information about the boolean variables of the model.
         struct BooleanVariableInformation {
-            BooleanVariableInformation(storm::expressions::Variable const& variable, bool initialValue, uint_fast64_t bitOffset);
+            BooleanVariableInformation(storm::expressions::Variable const& variable, uint_fast64_t bitOffset, bool global = false);
             
             // The boolean variable.
             storm::expressions::Variable variable;
             
-            // Its initial value.
-            bool initialValue;
-            
             // Its bit offset in the compressed state.
             uint_fast64_t bitOffset;
+
+            // A flag indicating whether the variable is a global one.
+            bool global;
         };
         
-        // A structure storing information about the integer variables of the program.
+        // A structure storing information about the integer variables of the model.
         struct IntegerVariableInformation {
-            IntegerVariableInformation(storm::expressions::Variable const& variable, int_fast64_t initialValue, int_fast64_t lowerBound, int_fast64_t upperBound, uint_fast64_t bitOffset, uint_fast64_t bitWidth);
+            IntegerVariableInformation(storm::expressions::Variable const& variable, int_fast64_t lowerBound, int_fast64_t upperBound, uint_fast64_t bitOffset, uint_fast64_t bitWidth, bool global = false);
             
             // The integer variable.
             storm::expressions::Variable variable;
             
-            // Its initial value.
-            int_fast64_t initialValue;
-            
             // The lower bound of its range.
             int_fast64_t lowerBound;
             
@@ -45,28 +49,50 @@ namespace storm {
             
             // Its bit width in the compressed state.
             uint_fast64_t bitWidth;
+            
+            // A flag indicating whether the variable is a global one.
+            bool global;
+        };
+        
+        // A structure storing information about the location variables of the model.
+        struct LocationVariableInformation {
+            LocationVariableInformation(uint64_t highestValue, uint_fast64_t bitOffset, uint_fast64_t bitWidth);
+
+            // The highest possible location value.
+            uint64_t highestValue;
+            
+            // Its bit offset in the compressed state.
+            uint_fast64_t bitOffset;
+            
+            // Its bit width in the compressed state.
+            uint_fast64_t bitWidth;
         };
         
         // A structure storing information about the used variables of the program.
         struct VariableInformation {
-            VariableInformation() = default;
             VariableInformation(storm::prism::Program const& program);
-            uint_fast64_t getTotalBitOffset(bool roundTo64Bit = false) const;
+            VariableInformation(storm::jani::Model const& model);
             
-            // Provide methods to access the bit offset and width of variables in the compressed state.
-            uint_fast64_t getBitOffset(storm::expressions::Variable const& variable) const;
-            uint_fast64_t getBitWidth(storm::expressions::Variable const& variable) const;
+            VariableInformation() = default;
+            uint_fast64_t getTotalBitOffset(bool roundTo64Bit = false) const;
             
-            // The total bit offset over all variables.
+            /// The total bit offset over all variables.
             uint_fast64_t totalBitOffset;
             
-            // The known boolean variables.
-            boost::container::flat_map<storm::expressions::Variable, uint_fast64_t> booleanVariableToIndexMap;
+            /// The location variables.
+            std::vector<LocationVariableInformation> locationVariables;
+            
+            /// The boolean variables.
             std::vector<BooleanVariableInformation> booleanVariables;
             
-            // The known integer variables.
-            boost::container::flat_map<storm::expressions::Variable, uint_fast64_t> integerVariableToIndexMap;
+            /// The integer variables.
             std::vector<IntegerVariableInformation> integerVariables;
+            
+        private:
+            /*!
+             * Sorts the variables to establish a known ordering.
+             */
+            void sortVariables();
         };
         
     }
diff --git a/src/modelchecker/exploration/SparseExplorationModelChecker.cpp b/src/modelchecker/exploration/SparseExplorationModelChecker.cpp
index 580097119..dba541891 100644
--- a/src/modelchecker/exploration/SparseExplorationModelChecker.cpp
+++ b/src/modelchecker/exploration/SparseExplorationModelChecker.cpp
@@ -35,7 +35,7 @@ namespace storm {
     namespace modelchecker {
         
         template<typename ValueType, typename StateType>
-        SparseExplorationModelChecker<ValueType, StateType>::SparseExplorationModelChecker(storm::prism::Program const& program, boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> const& constantDefinitions) : program(storm::utility::prism::preprocessProgram<ValueType>(program, constantDefinitions)), variableInformation(this->program), randomGenerator(std::chrono::system_clock::now().time_since_epoch().count()), comparator(storm::settings::getModule<storm::settings::modules::ExplorationSettings>().getPrecision()) {
+        SparseExplorationModelChecker<ValueType, StateType>::SparseExplorationModelChecker(storm::prism::Program const& program) : program(program.substituteConstants()), randomGenerator(std::chrono::system_clock::now().time_since_epoch().count()), comparator(storm::settings::getModule<storm::settings::modules::ExplorationSettings>().getPrecision()) {
             // Intentionally left empty.
         }
         
@@ -59,7 +59,7 @@ namespace storm {
             explorationInformation.newRowGroup(0);
             
             std::map<std::string, storm::expressions::Expression> labelToExpressionMapping = program.getLabelToExpressionMapping();
-            StateGeneration<StateType, ValueType> stateGeneration(program, variableInformation, explorationInformation, conditionFormula.toExpression(program.getManager(), labelToExpressionMapping), targetFormula.toExpression(program.getManager(), labelToExpressionMapping));
+            StateGeneration<StateType, ValueType> stateGeneration(program, explorationInformation, conditionFormula.toExpression(program.getManager(), labelToExpressionMapping), targetFormula.toExpression(program.getManager(), labelToExpressionMapping));
             
             
             // Compute and return result.
diff --git a/src/modelchecker/exploration/SparseExplorationModelChecker.h b/src/modelchecker/exploration/SparseExplorationModelChecker.h
index aa13f379a..bc41ace7a 100644
--- a/src/modelchecker/exploration/SparseExplorationModelChecker.h
+++ b/src/modelchecker/exploration/SparseExplorationModelChecker.h
@@ -36,7 +36,7 @@ namespace storm {
             typedef StateType ActionType;
             typedef std::vector<std::pair<StateType, ActionType>> StateActionStack;
             
-            SparseExplorationModelChecker(storm::prism::Program const& program, boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> const& constantDefinitions = boost::none);
+            SparseExplorationModelChecker(storm::prism::Program const& program);
             
             virtual bool canHandle(CheckTask<storm::logic::Formula> const& checkTask) const override;
             
@@ -74,9 +74,6 @@ namespace storm {
             // The program that defines the model to check.
             storm::prism::Program program;
             
-            // The variable information.
-            storm::generator::VariableInformation variableInformation;
-            
             // The random number generator.
             mutable std::default_random_engine randomGenerator;
             
diff --git a/src/modelchecker/exploration/StateGeneration.cpp b/src/modelchecker/exploration/StateGeneration.cpp
index 71fc4d416..0765bf594 100644
--- a/src/modelchecker/exploration/StateGeneration.cpp
+++ b/src/modelchecker/exploration/StateGeneration.cpp
@@ -7,7 +7,7 @@ namespace storm {
         namespace exploration_detail {
             
             template <typename StateType, typename ValueType>
-            StateGeneration<StateType, ValueType>::StateGeneration(storm::prism::Program const& program, storm::generator::VariableInformation const& variableInformation, ExplorationInformation<StateType, ValueType>& explorationInformation, storm::expressions::Expression const& conditionStateExpression, storm::expressions::Expression const& targetStateExpression) : generator(program, variableInformation, false), stateStorage(variableInformation.getTotalBitOffset(true)), conditionStateExpression(conditionStateExpression), targetStateExpression(targetStateExpression) {
+            StateGeneration<StateType, ValueType>::StateGeneration(storm::prism::Program const& program, ExplorationInformation<StateType, ValueType>& explorationInformation, storm::expressions::Expression const& conditionStateExpression, storm::expressions::Expression const& targetStateExpression) : generator(program), stateStorage(generator.getStateSize()), conditionStateExpression(conditionStateExpression), targetStateExpression(targetStateExpression) {
                 
                 stateToIdCallback = [&explorationInformation, this] (storm::generator::CompressedState const& state) -> StateType {
                     StateType newIndex = stateStorage.getNumberOfStates();
diff --git a/src/modelchecker/exploration/StateGeneration.h b/src/modelchecker/exploration/StateGeneration.h
index f75211e54..7375f1867 100644
--- a/src/modelchecker/exploration/StateGeneration.h
+++ b/src/modelchecker/exploration/StateGeneration.h
@@ -21,7 +21,7 @@ namespace storm {
             template <typename StateType, typename ValueType>
             class StateGeneration {
             public:
-                StateGeneration(storm::prism::Program const& program, storm::generator::VariableInformation const& variableInformation, ExplorationInformation<StateType, ValueType>& explorationInformation, storm::expressions::Expression const& conditionStateExpression, storm::expressions::Expression const& targetStateExpression);
+                StateGeneration(storm::prism::Program const& program, ExplorationInformation<StateType, ValueType>& explorationInformation, storm::expressions::Expression const& conditionStateExpression, storm::expressions::Expression const& targetStateExpression);
                                 
                 void load(storm::generator::CompressedState const& state);
                 
diff --git a/src/models/sparse/Model.h b/src/models/sparse/Model.h
index a73b10c8f..bd4c9921b 100644
--- a/src/models/sparse/Model.h
+++ b/src/models/sparse/Model.h
@@ -342,7 +342,7 @@ namespace storm {
                  * @param out The stream the information is to be printed to.
                  */
                 void printRewardModelsInformationToStream(std::ostream& out) const;
-                
+                                
             private:
                 //  A matrix representing transition relation.
                 storm::storage::SparseMatrix<ValueType> transitionMatrix;
diff --git a/src/models/symbolic/Ctmc.cpp b/src/models/symbolic/Ctmc.cpp
index 64c3868d3..2f1e65aec 100644
--- a/src/models/symbolic/Ctmc.cpp
+++ b/src/models/symbolic/Ctmc.cpp
@@ -14,6 +14,7 @@ namespace storm {
             Ctmc<Type, ValueType>::Ctmc(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                         storm::dd::Bdd<Type> reachableStates,
                                         storm::dd::Bdd<Type> initialStates,
+                                        storm::dd::Bdd<Type> deadlockStates,
                                         storm::dd::Add<Type, ValueType> transitionMatrix,
                                         std::set<storm::expressions::Variable> const& rowVariables,
                                         std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -22,7 +23,7 @@ namespace storm {
                                         std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
                                         std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                         std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : DeterministicModel<Type>(storm::models::ModelType::Ctmc, manager, reachableStates, initialStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
+            : DeterministicModel<Type>(storm::models::ModelType::Ctmc, manager, reachableStates, initialStates, deadlockStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
                 exitRates = this->getTransitionMatrix().sumAbstract(this->getColumnVariables());
             }
             
diff --git a/src/models/symbolic/Ctmc.h b/src/models/symbolic/Ctmc.h
index 79e116ca8..a9bcd9c91 100644
--- a/src/models/symbolic/Ctmc.h
+++ b/src/models/symbolic/Ctmc.h
@@ -30,6 +30,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model. 
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -44,6 +45,7 @@ namespace storm {
                 Ctmc(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                      storm::dd::Bdd<Type> reachableStates,
                      storm::dd::Bdd<Type> initialStates,
+                     storm::dd::Bdd<Type> deadlockStates,
                      storm::dd::Add<Type, ValueType> transitionMatrix,
                      std::set<storm::expressions::Variable> const& rowVariables,
                      std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
diff --git a/src/models/symbolic/DeterministicModel.cpp b/src/models/symbolic/DeterministicModel.cpp
index ed6ff3f4a..66f97bc87 100644
--- a/src/models/symbolic/DeterministicModel.cpp
+++ b/src/models/symbolic/DeterministicModel.cpp
@@ -15,6 +15,7 @@ namespace storm {
                                                                     std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                                                     storm::dd::Bdd<Type> reachableStates,
                                                                     storm::dd::Bdd<Type> initialStates,
+                                                                    storm::dd::Bdd<Type> deadlockStates,
                                                                     storm::dd::Add<Type, ValueType> transitionMatrix,
                                                                     std::set<storm::expressions::Variable> const& rowVariables,
                                                                     std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -23,7 +24,7 @@ namespace storm {
                                                                     std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
                                                                     std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                                                     std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : Model<Type>(modelType, manager, reachableStates, initialStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
+            : Model<Type>(modelType, manager, reachableStates, initialStates, deadlockStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
                 // Intentionally left empty.
             }
             
diff --git a/src/models/symbolic/DeterministicModel.h b/src/models/symbolic/DeterministicModel.h
index 6fab1b8db..d8448ecf0 100644
--- a/src/models/symbolic/DeterministicModel.h
+++ b/src/models/symbolic/DeterministicModel.h
@@ -31,6 +31,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model.
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -46,6 +47,7 @@ namespace storm {
                                    std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                    storm::dd::Bdd<Type> reachableStates,
                                    storm::dd::Bdd<Type> initialStates,
+                                   storm::dd::Bdd<Type> deadlockStates,
                                    storm::dd::Add<Type, ValueType> transitionMatrix,
                                    std::set<storm::expressions::Variable> const& rowVariables,
                                    std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
diff --git a/src/models/symbolic/Dtmc.cpp b/src/models/symbolic/Dtmc.cpp
index 443577dae..a9483862f 100644
--- a/src/models/symbolic/Dtmc.cpp
+++ b/src/models/symbolic/Dtmc.cpp
@@ -14,6 +14,7 @@ namespace storm {
             Dtmc<Type, ValueType>::Dtmc(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                         storm::dd::Bdd<Type> reachableStates,
                                         storm::dd::Bdd<Type> initialStates,
+                                        storm::dd::Bdd<Type> deadlockStates,
                                         storm::dd::Add<Type, ValueType> transitionMatrix,
                                         std::set<storm::expressions::Variable> const& rowVariables,
                                         std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -22,7 +23,7 @@ namespace storm {
                                         std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
                                         std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                         std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : DeterministicModel<Type, ValueType>(storm::models::ModelType::Dtmc, manager, reachableStates, initialStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
+            : DeterministicModel<Type, ValueType>(storm::models::ModelType::Dtmc, manager, reachableStates, initialStates, deadlockStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels) {
                 // Intentionally left empty.
             }
             
diff --git a/src/models/symbolic/Dtmc.h b/src/models/symbolic/Dtmc.h
index 91ba3be07..7fbce42e0 100644
--- a/src/models/symbolic/Dtmc.h
+++ b/src/models/symbolic/Dtmc.h
@@ -30,6 +30,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model.
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -44,6 +45,7 @@ namespace storm {
                 Dtmc(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                      storm::dd::Bdd<Type> reachableStates,
                      storm::dd::Bdd<Type> initialStates,
+                     storm::dd::Bdd<Type> deadlockStates,
                      storm::dd::Add<Type, ValueType> transitionMatrix,
                      std::set<storm::expressions::Variable> const& rowVariables,
                      std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
diff --git a/src/models/symbolic/Mdp.cpp b/src/models/symbolic/Mdp.cpp
index 4c68e0f44..70017195a 100644
--- a/src/models/symbolic/Mdp.cpp
+++ b/src/models/symbolic/Mdp.cpp
@@ -14,6 +14,7 @@ namespace storm {
             Mdp<Type, ValueType>::Mdp(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                       storm::dd::Bdd<Type> reachableStates,
                                       storm::dd::Bdd<Type> initialStates,
+                                      storm::dd::Bdd<Type> deadlockStates,
                                       storm::dd::Add<Type, ValueType> transitionMatrix,
                                       std::set<storm::expressions::Variable> const& rowVariables,
                                       std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -23,7 +24,7 @@ namespace storm {
                                       std::set<storm::expressions::Variable> const& nondeterminismVariables,
                                       std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                       std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : NondeterministicModel<Type, ValueType>(storm::models::ModelType::Mdp, manager, reachableStates, initialStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, nondeterminismVariables, labelToExpressionMap, rewardModels) {
+            : NondeterministicModel<Type, ValueType>(storm::models::ModelType::Mdp, manager, reachableStates, initialStates, deadlockStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, nondeterminismVariables, labelToExpressionMap, rewardModels) {
                 // Intentionally left empty.
             }
             
diff --git a/src/models/symbolic/Mdp.h b/src/models/symbolic/Mdp.h
index 56be6ad67..9b37e4cea 100644
--- a/src/models/symbolic/Mdp.h
+++ b/src/models/symbolic/Mdp.h
@@ -31,6 +31,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model.
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -46,6 +47,7 @@ namespace storm {
                 Mdp(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                     storm::dd::Bdd<Type> reachableStates,
                     storm::dd::Bdd<Type> initialStates,
+                    storm::dd::Bdd<Type> deadlockStates,
                     storm::dd::Add<Type, ValueType> transitionMatrix,
                     std::set<storm::expressions::Variable> const& rowVariables,
                     std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
diff --git a/src/models/symbolic/Model.cpp b/src/models/symbolic/Model.cpp
index b2549e5a2..25bc5404b 100644
--- a/src/models/symbolic/Model.cpp
+++ b/src/models/symbolic/Model.cpp
@@ -21,6 +21,7 @@ namespace storm {
                                           std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                           storm::dd::Bdd<Type> reachableStates,
                                           storm::dd::Bdd<Type> initialStates,
+                                          storm::dd::Bdd<Type> deadlockStates,
                                           storm::dd::Add<Type, ValueType> transitionMatrix,
                                           std::set<storm::expressions::Variable> const& rowVariables,
                                           std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -29,7 +30,7 @@ namespace storm {
                                           std::vector<std::pair<storm::expressions::Variable, storm::expressions::Variable>> const& rowColumnMetaVariablePairs,
                                           std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                           std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : ModelBase(modelType), manager(manager), reachableStates(reachableStates), initialStates(initialStates), transitionMatrix(transitionMatrix), rowVariables(rowVariables), rowExpressionAdapter(rowExpressionAdapter), columnVariables(columnVariables), columnExpressionAdapter(columnExpressionAdapter), rowColumnMetaVariablePairs(rowColumnMetaVariablePairs), labelToExpressionMap(labelToExpressionMap), rewardModels(rewardModels) {
+            : ModelBase(modelType), manager(manager), reachableStates(reachableStates), initialStates(initialStates), deadlockStates(deadlockStates), transitionMatrix(transitionMatrix), rowVariables(rowVariables), rowExpressionAdapter(rowExpressionAdapter), columnVariables(columnVariables), columnExpressionAdapter(columnExpressionAdapter), rowColumnMetaVariablePairs(rowColumnMetaVariablePairs), labelToExpressionMap(labelToExpressionMap), rewardModels(rewardModels) {
                 // Intentionally left empty.
             }
             
@@ -65,8 +66,17 @@ namespace storm {
             
             template<storm::dd::DdType Type, typename ValueType>
             storm::dd::Bdd<Type> Model<Type, ValueType>::getStates(std::string const& label) const {
-                STORM_LOG_THROW(labelToExpressionMap.find(label) != labelToExpressionMap.end(), storm::exceptions::IllegalArgumentException, "The label " << label << " is invalid for the labeling of the model.");
-                return rowExpressionAdapter->translateExpression(labelToExpressionMap.at(label)).toBdd() && this->reachableStates;
+                auto labelIt = labelToExpressionMap.find(label);
+                if (labelIt != labelToExpressionMap.end()) {
+                    return rowExpressionAdapter->translateExpression(labelIt->second).toBdd() && this->reachableStates;
+                } else {
+                    if (label == "init") {
+                        return initialStates;
+                    } else if (label == "deadlock") {
+                        return deadlockStates;
+                    }
+                }
+                STORM_LOG_THROW(false, storm::exceptions::IllegalArgumentException, "The label " << label << " is invalid for the labeling of the model.");
             }
             
             template<storm::dd::DdType Type, typename ValueType>
@@ -76,7 +86,12 @@ namespace storm {
             
             template<storm::dd::DdType Type, typename ValueType>
             bool Model<Type, ValueType>::hasLabel(std::string const& label) const {
-                return labelToExpressionMap.find(label) != labelToExpressionMap.end();
+                auto labelIt = labelToExpressionMap.find(label);
+                if (labelIt != labelToExpressionMap.end()) {
+                    return true;
+                } else {
+                    return label == "init" || label == "deadlock";
+                }
             }
             
             template<storm::dd::DdType Type, typename ValueType>
diff --git a/src/models/symbolic/Model.h b/src/models/symbolic/Model.h
index 085c5075f..b2e9d3e87 100644
--- a/src/models/symbolic/Model.h
+++ b/src/models/symbolic/Model.h
@@ -66,6 +66,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model.
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -81,6 +82,7 @@ namespace storm {
                       std::shared_ptr<storm::dd::DdManager<Type>> manager,
                       storm::dd::Bdd<Type> reachableStates,
                       storm::dd::Bdd<Type> initialStates,
+                      storm::dd::Bdd<Type> deadlockStates,
                       storm::dd::Add<Type, ValueType> transitionMatrix,
                       std::set<storm::expressions::Variable> const& rowVariables,
                       std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -291,6 +293,9 @@ namespace storm {
                 // A vector representing the initial states of the model.
                 storm::dd::Bdd<Type> initialStates;
                 
+                // A vector representing the deadlock states of the model.
+                storm::dd::Bdd<Type> deadlockStates;
+                
                 // A matrix representing transition relation.
                 storm::dd::Add<Type, ValueType> transitionMatrix;
                 
diff --git a/src/models/symbolic/NondeterministicModel.cpp b/src/models/symbolic/NondeterministicModel.cpp
index 2eac2ccf5..e5fead0a9 100644
--- a/src/models/symbolic/NondeterministicModel.cpp
+++ b/src/models/symbolic/NondeterministicModel.cpp
@@ -15,6 +15,7 @@ namespace storm {
                                                                           std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                                                           storm::dd::Bdd<Type> reachableStates,
                                                                           storm::dd::Bdd<Type> initialStates,
+                                                                          storm::dd::Bdd<Type> deadlockStates,
                                                                           storm::dd::Add<Type, ValueType> transitionMatrix,
                                                                           std::set<storm::expressions::Variable> const& rowVariables,
                                                                           std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -24,7 +25,7 @@ namespace storm {
                                                                           std::set<storm::expressions::Variable> const& nondeterminismVariables,
                                                                           std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                                                           std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : Model<Type>(modelType, manager, reachableStates, initialStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels), nondeterminismVariables(nondeterminismVariables) {
+            : Model<Type>(modelType, manager, reachableStates, initialStates, deadlockStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, labelToExpressionMap, rewardModels), nondeterminismVariables(nondeterminismVariables) {
                 
                 // Prepare the mask of illegal nondeterministic choices.
                 illegalMask = transitionMatrix.notZero().existsAbstract(this->getColumnVariables());
@@ -33,10 +34,10 @@ namespace storm {
             
             template<storm::dd::DdType Type, typename ValueType>
             uint_fast64_t NondeterministicModel<Type, ValueType>::getNumberOfChoices() const {
-                std::set<storm::expressions::Variable> rowAndNondeterminsmVariables;
-                std::set_union(this->getNondeterminismVariables().begin(), this->getNondeterminismVariables().end(), this->getRowVariables().begin(), this->getRowVariables().end(), std::inserter(rowAndNondeterminsmVariables, rowAndNondeterminsmVariables.begin()));
+                std::set<storm::expressions::Variable> rowAndNondeterminismVariables;
+                std::set_union(this->getNondeterminismVariables().begin(), this->getNondeterminismVariables().end(), this->getRowVariables().begin(), this->getRowVariables().end(), std::inserter(rowAndNondeterminismVariables, rowAndNondeterminismVariables.begin()));
                 
-                storm::dd::Add<Type, uint_fast64_t> tmp = this->getTransitionMatrix().notZero().existsAbstract(this->getColumnVariables()).template toAdd<uint_fast64_t>().sumAbstract(rowAndNondeterminsmVariables);
+                storm::dd::Add<Type, uint_fast64_t> tmp = this->getTransitionMatrix().notZero().existsAbstract(this->getColumnVariables()).template toAdd<uint_fast64_t>().sumAbstract(rowAndNondeterminismVariables);
                 return tmp.getValue();
             }
             
diff --git a/src/models/symbolic/NondeterministicModel.h b/src/models/symbolic/NondeterministicModel.h
index 6596bffe9..749eac3f2 100644
--- a/src/models/symbolic/NondeterministicModel.h
+++ b/src/models/symbolic/NondeterministicModel.h
@@ -31,6 +31,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model.
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -47,6 +48,7 @@ namespace storm {
                                       std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                       storm::dd::Bdd<Type> reachableStates,
                                       storm::dd::Bdd<Type> initialStates,
+                                      storm::dd::Bdd<Type> deadlockStates,
                                       storm::dd::Add<Type, ValueType> transitionMatrix,
                                       std::set<storm::expressions::Variable> const& rowVariables,
                                       std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
diff --git a/src/models/symbolic/StochasticTwoPlayerGame.cpp b/src/models/symbolic/StochasticTwoPlayerGame.cpp
index 6d8183a61..8d2686d64 100644
--- a/src/models/symbolic/StochasticTwoPlayerGame.cpp
+++ b/src/models/symbolic/StochasticTwoPlayerGame.cpp
@@ -14,6 +14,7 @@ namespace storm {
             StochasticTwoPlayerGame<Type, ValueType>::StochasticTwoPlayerGame(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                                                               storm::dd::Bdd<Type> reachableStates,
                                                                               storm::dd::Bdd<Type> initialStates,
+                                                                              storm::dd::Bdd<Type> deadlockStates,
                                                                               storm::dd::Add<Type, ValueType> transitionMatrix,
                                                                               std::set<storm::expressions::Variable> const& rowVariables,
                                                                               std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
@@ -25,7 +26,7 @@ namespace storm {
                                                                               std::set<storm::expressions::Variable> const& nondeterminismVariables,
                                                                               std::map<std::string, storm::expressions::Expression> labelToExpressionMap,
                                                                               std::unordered_map<std::string, RewardModelType> const& rewardModels)
-            : NondeterministicModel<Type>(storm::models::ModelType::S2pg, manager, reachableStates, initialStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, nondeterminismVariables, labelToExpressionMap, rewardModels), player1Variables(player1Variables), player2Variables(player2Variables) {
+            : NondeterministicModel<Type>(storm::models::ModelType::S2pg, manager, reachableStates, initialStates, deadlockStates, transitionMatrix, rowVariables, rowExpressionAdapter, columnVariables, columnExpressionAdapter, rowColumnMetaVariablePairs, nondeterminismVariables, labelToExpressionMap, rewardModels), player1Variables(player1Variables), player2Variables(player2Variables) {
                 // Intentionally left empty.
             }
             
diff --git a/src/models/symbolic/StochasticTwoPlayerGame.h b/src/models/symbolic/StochasticTwoPlayerGame.h
index 4cf487dc8..754b15742 100644
--- a/src/models/symbolic/StochasticTwoPlayerGame.h
+++ b/src/models/symbolic/StochasticTwoPlayerGame.h
@@ -30,6 +30,7 @@ namespace storm {
                  * @param manager The manager responsible for the decision diagrams.
                  * @param reachableStates A DD representing the reachable states.
                  * @param initialStates A DD representing the initial states of the model.
+                 * @param deadlockStates A DD representing the deadlock states of the model.
                  * @param transitionMatrix The matrix representing the transitions in the model.
                  * @param rowVariables The set of row meta variables used in the DDs.
                  * @param rowExpressionAdapter An object that can be used to translate expressions in terms of the row
@@ -47,6 +48,7 @@ namespace storm {
                 StochasticTwoPlayerGame(std::shared_ptr<storm::dd::DdManager<Type>> manager,
                                         storm::dd::Bdd<Type> reachableStates,
                                         storm::dd::Bdd<Type> initialStates,
+                                        storm::dd::Bdd<Type> deadlockStates,
                                         storm::dd::Add<Type, ValueType> transitionMatrix,
                                         std::set<storm::expressions::Variable> const& rowVariables,
                                         std::shared_ptr<storm::adapters::AddExpressionAdapter<Type, ValueType>> rowExpressionAdapter,
diff --git a/src/parser/JaniParser.cpp b/src/parser/JaniParser.cpp
new file mode 100644
index 000000000..72655906e
--- /dev/null
+++ b/src/parser/JaniParser.cpp
@@ -0,0 +1,444 @@
+#include "JaniParser.h"
+#include "src/storage/jani/Model.h"
+#include "src/exceptions/FileIoException.h"
+#include "src/exceptions/InvalidJaniException.h"
+#include "src/exceptions/NotImplementedException.h"
+#include "src/storage/jani/ModelType.h"
+
+#include <iostream>
+#include <sstream>
+#include <fstream>
+#include <boost/lexical_cast.hpp>
+
+#include "src/utility/macros.h"
+
+namespace storm {
+    namespace parser {
+
+
+        std::string getString(json const& structure, std::string const& errorInfo) {
+            STORM_LOG_THROW(structure.is_string(), storm::exceptions::InvalidJaniException, "Expected a string in " << errorInfo << ", got '" << structure.dump() << "'");
+            return structure.front();
+        }
+
+        uint64_t getUnsignedInt(json const& structure, std::string const& errorInfo) {
+            STORM_LOG_THROW(structure.is_number(), storm::exceptions::InvalidJaniException, "Expected a number in " << errorInfo << ", got '" << structure.dump() << "'");
+            int num = structure.front();
+            STORM_LOG_THROW(num >= 0, storm::exceptions::InvalidJaniException, "Expected a positive number in " << errorInfo << ", got '" << num << "'");
+            return static_cast<uint64_t>(num);
+        }
+
+
+        storm::jani::Model JaniParser::parse(std::string const& path) {
+            JaniParser parser;
+            parser.readFile(path);
+            return parser.parseModel();
+        }
+
+        JaniParser::JaniParser(std::string &jsonstring) {
+            parsedStructure = json::parse(jsonstring);
+        }
+
+        void JaniParser::readFile(std::string const &path) {
+            std::ifstream file;
+            file.exceptions ( std::ifstream::failbit );
+            try {
+                file.open(path);
+            }
+            catch (std::ifstream::failure e) {
+                STORM_LOG_THROW(false, storm::exceptions::FileIoException, "Exception during file opening on " << path << ".");
+                return;
+            }
+            file.exceptions( std::ifstream::goodbit );
+
+            parsedStructure << file;
+            file.close();
+
+        }
+
+        storm::jani::Model JaniParser::parseModel() {
+            STORM_LOG_THROW(parsedStructure.count("jani-version") == 1, storm::exceptions::InvalidJaniException, "Jani-version must be given exactly once.");
+            uint64_t version = getUnsignedInt(parsedStructure.at("jani-version"), "jani version");
+            STORM_LOG_THROW(parsedStructure.count("name") == 1, storm::exceptions::InvalidJaniException, "A model must have a (single) name");
+            std::string name = getString(parsedStructure.at("name"), "model name");
+            STORM_LOG_THROW(parsedStructure.count("type") == 1, storm::exceptions::InvalidJaniException, "A type must be given exactly once");
+            std::string modeltypestring = getString(parsedStructure.at("type"), "type of the model");
+            storm::jani::ModelType type = storm::jani::getModelType(modeltypestring);
+            STORM_LOG_THROW(type != storm::jani::ModelType::UNDEFINED, storm::exceptions::InvalidJaniException, "model type " + modeltypestring + " not recognized");
+            storm::jani::Model model(name, type, version);
+            STORM_LOG_THROW(parsedStructure.count("actions") < 2, storm::exceptions::InvalidJaniException, "Action-declarations can be given at most once.");
+            parseActions(parsedStructure.at("actions"), model);
+            STORM_LOG_THROW(parsedStructure.count("variables") < 2, storm::exceptions::InvalidJaniException, "Variable-declarations can be given at most once for global variables.");
+            for(auto const& varStructure : parsedStructure.at("variables")) {
+                parseVariable(varStructure, "global");
+            }
+            STORM_LOG_THROW(parsedStructure.count("automata") == 1, storm::exceptions::InvalidJaniException, "Exactly one list of automata must be given");
+            STORM_LOG_THROW(parsedStructure.at("automata").is_array(), storm::exceptions::InvalidJaniException, "Automata must be an array");
+            // Automatons can only be parsed after constants and variables.
+            for(auto const& automataEntry : parsedStructure.at("automata")) {
+                storm::jani::Automaton automaton = parseAutomaton(automataEntry);
+
+            }
+            STORM_LOG_THROW(parsedStructure.count("system") == 1, storm::exceptions::InvalidJaniException, "Exactly one system description must be given");
+            std::shared_ptr<storm::jani::Composition> composition = parseComposition(parsedStructure.at("system"));
+
+            return model;
+        }
+
+        std::shared_ptr<storm::jani::Variable> JaniParser::parseVariable(json const &variableStructure, std::string const& scopeDescription, bool prefWithScope) {
+            STORM_LOG_THROW(variableStructure.count("name") == 1, storm::exceptions::InvalidJaniException, "Variable (scope: " + scopeDescription + ") must have a name");
+            std::string pref = prefWithScope  ? scopeDescription + "." : "";
+            std::string name = getString(variableStructure.at("name"), "variable-name in " + scopeDescription + "-scope");
+            // TODO check existance of name.
+            // TODO store prefix in variable.
+            std::string exprManagerName = pref + name;
+            STORM_LOG_THROW(variableStructure.count("type") == 1, storm::exceptions::InvalidJaniException, "Variable '" + name + "' (scope: " + scopeDescription + ") must have a (single) type-declaration.");
+            // TODO DEPRECATED make initial value optional?  --- still rpesent in files, so keep it for now
+            STORM_LOG_THROW(variableStructure.count("initial-value") == 1, storm::exceptions::InvalidJaniException, "Initial value for variable '" + name +  "' +  (scope: " + scopeDescription + ") must be given once.");
+            // Read initial value before; that makes creation later on a bit easier, and has as an additional benefit that we do not need to check whether the variable occurs also on the assignment.
+            storm::expressions::Expression initExpr = parseExpression(variableStructure.at("initial-value"), "Initial value of variable " + name + " (scope: " + scopeDescription + ")");
+            assert(initExpr.isInitialized());
+            if(variableStructure.at("type").is_string()) {
+                if(variableStructure.at("type") == "real") {
+                    // expressionManager->declareRationalVariable(name);
+                    // TODO something.
+                } else if(variableStructure.at("type") == "bool") {
+                    STORM_LOG_THROW(initExpr.hasBooleanType(), storm::exceptions::InvalidJaniException, "Initial value for Boolean variable " << name << " (scope: " << scopeDescription << ") should have Boolean type.");
+                    // TODO: reenable and put initExpr in the place where it belongs.
+//                    return std::make_shared<storm::jani::BooleanVariable>(name, expressionManager->declareBooleanVariable(exprManagerName), initExpr);
+                } else if(variableStructure.at("type") == "int") {
+                    STORM_LOG_THROW(initExpr.hasIntegerType(), storm::exceptions::InvalidJaniException, "Initial value for interger variable "  << name << " (scope: " << scopeDescription << ") should have integer type.");
+                    // TODO: reenable and put initExpr in the place where it belongs.
+//                    return std::make_shared<storm::jani::UnboundedIntegerVariable>(name, expressionManager->declareIntegerVariable(exprManagerName), initExpr);
+                } else {
+                    // TODO clocks.
+                    STORM_LOG_THROW(false, storm::exceptions::InvalidJaniException, "Unknown type description " << variableStructure.at("type").dump()  << " for Variable '" << name << "' (scope: " << scopeDescription << ")");
+                }
+            }
+            if(variableStructure.at("type").is_object()) {
+                STORM_LOG_THROW(variableStructure.at("type").count("kind") == 1, storm::exceptions::InvalidJaniException, "For complex type as in variable " << name << "(scope: " << scopeDescription << ")  kind must be given");
+                std::string kind = getString(variableStructure.at("type").at("kind"), "kind for complex type as in variable " + name  + "(scope: " + scopeDescription + ") ");
+                if(kind == "bounded") {
+                    // First do the bounds, that makes the code a bit more streamlined
+                    STORM_LOG_THROW(variableStructure.at("type").count("lower-bound") == 1, storm::exceptions::InvalidJaniException, "For bounded type as in variable " << name << "(scope: " << scopeDescription << ") lower-bound must be given");
+                    storm::expressions::Expression lowerboundExpr = parseExpression(variableStructure.at("type").at("lower-bound"), "Lower bound for variable "+ name + " (scope: " + scopeDescription + ")");
+                    assert(lowerboundExpr.isInitialized());
+                    STORM_LOG_THROW(variableStructure.at("type").count("upper-bound") == 1, storm::exceptions::InvalidJaniException, "For bounded type as in variable " << name << "(scope: " << scopeDescription << ") upper-bound must be given");
+                    storm::expressions::Expression upperboundExpr = parseExpression(variableStructure.at("type").at("upper-bound"), "Upper bound for variable "+ name + " (scope: " + scopeDescription + ")");
+                    assert(upperboundExpr.isInitialized());
+                    STORM_LOG_THROW(variableStructure.at("type").count("base") == 1, storm::exceptions::InvalidJaniException, "For bounded type as in variable " << name << "(scope: " << scopeDescription << ") base must be given");
+                    std::string basictype = getString(variableStructure.at("type").at("base"), "base for bounded type as in variable " + name  + "(scope: " + scopeDescription + ") ");
+                    if(basictype == "int") {
+                        STORM_LOG_THROW(lowerboundExpr.hasIntegerType(), storm::exceptions::InvalidJaniException, "Lower bound for bounded integer variable " << name << "(scope: " << scopeDescription << ") must be integer-typed");
+                        STORM_LOG_THROW(upperboundExpr.hasIntegerType(), storm::exceptions::InvalidJaniException, "Upper bound for bounded integer variable " << name << "(scope: " << scopeDescription << ") must be integer-typed");
+                        // TODO: reenable and put initExpr in the place where it belongs.
+//                        return std::make_shared<storm::jani::BoundedIntegerVariable>(name, expressionManager->declareIntegerVariable(exprManagerName), lowerboundExpr, upperboundExpr, initExpr);
+                    } else {
+                        STORM_LOG_THROW(false, storm::exceptions::InvalidJaniException, "Unsupported base " << basictype << " for bounded variable " << name << "(scope: " << scopeDescription << ") ");
+                    }
+                } else {
+                    STORM_LOG_THROW(false, storm::exceptions::InvalidJaniException, "Unsupported kind " << kind << " for complex type of variable " << name << "(scope: " << scopeDescription << ") ");
+                }
+            }
+            STORM_LOG_THROW(false, storm::exceptions::InvalidJaniException, "Unknown type description, " << variableStructure.at("type").dump()  << " for Variable '" << name << "' (scope: " << scopeDescription << ")");
+        }
+
+        /**
+         * Helper for parse expression.
+         */
+        void ensureNumberOfArguments(uint64_t expected, uint64_t actual, std::string const& opstring, std::string const& errorInfo) {
+            STORM_LOG_THROW(expected == actual, storm::exceptions::InvalidJaniException, "Operator " << opstring  << " expects " << expected << " arguments, but got " << actual << " in " << errorInfo << ".");
+        }
+        /**
+         * Helper for parse expression.
+         */
+        void ensureBooleanType(storm::expressions::Expression const& expr, std::string const& opstring, unsigned argNr, std::string const& errorInfo) {
+            STORM_LOG_THROW(expr.hasBooleanType(), storm::exceptions::InvalidJaniException, "Operator " << opstring << " expects argument " + std::to_string(argNr) + " to be Boolean in " << errorInfo << ".");
+        }
+
+        /**
+         * Helper for parse expression.
+         */
+        void ensureNumericalType(storm::expressions::Expression const& expr, std::string const& opstring, unsigned argNr, std::string const& errorInfo) {
+            STORM_LOG_THROW(expr.hasNumericalType(), storm::exceptions::InvalidJaniException, "Operator " << opstring << " expects argument " + std::to_string(argNr) + " to be numerical in " << errorInfo << ".");
+        }
+
+
+        storm::expressions::Expression JaniParser::parseExpression(json const& expressionStructure, std::string const& scopeDescription, std::unordered_map<std::string, std::shared_ptr<storm::jani::Variable>> const& localVars) {
+            if(expressionStructure.is_boolean()) {
+                if(expressionStructure.get<bool>()) {
+                    return expressionManager->boolean(true);
+                } else {
+                    return expressionManager->boolean(false);
+                }
+            } else if(expressionStructure.is_number_integer()) {
+                return expressionManager->integer(expressionStructure.get<uint64_t>());
+            } else if(expressionStructure.is_number_float()) {
+                // For now, just take the double.
+                // TODO make this a rational number
+                return expressionManager->rational(expressionStructure.get<double>());
+            } else if(expressionStructure.is_string()) {
+                std::string ident = expressionStructure.get<std::string>();
+                if(localVars.count(ident) == 1) {
+                    return storm::expressions::Expression(localVars.at(ident)->getExpressionVariable());
+                } else {
+                    STORM_LOG_THROW(expressionManager->hasVariable(ident), storm::exceptions::InvalidJaniException, "Unknown identifier '" << ident << "' occurs in  " << scopeDescription);
+                    return expressionManager->getVariableExpression(ident);
+                }
+            } else if(expressionStructure.is_object()) {
+                if(expressionStructure.count("op") == 1) {
+                    std::string opstring = getString(expressionStructure.at("op"), scopeDescription);
+                    STORM_LOG_THROW(expressionStructure.count("args") == 1, storm::exceptions::InvalidJaniException, "Operation arguments are not given in " << expressionStructure.dump() << " in " << scopeDescription << "." );
+                    std::vector<storm::expressions::Expression> arguments;
+                    unsigned i = 1;
+                    for(json const& argStructure : expressionStructure.at("args")) {
+                        arguments.push_back(parseExpression(argStructure, scopeDescription + "in argument " + std::to_string(i), localVars));
+                        assert(arguments.back().isInitialized());
+                        ++i;
+                    }
+                    if(opstring == "?:") {
+                        ensureNumberOfArguments(3, arguments.size(), opstring, scopeDescription);
+                        assert(arguments.size() == 3);
+                        return storm::expressions::ite(arguments[0], arguments[1], arguments[2]);
+                    } else if (opstring == "∨") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureBooleanType(arguments[0], opstring, 0, scopeDescription);
+                        ensureBooleanType(arguments[1], opstring, 1, scopeDescription);
+                        assert(arguments.size() == 2);
+                        return arguments[0] || arguments[1];
+                    } else if (opstring == "∧") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureBooleanType(arguments[0], opstring, 0, scopeDescription);
+                        ensureBooleanType(arguments[1], opstring, 1, scopeDescription);
+                        assert(arguments.size() == 2);
+                        return arguments[0] && arguments[1];
+                    } else if (opstring == "!") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureBooleanType(arguments[0], opstring, 0, scopeDescription);
+                        assert(arguments.size() == 1);
+                        return !arguments[0];
+                    } else if (opstring == "=") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        assert(arguments.size() == 2);
+                        if(arguments[0].hasBooleanType()) {
+                            ensureBooleanType(arguments[1], opstring, 1, scopeDescription);
+                            return storm::expressions::iff(arguments[0], arguments[1]);
+                        } else {
+                            ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                            return arguments[0] == arguments[1];
+                        }
+                    } else if (opstring == "≠") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        assert(arguments.size() == 2);
+                        if(arguments[0].hasBooleanType()) {
+                            ensureBooleanType(arguments[1], opstring, 1, scopeDescription);
+                            return storm::expressions::xclusiveor(arguments[0], arguments[1]);
+                        } else {
+                            ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                            return arguments[0] != arguments[1];
+                        }
+                    } else if (opstring == "<") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] < arguments[1];
+                    } else if (opstring == "≤") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] <= arguments[1];
+                    } else if (opstring == ">") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] > arguments[1];
+                    } else if (opstring == "≥") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] >= arguments[1];
+                    } else if (opstring == "+") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] + arguments[1];
+                    } else if (opstring == "-") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] - arguments[1];
+                    } else if (opstring == "--") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        assert(arguments.size() == 1);
+                        return -arguments[0];
+                    } else if (opstring == "*") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] * arguments[1];
+                    } else if (opstring == "/") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return arguments[0] / arguments[1];
+                    } else if (opstring == "%") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        // TODO implement
+                        STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "modulo operation is not yet implemented");
+                    } else if (opstring == "max") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return storm::expressions::maximum(arguments[0],arguments[1]);
+                    } else if (opstring == "min") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        return storm::expressions::minimum(arguments[0],arguments[1]);
+                    } else if (opstring == "⌊⌋") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        return storm::expressions::floor(arguments[0]);
+                    } else if (opstring == "⌈⌉") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        return storm::expressions::ceil(arguments[0]);
+                    } else if (opstring == "abs") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        return storm::expressions::abs(arguments[0]);
+                    } else if (opstring == "sgn") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        return storm::expressions::sign(arguments[0]);
+                    } else if (opstring == "trc") {
+                        ensureNumberOfArguments(1, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        return storm::expressions::abs(arguments[0]);
+                    } else if (opstring == "pow") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        // TODO implement
+                        STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "pow operation is not yet implemented");
+                    } else if (opstring == "exp") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        // TODO implement
+                        STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "exp operation is not yet implemented");
+                    } else if (opstring == "log") {
+                        ensureNumberOfArguments(2, arguments.size(), opstring, scopeDescription);
+                        ensureNumericalType(arguments[0], opstring, 0, scopeDescription);
+                        ensureNumericalType(arguments[1], opstring, 1, scopeDescription);
+                        // TODO implement
+                        STORM_LOG_THROW(false, storm::exceptions::NotImplementedException, "log operation is not yet implemented");
+                    }  else {
+                        STORM_LOG_THROW(false, storm::exceptions::InvalidJaniException, "Unknown operator " << opstring << " in  " << scopeDescription << ".");
+                    }
+                }
+                STORM_LOG_THROW(false, storm::exceptions::InvalidJaniException, "Only standard operators are supported for complex expressions as " << expressionStructure.dump() << " in  " << scopeDescription << ".");
+            }
+            assert(false);
+
+        }
+
+
+
+        void JaniParser::parseActions(json const& actionStructure, storm::jani::Model& parentModel) {
+            std::set<std::string> actionNames;
+            for(auto const& actionEntry : actionStructure) {
+                STORM_LOG_THROW(actionEntry.count("name") == 1, storm::exceptions::InvalidJaniException, "Actions must have exactly one name.");
+                std::string actionName = getString(actionEntry.at("name"), "name of action");
+                STORM_LOG_THROW(actionNames.count(actionName) == 0, storm::exceptions::InvalidJaniException, "Action with name " + actionName + " already exists.");
+                parentModel.addAction(storm::jani::Action(actionName));
+                actionNames.emplace(actionName);
+            }
+        }
+
+        storm::jani::Automaton JaniParser::parseAutomaton(json const &automatonStructure) {
+            STORM_LOG_THROW(automatonStructure.count("name") == 1, storm::exceptions::InvalidJaniException, "Each automaton must have a name");
+            std::string name = getString(automatonStructure.at("name"), " the name field for automaton");
+            storm::jani::Automaton automaton(name);
+            STORM_LOG_THROW(automatonStructure.count("locations") > 0, storm::exceptions::InvalidJaniException, "Automaton '" << name << "' does not have locations.");
+            std::unordered_map<std::string, uint64_t> locIds;
+            for(auto const& locEntry : automatonStructure.at("locations")) {
+                STORM_LOG_THROW(locEntry.count("name"), storm::exceptions::InvalidJaniException, "Locations for automaton '" << name << "' must have exactly one name");
+                std::string locName = getString(locEntry.at("name"), "location of automaton " + name);
+                STORM_LOG_THROW(locIds.count(locName) == 0, storm::exceptions::InvalidJaniException, "Location with name '" + locName + "' already exists in automaton '" + name + "'");
+                uint64_t id = automaton.addLocation(storm::jani::Location(locName));
+                locIds.emplace(locName, id);
+            }
+            uint64_t varDeclCount = automatonStructure.count("variables");
+            STORM_LOG_THROW(varDeclCount < 2, storm::exceptions::InvalidJaniException, "Automaton '" << name << "' has more than one list of variables");
+            std::unordered_map<std::string, std::shared_ptr<storm::jani::Variable>> localVars;
+            if(varDeclCount > 0) {
+                for(auto const& varStructure : automatonStructure.at("variables")) {
+                    std::shared_ptr<storm::jani::Variable> var = parseVariable(varStructure, name, true);
+                    std::cout << "Automaton " << name << "     variable " << var->getName() << std::endl;
+                    assert(localVars.count(var->getName()) == 0);
+                    localVars.emplace(var->getName(), var);
+                }
+            }
+
+
+            STORM_LOG_THROW(automatonStructure.count("edges") > 0, storm::exceptions::InvalidJaniException, "Automaton '" << name << "' must have a list of edges");
+            for(auto const& edgeEntry : automatonStructure.at("edges")) {
+                // source location
+                STORM_LOG_THROW(edgeEntry.count("location") == 1, storm::exceptions::InvalidJaniException, "Each edge in automaton '" << name << "' must have a source");
+                std::string sourceLoc = getString(edgeEntry.at("location"), "source location for edge in automaton '" + name + "'");
+                STORM_LOG_THROW(locIds.count(sourceLoc) == 1, storm::exceptions::InvalidJaniException, "Source of edge has unknown location '" << sourceLoc << "' in automaton '" << name << "'.");
+                // action
+                STORM_LOG_THROW(edgeEntry.count("action") < 2, storm::exceptions::InvalidJaniException, "Edge from " << sourceLoc << " in automaton " << name << " has multiple actions");
+                std::string action = ""; // def is tau
+                if(edgeEntry.count("action") > 0) {
+                    action = getString(edgeEntry.at("action"), "action name in edge from '" + sourceLoc + "' in automaton '" + name + "'");
+                    // TODO check if action is known
+                    assert(action != "");
+                }
+                // rate
+                STORM_LOG_THROW(edgeEntry.count("rate") < 2, storm::exceptions::InvalidJaniException, "Edge from '" << sourceLoc << "' in automaton '" << name << "' has multiple rates");
+                storm::expressions::Expression rateExpr;
+                if(edgeEntry.count("rate") > 0) {
+                    rateExpr = parseExpression(edgeEntry.at("rate"), "rate expression in edge from '" + sourceLoc + "' in automaton '" + name + "'");
+                    STORM_LOG_THROW(rateExpr.hasNumericalType(), storm::exceptions::InvalidJaniException, "Rate '" << rateExpr << "' has not a numerical type");
+                }
+                // guard
+                STORM_LOG_THROW(edgeEntry.count("guard") == 1, storm::exceptions::InvalidJaniException, "A single guard must be given in edge from '" << sourceLoc << "' in automaton '" << name << "'");
+                storm::expressions::Expression guardExpr = parseExpression(edgeEntry.at("guard"), "guard expression in edge from '" + sourceLoc + "' in automaton '" + name + "'", localVars);
+                STORM_LOG_THROW(guardExpr.hasBooleanType(), storm::exceptions::InvalidJaniException, "Guard " << guardExpr << " does not have Boolean type.");
+                STORM_LOG_THROW(edgeEntry.count("destinations") == 1, storm::exceptions::InvalidJaniException, "A single list of destinations must be given in edge from '" << sourceLoc << "' in automaton '" << name << "'");
+                for(auto const& destEntry : edgeEntry.at("destinations")) {
+                    // target location
+                    STORM_LOG_THROW(edgeEntry.count("location") == 1, storm::exceptions::InvalidJaniException, "Each destination in edge from '" << sourceLoc << "' in automaton '" << name << "' must have a source");
+                    std::string targetLoc = getString(edgeEntry.at("location"), "target location for edge from '" + sourceLoc + "' in automaton '" + name + "'");
+                    STORM_LOG_THROW(locIds.count(targetLoc) == 1, storm::exceptions::InvalidJaniException, "Target of edge has unknown location '" << targetLoc << "' in automaton '" << name << "'.");
+                    // probability
+                    storm::expressions::Expression probExpr;
+                    unsigned probDeclCount = destEntry.count("probability");
+                    STORM_LOG_THROW(probDeclCount, storm::exceptions::InvalidJaniException, "Destination in edge from '" << sourceLoc << "' to '" << targetLoc << "' in automaton '" << name << "' has multiple probabilites");
+                    if(probDeclCount == 0) {
+                        probExpr = expressionManager->rational(1.0);
+                    } else {
+                        probExpr = parseExpression(destEntry.at("probability"), "probability expression in edge from '" + sourceLoc + "' to  '"  + targetLoc + "' in automaton '" + name + "'", localVars);
+                    }
+                    assert(probExpr.isInitialized());
+                    STORM_LOG_THROW(probExpr.hasRationalType(), storm::exceptions::InvalidJaniException, "Probability expr " << probExpr << " does not have rational type." );
+                    // assignments
+
+                }
+            }
+
+
+
+            return automaton;
+        }
+
+        std::shared_ptr<storm::jani::Composition> JaniParser::parseComposition(json const &compositionStructure) {
+
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/parser/JaniParser.h b/src/parser/JaniParser.h
new file mode 100644
index 000000000..e4fafcd2a
--- /dev/null
+++ b/src/parser/JaniParser.h
@@ -0,0 +1,54 @@
+#ifndef STORM_JANIPARSER_H
+#define STORM_JANIPARSER_H
+
+#include "src/exceptions/FileIoException.h"
+#include "src/storage/expressions/ExpressionManager.h"
+
+// JSON parser
+#include "json.hpp"
+
+using json = nlohmann::json;
+
+namespace storm {
+    namespace jani {
+        class Model;
+        class Automaton;
+        class Variable;
+        class Composition;
+    }
+
+
+    namespace parser {
+        class JaniParser {
+
+            json parsedStructure;
+            std::shared_ptr<storm::expressions::ExpressionManager> expressionManager;
+
+        public:
+            JaniParser() : expressionManager(new storm::expressions::ExpressionManager()) {}
+            JaniParser(std::string& jsonstring);
+            static storm::jani::Model parse(std::string const& path);
+
+        protected:
+            void readFile(std::string const& path);
+            storm::jani::Model parseModel();
+            storm::jani::Automaton parseAutomaton(json const& automatonStructure);
+            std::shared_ptr<storm::jani::Variable>  parseVariable(json const& variableStructure, std::string const& scopeDescription, bool prefWithScope = false);
+            storm::expressions::Expression parseExpression(json const& expressionStructure, std::string const& scopeDescription, std::unordered_map<std::string, std::shared_ptr<storm::jani::Variable>> const& localVars = {});
+        private:
+            /**
+             * Helper for parsing the actions of a model.
+             */
+            void parseActions(json const& actionStructure, storm::jani::Model& parentModel);
+
+            std::shared_ptr<storm::jani::Composition> parseComposition(json const& compositionStructure);
+
+
+
+        };
+    }
+}
+
+
+
+#endif //STORM_JANIPARSER_H
diff --git a/src/parser/PrismParser.cpp b/src/parser/PrismParser.cpp
index b2a153f99..7d54f18c6 100644
--- a/src/parser/PrismParser.cpp
+++ b/src/parser/PrismParser.cpp
@@ -1,5 +1,7 @@
 #include "src/parser/PrismParser.h"
 
+#include "src/storage/prism/Compositions.h"
+
 #include "src/settings/SettingsManager.h"
 
 #include "src/exceptions/InvalidArgumentException.h"
@@ -133,6 +135,45 @@ namespace storm {
             initialStatesConstruct = (qi::lit("init") > expressionParser > qi::lit("endinit"))[qi::_pass = phoenix::bind(&PrismParser::addInitialStatesConstruct, phoenix::ref(*this), qi::_1, qi::_r1)];
             initialStatesConstruct.name("initial construct");
             
+            systemCompositionConstruct = (qi::lit("system") > parallelComposition > qi::lit("endsystem"))[phoenix::bind(&PrismParser::addSystemCompositionConstruct, phoenix::ref(*this), qi::_1, qi::_r1)];
+            systemCompositionConstruct.name("system composition construct");
+            
+            actionNameList %= identifier[phoenix::insert(qi::_val, qi::_1)] >> *("," >> identifier[phoenix::insert(qi::_val, qi::_1)]);
+            actionNameList.name("action list");
+            
+            parallelComposition = hidingOrRenamingComposition[qi::_val = qi::_1] >> *((interleavingParallelComposition > hidingOrRenamingComposition)[qi::_val = phoenix::bind(&PrismParser::createInterleavingParallelComposition, phoenix::ref(*this), qi::_val, qi::_1)] |
+                                                                                      (synchronizingParallelComposition > hidingOrRenamingComposition)[qi::_val = phoenix::bind(&PrismParser::createSynchronizingParallelComposition, phoenix::ref(*this), qi::_val, qi::_1)] |
+                                                                                      (restrictedParallelComposition > hidingOrRenamingComposition)[qi::_val = phoenix::bind(&PrismParser::createRestrictedParallelComposition, phoenix::ref(*this), qi::_val, qi::_1, qi::_2)]
+                                                                                      );
+            parallelComposition.name("parallel composition");
+
+            synchronizingParallelComposition = qi::lit("||");
+            synchronizingParallelComposition.name("synchronizing parallel composition");
+            
+            interleavingParallelComposition = qi::lit("|||");
+            interleavingParallelComposition.name("interleaving parallel composition");
+
+            restrictedParallelComposition = qi::lit("|[") > actionNameList > qi::lit("]|");
+            restrictedParallelComposition.name("restricted parallel composition");
+            
+            hidingOrRenamingComposition = hidingComposition | renamingComposition | atomicComposition;
+            hidingOrRenamingComposition.name("hiding/renaming composition");
+            
+            hidingComposition = (atomicComposition >> (qi::lit("/") > (qi::lit("{") > actionNameList > qi::lit("}"))))[qi::_val = phoenix::bind(&PrismParser::createHidingComposition, phoenix::ref(*this), qi::_1, qi::_2)];
+            hidingComposition.name("hiding composition");
+            
+            actionRenamingList = +(identifier >> (qi::lit("<-") >> identifier))[phoenix::insert(qi::_val, phoenix::construct<std::pair<std::string, std::string>>(qi::_1, qi::_2))];
+            actionRenamingList.name("action renaming list");
+            
+            renamingComposition = (atomicComposition >> (qi::lit("{") > (actionRenamingList > qi::lit("}"))))[qi::_val = phoenix::bind(&PrismParser::createRenamingComposition, phoenix::ref(*this), qi::_1, qi::_2)];
+            renamingComposition.name("renaming composition");
+            
+            atomicComposition = qi::lit("(") > parallelComposition > qi::lit(")") | moduleComposition;
+            atomicComposition.name("atomic composition");
+            
+            moduleComposition = identifier[qi::_val = phoenix::bind(&PrismParser::createModuleComposition, phoenix::ref(*this), qi::_1)];
+            moduleComposition.name("module composition");
+            
             labelDefinition = (qi::lit("label") > -qi::lit("\"") > identifier > -qi::lit("\"") > qi::lit("=") > expressionParser >> qi::lit(";"))[qi::_val = phoenix::bind(&PrismParser::createLabel, phoenix::ref(*this), qi::_1, qi::_2)];
             labelDefinition.name("label definition");
             
@@ -179,7 +220,7 @@ namespace storm {
                          | labelDefinition[phoenix::push_back(phoenix::bind(&GlobalProgramInformation::labels, qi::_a), qi::_1)] 
                          | formulaDefinition[phoenix::push_back(phoenix::bind(&GlobalProgramInformation::formulas, qi::_a), qi::_1)]
                      )
-                     > qi::eoi)[qi::_val = phoenix::bind(&PrismParser::createProgram, phoenix::ref(*this), qi::_a)];
+                     > -(systemCompositionConstruct(qi::_a)) > qi::eoi)[qi::_val = phoenix::bind(&PrismParser::createProgram, phoenix::ref(*this), qi::_a)];
             start.name("probabilistic program");
             
             // Enable location tracking for important entities.
@@ -245,6 +286,35 @@ namespace storm {
             return true;
         }
         
+        bool PrismParser::addSystemCompositionConstruct(std::shared_ptr<storm::prism::Composition> const& composition, GlobalProgramInformation& globalProgramInformation) {
+            globalProgramInformation.systemCompositionConstruct = storm::prism::SystemCompositionConstruct(composition, this->getFilename(), get_line(qi::_3));
+            return true;
+        }
+        
+        std::shared_ptr<storm::prism::Composition> PrismParser::createModuleComposition(std::string const& moduleName) const {
+            return std::make_shared<storm::prism::ModuleComposition>(moduleName);
+        }
+        
+        std::shared_ptr<storm::prism::Composition> PrismParser::createRenamingComposition(std::shared_ptr<storm::prism::Composition> const& subcomposition, std::map<std::string, std::string> const& renaming) const {
+            return std::make_shared<storm::prism::RenamingComposition>(subcomposition, renaming);
+        }
+        
+        std::shared_ptr<storm::prism::Composition> PrismParser::createHidingComposition(std::shared_ptr<storm::prism::Composition> const& subcomposition, std::set<std::string> const& actionsToHide) const {
+            return std::make_shared<storm::prism::HidingComposition>(subcomposition, actionsToHide);
+        }
+        
+        std::shared_ptr<storm::prism::Composition> PrismParser::createSynchronizingParallelComposition(std::shared_ptr<storm::prism::Composition> const& left, std::shared_ptr<storm::prism::Composition> const& right) const {
+            return std::make_shared<storm::prism::SynchronizingParallelComposition>(left, right);
+        }
+        
+        std::shared_ptr<storm::prism::Composition> PrismParser::createInterleavingParallelComposition(std::shared_ptr<storm::prism::Composition> const& left, std::shared_ptr<storm::prism::Composition> const& right) const {
+            return std::make_shared<storm::prism::InterleavingParallelComposition>(left, right);
+        }
+        
+        std::shared_ptr<storm::prism::Composition> PrismParser::createRestrictedParallelComposition(std::shared_ptr<storm::prism::Composition> const& left, std::set<std::string> const& synchronizingActions, std::shared_ptr<storm::prism::Composition> const& right) const {
+            return std::make_shared<storm::prism::RestrictedParallelComposition>(left, synchronizingActions, right);
+        }
+        
         storm::prism::Constant PrismParser::createUndefinedBooleanConstant(std::string const& newConstant) const {
             if (!this->secondRun) {
                 try {
@@ -570,7 +640,7 @@ namespace storm {
         }
         
         storm::prism::Program PrismParser::createProgram(GlobalProgramInformation const& globalProgramInformation) const {
-            return storm::prism::Program(manager, globalProgramInformation.modelType, globalProgramInformation.constants, globalProgramInformation.globalBooleanVariables, globalProgramInformation.globalIntegerVariables, globalProgramInformation.formulas, globalProgramInformation.modules, globalProgramInformation.actionIndices, globalProgramInformation.rewardModels, this->secondRun && !globalProgramInformation.hasInitialConstruct, globalProgramInformation.initialConstruct, globalProgramInformation.labels, this->getFilename(), 1, this->secondRun);
+            return storm::prism::Program(manager, globalProgramInformation.modelType, globalProgramInformation.constants, globalProgramInformation.globalBooleanVariables, globalProgramInformation.globalIntegerVariables, globalProgramInformation.formulas, globalProgramInformation.modules, globalProgramInformation.actionIndices, globalProgramInformation.rewardModels, globalProgramInformation.labels, secondRun && !globalProgramInformation.hasInitialConstruct ? boost::none : boost::optional<storm::prism::InitialConstruct>(storm::prism::InitialConstruct(manager->boolean(false))), globalProgramInformation.systemCompositionConstruct, this->getFilename(), 1, this->secondRun);
         }
     } // namespace parser
 } // namespace storm
diff --git a/src/parser/PrismParser.h b/src/parser/PrismParser.h
index 44da8fc5a..84a5b601e 100644
--- a/src/parser/PrismParser.h
+++ b/src/parser/PrismParser.h
@@ -24,7 +24,7 @@ namespace storm {
         class GlobalProgramInformation {
         public:
             // Default construct the header information.
-            GlobalProgramInformation() : modelType(), constants(), formulas(), globalBooleanVariables(), globalIntegerVariables(), moduleToIndexMap(), actionIndices(), modules(), rewardModels(), labels(), hasInitialConstruct(false), initialConstruct(), currentCommandIndex(0), currentUpdateIndex(0) {
+            GlobalProgramInformation() : modelType(), constants(), formulas(), globalBooleanVariables(), globalIntegerVariables(), moduleToIndexMap(), actionIndices(), modules(), rewardModels(), labels(), hasInitialConstruct(false), initialConstruct(), systemCompositionConstruct(boost::none), currentCommandIndex(0), currentUpdateIndex(0) {
                 // Map the empty action to index 0.
                 actionIndices.emplace("", 0);
             }
@@ -42,6 +42,7 @@ namespace storm {
             std::vector<storm::prism::Label> labels;
             bool hasInitialConstruct;
             storm::prism::InitialConstruct initialConstruct;
+            boost::optional<storm::prism::SystemCompositionConstruct> systemCompositionConstruct;
             
             // Counters to provide unique indexing for commands and updates.
             uint_fast64_t currentCommandIndex;
@@ -206,6 +207,20 @@ namespace storm {
             // Rules for initial states expression.
             qi::rule<Iterator, qi::unused_type(GlobalProgramInformation&), Skipper> initialStatesConstruct;
             
+            // Rules for the system composition.
+            qi::rule<Iterator, qi::unused_type(GlobalProgramInformation&), Skipper> systemCompositionConstruct;
+            qi::rule<Iterator, std::shared_ptr<storm::prism::Composition>(), Skipper> parallelComposition;
+            qi::rule<Iterator, qi::unused_type(), Skipper> synchronizingParallelComposition;
+            qi::rule<Iterator, qi::unused_type(), Skipper> interleavingParallelComposition;
+            qi::rule<Iterator, std::set<std::string>(), Skipper> restrictedParallelComposition;
+            qi::rule<Iterator, std::shared_ptr<storm::prism::Composition>(), Skipper> hidingOrRenamingComposition;
+            qi::rule<Iterator, std::shared_ptr<storm::prism::Composition>(), Skipper> hidingComposition;
+            qi::rule<Iterator, std::shared_ptr<storm::prism::Composition>(), Skipper> renamingComposition;
+            qi::rule<Iterator, std::shared_ptr<storm::prism::Composition>(), Skipper> atomicComposition;
+            qi::rule<Iterator, std::shared_ptr<storm::prism::Composition>(), Skipper> moduleComposition;
+            qi::rule<Iterator, std::set<std::string>(), Skipper> actionNameList;
+            qi::rule<Iterator, std::map<std::string, std::string>(), Skipper> actionRenamingList;
+
             // Rules for label definitions.
             qi::rule<Iterator, storm::prism::Label(), Skipper> labelDefinition;
             
@@ -227,7 +242,16 @@ namespace storm {
             // Helper methods used in the grammar.
             bool isValidIdentifier(std::string const& identifier);
             bool addInitialStatesConstruct(storm::expressions::Expression initialStatesExpression, GlobalProgramInformation& globalProgramInformation);
+            bool addSystemCompositionConstruct(std::shared_ptr<storm::prism::Composition> const& composition, GlobalProgramInformation& globalProgramInformation);
+            
             
+            std::shared_ptr<storm::prism::Composition> createModuleComposition(std::string const& moduleName) const;
+            std::shared_ptr<storm::prism::Composition> createRenamingComposition(std::shared_ptr<storm::prism::Composition> const& subcomposition, std::map<std::string, std::string> const& renaming) const;
+            std::shared_ptr<storm::prism::Composition> createHidingComposition(std::shared_ptr<storm::prism::Composition> const& subcomposition, std::set<std::string> const& actionsToHide) const;
+            std::shared_ptr<storm::prism::Composition> createSynchronizingParallelComposition(std::shared_ptr<storm::prism::Composition> const& left, std::shared_ptr<storm::prism::Composition> const& right) const;
+            std::shared_ptr<storm::prism::Composition> createInterleavingParallelComposition(std::shared_ptr<storm::prism::Composition> const& left, std::shared_ptr<storm::prism::Composition> const& right) const;
+            std::shared_ptr<storm::prism::Composition> createRestrictedParallelComposition(std::shared_ptr<storm::prism::Composition> const& left, std::set<std::string> const& synchronizingActions, std::shared_ptr<storm::prism::Composition> const& right) const;
+
             storm::prism::Constant createUndefinedBooleanConstant(std::string const& newConstant) const;
             storm::prism::Constant createUndefinedIntegerConstant(std::string const& newConstant) const;
             storm::prism::Constant createUndefinedDoubleConstant(std::string const& newConstant) const;
diff --git a/src/solver/GmmxxMinMaxLinearEquationSolver.cpp b/src/solver/GmmxxMinMaxLinearEquationSolver.cpp
index ece0c241e..e616f8d62 100644
--- a/src/solver/GmmxxMinMaxLinearEquationSolver.cpp
+++ b/src/solver/GmmxxMinMaxLinearEquationSolver.cpp
@@ -51,7 +51,7 @@ namespace storm {
 
 				// Proceed with the iterations as long as the method did not converge or reach the user-specified maximum number
 				// of iterations.
-				while (!converged && iterations < this->maximalNumberOfIterations && !(this->hasCustomTerminationCondition() && this->getTerminationCondition().terminateNow(*currentX))) {
+				while (!converged && iterations < this->maximalNumberOfIterations) {
 					// Compute x' = A*x + b.
 					gmm::mult(*gmmxxMatrix, *currentX, *multiplyResult);
 					gmm::add(b, *multiplyResult);
@@ -60,7 +60,7 @@ namespace storm {
 					storm::utility::vector::reduceVectorMinOrMax(dir, *multiplyResult, *newX, rowGroupIndices);
 					
 					// Determine whether the method converged.
-					converged = storm::utility::vector::equalModuloPrecision(*currentX, *newX, this->precision, this->relative);
+					converged = storm::utility::vector::equalModuloPrecision(*currentX, *newX, this->precision, this->relative) || (this->hasCustomTerminationCondition() && this->getTerminationCondition().terminateNow(*newX));
 
 					// Update environment variables.
 					std::swap(currentX, newX);
diff --git a/src/storage/BitVectorHashMap.h b/src/storage/BitVectorHashMap.h
index cda4a1fde..fc86fb14e 100644
--- a/src/storage/BitVectorHashMap.h
+++ b/src/storage/BitVectorHashMap.h
@@ -14,7 +14,7 @@ namespace storm {
          * queries and insertions are supported. Also, the keys must be bit vectors with a length that is a multiple of
          * 64.
          */
-        template<class ValueType, class Hash1 = std::hash<storm::storage::BitVector>, class Hash2 = storm::storage::NonZeroBitVectorHash>
+        template<typename ValueType, typename Hash1 = std::hash<storm::storage::BitVector>, class Hash2 = storm::storage::NonZeroBitVectorHash>
         class BitVectorHashMap {
         public:
             class BitVectorHashMapIterator {
diff --git a/src/storage/dd/Add.cpp b/src/storage/dd/Add.cpp
index 40223da75..bcff0e3da 100644
--- a/src/storage/dd/Add.cpp
+++ b/src/storage/dd/Add.cpp
@@ -112,7 +112,6 @@ namespace storm {
         template<DdType LibraryType, typename ValueType>
         Bdd<LibraryType> Add<LibraryType, ValueType>::greaterOrEqual(Add<LibraryType, ValueType> const& other) const {
             return Bdd<LibraryType>(this->getDdManager(), internalAdd.greaterOrEqual(other), Dd<LibraryType>::joinMetaVariables(*this, other));
-
         }
 
         template<DdType LibraryType, typename ValueType>
@@ -129,7 +128,6 @@ namespace storm {
         template<DdType LibraryType, typename ValueType>
         Add<LibraryType, ValueType> Add<LibraryType, ValueType>::logxy(Add<LibraryType, ValueType> const& other) const {
             return Add<LibraryType, ValueType>(this->getDdManager(), internalAdd.logxy(other), Dd<LibraryType>::joinMetaVariables(*this, other));
-
         }
         
         template<DdType LibraryType, typename ValueType>
diff --git a/src/storage/dd/Dd.h b/src/storage/dd/Dd.h
index 30a0c3b97..18605c259 100644
--- a/src/storage/dd/Dd.h
+++ b/src/storage/dd/Dd.h
@@ -109,14 +109,6 @@ namespace storm {
              */
             std::set<storm::expressions::Variable>& getContainedMetaVariables();
             
-        protected:
-            /*!
-             * Retrieves the (sorted) list of the variable indices of DD variables contained in this DD.
-             *
-             * @return The sorted list of variable indices.
-             */
-            std::vector<uint_fast64_t> getSortedVariableIndices() const;
-            
             /*!
              * Adds the given set of meta variables to the DD.
              *
@@ -145,6 +137,14 @@ namespace storm {
              */
             void removeMetaVariables(std::set<storm::expressions::Variable> const& metaVariables);
             
+        protected:
+            /*!
+             * Retrieves the (sorted) list of the variable indices of DD variables contained in this DD.
+             *
+             * @return The sorted list of variable indices.
+             */
+            std::vector<uint_fast64_t> getSortedVariableIndices() const;
+            
             /*!
              * Creates a DD with the given manager and meta variables.
              *
diff --git a/src/storage/dd/DdManager.cpp b/src/storage/dd/DdManager.cpp
index 9281a0a33..74112d393 100644
--- a/src/storage/dd/DdManager.cpp
+++ b/src/storage/dd/DdManager.cpp
@@ -110,10 +110,15 @@ namespace storm {
             STORM_LOG_THROW(!this->hasMetaVariable(name), storm::exceptions::InvalidArgumentException, "A meta variable '" << name << "' already exists.");
             
             // Check that the range is legal.
-            STORM_LOG_THROW(high != low, storm::exceptions::InvalidArgumentException, "Range of meta variable must be at least 2 elements.");
+            STORM_LOG_THROW(high >= low, storm::exceptions::InvalidArgumentException, "Illegal empty range for meta variable.");
             
             std::size_t numberOfBits = static_cast<std::size_t>(std::ceil(std::log2(high - low + 1)));
             
+            // For the case where low and high coincide, we need to have a single bit.
+            if (numberOfBits == 0) {
+                ++numberOfBits;
+            }
+            
             storm::expressions::Variable unprimed = manager->declareBitVectorVariable(name, numberOfBits);
             storm::expressions::Variable primed = manager->declareBitVectorVariable(name + "'", numberOfBits);
             
diff --git a/src/storage/expressions/Expression.cpp b/src/storage/expressions/Expression.cpp
index bc539c795..d3121032c 100644
--- a/src/storage/expressions/Expression.cpp
+++ b/src/storage/expressions/Expression.cpp
@@ -161,7 +161,14 @@ namespace storm {
         boost::any Expression::accept(ExpressionVisitor& visitor) const {
             return this->getBaseExpression().accept(visitor);
         }
-        
+
+        bool Expression::isInitialized() const {
+            if(this->getBaseExpressionPointer()) {
+                return true;
+            }
+            return false;
+        }
+
         std::string Expression::toString() const {
             std::stringstream stream;
             stream << *this;
@@ -229,7 +236,7 @@ namespace storm {
                 return Expression(std::shared_ptr<BaseExpression>(new BinaryBooleanFunctionExpression(first.getBaseExpression().getManager(), first.getType().logicalConnective(second.getType()), first.getBaseExpressionPointer(), second.getBaseExpressionPointer(), BinaryBooleanFunctionExpression::OperatorType::Xor)));
             }
         }
-        
+
         Expression operator>(Expression const& first, Expression const& second) {
             assertSameManager(first.getBaseExpression(), second.getBaseExpression());
             return Expression(std::shared_ptr<BaseExpression>(new BinaryRelationExpression(first.getBaseExpression().getManager(), first.getType().numericalComparison(second.getType()), first.getBaseExpressionPointer(), second.getBaseExpressionPointer(), BinaryRelationExpression::RelationType::Greater)));
@@ -275,6 +282,11 @@ namespace storm {
             assertSameManager(first.getBaseExpression(), second.getBaseExpression());
             return Expression(std::shared_ptr<BaseExpression>(new BinaryBooleanFunctionExpression(first.getBaseExpression().getManager(), first.getType().logicalConnective(second.getType()), first.getBaseExpressionPointer(), second.getBaseExpressionPointer(), BinaryBooleanFunctionExpression::OperatorType::Iff)));
         }
+
+        Expression xclusiveor(Expression const& first, Expression const& second) {
+            assertSameManager(first.getBaseExpression(), second.getBaseExpression());
+            return Expression(std::shared_ptr<BaseExpression>(new BinaryBooleanFunctionExpression(first.getBaseExpression().getManager(), first.getType().logicalConnective(second.getType()), first.getBaseExpressionPointer(), second.getBaseExpressionPointer(), BinaryBooleanFunctionExpression::OperatorType::Xor)));
+        }
         
         Expression floor(Expression const& first) {
             STORM_LOG_THROW(first.hasNumericalType(), storm::exceptions::InvalidTypeException, "Operator 'floor' requires numerical operand.");
@@ -285,7 +297,24 @@ namespace storm {
             STORM_LOG_THROW(first.hasNumericalType(), storm::exceptions::InvalidTypeException, "Operator 'ceil' requires numerical operand.");
             return Expression(std::shared_ptr<BaseExpression>(new UnaryNumericalFunctionExpression(first.getBaseExpression().getManager(), first.getType().floorCeil(), first.getBaseExpressionPointer(), UnaryNumericalFunctionExpression::OperatorType::Ceil)));
         }
-        
+
+        Expression abs(Expression const& first) {
+            STORM_LOG_THROW(first.hasNumericalType(), storm::exceptions::InvalidTypeException, "Abs is only defined for numerical operands");
+            return ite(first < first.getManager().integer(0), -first, first);
+        }
+
+        Expression sign(Expression const& first) {
+            STORM_LOG_THROW(first.hasNumericalType(), storm::exceptions::InvalidTypeException, "Sign is only defined for numerical operands");
+            // TODO implement (via Ite?)
+            STORM_LOG_ERROR("Not yet implemented");
+        }
+
+        Expression truncate(Expression const& first) {
+            STORM_LOG_THROW(first.hasNumericalType(), storm::exceptions::InvalidTypeException, "Truncate is only defined for numerical operands");
+            // TODO implement (via Ite?)
+            STORM_LOG_ERROR("Not yet implemented");
+        }
+
         Expression disjunction(std::vector<storm::expressions::Expression> const& expressions) {
             return apply(expressions, [] (Expression const& e1, Expression const& e2) { return e1 || e2; });
         }
@@ -311,7 +340,8 @@ namespace storm {
             
             return result;
         }
-        
+
+
 
     }
 }
diff --git a/src/storage/expressions/Expression.h b/src/storage/expressions/Expression.h
index 0c18f122a..11cfb2350 100644
--- a/src/storage/expressions/Expression.h
+++ b/src/storage/expressions/Expression.h
@@ -40,6 +40,10 @@ namespace storm {
             friend Expression ite(Expression const& condition, Expression const& thenExpression, Expression const& elseExpression);
             friend Expression implies(Expression const& first, Expression const& second);
             friend Expression iff(Expression const& first, Expression const& second);
+            friend Expression xclusiveor(Expression const& first, Expression const& second);
+            friend Expression abs(Expression const& first);
+            friend Expression truncate(Expression const& first);
+            friend Expression sign(Expression const& first);
             friend Expression floor(Expression const& first);
             friend Expression ceil(Expression const& first);
             friend Expression minimum(Expression const& first, Expression const& second);
@@ -298,7 +302,12 @@ namespace storm {
              * @return The string representation of the expression.
              */
             std::string toString() const;
-            
+
+            /**
+             * Checks whether the object encapsulates a base-expression.
+             */
+            bool isInitialized() const;
+
             friend std::ostream& operator<<(std::ostream& stream, Expression const& expression);
 
         private:
@@ -332,6 +341,10 @@ namespace storm {
         Expression ite(Expression const& condition, Expression const& thenExpression, Expression const& elseExpression);
         Expression implies(Expression const& first, Expression const& second);
         Expression iff(Expression const& first, Expression const& second);
+        Expression xclusiveor(Expression const& first, Expression const& second);
+        Expression abs(Expression const& first);
+        Expression truncate(Expression const& first);
+        Expression sign(Expression const& first);
         Expression floor(Expression const& first);
         Expression ceil(Expression const& first);
         Expression minimum(Expression const& first, Expression const& second);
diff --git a/src/storage/jani/Action.cpp b/src/storage/jani/Action.cpp
new file mode 100644
index 000000000..818a11a84
--- /dev/null
+++ b/src/storage/jani/Action.cpp
@@ -0,0 +1,14 @@
+#include "src/storage/jani/Action.h"
+
+namespace storm {
+    namespace jani {
+        Action::Action(std::string const& name) : name(name) {
+            // Intentionally left empty.
+        }
+
+        std::string const& Action::getName() const {
+            return this->name;
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Action.h b/src/storage/jani/Action.h
new file mode 100644
index 000000000..5b9b2567f
--- /dev/null
+++ b/src/storage/jani/Action.h
@@ -0,0 +1,25 @@
+#include <string>
+
+#pragma once
+namespace storm {
+    namespace jani {
+        class Action {
+        public:
+            /**
+             * Creates an action
+             * @param name name of the action
+             */
+            Action(std::string const& name);
+
+            /**
+             * Returns the name of the location.
+             */
+            std::string const& getName() const;
+
+        private:
+            /// The name of the action.
+            std::string name;
+        };
+
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Assignment.cpp b/src/storage/jani/Assignment.cpp
new file mode 100644
index 000000000..cea88f23e
--- /dev/null
+++ b/src/storage/jani/Assignment.cpp
@@ -0,0 +1,28 @@
+#include "src/storage/jani/Assignment.h"
+
+namespace storm  {
+    namespace jani {
+        
+        Assignment::Assignment(storm::expressions::Variable const& variable, storm::expressions::Expression const& expression) : variable(variable), expression(expression) {
+            // Intentionally left empty.
+        }
+        
+        storm::expressions::Variable const& Assignment::getExpressionVariable() const {
+            return variable;
+        }
+        
+        storm::expressions::Expression const& Assignment::getAssignedExpression() const {
+            return expression;
+        }
+        
+        void Assignment::setAssignedExpression(storm::expressions::Expression const& expression) {
+            this->expression = expression;
+        }
+        
+        std::ostream& operator<<(std::ostream& stream, Assignment const& assignment) {
+            stream << assignment.getExpressionVariable().getName() << " := " << assignment.getAssignedExpression();
+            return stream;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Assignment.h b/src/storage/jani/Assignment.h
new file mode 100644
index 000000000..58c078d20
--- /dev/null
+++ b/src/storage/jani/Assignment.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "src/storage/expressions/Variable.h"
+#include "src/storage/expressions/Expression.h"
+
+namespace storm {
+    namespace jani {
+        
+        class Assignment {
+        public:
+            /*!
+             * Creates an assignment of the given expression to the given variable.
+             */
+            Assignment(storm::expressions::Variable const& variable, storm::expressions::Expression const& expression);
+            
+            /*!
+             * Retrieves the expression variable that is written in this assignment.
+             */
+            storm::expressions::Variable const& getExpressionVariable() const;
+            
+            /*!
+             * Retrieves the expression whose value is assigned to the target variable.
+             */
+            storm::expressions::Expression const& getAssignedExpression() const;
+            
+            /*!
+             * Sets a new expression that is assigned to the target variable.
+             */
+            void setAssignedExpression(storm::expressions::Expression const& expression);
+
+            friend std::ostream& operator<<(std::ostream& stream, Assignment const& assignment);
+            
+        private:
+            // The variable being assigned.
+            storm::expressions::Variable variable;
+            
+            // The expression that is being assigned to the variable.
+            storm::expressions::Expression expression;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Automaton.cpp b/src/storage/jani/Automaton.cpp
new file mode 100644
index 000000000..0165351be
--- /dev/null
+++ b/src/storage/jani/Automaton.cpp
@@ -0,0 +1,326 @@
+#include "src/storage/jani/Automaton.h"
+
+#include "src/utility/macros.h"
+#include "src/exceptions/WrongFormatException.h"
+#include "src/exceptions/InvalidArgumentException.h"
+
+namespace storm {
+    namespace jani {
+        
+        namespace detail {
+            Edges::Edges(iterator it, iterator ite) : it(it), ite(ite) {
+                // Intentionally left empty.
+            }
+            
+            Edges::iterator Edges::begin() const {
+                return it;
+            }
+            
+            Edges::iterator Edges::end() const {
+                return ite;
+            }
+            
+            bool Edges::empty() const {
+                return it == ite;
+            }
+            
+            std::size_t Edges::size() const {
+                return std::distance(it, ite);
+            }
+            
+            ConstEdges::ConstEdges(const_iterator it, const_iterator ite) : it(it), ite(ite) {
+                // Intentionally left empty.
+            }
+            
+            ConstEdges::const_iterator ConstEdges::begin() const {
+                return it;
+            }
+            
+            ConstEdges::const_iterator ConstEdges::end() const {
+                return ite;
+            }
+
+            bool ConstEdges::empty() const {
+                return it == ite;
+            }
+
+            std::size_t ConstEdges::size() const {
+                return std::distance(it, ite);
+            }
+        }
+        
+        Automaton::Automaton(std::string const& name) : name(name) {
+            // Add a sentinel element to the mapping from locations to starting indices.
+            locationToStartingIndex.push_back(0);
+        }
+        
+        std::string const& Automaton::getName() const {
+            return name;
+        }
+        
+        void Automaton::addBooleanVariable(BooleanVariable const& variable) {
+            variables.addBooleanVariable(variable);
+        }
+        
+        void Automaton::addBoundedIntegerVariable(BoundedIntegerVariable const& variable) {
+            variables.addBoundedIntegerVariable(variable);
+        }
+
+        void Automaton::addUnboundedIntegerVariable(UnboundedIntegerVariable const& variable) {
+            variables.addUnboundedIntegerVariable(variable);
+        }
+
+        VariableSet& Automaton::getVariables() {
+            return variables;
+        }
+
+        VariableSet const& Automaton::getVariables() const {
+            return variables;
+        }
+        
+        bool Automaton::hasLocation(std::string const& name) const {
+            return locationToIndex.find(name) != locationToIndex.end();
+        }
+        
+        std::vector<Location> const& Automaton::getLocations() const {
+            return locations;
+        }
+        
+        Location const& Automaton::getLocation(uint64_t index) const {
+            return locations[index];
+        }
+        
+        uint64_t Automaton::addLocation(Location const& location) {
+            STORM_LOG_THROW(!this->hasLocation(location.getName()), storm::exceptions::WrongFormatException, "Cannot add location with name '" << location.getName() << "', because a location with this name already exists.");
+            locationToIndex.emplace(location.getName(), locations.size());
+            locations.push_back(location);
+            locationToStartingIndex.push_back(edges.size());
+            return locations.size() - 1;
+        }
+
+        uint64_t Automaton::getLocationIndex(std::string const& name) const {
+            assert(hasLocation(name));
+            return locationToIndex.at(name);
+        }
+
+        void Automaton::addInitialLocation(std::string const& name) {
+            auto it = locationToIndex.find(name);
+            STORM_LOG_THROW(it != locationToIndex.end(), storm::exceptions::InvalidArgumentException, "Cannot make unknown location '" << name << "' the initial location.");
+            return addInitialLocation(it->second);
+        }
+        
+        void Automaton::addInitialLocation(uint64_t index) {
+            STORM_LOG_THROW(index < locations.size(), storm::exceptions::InvalidArgumentException, "Cannot make location with index " << index << " initial: out of bounds.");
+            initialLocationIndices.insert(index);
+        }
+        
+        std::set<uint64_t> const& Automaton::getInitialLocationIndices() const {
+            return initialLocationIndices;
+        }
+
+        Automaton::Edges Automaton::getEdgesFromLocation(std::string const& name) {
+            auto it = locationToIndex.find(name);
+            STORM_LOG_THROW(it != locationToIndex.end(), storm::exceptions::InvalidArgumentException, "Cannot retrieve edges from unknown location '" << name << ".");
+            return getEdgesFromLocation(it->second);
+        }
+        
+        Automaton::Edges Automaton::getEdgesFromLocation(uint64_t index) {
+            auto it = edges.begin();
+            std::advance(it, locationToStartingIndex[index]);
+            auto ite = edges.begin();
+            std::advance(ite, locationToStartingIndex[index + 1]);
+            return Edges(it, ite);
+        }
+        
+        Automaton::ConstEdges Automaton::getEdgesFromLocation(std::string const& name) const {
+            auto it = locationToIndex.find(name);
+            STORM_LOG_THROW(it != locationToIndex.end(), storm::exceptions::InvalidArgumentException, "Cannot retrieve edges from unknown location '" << name << ".");
+            return getEdgesFromLocation(it->second);
+        }
+        
+        Automaton::ConstEdges Automaton::getEdgesFromLocation(uint64_t index) const {
+            auto it = edges.begin();
+            std::advance(it, locationToStartingIndex[index]);
+            auto ite = edges.begin();
+            std::advance(ite, locationToStartingIndex[index + 1]);
+            return ConstEdges(it, ite);
+        }
+        
+        Automaton::Edges Automaton::getEdgesFromLocation(uint64_t locationIndex, uint64_t actionIndex) {
+            typedef std::vector<Edge>::iterator ForwardIt;
+
+            // Perform binary search for start of edges with the given action index.
+            auto first = edges.begin();
+            std::advance(first, locationToStartingIndex[locationIndex]);
+            auto last = edges.begin();
+            std::advance(last, locationToStartingIndex[locationIndex + 1]);
+            typename std::iterator_traits<ForwardIt>::difference_type count, step;
+            count = std::distance(first, last);
+            
+            ForwardIt it1;
+            while (count > 0) {
+                it1 = first;
+                step = count / 2;
+                std::advance(it1, step);
+                if (it1->getActionIndex() < actionIndex) {
+                    first = ++it1;
+                    count -= step + 1;
+                }
+                else {
+                    count = step;
+                }
+            }
+            it1 = first;
+
+            // If there is no such edge, we can return now.
+            if (it1 != last && it1->getActionIndex() > actionIndex) {
+                return Edges(last, last);
+            }
+            
+            // Otherwise, perform a binary search for the end of the edges with the given action index.
+            count = std::distance(it1,last);
+            
+            ForwardIt it2;
+            while (count > 0) {
+                it2 = it1;
+                step = count / 2;
+                std::advance(it2, step);
+                if (!(actionIndex < it2->getActionIndex())) {
+                    first = ++it2;
+                    count -= step + 1;
+                } else count = step;
+            }
+            it2 = first;
+            
+            return Edges(it1, it2);
+        }
+        
+        Automaton::ConstEdges Automaton::getEdgesFromLocation(uint64_t locationIndex, uint64_t actionIndex) const {
+            typedef std::vector<Edge>::const_iterator ForwardIt;
+            
+            // Perform binary search for start of edges with the given action index.
+            auto first = edges.begin();
+            std::advance(first, locationToStartingIndex[locationIndex]);
+            auto last = edges.begin();
+            std::advance(last, locationToStartingIndex[locationIndex + 1]);
+            typename std::iterator_traits<ForwardIt>::difference_type count, step;
+            count = std::distance(first, last);
+            
+            ForwardIt it1;
+            while (count > 0) {
+                it1 = first;
+                step = count / 2;
+                std::advance(it1, step);
+                if (it1->getActionIndex() < actionIndex) {
+                    first = ++it1;
+                    count -= step + 1;
+                }
+                else {
+                    count = step;
+                }
+            }
+            it1 = first;
+            
+            // If there is no such edge, we can return now.
+            if (it1 != last && it1->getActionIndex() > actionIndex) {
+                return ConstEdges(last, last);
+            }
+            
+            // Otherwise, perform a binary search for the end of the edges with the given action index.
+            count = std::distance(it1,last);
+            
+            ForwardIt it2;
+            while (count > 0) {
+                it2 = first;
+                step = count / 2;
+                std::advance(it2, step);
+                if (!(actionIndex < it2->getActionIndex())) {
+                    first = ++it2;
+                    count -= step + 1;
+                } else count = step;
+            }
+            it2 = first;
+            
+            return ConstEdges(it1, it2);
+        }
+        
+        void Automaton::addEdge(Edge const& edge) {
+            STORM_LOG_THROW(edge.getSourceLocationIndex() < locations.size(), storm::exceptions::InvalidArgumentException, "Cannot add edge with unknown source location index '" << edge.getSourceLocationIndex() << "'.");
+            
+            // Find the right position for the edge and insert it properly.
+            auto posIt = edges.begin();
+            std::advance(posIt, locationToStartingIndex[edge.getSourceLocationIndex() + 1]);
+            edges.insert(posIt, edge);
+            
+            // Now update the starting indices of all subsequent locations.
+            for (uint64_t locationIndex = edge.getSourceLocationIndex() + 1; locationIndex < locationToStartingIndex.size(); ++locationIndex) {
+                ++locationToStartingIndex[locationIndex];
+            }
+            
+            // Sort all edges form the source location of the newly introduced edge by their action indices.
+            auto it = edges.begin();
+            std::advance(it, locationToStartingIndex[edge.getSourceLocationIndex()]);
+            auto ite = edges.begin();
+            std::advance(ite, locationToStartingIndex[edge.getSourceLocationIndex() + 1]);
+            std::sort(it, ite, [] (Edge const& a, Edge const& b) { return a.getActionIndex() < b.getActionIndex(); } );
+            
+            // Update the set of action indices of this automaton.
+            actionIndices.insert(edge.getActionIndex());
+        }
+        
+        std::vector<Edge>& Automaton::getEdges() {
+            return edges;
+        }
+        
+        std::vector<Edge> const& Automaton::getEdges() const {
+            return edges;
+        }
+        
+        std::set<uint64_t> Automaton::getActionIndices() const {
+            std::set<uint64_t> result;
+            for (auto const& edge : edges) {
+                result.insert(edge.getActionIndex());
+            }
+            return result;
+        }
+        
+        uint64_t Automaton::getNumberOfLocations() const {
+            return locations.size();
+        }
+        
+        uint64_t Automaton::getNumberOfEdges() const {
+            return edges.size();
+        }
+
+        bool Automaton::hasInitialStatesExpression() const {
+            return initialStatesExpression.isInitialized();
+        }
+        
+        storm::expressions::Expression const& Automaton::getInitialStatesExpression() const {
+            return initialStatesExpression;
+        }
+        
+        void Automaton::setInitialStatesExpression(storm::expressions::Expression const& initialStatesExpression) {
+            this->initialStatesExpression = initialStatesExpression;
+        }
+        
+        bool Automaton::hasEdgeLabeledWithActionIndex(uint64_t actionIndex) const {
+            return actionIndices.find(actionIndex) != actionIndices.end();
+        }
+        
+        std::vector<storm::expressions::Expression> Automaton::getAllRangeExpressions() const {
+            std::vector<storm::expressions::Expression> result;
+            for (auto const& variable : this->getVariables().getBoundedIntegerVariables()) {
+                result.push_back(variable.getRangeExpression());
+            }
+            return result;
+        }
+        
+        void Automaton::finalize(Model const& containingModel) {
+            for (auto& edge : edges) {
+                edge.finalize(containingModel);
+            }
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Automaton.h b/src/storage/jani/Automaton.h
new file mode 100644
index 000000000..49b5464eb
--- /dev/null
+++ b/src/storage/jani/Automaton.h
@@ -0,0 +1,293 @@
+#pragma once
+
+#include <string>
+#include <cstdint>
+#include <unordered_map>
+#include <boost/container/flat_set.hpp>
+
+#include "src/storage/jani/VariableSet.h"
+#include "src/storage/jani/Edge.h"
+#include "src/storage/jani/Location.h"
+
+namespace storm {
+    namespace jani {
+
+        class Automaton;
+        
+        namespace detail {
+            class Edges {
+            public:
+                typedef std::vector<Edge>::iterator iterator;
+                typedef std::vector<Edge>::const_iterator const_iterator;
+                
+                Edges(iterator it, iterator ite);
+                
+                /*!
+                 * Retrieves an iterator to the edges.
+                 */
+                iterator begin() const;
+                
+                /*!
+                 * Retrieves an end iterator to the edges.
+                 */
+                iterator end() const;
+                
+                /*!
+                 * Determines whether this set of edges is empty.
+                 */
+                bool empty() const;
+                
+                /*!
+                 * Retrieves the number of edges.
+                 */
+                std::size_t size() const;
+                
+            private:
+                iterator it;
+                iterator ite;
+            };
+            
+            class ConstEdges {
+            public:
+                typedef std::vector<Edge>::iterator iterator;
+                typedef std::vector<Edge>::const_iterator const_iterator;
+                
+                ConstEdges(const_iterator it, const_iterator ite);
+                
+                /*!
+                 * Retrieves an iterator to the edges.
+                 */
+                const_iterator begin() const;
+                
+                /*!
+                 * Retrieves an end iterator to the edges.
+                 */
+                const_iterator end() const;
+
+                /*!
+                 * Determines whether this set of edges is empty.
+                 */
+                bool empty() const;
+
+                /*!
+                 * Retrieves the number of edges.
+                 */
+                std::size_t size() const;
+                
+            private:
+                const_iterator it;
+                const_iterator ite;
+            };
+        }
+        
+        class Model;
+        
+        class Automaton {
+        public:
+            friend class detail::Edges;
+            friend class detail::ConstEdges;
+            
+            typedef detail::Edges Edges;
+            typedef detail::ConstEdges ConstEdges;
+            
+            /*!
+             * Creates an empty automaton.
+             */
+            Automaton(std::string const& name);
+            
+            /*!
+             * Retrieves the name of the automaton.
+             */
+            std::string const& getName() const;
+            
+            /*!
+             * Adds the given boolean variable to this automaton.
+             */
+            void addBooleanVariable(BooleanVariable const& variable);
+            
+            /*!
+             * Adds the given bounded integer variable to this automaton.
+             */
+            void addBoundedIntegerVariable(BoundedIntegerVariable const& variable);
+            
+            /*!
+             * Adds the given unbounded integer variable to this automaton.
+             */
+            void addUnboundedIntegerVariable(UnboundedIntegerVariable const& variable);
+
+            /*!
+             * Retrieves the variables of this automaton.
+             */
+            VariableSet& getVariables();
+
+            /*!
+             * Retrieves the variables of this automaton.
+             */
+            VariableSet const& getVariables() const;
+            
+            /*!
+             * Retrieves whether the automaton has a location with the given name.
+             */
+            bool hasLocation(std::string const& name) const;
+
+            /*!
+             * Get location id for a location with a given name.
+             * Yields undefined behaviour if no such location exists;
+             *
+             * @name the name of the location
+             */
+            uint64_t getLocationIndex(std::string const& name) const;
+            
+            /*!
+             * Retrieves the locations of the automaton.
+             */
+            std::vector<Location> const& getLocations() const;
+            
+            /*!
+             * Retrieves the location with the given index.
+             */
+            Location const& getLocation(uint64_t index) const;
+            
+            /*!
+             * Adds the given location to the automaton.
+             */
+            uint64_t addLocation(Location const& location);
+            
+            /*!
+             * Adds the location with the given name to the initial locations.
+             */
+            void addInitialLocation(std::string const& name);
+
+            /*!
+             * Adds the location with the given index to the initial locations.
+             */
+            void addInitialLocation(uint64_t index);
+            
+            /*!
+             * Retrieves the indices of the initial locations.
+             */
+            std::set<uint64_t> const& getInitialLocationIndices() const;
+
+            /*!
+             * Retrieves the edges of the location with the given name.
+             */
+            Edges getEdgesFromLocation(std::string const& name);
+            
+            /*!
+             * Retrieves the edges of the location with the given index.
+             */
+            Edges getEdgesFromLocation(uint64_t index);
+            
+            /*!
+             * Retrieves the edges of the location with the given name.
+             */
+            ConstEdges getEdgesFromLocation(std::string const& name) const;
+
+            /*!
+             * Retrieves the edges of the location with the given index.
+             */
+            ConstEdges getEdgesFromLocation(uint64_t index) const;
+            
+            /*!
+             * Retrieves the edges of the location with the given index labeled with the given action index.
+             */
+            Edges getEdgesFromLocation(uint64_t locationIndex, uint64_t actionIndex);
+            
+            /*!
+             * Retrieves the edges of the location with the given index.
+             */
+            ConstEdges getEdgesFromLocation(uint64_t locationIndex, uint64_t actionIndex) const;
+            
+            /*!
+             * Adds an edge to the automaton.
+             */
+            void addEdge(Edge const& edge);
+            
+            /*!
+             * Retrieves the edges of the automaton.
+             */
+            std::vector<Edge>& getEdges();
+
+            /*!
+             * Retrieves the edges of the automaton.
+             */
+            std::vector<Edge> const& getEdges() const;
+
+            /*!
+             * Retrieves the set of action indices that are labels of edges of this automaton.
+             */
+            std::set<uint64_t> getActionIndices() const;
+            
+            /*!
+             * Retrieves the number of locations.
+             */
+            uint64_t getNumberOfLocations() const;
+
+            /*!
+             * Retrieves the number of edges.
+             */
+            uint64_t getNumberOfEdges() const;
+
+            /*!
+             * Retrieves whether there is an expression defining the legal initial values of the automaton's variables.
+             */
+            bool hasInitialStatesExpression() const;
+            
+            /*!
+             * Retrieves the expression defining the legal initial values of the automaton's variables.
+             */
+            storm::expressions::Expression const& getInitialStatesExpression() const;
+            
+            /*!
+             * Sets the expression defining the legal initial values of the automaton's variables.
+             */
+            void setInitialStatesExpression(storm::expressions::Expression const& initialStatesExpression);
+            
+            /*!
+             * Retrieves whether there is an edge labeled with the action with the given index in this automaton.
+             */
+            bool hasEdgeLabeledWithActionIndex(uint64_t actionIndex) const;
+            
+            /*!
+             * Retrieves a list of expressions that characterize the legal values of the variables in this automaton.
+             */
+            std::vector<storm::expressions::Expression> getAllRangeExpressions() const;
+            
+            /*!
+             * Finalizes the building of this automaton. Subsequent changes to the automaton require another call to this
+             * method. Note that this method is invoked by a call to <code>finalize</code> to the containing model.
+             */
+            void finalize(Model const& containingModel);
+            
+        private:
+            /// The name of the automaton.
+            std::string name;
+
+            /// The set of variables of this automaton.
+            VariableSet variables;
+            
+            /// The locations of the automaton.
+            std::vector<Location> locations;
+            
+            /// A mapping of location names to their indices.
+            std::unordered_map<std::string, uint64_t> locationToIndex;
+            
+            /// All edges of the automaton
+            std::vector<Edge> edges;
+            
+            /// A mapping from location indices to the starting indices. If l is mapped to i, it means that the edges
+            /// leaving location l start at index i of the edges vector.
+            std::vector<uint64_t> locationToStartingIndex;
+
+            /// The indices of the initial locations.
+            std::set<uint64_t> initialLocationIndices;
+            
+            /// The expression characterizing the legal initial values of the variables of the automaton.
+            storm::expressions::Expression initialStatesExpression;
+            
+            /// The set of action indices that label some action in this automaton.
+            std::set<uint64_t> actionIndices;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/AutomatonComposition.cpp b/src/storage/jani/AutomatonComposition.cpp
new file mode 100644
index 000000000..f8ca57212
--- /dev/null
+++ b/src/storage/jani/AutomatonComposition.cpp
@@ -0,0 +1,23 @@
+#include "src/storage/jani/AutomatonComposition.h"
+
+namespace storm {
+    namespace jani {
+        
+        AutomatonComposition::AutomatonComposition(std::string const& name) : name(name) {
+            // Intentionally left empty.
+        }
+        
+        boost::any AutomatonComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        std::string const& AutomatonComposition::getAutomatonName() const {
+            return name;
+        }
+        
+        void AutomatonComposition::write(std::ostream& stream) const {
+            stream << name;
+        }
+        
+    }
+}
diff --git a/src/storage/jani/AutomatonComposition.h b/src/storage/jani/AutomatonComposition.h
new file mode 100644
index 000000000..497a85e8e
--- /dev/null
+++ b/src/storage/jani/AutomatonComposition.h
@@ -0,0 +1,30 @@
+#pragma once
+
+#include "src/storage/jani/Composition.h"
+
+namespace storm {
+    namespace jani {
+        
+        class AutomatonComposition : public Composition {
+        public:
+            /*!
+             * Creates a reference to an automaton to be used in a composition.
+             */
+            AutomatonComposition(std::string const& name);
+            
+            /*!
+             * Retrieves the name of the automaton this composition element refers to.
+             */
+            std::string const& getAutomatonName() const;
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+            virtual void write(std::ostream& stream) const override;
+            
+        private:
+            // The name of the automaton this composition element refers to.
+            std::string name;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/BooleanVariable.cpp b/src/storage/jani/BooleanVariable.cpp
new file mode 100644
index 000000000..8f4f6f106
--- /dev/null
+++ b/src/storage/jani/BooleanVariable.cpp
@@ -0,0 +1,15 @@
+#include "src/storage/jani/BooleanVariable.h"
+
+namespace storm {
+    namespace jani {
+        
+        BooleanVariable::BooleanVariable(std::string const& name, storm::expressions::Variable const& variable) : Variable(name, variable) {
+            // Intentionally left empty.
+        }
+        
+        bool BooleanVariable::isBooleanVariable() const {
+            return true;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/BooleanVariable.h b/src/storage/jani/BooleanVariable.h
new file mode 100644
index 000000000..eacff6fb4
--- /dev/null
+++ b/src/storage/jani/BooleanVariable.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "src/storage/jani/Variable.h"
+
+namespace storm {
+    namespace jani {
+        
+        class BooleanVariable : public Variable {
+        public:
+            /*!
+             * Creates a boolean variable.
+             */
+            BooleanVariable(std::string const& name, storm::expressions::Variable const& variable);
+            
+            virtual bool isBooleanVariable() const override;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/BoundedIntegerVariable.cpp b/src/storage/jani/BoundedIntegerVariable.cpp
new file mode 100644
index 000000000..7ef1774fc
--- /dev/null
+++ b/src/storage/jani/BoundedIntegerVariable.cpp
@@ -0,0 +1,35 @@
+#include "src/storage/jani/BoundedIntegerVariable.h"
+
+namespace storm {
+    namespace jani {
+        
+        BoundedIntegerVariable::BoundedIntegerVariable(std::string const& name, storm::expressions::Variable const& variable, storm::expressions::Expression const& lowerBound, storm::expressions::Expression const& upperBound) : Variable(name, variable), lowerBound(lowerBound), upperBound(upperBound) {
+            // Intentionally left empty.
+        }
+        
+        storm::expressions::Expression const& BoundedIntegerVariable::getLowerBound() const {
+            return lowerBound;
+        }
+        
+        void BoundedIntegerVariable::setLowerBound(storm::expressions::Expression const& expression) {
+            this->lowerBound = expression;
+        }
+        
+        storm::expressions::Expression const& BoundedIntegerVariable::getUpperBound() const {
+            return upperBound;
+        }
+        
+        void BoundedIntegerVariable::setUpperBound(storm::expressions::Expression const& expression) {
+            this->upperBound = expression;
+        }
+        
+        storm::expressions::Expression BoundedIntegerVariable::getRangeExpression() const {
+            return this->getLowerBound() <= this->getExpressionVariable() && this->getExpressionVariable() <= this->getUpperBound();
+        }
+
+        bool BoundedIntegerVariable::isBoundedIntegerVariable() const {
+            return true;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/BoundedIntegerVariable.h b/src/storage/jani/BoundedIntegerVariable.h
new file mode 100644
index 000000000..bc2298d05
--- /dev/null
+++ b/src/storage/jani/BoundedIntegerVariable.h
@@ -0,0 +1,52 @@
+#pragma once
+
+#include "src/storage/jani/Variable.h"
+#include "src/storage/expressions/Expression.h"
+
+namespace storm {
+    namespace jani {
+        
+        class BoundedIntegerVariable : public Variable {
+        public:
+            /*!
+             * Creates a bounded integer variable.
+             */
+            BoundedIntegerVariable(std::string const& name, storm::expressions::Variable const& variable, storm::expressions::Expression const& lowerBound, storm::expressions::Expression const& upperBound);
+            
+            /*!
+             * Retrieves the expression defining the lower bound of the variable.
+             */
+            storm::expressions::Expression const& getLowerBound() const;
+
+            /*!
+             * Sets a new lower bound of the variable.
+             */
+            void setLowerBound(storm::expressions::Expression const& expression);
+            
+            /*!
+             * Retrieves the expression defining the upper bound of the variable.
+             */
+            storm::expressions::Expression const& getUpperBound() const;
+
+            /*!
+             * Sets a new upper bound of the variable.
+             */
+            void setUpperBound(storm::expressions::Expression const& expression);
+
+            /*!
+             * Retrieves an expression characterizing the legal range of the bounded integer variable.
+             */
+            storm::expressions::Expression getRangeExpression() const;
+            
+            virtual bool isBoundedIntegerVariable() const override;
+
+        private:
+            // The expression defining the lower bound of the variable.
+            storm::expressions::Expression lowerBound;
+            
+            // The expression defining the upper bound of the variable.
+            storm::expressions::Expression upperBound;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Composition.cpp b/src/storage/jani/Composition.cpp
new file mode 100644
index 000000000..7059c7c85
--- /dev/null
+++ b/src/storage/jani/Composition.cpp
@@ -0,0 +1,12 @@
+#include "src/storage/jani/Composition.h"
+
+namespace storm {
+    namespace jani {
+        
+        std::ostream& operator<<(std::ostream& stream, Composition const& composition) {
+            composition.write(stream);
+            return stream;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Composition.h b/src/storage/jani/Composition.h
new file mode 100644
index 000000000..e1f1f85b6
--- /dev/null
+++ b/src/storage/jani/Composition.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include <ostream>
+
+#include "src/storage/jani/CompositionVisitor.h"
+
+namespace storm {
+    namespace jani {
+        
+        class Composition {
+        public:
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const = 0;
+            
+            virtual void write(std::ostream& stream) const = 0;
+            
+            friend std::ostream& operator<<(std::ostream& stream, Composition const& composition);
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/CompositionInformationVisitor.cpp b/src/storage/jani/CompositionInformationVisitor.cpp
new file mode 100644
index 000000000..d6b661b53
--- /dev/null
+++ b/src/storage/jani/CompositionInformationVisitor.cpp
@@ -0,0 +1,120 @@
+#include "src/storage/jani/CompositionInformationVisitor.h"
+
+#include "src/storage/jani/Model.h"
+#include "src/storage/jani/Compositions.h"
+
+namespace storm {
+    namespace jani {
+        
+        CompositionInformation::CompositionInformation() : automatonNameToMultiplicity(), nonsilentActions(), renameComposition(false), restrictedParallelComposition(false) {
+            // Intentionally left empty.
+        }
+        
+        CompositionInformation::CompositionInformation(std::map<std::string, uint64_t> const& automatonNameToMultiplicity, std::set<std::string> const& nonsilentActions, bool containsRenameComposition, bool containsRestrictedParallelComposition) : automatonNameToMultiplicity(automatonNameToMultiplicity), nonsilentActions(nonsilentActions), renameComposition(containsRenameComposition), restrictedParallelComposition(containsRestrictedParallelComposition) {
+            // Intentionally left empty.
+        }
+        
+        void CompositionInformation::increaseAutomatonMultiplicity(std::string const& automatonName, uint64_t count) {
+            automatonNameToMultiplicity[automatonName] += count;
+        }
+        
+        void CompositionInformation::addNonsilentAction(std::string const& actionName) {
+            nonsilentActions.insert(actionName);
+        }
+        
+        std::set<std::string> const& CompositionInformation::getNonsilentActions() const {
+            return nonsilentActions;
+        }
+        
+        std::set<std::string> CompositionInformation::renameNonsilentActions(std::set<std::string> const& nonsilentActions, std::map<std::string, boost::optional<std::string>> const& renaming) {
+            std::set<std::string> newNonsilentActions;
+            for (auto const& entry : nonsilentActions) {
+                auto it = renaming.find(entry);
+                if (it != renaming.end()) {
+                    if (it->second) {
+                        newNonsilentActions.insert(it->second.get());
+                    }
+                } else {
+                    newNonsilentActions.insert(entry);
+                }
+            }
+            return newNonsilentActions;
+        }
+        
+        void CompositionInformation::setContainsRenameComposition() {
+            renameComposition = true;
+        }
+        
+        bool CompositionInformation::containsRenameComposition() const {
+            return renameComposition;
+        }
+        
+        void CompositionInformation::setContainsRestrictedParallelComposition() {
+            restrictedParallelComposition = true;
+        }
+        
+        bool CompositionInformation::containsRestrictedParallelComposition() const {
+            return restrictedParallelComposition;
+        }
+        
+        std::map<std::string, uint64_t> CompositionInformation::joinMultiplicityMaps(std::map<std::string, uint64_t> const& first, std::map<std::string, uint64_t> const& second) {
+            std::map<std::string, uint64_t> result = first;
+            for (auto const& element : second) {
+                result[element.first] += element.second;
+            }
+            return result;
+        }
+        
+        std::map<std::string, uint64_t> const& CompositionInformation::getAutomatonToMultiplicityMap() const {
+            return automatonNameToMultiplicity;
+        }
+        
+        CompositionInformation CompositionInformationVisitor::getInformation(Composition const& composition, Model const& model) {
+            return boost::any_cast<CompositionInformation>(composition.accept(*this, model));
+        }
+        
+        boost::any CompositionInformationVisitor::visit(AutomatonComposition const& composition, boost::any const& data) {
+            Model const& model = boost::any_cast<Model const&>(data);
+            Automaton const& automaton = model.getAutomaton(composition.getAutomatonName());
+            
+            CompositionInformation result;
+            result.increaseAutomatonMultiplicity(composition.getAutomatonName());
+            for (auto const& actionIndex : automaton.getActionIndices()) {
+                if (actionIndex != model.getSilentActionIndex()) {
+                    result.addNonsilentAction(model.getAction(actionIndex).getName());
+                }
+            }
+            return result;
+        }
+        
+        boost::any CompositionInformationVisitor::visit(RenameComposition const& composition, boost::any const& data) {
+            CompositionInformation subresult = boost::any_cast<CompositionInformation>(composition.getSubcomposition().accept(*this, data));
+            std::set<std::string> nonsilentActions = CompositionInformation::renameNonsilentActions(subresult.getNonsilentActions(), composition.getRenaming());
+            return CompositionInformation(subresult.getAutomatonToMultiplicityMap(), nonsilentActions, true, subresult.containsRestrictedParallelComposition());
+        }
+        
+        boost::any CompositionInformationVisitor::visit(ParallelComposition const& composition, boost::any const& data) {
+            CompositionInformation left = boost::any_cast<CompositionInformation>(composition.getLeftSubcomposition().accept(*this, data));
+            CompositionInformation right = boost::any_cast<CompositionInformation>(composition.getRightSubcomposition().accept(*this, data));
+
+            // Join the information from both sides.
+            bool containsRenameComposition = left.containsRenameComposition() || right.containsRenameComposition();
+            bool containsRestrictedParallelComposition = left.containsRestrictedParallelComposition() || right.containsRestrictedParallelComposition();
+            std::map<std::string, uint64_t> joinedAutomatonToMultiplicity = CompositionInformation::joinMultiplicityMaps(left.getAutomatonToMultiplicityMap(), right.getAutomatonToMultiplicityMap());
+            
+            std::set<std::string> nonsilentActions;
+            std::set_union(left.getNonsilentActions().begin(), left.getNonsilentActions().end(), right.getNonsilentActions().begin(), right.getNonsilentActions().end(), std::inserter(nonsilentActions, nonsilentActions.begin()));
+            
+            // If there was no restricted parallel composition yet, maybe the current composition is one, so check it.
+            if (!containsRestrictedParallelComposition) {
+                std::set<std::string> commonNonsilentActions;
+                std::set_intersection(left.getNonsilentActions().begin(), left.getNonsilentActions().end(), right.getNonsilentActions().begin(), right.getNonsilentActions().end(), std::inserter(commonNonsilentActions, commonNonsilentActions.begin()));
+                bool allCommonActionsIncluded = std::includes(commonNonsilentActions.begin(), commonNonsilentActions.end(), composition.getSynchronizationAlphabet().begin(), composition.getSynchronizationAlphabet().end());
+                containsRestrictedParallelComposition = !allCommonActionsIncluded;
+            }
+            
+            return CompositionInformation(joinedAutomatonToMultiplicity, nonsilentActions, containsRenameComposition, containsRestrictedParallelComposition);
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/CompositionInformationVisitor.h b/src/storage/jani/CompositionInformationVisitor.h
new file mode 100644
index 000000000..59a422a41
--- /dev/null
+++ b/src/storage/jani/CompositionInformationVisitor.h
@@ -0,0 +1,62 @@
+#pragma once
+
+#include <map>
+#include <set>
+#include <cstdint>
+
+#include <boost/optional.hpp>
+
+#include "src/storage/jani/CompositionVisitor.h"
+
+namespace storm {
+    namespace jani {
+        
+        class Model;
+        
+        class CompositionInformation {
+        public:
+            CompositionInformation();
+            CompositionInformation(std::map<std::string, uint64_t> const& automatonNameToMultiplicity, std::set<std::string> const& nonsilentActions, bool containsRenaming, bool containsRestrictedParallelComposition);
+
+            void increaseAutomatonMultiplicity(std::string const& automatonName, uint64_t count = 1);
+            
+            void addNonsilentAction(std::string const& actionName);
+            std::set<std::string> const& getNonsilentActions() const;
+            static std::set<std::string> renameNonsilentActions(std::set<std::string> const& nonsilentActions, std::map<std::string, boost::optional<std::string>> const& renaming);
+            
+            void setContainsRenameComposition();
+            bool containsRenameComposition() const;
+            
+            void setContainsRestrictedParallelComposition();
+            bool containsRestrictedParallelComposition() const;
+            
+            static std::map<std::string, uint64_t> joinMultiplicityMaps(std::map<std::string, uint64_t> const& first, std::map<std::string, uint64_t> const& second);
+            std::map<std::string, uint64_t> const& getAutomatonToMultiplicityMap() const;
+            
+        private:
+            /// A mapping from the automata's names to the amount of times they occur in the composition.
+            std::map<std::string, uint64_t> automatonNameToMultiplicity;
+            
+            /// The set of non-silent actions contained in the composition.
+            std::set<std::string> nonsilentActions;
+            
+            /// A flag indicating whether the composition contains a renaming composition.
+            bool renameComposition;
+            
+            /// A flag indicating whether the composition contains
+            bool restrictedParallelComposition;
+        };
+        
+        class CompositionInformationVisitor : public CompositionVisitor {
+        public:
+            CompositionInformationVisitor() = default;
+            
+            CompositionInformation getInformation(Composition const& composition, Model const& model);
+            
+            virtual boost::any visit(AutomatonComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(RenameComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(ParallelComposition const& composition, boost::any const& data) override;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/CompositionVisitor.h b/src/storage/jani/CompositionVisitor.h
new file mode 100644
index 000000000..d8c62a788
--- /dev/null
+++ b/src/storage/jani/CompositionVisitor.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include <boost/any.hpp>
+
+namespace storm {
+    namespace jani {
+        
+        class Composition;
+        class AutomatonComposition;
+        class RenameComposition;
+        class ParallelComposition;
+        
+        class CompositionVisitor {
+        public:
+            virtual boost::any visit(AutomatonComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(RenameComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(ParallelComposition const& composition, boost::any const& data) = 0;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Compositions.h b/src/storage/jani/Compositions.h
new file mode 100644
index 000000000..ea74f3ac4
--- /dev/null
+++ b/src/storage/jani/Compositions.h
@@ -0,0 +1,3 @@
+#include "src/storage/jani/AutomatonComposition.h"
+#include "src/storage/jani/RenameComposition.h"
+#include "src/storage/jani/ParallelComposition.h"
diff --git a/src/storage/jani/Constant.cpp b/src/storage/jani/Constant.cpp
new file mode 100644
index 000000000..94aa4d522
--- /dev/null
+++ b/src/storage/jani/Constant.cpp
@@ -0,0 +1,47 @@
+#include "src/storage/jani/Constant.h"
+
+namespace storm {
+    namespace jani {
+        
+        Constant::Constant(std::string const& name, storm::expressions::Variable const& variable, boost::optional<storm::expressions::Expression> const& expression) : name(name), variable(variable), expression(expression) {
+            // Intentionally left empty.
+        }
+        
+        std::string const& Constant::getName() const {
+            return name;
+        }
+        
+        bool Constant::isDefined() const {
+            return static_cast<bool>(expression);
+        }
+        
+        void Constant::define(storm::expressions::Expression const& expression) {
+            this->expression = expression;
+        }
+        
+        storm::expressions::Type const& Constant::getType() const {
+            return variable.getType();
+        }
+        
+        bool Constant::isBooleanConstant() const {
+            return getType().isBooleanType();
+        }
+        
+        bool Constant::isIntegerConstant() const {
+            return getType().isIntegerType();
+        }
+        
+        bool Constant::isRealConstant() const {
+            return getType().isRationalType();
+        }
+        
+        storm::expressions::Variable const& Constant::getExpressionVariable() const {
+            return variable;
+        }
+        
+        storm::expressions::Expression const& Constant::getExpression() const {
+            return expression.get();
+        }
+        
+    }
+}
diff --git a/src/storage/jani/Constant.h b/src/storage/jani/Constant.h
new file mode 100644
index 000000000..eb14f44ca
--- /dev/null
+++ b/src/storage/jani/Constant.h
@@ -0,0 +1,77 @@
+#pragma once
+
+#include <string>
+
+#include <boost/optional.hpp>
+
+#include "src/storage/expressions/Variable.h"
+#include "src/storage/expressions/Expression.h"
+
+namespace storm {
+    namespace jani {
+        
+        class Constant {
+        public:
+            /*!
+             * Creates a constant.
+             */
+            Constant(std::string const& name, storm::expressions::Variable const& variable, boost::optional<storm::expressions::Expression> const& expression = boost::none);
+            
+            /*!
+             * Retrieves the name of the constant.
+             */
+            std::string const& getName() const;
+            
+            /*!
+             * Retrieves whether the constant is defined in the sense that it has a defining expression.
+             */
+            bool isDefined() const;
+            
+            /*!
+             * Defines the constant with the given expression.
+             */
+            void define(storm::expressions::Expression const& expression);
+            
+            /*!
+             * Retrieves the type of the constant.
+             */
+            storm::expressions::Type const& getType() const;
+            
+            /*!
+             * Retrieves whether the constant is a boolean constant.
+             */
+            bool isBooleanConstant() const;
+            
+            /*!
+             * Retrieves whether the constant is an integer constant.
+             */
+            bool isIntegerConstant() const;
+            
+            /*!
+             * Retrieves whether the constant is a real constant.
+             */
+            bool isRealConstant() const;
+            
+            /*!
+             * Retrieves the expression variable associated with this constant.
+             */
+            storm::expressions::Variable const& getExpressionVariable() const;
+            
+            /*!
+             * Retrieves the expression that defines this constant (if any).
+             */
+            storm::expressions::Expression const& getExpression() const;
+            
+        private:
+            // The name of the constant.
+            std::string name;
+            
+            // The expression variable associated with the constant.
+            storm::expressions::Variable variable;
+
+            // The expression defining the constant (if any).
+            boost::optional<storm::expressions::Expression> expression;
+        };
+        
+    }
+}
diff --git a/src/storage/jani/Edge.cpp b/src/storage/jani/Edge.cpp
new file mode 100644
index 000000000..347140b1b
--- /dev/null
+++ b/src/storage/jani/Edge.cpp
@@ -0,0 +1,66 @@
+#include "src/storage/jani/Edge.h"
+
+#include "src/storage/jani/Model.h"
+
+namespace storm {
+    namespace jani {
+        
+        Edge::Edge(uint64_t sourceLocationIndex, uint64_t actionIndex, boost::optional<storm::expressions::Expression> const& rate, storm::expressions::Expression const& guard, std::vector<EdgeDestination> destinations) : sourceLocationIndex(sourceLocationIndex), actionIndex(actionIndex), rate(rate), guard(guard), destinations(destinations) {
+            // Intentionally left empty.
+        }
+        
+        uint64_t Edge::getSourceLocationIndex() const {
+            return sourceLocationIndex;
+        }
+        
+        uint64_t Edge::getActionIndex() const {
+            return actionIndex;
+        }
+        
+        bool Edge::hasRate() const {
+            return static_cast<bool>(rate);
+        }
+        
+        storm::expressions::Expression const& Edge::getRate() const {
+            return rate.get();
+        }
+        
+        void Edge::setRate(storm::expressions::Expression const& rate) {
+            this->rate = rate;
+        }
+        
+        storm::expressions::Expression const& Edge::getGuard() const {
+            return guard;
+        }
+        
+        void Edge::setGuard(storm::expressions::Expression const& guard) {
+            this->guard = guard;
+        }
+        
+        std::vector<EdgeDestination> const& Edge::getDestinations() const {
+            return destinations;
+        }
+        
+        std::vector<EdgeDestination>& Edge::getDestinations() {
+            return destinations;
+        }
+        
+        void Edge::addDestination(EdgeDestination const& destination) {
+            destinations.push_back(destination);
+        }
+        
+        void Edge::finalize(Model const& containingModel) {
+            for (auto const& destination : getDestinations()) {
+                for (auto const& assignment : destination.getAssignments()) {
+                    if (containingModel.getGlobalVariables().hasVariable(assignment.getExpressionVariable())) {
+                        writtenGlobalVariables.insert(assignment.getExpressionVariable());
+                    }
+                }
+            }
+        }
+        
+        boost::container::flat_set<storm::expressions::Variable> const& Edge::getWrittenGlobalVariables() const {
+            return writtenGlobalVariables;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Edge.h b/src/storage/jani/Edge.h
new file mode 100644
index 000000000..cb872ebbe
--- /dev/null
+++ b/src/storage/jani/Edge.h
@@ -0,0 +1,102 @@
+#pragma once
+
+#include <boost/optional.hpp>
+#include <boost/container/flat_set.hpp>
+
+#include "src/storage/jani/EdgeDestination.h"
+
+namespace storm {
+    namespace jani {
+        
+        class Model;
+        
+        class Edge {
+        public:
+            Edge(uint64_t sourceLocationIndex, uint64_t actionIndex, boost::optional<storm::expressions::Expression> const& rate, storm::expressions::Expression const& guard, std::vector<EdgeDestination> destinations = {});
+            
+            /*!
+             * Retrieves the index of the source location.
+             */
+            uint64_t getSourceLocationIndex() const;
+            
+            /*!
+             * Retrieves the id of the action with which this edge is labeled.
+             */
+            uint64_t getActionIndex() const;
+            
+            /*!
+             * Retrieves whether this edge has an associated rate.
+             */
+            bool hasRate() const;
+            
+            /*!
+             * Retrieves the rate of this edge. Note that calling this is only valid if the edge has an associated rate.
+             */
+            storm::expressions::Expression const& getRate() const;
+
+            /*!
+             * Sets a new rate for this edge.
+             */
+            void setRate(storm::expressions::Expression const& rate);
+            
+            /*!
+             * Retrieves the guard of this edge.
+             */
+            storm::expressions::Expression const& getGuard() const;
+            
+            /*!
+             * Sets a new guard for this edge.
+             */
+            void setGuard(storm::expressions::Expression const& guard);
+            
+            /*!
+             * Retrieves the destinations of this edge.
+             */
+            std::vector<EdgeDestination> const& getDestinations() const;
+
+            /*!
+             * Retrieves the destinations of this edge.
+             */
+            std::vector<EdgeDestination>& getDestinations();
+            
+            /*!
+             * Adds the given destination to the destinations of this edge.
+             */
+            void addDestination(EdgeDestination const& destination);
+            
+            /*!
+             * Finalizes the building of this edge. Subsequent changes to the edge require another call to this
+             * method. Note that this method is invoked by a call to <code>finalize</code> to the containing model.
+             */
+            void finalize(Model const& containingModel);
+            
+            /*!
+             * Retrieves a set of (global) variables that are written by at least one of the edge's destinations. Note
+             * that prior to calling this, the edge has to be finalized.
+             */
+            boost::container::flat_set<storm::expressions::Variable> const& getWrittenGlobalVariables() const;
+            
+        private:
+            /// The index of the source location.
+            uint64_t sourceLocationIndex;
+            
+            /// The index of the action with which this edge is labeled.
+            uint64_t actionIndex;
+            
+            /// The rate with which this edge is taken. This only applies to continuous-time models. For discrete-time
+            /// models, this must be set to none.
+            boost::optional<storm::expressions::Expression> rate;
+            
+            /// The guard that defines when this edge is enabled.
+            storm::expressions::Expression guard;
+            
+            /// The destinations of this edge.
+            std::vector<EdgeDestination> destinations;
+            
+            /// A set of global variables that is written by at least one of the edge's destinations. This set is
+            /// initialized by the call to <code>finalize</code>.
+            boost::container::flat_set<storm::expressions::Variable> writtenGlobalVariables;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/EdgeDestination.cpp b/src/storage/jani/EdgeDestination.cpp
new file mode 100644
index 000000000..1166488e3
--- /dev/null
+++ b/src/storage/jani/EdgeDestination.cpp
@@ -0,0 +1,62 @@
+#include "src/storage/jani/EdgeDestination.h"
+
+#include "src/utility/macros.h"
+#include "src/exceptions/WrongFormatException.h"
+
+namespace storm {
+    namespace jani {
+        
+        EdgeDestination::EdgeDestination(uint64_t locationIndex, storm::expressions::Expression const& probability, std::vector<Assignment> const& assignments, std::vector<RewardIncrement> const& rewardIncrements) : locationIndex(locationIndex), probability(probability), assignments(assignments), rewardIncrements(rewardIncrements) {
+            sortAssignments();
+        }
+        
+        void EdgeDestination::addAssignment(Assignment const& assignment) {
+            // We make sure that there are no two assignments to the same variable.
+            for (auto const& oldAssignment : assignments) {
+                STORM_LOG_THROW(oldAssignment.getExpressionVariable() != assignment.getExpressionVariable(), storm::exceptions::WrongFormatException, "Cannot add assignment '" << assignment << "', because another assignment '" << assignment << "' writes to the same target variable.");
+            }
+            assignments.push_back(assignment);
+            sortAssignments();
+        }
+        
+        void EdgeDestination::addRewardIncrement(RewardIncrement const& rewardIncrement) {
+            rewardIncrements.push_back(rewardIncrement);
+        }
+        
+        uint64_t EdgeDestination::getLocationIndex() const {
+            return locationIndex;
+        }
+        
+        storm::expressions::Expression const& EdgeDestination::getProbability() const {
+            return probability;
+        }
+        
+        void EdgeDestination::setProbability(storm::expressions::Expression const& probability) {
+            this->probability = probability;
+        }
+        
+        std::vector<Assignment>& EdgeDestination::getAssignments() {
+            return assignments;
+        }
+        
+        std::vector<Assignment> const& EdgeDestination::getAssignments() const {
+            return assignments;
+        }
+        
+        std::vector<RewardIncrement> const& EdgeDestination::getRewardIncrements() const {
+            return rewardIncrements;
+        }
+        
+        void EdgeDestination::sortAssignments() {
+            std::sort(this->assignments.begin(), this->assignments.end(), [] (storm::jani::Assignment const& assignment1, storm::jani::Assignment const& assignment2) {
+                bool smaller = assignment1.getExpressionVariable().getType().isBooleanType() && !assignment2.getExpressionVariable().getType().isBooleanType();
+                if (!smaller) {
+                    smaller = assignment1.getExpressionVariable() < assignment2.getExpressionVariable();
+                }
+                return smaller;
+            });
+
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/EdgeDestination.h b/src/storage/jani/EdgeDestination.h
new file mode 100644
index 000000000..eb33bb7fc
--- /dev/null
+++ b/src/storage/jani/EdgeDestination.h
@@ -0,0 +1,81 @@
+#pragma once
+
+#include <cstdint>
+
+#include "src/storage/expressions/Expression.h"
+
+#include "src/storage/jani/Assignment.h"
+#include "src/storage/jani/RewardIncrement.h"
+
+namespace storm {
+    namespace jani {
+        
+        class EdgeDestination {
+        public:
+            /*!
+             * Creates a new edge destination.
+             */
+            EdgeDestination(uint64_t locationIndex, storm::expressions::Expression const& probability, std::vector<Assignment> const& assignments = {}, std::vector<RewardIncrement> const& rewardIncrements = {});
+            
+            /*!
+             * Additionally performs the given assignment when choosing this destination.
+             */
+            void addAssignment(Assignment const& assignment);
+
+            /*!
+             * Additionally performs the given reward increment when choosing this destination.
+             */
+            void addRewardIncrement(RewardIncrement const& rewardIncrement);
+            
+            /*!
+             * Retrieves the id of the destination location.
+             */
+            uint64_t getLocationIndex() const;
+            
+            /*!
+             * Retrieves the probability of choosing this destination.
+             */
+            storm::expressions::Expression const& getProbability() const;
+            
+            /*!
+             * Sets a new probability for this edge destination.
+             */
+            void setProbability(storm::expressions::Expression const& probability);
+
+            /*!
+             * Retrieves the assignments to make when choosing this destination.
+             */
+            std::vector<Assignment>& getAssignments();
+
+            /*!
+             * Retrieves the assignments to make when choosing this destination.
+             */
+            std::vector<Assignment> const& getAssignments() const;
+            
+            /*!
+             * Retrieves the reward increments to make when choosing this destination.
+             */
+            std::vector<RewardIncrement> const& getRewardIncrements() const;
+            
+        private:
+            /*!
+             * Sorts the assignments to make all assignments to boolean variables precede all others and order the
+             * assignments within one variable group by the expression variables.
+             */
+            void sortAssignments();
+            
+            // The index of the destination location.
+            uint64_t locationIndex;
+
+            // The probability to go to the destination.
+            storm::expressions::Expression probability;
+            
+            // The assignments to make when choosing this destination.
+            std::vector<Assignment> assignments;
+            
+            // The increments to rewards to make when choosing this destination.
+            std::vector<RewardIncrement> rewardIncrements;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Exporter.cpp b/src/storage/jani/Exporter.cpp
new file mode 100644
index 000000000..55b5d068f
--- /dev/null
+++ b/src/storage/jani/Exporter.cpp
@@ -0,0 +1,440 @@
+#include "src/storage/jani/Exporter.h"
+
+#include <iostream>
+
+namespace storm {
+    namespace jani {
+        
+        void appendIndent(std::stringstream& out, uint64_t indent) {
+            for (uint64_t i = 0; i < indent; ++i) {
+                out << "\t";
+            }
+        }
+        
+        void appendField(std::stringstream& out, std::string const& name) {
+            out << "\"" << name << "\": ";
+        }
+        
+        void appendValue(std::stringstream& out, std::string const& value) {
+            out << "\"" << value << "\"";
+        }
+        
+        void clearLine(std::stringstream& out) {
+            out << std::endl;
+        }
+        
+        std::string expressionToString(storm::expressions::Expression const& expression) {
+            std::stringstream s;
+            s << expression;
+            return s.str();
+        }
+        
+        void Exporter::appendVersion(std::stringstream& out, uint64_t janiVersion, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "jani-version");
+        }
+        
+        void Exporter::appendModelName(std::stringstream& out, std::string const& name, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "name");
+            appendValue(out, name);
+        }
+        
+        void Exporter::appendModelType(std::stringstream& out, storm::jani::ModelType const& modelType, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "type");
+        }
+        
+        void Exporter::appendAction(std::stringstream& out, storm::jani::Action const& action, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{" << std::endl;
+            appendIndent(out, indent + 1);
+            appendField(out, "name");
+            appendValue(out, action.getName());
+            clearLine(out);
+            appendIndent(out, indent);
+            out << "}";
+        }
+        
+        void Exporter::appendActions(std::stringstream& out, storm::jani::Model const& model, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "actions");
+            out << " [" << std::endl;
+            
+            for (uint64_t index = 0; index < model.actions.size(); ++index) {
+                appendAction(out, model.actions[index], indent + 1);
+                if (index < model.actions.size() - 1) {
+                    out << ",";
+                }
+                clearLine(out);
+            }
+            
+            appendIndent(out, indent);
+            out << "]";
+        }
+        
+        void Exporter::appendVariable(std::stringstream& out, storm::jani::BooleanVariable const& variable, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "name");
+            appendValue(out, variable.getName());
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "type");
+            appendValue(out, "bool");
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent);
+            out << "}";
+        }
+
+        void Exporter::appendBoundedIntegerVariableType(std::stringstream& out, storm::jani::BoundedIntegerVariable const& variable, uint64_t indent) const {
+            out << " {";
+            clearLine(out);
+
+            appendIndent(out, indent);
+            appendField(out, "kind");
+            appendValue(out, "bounded");
+            clearLine(out);
+            
+            appendIndent(out, indent);
+            appendField(out, "base");
+            appendValue(out, "int");
+            clearLine(out);
+            
+            appendIndent(out, indent);
+            appendField(out, "lower-bound");
+            appendValue(out, expressionToString(variable.getLowerBound()));
+            clearLine(out);
+
+            appendIndent(out, indent);
+            appendField(out, "upper-bound");
+            appendValue(out, expressionToString(variable.getLowerBound()));
+            clearLine(out);
+            
+            appendIndent(out, indent - 1);
+            out << "}";
+        }
+        
+        void Exporter::appendVariable(std::stringstream& out, storm::jani::BoundedIntegerVariable const& variable, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "name");
+            appendValue(out, variable.getName());
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "type");
+            appendBoundedIntegerVariableType(out, variable, indent + 2);
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent);
+            out << "}";
+        }
+
+        void Exporter::appendVariable(std::stringstream& out, storm::jani::UnboundedIntegerVariable const& variable, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "name");
+            appendValue(out, variable.getName());
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "type");
+            appendValue(out, "int");
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent);
+            out << "}";
+        }
+        
+        void Exporter::appendVariables(std::stringstream& out, storm::jani::VariableSet const& variables, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "variables");
+            out << " [";
+            clearLine(out);
+            
+            for (auto const& variable : variables.getBooleanVariables()) {
+                appendVariable(out, variable, indent + 1);
+                clearLine(out);
+            }
+            for (auto const& variable : variables.getBoundedIntegerVariables()) {
+                appendVariable(out, variable, indent + 1);
+                clearLine(out);
+            }
+            for (auto const& variable : variables.getUnboundedIntegerVariables()) {
+                appendVariable(out, variable, indent + 1);
+                clearLine(out);
+            }
+            
+            appendIndent(out, indent);
+            out << "]";
+        }
+
+        void Exporter::appendLocation(std::stringstream& out, storm::jani::Location const& location, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "name");
+            appendValue(out, location.getName());
+            clearLine(out);
+
+            appendIndent(out, indent);
+            out << "}";
+        }
+        
+        void Exporter::appendLocations(std::stringstream& out, storm::jani::Automaton const& automaton, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "locations");
+            out << " [";
+            clearLine(out);
+            
+            for (auto const& location : automaton.getLocations()) {
+                appendLocation(out, location, indent + 1);
+                out << ",";
+                clearLine(out);
+            }
+            
+            appendIndent(out, indent);
+            out << "]";
+        }
+
+        void Exporter::appendAssignment(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, storm::jani::Assignment const& assignment, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "ref");
+            storm::jani::Variable const& variable = model.getGlobalVariables().hasVariable(assignment.getExpressionVariable()) ? model.getGlobalVariables().getVariable(assignment.getExpressionVariable()) : automaton.getVariables().getVariable(assignment.getExpressionVariable());
+            appendValue(out, variable.getName());
+            out << ",";
+            clearLine(out);
+
+            appendIndent(out, indent + 1);
+            appendField(out, "value");
+            appendValue(out, expressionToString(assignment.getAssignedExpression()));
+            clearLine(out);
+
+            appendIndent(out, indent);
+            out << "}";
+        }
+        
+        void Exporter::appendEdgeDestination(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, storm::jani::EdgeDestination const& destination, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "probability");
+            appendValue(out, expressionToString(destination.getProbability()));
+            out << ",";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "location");
+            appendValue(out, automaton.getLocation(destination.getLocationIndex()).getName());
+            out << ",";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "assignments");
+            out << " [";
+            clearLine(out);
+            
+            for (uint64_t index = 0; index < destination.getAssignments().size(); ++index) {
+                appendAssignment(out, model, automaton, destination.getAssignments()[index], indent + 2);
+                if (index < destination.getAssignments().size() - 1) {
+                    out << ",";
+                }
+                clearLine(out);
+            }
+            
+            appendIndent(out, indent + 1);
+            out << "]";
+            clearLine(out);
+            
+            appendIndent(out, indent);
+            out << "}";
+            clearLine(out);
+        }
+        
+        void Exporter::appendEdge(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, storm::jani::Edge const& edge, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "location");
+            appendValue(out, automaton.getLocation(edge.getSourceLocationIndex()).getName());
+            out << ",";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "action");
+            appendValue(out, model.getAction(edge.getActionIndex()).getName());
+            out << ",";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "guard");
+            appendValue(out, expressionToString(edge.getGuard()));
+            out << ",";
+            clearLine(out);
+            
+            appendIndent(out, indent + 1);
+            appendField(out, "destinations");
+            out << " [";
+            clearLine(out);
+            
+            for (auto const& destination : edge.getDestinations()) {
+                appendEdgeDestination(out, model, automaton, destination, indent + 2);
+            }
+            
+            appendIndent(out, indent + 1);
+            out << "]";
+            clearLine(out);
+            
+            appendIndent(out, indent);
+            out << "}";
+        }
+        
+        void Exporter::appendEdges(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "edges");
+            out << " [";
+            clearLine(out);
+            
+            for (uint64_t location = 0; location < automaton.getNumberOfLocations(); ++location) {
+                for (auto const& edge : automaton.getEdgesFromLocation(location)) {
+                    appendEdge(out, model, automaton, edge, indent + 1);
+                    out << ",";
+                    clearLine(out);
+                }
+            }
+            
+            appendIndent(out, indent);
+            out << "]";
+            clearLine(out);
+        }
+        
+        void Exporter::appendAutomaton(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, uint64_t indent) const {
+            appendIndent(out, indent);
+            out << "{";
+            clearLine(out);
+
+            appendIndent(out, indent + 1);
+            appendField(out, "name");
+            appendValue(out, automaton.getName());
+            clearLine(out);
+            appendVariables(out, automaton.getVariables(), indent + 1);
+            out << ",";
+            clearLine(out);
+            
+            appendLocations(out, automaton, indent + 1);
+            out << ",";
+            clearLine(out);
+            appendIndent(out, indent + 1);
+            appendField(out, "initial-locations");
+            out << " [";
+            clearLine(out);
+            for (auto const& index : automaton.getInitialLocationIndices()) {
+                appendIndent(out, indent + 2);
+                appendValue(out, automaton.getLocation(index).getName());
+                clearLine(out);
+            }
+            appendIndent(out, indent + 1);
+            out << "]";
+            clearLine(out);
+            if (automaton.hasInitialStatesExpression()) {
+                appendIndent(out, indent + 1);
+                appendField(out, "initial-states");
+                clearLine(out);
+                appendIndent(out, indent + 2);
+                out << "{";
+                clearLine(out);
+                appendIndent(out, indent + 3);
+                appendField(out, "exp");
+                appendValue(out, expressionToString(automaton.getInitialStatesExpression()));
+                clearLine(out);
+                appendIndent(out, indent + 2);
+                out << "}";
+                clearLine(out);
+            }
+            
+            appendEdges(out, model, automaton, indent + 1);
+            
+            appendIndent(out, indent);
+            out << "}";
+        }
+        
+        void Exporter::appendAutomata(std::stringstream& out, storm::jani::Model const& model, uint64_t indent) const {
+            appendIndent(out, indent);
+            appendField(out, "automata");
+            out << " [";
+            clearLine(out);
+            
+            for (uint64_t index = 0; index < model.automata.size(); ++index) {
+                appendAutomaton(out, model, model.automata[index], indent + 1);
+                if (index < model.automata.size() - 1) {
+                    out << ",";
+                }
+                clearLine(out);
+            }
+            
+            appendIndent(out, indent);
+            out << "]";
+        }
+        
+        std::string Exporter::toJaniString(storm::jani::Model const& model) const {
+            std::stringstream out;
+            
+            out << "{" << std::endl;
+            appendVersion(out, model.getJaniVersion(), 1);
+            out << ",";
+            clearLine(out);
+            appendModelName(out, model.getName(), 1);
+            out << ",";
+            clearLine(out);
+            appendModelType(out, model.getModelType(), 1);
+            out << ",";
+            clearLine(out);
+            appendActions(out, model, 1);
+            clearLine(out);
+            appendVariables(out, model.getGlobalVariables(), 1);
+            clearLine(out);
+            
+            if (model.hasInitialStatesExpression()) {
+                appendIndent(out, 1);
+                appendField(out, "initial-states");
+                clearLine(out);
+                appendIndent(out, 2);
+                out << "{";
+                clearLine(out);
+                appendIndent(out, 3);
+                appendField(out, "exp");
+                appendValue(out, expressionToString(model.getInitialStatesExpression()));
+                clearLine(out);
+                appendIndent(out, 2);
+                out << "}";
+                clearLine(out);
+            }
+            
+            appendAutomata(out, model, 1);
+            clearLine(out);
+            out << "}" << std::endl;
+            
+            return out.str();
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Exporter.h b/src/storage/jani/Exporter.h
new file mode 100644
index 000000000..7b0a1990b
--- /dev/null
+++ b/src/storage/jani/Exporter.h
@@ -0,0 +1,48 @@
+#pragma once
+
+#include <sstream>
+#include <cstdint>
+
+#include "src/storage/jani/Model.h"
+
+namespace storm {
+    namespace jani {
+        
+        class Exporter {
+        public:
+            Exporter() = default;
+            
+            std::string toJaniString(storm::jani::Model const& model) const;
+            
+        private:
+            void appendVersion(std::stringstream& out, uint64_t janiVersion, uint64_t indent) const;
+            
+            void appendModelName(std::stringstream& out, std::string const& name, uint64_t indent) const;
+            
+            void appendModelType(std::stringstream& out, storm::jani::ModelType const& modelType, uint64_t indent) const;
+            
+            void appendAction(std::stringstream& out, storm::jani::Action const& action, uint64_t indent) const;
+            
+            void appendActions(std::stringstream& out, storm::jani::Model const& model, uint64_t indent) const;
+            
+            void appendVariables(std::stringstream& out, storm::jani::VariableSet const& variables, uint64_t indent) const;
+            
+            void appendVariable(std::stringstream& out, storm::jani::BooleanVariable const& variable, uint64_t indent) const;
+            void appendVariable(std::stringstream& out, storm::jani::BoundedIntegerVariable const& variable, uint64_t indent) const;
+            void appendBoundedIntegerVariableType(std::stringstream& out, storm::jani::BoundedIntegerVariable const& variable, uint64_t indent) const;
+            void appendVariable(std::stringstream& out, storm::jani::UnboundedIntegerVariable const& variable, uint64_t indent) const;
+
+            void appendAutomata(std::stringstream& out, storm::jani::Model const& model, uint64_t indent) const;
+            void appendAutomaton(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, uint64_t indent) const;
+            
+            void appendLocation(std::stringstream& out, storm::jani::Location const& location, uint64_t indent) const;
+            void appendLocations(std::stringstream& out, storm::jani::Automaton const& automaton, uint64_t indent) const;
+            
+            void appendAssignment(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, storm::jani::Assignment const& assignment, uint64_t indent) const;
+            void appendEdgeDestination(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, storm::jani::EdgeDestination const& destination, uint64_t indent) const;
+            void appendEdge(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, storm::jani::Edge const& edge, uint64_t indent) const;
+            void appendEdges(std::stringstream& out, storm::jani::Model const& model, storm::jani::Automaton const& automaton, uint64_t indent) const;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Location.cpp b/src/storage/jani/Location.cpp
new file mode 100644
index 000000000..84b45ebaf
--- /dev/null
+++ b/src/storage/jani/Location.cpp
@@ -0,0 +1,15 @@
+#include "src/storage/jani/Location.h"
+
+namespace storm {
+    namespace jani {
+        
+        Location::Location(std::string const& name) : name(name) {
+            // Intentionally left empty.
+        }
+        
+        std::string const& Location::getName() const {
+            return name;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Location.h b/src/storage/jani/Location.h
new file mode 100644
index 000000000..56a08ab2c
--- /dev/null
+++ b/src/storage/jani/Location.h
@@ -0,0 +1,26 @@
+#pragma once
+
+#include <string>
+
+namespace storm {
+    namespace jani {
+        
+        class Location {
+        public:
+            /*!
+             * Creates a new location.
+             */
+            Location(std::string const& name);
+            
+            /*!
+             * Retrieves the name of the location.
+             */
+            std::string const& getName() const;
+            
+        private:
+            // The name of the location.
+            std::string name;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Model.cpp b/src/storage/jani/Model.cpp
new file mode 100644
index 000000000..ed4d4aa68
--- /dev/null
+++ b/src/storage/jani/Model.cpp
@@ -0,0 +1,426 @@
+#include "src/storage/jani/Model.h"
+
+#include "src/storage/expressions/ExpressionManager.h"
+
+#include "src/storage/jani/Compositions.h"
+#include "src/storage/jani/CompositionInformationVisitor.h"
+
+#include "src/utility/macros.h"
+#include "src/exceptions/WrongFormatException.h"
+#include "src/exceptions/InvalidOperationException.h"
+
+namespace storm {
+    namespace jani {
+        
+        static const std::string SILENT_ACTION_NAME = "";
+        
+        Model::Model() {
+            // Intentionally left empty.
+        }
+        
+        Model::Model(std::string const& name, ModelType const& modelType, uint64_t version, boost::optional<std::shared_ptr<storm::expressions::ExpressionManager>> const& expressionManager) : name(name), modelType(modelType), version(version), composition(nullptr) {
+            // Use the provided manager or create a new one.
+            if (expressionManager) {
+                this->expressionManager = expressionManager.get();
+            } else {
+                this->expressionManager = std::make_shared<storm::expressions::ExpressionManager>();
+            }
+            
+            // Add a prefined action that represents the silent action.
+            silentActionIndex = addAction(storm::jani::Action(SILENT_ACTION_NAME));
+        }
+        
+        uint64_t Model::getJaniVersion() const {
+            return version;
+        }
+        
+        ModelType const& Model::getModelType() const {
+            return modelType;
+        }
+        
+        std::string const& Model::getName() const {
+            return name;
+        }
+        
+        uint64_t Model::addAction(Action const& action) {
+            auto it = actionToIndex.find(action.getName());
+            STORM_LOG_THROW(it == actionToIndex.end(), storm::exceptions::WrongFormatException, "Action with name '" << action.getName() << "' already exists");
+            actionToIndex.emplace(action.getName(), actions.size());
+            actions.push_back(action);
+            if (action.getName() != SILENT_ACTION_NAME) {
+                nonsilentActionIndices.insert(actions.size() - 1);
+            }
+            return actions.size() - 1;
+        }
+        
+        Action const& Model::getAction(uint64_t index) const {
+            return actions[index];
+        }
+        
+        bool Model::hasAction(std::string const& name) const {
+            return actionToIndex.find(name) != actionToIndex.end();
+        }
+        
+        uint64_t Model::getActionIndex(std::string const& name) const {
+            auto it = actionToIndex.find(name);
+            STORM_LOG_THROW(it != actionToIndex.end(), storm::exceptions::InvalidOperationException, "Unable to retrieve index of unknown action '" << name << "'.");
+            return it->second;
+        }
+        
+        std::vector<Action> const& Model::getActions() const {
+            return actions;
+        }
+        
+        boost::container::flat_set<uint64_t> const& Model::getNonsilentActionIndices() const {
+            return nonsilentActionIndices;
+        }
+        
+        uint64_t Model::addConstant(Constant const& constant) {
+            auto it = constantToIndex.find(constant.getName());
+            STORM_LOG_THROW(it == constantToIndex.end(), storm::exceptions::WrongFormatException, "Cannot add constant with name '" << constant.getName() << "', because a constant with that name already exists.");
+            constantToIndex.emplace(constant.getName(), constants.size());
+            constants.push_back(constant);
+            return constants.size() - 1;
+        }
+        
+        bool Model::hasConstant(std::string const& name) const {
+            return constantToIndex.find(name) != constantToIndex.end();
+        }
+        
+        Constant const& Model::getConstant(std::string const& name) const {
+            auto it = constantToIndex.find(name);
+            STORM_LOG_THROW(it != constantToIndex.end(), storm::exceptions::WrongFormatException, "Unable to retrieve unknown constant '" << name << "'.");
+            return constants[it->second];
+        }
+        
+        std::vector<Constant> const& Model::getConstants() const {
+            return constants;
+        }
+
+        std::vector<Constant>& Model::getConstants() {
+            return constants;
+        }
+
+        void Model::addBooleanVariable(BooleanVariable const& variable) {
+            globalVariables.addBooleanVariable(variable);
+        }
+        
+        void Model::addBoundedIntegerVariable(BoundedIntegerVariable const& variable) {
+            globalVariables.addBoundedIntegerVariable(variable);
+        }
+        
+        void Model::addUnboundedIntegerVariable(UnboundedIntegerVariable const& variable) {
+            globalVariables.addUnboundedIntegerVariable(variable);
+        }
+
+        VariableSet& Model::getGlobalVariables() {
+            return globalVariables;
+        }
+
+        VariableSet const& Model::getGlobalVariables() const {
+            return globalVariables;
+        }
+        
+        storm::expressions::ExpressionManager& Model::getExpressionManager() {
+            return *expressionManager;
+        }
+        
+        storm::expressions::ExpressionManager const& Model::getExpressionManager() const {
+            return *expressionManager;
+        }
+        
+        uint64_t Model::addAutomaton(Automaton const& automaton) {
+            auto it = automatonToIndex.find(automaton.getName());
+            STORM_LOG_THROW(it == automatonToIndex.end(), storm::exceptions::WrongFormatException, "Automaton with name '" << automaton.getName() << "' already exists.");
+            automatonToIndex.emplace(automaton.getName(), automata.size());
+            automata.push_back(automaton);
+            return automata.size() - 1;
+        }
+        
+        std::vector<Automaton>& Model::getAutomata() {
+            return automata;
+        }
+        
+        std::vector<Automaton> const& Model::getAutomata() const {
+            return automata;
+        }
+        
+        Automaton& Model::getAutomaton(std::string const& name) {
+            auto it = automatonToIndex.find(name);
+            STORM_LOG_THROW(it != automatonToIndex.end(), storm::exceptions::InvalidOperationException, "Unable to retrieve unknown automaton '" << name << "'.");
+            return automata[it->second];
+        }
+        
+        Automaton const& Model::getAutomaton(std::string const& name) const {
+            auto it = automatonToIndex.find(name);
+            STORM_LOG_THROW(it != automatonToIndex.end(), storm::exceptions::InvalidOperationException, "Unable to retrieve unknown automaton '" << name << "'.");
+            return automata[it->second];
+        }
+        
+        std::size_t Model::getNumberOfAutomata() const {
+            return automata.size();
+        }
+        
+        std::shared_ptr<Composition> Model::getStandardSystemComposition() const {
+            std::shared_ptr<Composition> current;
+            current = std::make_shared<AutomatonComposition>(this->automata.front().getName());
+            std::set<uint64_t> leftHandActionIndices = this->automata.front().getActionIndices();
+            
+            for (uint64_t index = 1; index < automata.size(); ++index) {
+                std::set<uint64_t> newActionIndices = automata[index].getActionIndices();
+                
+                // Compute the intersection of actions of the left- and right-hand side.
+                std::set<uint64_t> intersectionActions;
+                std::set_intersection(leftHandActionIndices.begin(), leftHandActionIndices.end(), newActionIndices.begin(), newActionIndices.end(), std::inserter(intersectionActions, intersectionActions.begin()));
+                
+                // If the silent action is in the intersection, we remove it since we cannot synchronize over it.
+                auto it = intersectionActions.find(this->getSilentActionIndex());
+                if (it != intersectionActions.end()) {
+                    intersectionActions.erase(it);
+                }
+                
+                // Then join the actions to reflect the actions of the new left-hand side.
+                leftHandActionIndices.insert(newActionIndices.begin(), newActionIndices.end());
+                
+                // Create the set of strings that represents the actions over which to synchronize.
+                std::set<std::string> intersectionActionNames;
+                for (auto const& actionIndex : intersectionActions) {
+                    intersectionActionNames.insert(this->getAction(actionIndex).getName());
+                }
+
+                current = std::make_shared<ParallelComposition>(current, std::make_shared<AutomatonComposition>(automata[index].getName()), intersectionActionNames);
+            }
+            return current;
+        }
+        
+        Composition const& Model::getSystemComposition() const {
+            return *composition;
+        }
+        
+        void Model::setSystemComposition(std::shared_ptr<Composition> const& composition) {
+            this->composition = composition;
+        }
+        
+        std::set<std::string> Model::getActionNames(bool includeSilent) const {
+            std::set<std::string> result;
+            for (auto const& entry : actionToIndex) {
+                if (includeSilent || entry.second != silentActionIndex) {
+                    result.insert(entry.first);
+                }
+            }
+            return result;
+        }
+        
+        std::string const& Model::getSilentActionName() const {
+            return actions[silentActionIndex].getName();
+        }
+        
+        uint64_t Model::getSilentActionIndex() const {
+            return silentActionIndex;
+        }
+        
+        Model Model::defineUndefinedConstants(std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions) const {
+            Model result(*this);
+            
+            std::set<storm::expressions::Variable> definedUndefinedConstants;
+            for (auto& constant : result.constants) {
+                // If the constant is already defined, we need to replace the appearances of undefined constants in its
+                // defining expression
+                if (constant.isDefined()) {
+                    // Make sure we are not trying to define an already defined constant.
+                    STORM_LOG_THROW(constantDefinitions.find(constant.getExpressionVariable()) == constantDefinitions.end(), storm::exceptions::InvalidOperationException, "Illegally defining already defined constant '" << constant.getName() << "'.");
+                } else {
+                    auto const& variableExpressionPair = constantDefinitions.find(constant.getExpressionVariable());
+                    
+                    if (variableExpressionPair != constantDefinitions.end()) {
+                        // If we need to define it, we add it to the defined constants and assign it the appropriate expression.
+                        definedUndefinedConstants.insert(constant.getExpressionVariable());
+                        
+                        // Make sure the type of the constant is correct.
+                        STORM_LOG_THROW(variableExpressionPair->second.getType() == constant.getType(), storm::exceptions::InvalidOperationException, "Illegal type of expression defining constant '" << constant.getName() << "'.");
+                        
+                        // Now define the constant.
+                        constant.define(variableExpressionPair->second);
+                    }
+                }
+            }
+            
+            // As a sanity check, we make sure that the given mapping does not contain any definitions for identifiers
+            // that are not undefined constants.
+            for (auto const& constantExpressionPair : constantDefinitions) {
+                STORM_LOG_THROW(definedUndefinedConstants.find(constantExpressionPair.first) != definedUndefinedConstants.end(), storm::exceptions::InvalidOperationException, "Unable to define non-existant constant '" << constantExpressionPair.first.getName() << "'.");
+            }
+            return result;
+        }
+        
+        bool Model::hasUndefinedConstants() const {
+            for (auto const& constant : constants) {
+                if (!constant.isDefined()) {
+                    return true;
+                }
+            }
+            return false;
+        }
+        
+        std::vector<std::reference_wrapper<Constant const>> Model::getUndefinedConstants() const {
+            std::vector<std::reference_wrapper<Constant const>> result;
+            
+            for (auto const& constant : constants) {
+                if (!constant.isDefined()) {
+                    result.push_back(constant);
+                }
+            }
+            
+            return result;
+        }
+        
+        Model Model::substituteConstants() const {
+            Model result(*this);
+
+            // Gather all defining expressions of constants.
+            std::map<storm::expressions::Variable, storm::expressions::Expression> constantSubstitution;
+            for (auto& constant : result.getConstants()) {
+                if (constant.isDefined()) {
+                    constant.define(constant.getExpression().substitute(constantSubstitution));
+                    constantSubstitution[constant.getExpressionVariable()] = constant.getExpression();
+                }
+            }
+            
+            // Substitute constants in all global variables.
+            for (auto& variable : result.getGlobalVariables().getBoundedIntegerVariables()) {
+                variable.setLowerBound(variable.getLowerBound().substitute(constantSubstitution));
+                variable.setUpperBound(variable.getUpperBound().substitute(constantSubstitution));
+            }
+            
+            // Substitute constants in initial states expression.
+            if (this->hasInitialStatesExpression()) {
+                result.setInitialStatesExpression(this->getInitialStatesExpression().substitute(constantSubstitution));
+            }
+            
+            // Substitute constants in variables of automata and their edges.
+            for (auto& automaton : result.getAutomata()) {
+                for (auto& variable : automaton.getVariables().getBoundedIntegerVariables()) {
+                    variable.setLowerBound(variable.getLowerBound().substitute(constantSubstitution));
+                    variable.setUpperBound(variable.getUpperBound().substitute(constantSubstitution));
+                }
+                
+                if (automaton.hasInitialStatesExpression()) {
+                    automaton.setInitialStatesExpression(automaton.getInitialStatesExpression().substitute(constantSubstitution));
+                }
+                
+                for (auto& edge : automaton.getEdges()) {
+                    edge.setGuard(edge.getGuard().substitute(constantSubstitution));
+                    if (edge.hasRate()) {
+                        edge.setRate(edge.getRate().substitute(constantSubstitution));
+                    }
+                    for (auto& destination : edge.getDestinations()) {
+                        destination.setProbability(destination.getProbability().substitute(constantSubstitution));
+                        for (auto& assignment : destination.getAssignments()) {
+                            assignment.setAssignedExpression(assignment.getAssignedExpression().substitute(constantSubstitution));
+                        }
+                    }
+                }
+            }
+            
+            return result;
+        }
+        
+        std::map<storm::expressions::Variable, storm::expressions::Expression> Model::getConstantsSubstitution() const {
+            std::map<storm::expressions::Variable, storm::expressions::Expression> result;
+            
+            for (auto const& constant : constants) {
+                if (constant.isDefined()) {
+                    result.emplace(constant.getExpressionVariable(), constant.getExpression());
+                }
+            }
+            
+            return result;
+        }
+        
+        bool Model::hasInitialStatesExpression() const {
+            return initialStatesExpression.isInitialized();
+        }
+     
+        storm::expressions::Expression Model::getInitialStatesExpression(bool includeAutomataInitialStatesExpressions) const {
+            STORM_LOG_THROW(globalVariables.empty() || this->hasInitialStatesExpression(), storm::exceptions::InvalidOperationException, "Cannot retrieve global initial states expression, because there is none.");
+            storm::expressions::Expression result = this->hasInitialStatesExpression() ? initialStatesExpression : expressionManager->boolean(true);
+            if (includeAutomataInitialStatesExpressions) {
+                for (auto const& automaton : automata) {
+                    STORM_LOG_THROW(automaton.getVariables().empty() || automaton.hasInitialStatesExpression(), storm::exceptions::InvalidOperationException, "Cannot retrieve initial states expression from automaton '" << automaton.getName() << "', because there is none.");
+                    if (!automaton.getVariables().empty()) {
+                        result = result && automaton.getInitialStatesExpression();
+                    }
+                }
+            }
+            return result;
+        }
+        
+        void Model::setInitialStatesExpression(storm::expressions::Expression const& initialStatesExpression) {
+            this->initialStatesExpression = initialStatesExpression;
+        }
+        
+        bool Model::isDeterministicModel() const {
+            return this->getModelType() == ModelType::DTMC || this->getModelType() == ModelType::CTMC;
+        }
+        
+        bool Model::isDiscreteTimeModel() const {
+            return this->getModelType() == ModelType::DTMC || this->getModelType() == ModelType::MDP;
+        }
+        
+        std::vector<storm::expressions::Expression> Model::getAllRangeExpressions() const {
+            std::vector<storm::expressions::Expression> result;
+            for (auto const& variable : this->getGlobalVariables().getBoundedIntegerVariables()) {
+                result.push_back(variable.getRangeExpression());
+            }
+            
+            for (auto const& automaton : automata) {
+                std::vector<storm::expressions::Expression> automatonRangeExpressions = automaton.getAllRangeExpressions();
+                result.insert(result.end(), automatonRangeExpressions.begin(), automatonRangeExpressions.end());
+            }
+            return result;
+        }
+        
+        void Model::finalize() {
+            for (auto& automaton : getAutomata()) {
+                automaton.finalize(*this);
+            }
+        }
+        
+        bool Model::checkValidity(bool logdbg) const {
+            // TODO switch to exception based return value.
+            
+            if (version == 0) {
+                if(logdbg) STORM_LOG_DEBUG("Jani version is unspecified");
+                return false;
+            }
+            
+            if(modelType == ModelType::UNDEFINED) {
+                if(logdbg) STORM_LOG_DEBUG("Model type is unspecified");
+                return false;
+            }
+            
+            if(automata.empty()) {
+                if(logdbg) STORM_LOG_DEBUG("No automata specified");
+                return false;
+            }
+            // All checks passed.
+            return true;
+            
+        }
+        
+        bool Model::hasDefaultComposition() const {
+            CompositionInformationVisitor visitor;
+            CompositionInformation info = visitor.getInformation(this->getSystemComposition(), *this);
+            if (info.containsRestrictedParallelComposition() || info.containsRenameComposition()) {
+                return false;
+            }
+            for (auto const& multiplicity : info.getAutomatonToMultiplicityMap()) {
+                if (multiplicity.second > 1) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Model.h b/src/storage/jani/Model.h
new file mode 100644
index 000000000..be779083c
--- /dev/null
+++ b/src/storage/jani/Model.h
@@ -0,0 +1,332 @@
+#pragma once
+
+#include <memory>
+
+#include "src/storage/jani/Action.h"
+#include "src/storage/jani/ModelType.h"
+#include "src/storage/jani/Automaton.h"
+#include "src/storage/jani/Constant.h"
+#include "src/storage/jani/Composition.h"
+
+namespace storm {
+    namespace expressions {
+        class ExpressionManager;
+    }
+    
+    namespace jani {
+        
+        class Exporter;
+        
+        class Model {
+        public:
+            friend class Exporter;
+            
+            /*!
+             * Creates an uninitialized model.
+             */
+            Model();
+            
+            /*!
+             * Creates an empty model with the given type.
+             */
+            Model(std::string const& name, ModelType const& modelType, uint64_t version = 1, boost::optional<std::shared_ptr<storm::expressions::ExpressionManager>> const& expressionManager = boost::none);
+            
+            /*!
+             * Retrieves the JANI-version of the model.
+             */
+            uint64_t getJaniVersion() const;
+            
+            /*!
+             * Retrieves the type of the model.
+             */
+            ModelType const& getModelType() const;
+            
+            /*!
+             * Retrievest the name of the model.
+             */
+            std::string const& getName() const;
+            
+            /**
+             * Checks whether the model has an action with the given name.
+             *
+             * @param name The name to look for.
+             */
+            bool hasAction(std::string const& name) const;
+            
+            /**
+             * Get the index of the action
+             * @param the name of the model
+             * @return the index of the (unique) action with the given name, undefined if no such action is present.
+             */
+            uint64_t getActionIndex(std::string const& name) const;
+            
+            /**
+             * Adds an action to the model.
+             *
+             * @return the index for this action.
+             */
+            uint64_t addAction(Action const& action);
+            
+            /*!
+             * Retrieves the action with the given index.
+             */
+            Action const& getAction(uint64_t index) const;
+            
+            /*!
+             * Retrieves the actions of the model.
+             */
+            std::vector<Action> const& getActions() const;
+            
+            /*!
+             * Retrieves all non-silent action indices of the model.
+             */
+            boost::container::flat_set<uint64_t> const& getNonsilentActionIndices() const;
+            
+            /*!
+             * Adds the given constant to the model.
+             */
+            uint64_t addConstant(Constant const& constant);
+            
+            /*!
+             * Retrieves whether the model has a constant with the given name.
+             */
+            bool hasConstant(std::string const& name) const;
+            
+            /*!
+             * Retrieves the constants of the model.
+             */
+            std::vector<Constant> const& getConstants() const;
+
+            /*!
+             * Retrieves the constants of the model.
+             */
+            std::vector<Constant>& getConstants();
+
+            /*!
+             * Retrieves the constant with the given name (if any).
+             */
+            Constant const& getConstant(std::string const& name) const;
+            
+            /*!
+             * Adds the given boolean variable to this model.
+             */
+            void addBooleanVariable(BooleanVariable const& variable);
+            
+            /*!
+             * Adds the given bounded integer variable to this model.
+             */
+            void addBoundedIntegerVariable(BoundedIntegerVariable const& variable);
+            
+            /*!
+             * Adds the given unbounded integer variable to this model.
+             */
+            void addUnboundedIntegerVariable(UnboundedIntegerVariable const& variable);
+
+            /*!
+             * Retrieves the variables of this automaton.
+             */
+            VariableSet& getGlobalVariables();
+
+            /*!
+             * Retrieves the variables of this automaton.
+             */
+            VariableSet const& getGlobalVariables() const;
+            
+            /*!
+             * Retrieves the manager responsible for the expressions in the JANI model.
+             */
+            storm::expressions::ExpressionManager& getExpressionManager();
+
+            /*!
+             * Retrieves the manager responsible for the expressions in the JANI model.
+             */
+            storm::expressions::ExpressionManager const& getExpressionManager() const;
+            
+            /*!
+             * Adds the given automaton to the automata of this model.
+             */
+            uint64_t addAutomaton(Automaton const& automaton);
+            
+            /*!
+             * Retrieves the automata of the model.
+             */
+            std::vector<Automaton>& getAutomata();
+
+            /*!
+             * Retrieves the automata of the model.
+             */
+            std::vector<Automaton> const& getAutomata() const;
+
+            /*!
+             * Retrieves the automaton with the given name.
+             */
+            Automaton& getAutomaton(std::string const& name);
+
+            /*!
+             * Retrieves the automaton with the given name.
+             */
+            Automaton const& getAutomaton(std::string const& name) const;
+
+            /*!
+             * Retrieves the number of automata in this model.
+             */
+            std::size_t getNumberOfAutomata() const;
+            
+            /*!
+             * Sets the system composition expression of the JANI model.
+             */
+            void setSystemComposition(std::shared_ptr<Composition> const& composition);
+            
+            /*!
+             * Gets the system composition as the standard, fully-synchronizing parallel composition.
+             */
+            std::shared_ptr<Composition> getStandardSystemComposition() const;
+            
+            /*!
+             * Retrieves the system composition expression.
+             */
+            Composition const& getSystemComposition() const;
+            
+            /*!
+             * Retrieves the set of action names.
+             */
+            std::set<std::string> getActionNames(bool includeSilent = true) const;
+            
+            /*!
+             * Retrieves the name of the silent action.
+             */
+            std::string const& getSilentActionName() const;
+            
+            /*!
+             * Retrieves the index of the silent action.
+             */
+            uint64_t getSilentActionIndex() const;
+            
+            /*!
+             * Defines the undefined constants of the model by the given expressions. The original model is not modified,
+             * but instead a new model is created.
+             */
+            Model defineUndefinedConstants(std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions) const;
+            
+            /*!
+             * Retrieves whether the model still has undefined constants.
+             */
+            bool hasUndefinedConstants() const;
+            
+            /*!
+             * Retrieves all undefined constants of the model.
+             */
+            std::vector<std::reference_wrapper<Constant const>> getUndefinedConstants() const;
+            
+            /*!
+             * Substitutes all constants in all expressions of the model. The original model is not modified, but
+             * instead a new model is created.
+             */
+            Model substituteConstants() const;
+            
+            /*!
+             * Retrieves a mapping from expression variables associated with defined constants of the model to their
+             * (the constants') defining expression.
+             */
+            std::map<storm::expressions::Variable, storm::expressions::Expression> getConstantsSubstitution() const;
+            
+            /*!
+             * Retrieves whether there is an expression defining the legal initial values of the global variables.
+             */
+            bool hasInitialStatesExpression() const;
+            
+            /*!
+             * Retrieves the expression defining the legal initial values of the variables.
+             *
+             * @param includeAutomataInitialStatesExpressions If set to true, the expression defines the legal initial
+             * states not only for the global variables but also for the variables of each automaton.
+             */
+            storm::expressions::Expression getInitialStatesExpression(bool includeAutomataInitialStatesExpressions = false) const;
+            
+            /*!
+             * Sets the expression defining the legal initial values of the global variables.
+             */
+            void setInitialStatesExpression(storm::expressions::Expression const& initialStatesExpression);
+            
+            /*!
+             * Determines whether this model is a deterministic one in the sense that each state only has one choice.
+             */
+            bool isDeterministicModel() const;
+            
+            /*!
+             * Determines whether this model is a discrete-time model.
+             */
+            bool isDiscreteTimeModel() const;
+            
+            /*!
+             * Retrieves a list of expressions that characterize the legal values of the variables in this model.
+             */
+            std::vector<storm::expressions::Expression> getAllRangeExpressions() const;
+            
+            /*!
+             * Retrieves whether this model has the default composition, that is it composes all automata in parallel
+             * and synchronizes over all common actions.
+             */
+            bool hasDefaultComposition() const;
+            
+            /*!
+             * After adding all components to the model, this method has to be called. It recursively calls
+             * <code>finalize</code> on all contained elements. All subsequent changes to the model require another call
+             * to this method.
+             */
+            void finalize();
+            
+            /*!
+             *  Checks if the model is valid JANI, which should be verified before any further operations are applied to a model.
+             */
+            bool checkValidity(bool logdbg = true) const;
+            
+        private:
+            /// The model name.
+            std::string name;
+            
+            /// The type of the model.
+            ModelType modelType;
+            
+            /// The JANI-version used to specify the model.
+            uint64_t version;
+            
+            /// The manager responsible for the expressions in this model.
+            std::shared_ptr<storm::expressions::ExpressionManager> expressionManager;
+            
+            /// The list of actions.
+            std::vector<Action> actions;
+            
+            /// A mapping from names to action indices.
+            std::unordered_map<std::string, uint64_t> actionToIndex;
+            
+            /// The set of non-silent action indices.
+            boost::container::flat_set<uint64_t> nonsilentActionIndices;
+            
+            /// The index of the silent action.
+            uint64_t silentActionIndex;
+            
+            /// The constants defined by the model.
+            std::vector<Constant> constants;
+            
+            /// A mapping from names to constants.
+            std::unordered_map<std::string, uint64_t> constantToIndex;
+            
+            /// The global variables of the model.
+            VariableSet globalVariables;
+            
+            /// The list of automata.
+            std::vector<Automaton> automata;
+            
+            /// A mapping from names to automata indices.
+            std::unordered_map<std::string, size_t> automatonToIndex;
+            
+            /// An expression describing how the system is composed of the automata.
+            std::shared_ptr<Composition> composition;
+            
+            // The expression characterizing the legal initial values of the global variables.
+            storm::expressions::Expression initialStatesExpression;
+        };
+    }
+}
+
diff --git a/src/storage/jani/ModelType.cpp b/src/storage/jani/ModelType.cpp
new file mode 100644
index 000000000..68f974786
--- /dev/null
+++ b/src/storage/jani/ModelType.cpp
@@ -0,0 +1,62 @@
+#include "src/storage/jani/ModelType.h"
+
+namespace storm {
+    namespace jani {
+        
+        std::ostream& operator<<(std::ostream& stream, ModelType const& type) {
+            switch (type) {
+                case ModelType::UNDEFINED:
+                    stream << "undefined";
+                    break;
+                case ModelType::DTMC:
+                    stream << "dtmc";
+                    break;
+                case ModelType::CTMC:
+                    stream << "ctmc";
+                    break;
+                case ModelType::MDP:
+                    stream << "mdp";
+                    break;
+                case ModelType::CTMDP:
+                    stream << "ctmdp";
+                    break;
+                case ModelType::MA:
+                    stream << "ma";
+                    break;
+                case ModelType::PTA:
+                    stream << "pta";
+                    break;
+                case ModelType::STA:
+                    stream << "sta";
+                    break;
+            }
+            return stream;
+        }
+
+        ModelType getModelType(std::string const& input) {
+            if (input == "dtmc") {
+                return ModelType::DTMC;
+            }
+            if (input == "ctmc") {
+                return ModelType::CTMC;
+            }
+            if (input == "mdp") {
+                return ModelType::MDP;
+            }
+            if (input == "ctmdp") {
+                return ModelType::CTMDP;
+            }
+            if (input == "ma") {
+                return ModelType::MA;
+            }
+            if (input == "pta") {
+                return ModelType::PTA;
+            }
+            if (input == "sta") {
+                return ModelType::STA;
+            }
+            return ModelType::UNDEFINED;
+        }
+        
+    }
+}
diff --git a/src/storage/jani/ModelType.h b/src/storage/jani/ModelType.h
new file mode 100644
index 000000000..b6bebae32
--- /dev/null
+++ b/src/storage/jani/ModelType.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#include <ostream>
+
+namespace storm {
+    namespace jani {
+        
+        enum class ModelType {UNDEFINED = 0, DTMC = 1, CTMC = 2, MDP = 3, CTMDP = 4, MA = 5, PTA = 6, STA = 7};
+
+        ModelType getModelType(std::string const& input);
+        std::ostream& operator<<(std::ostream& stream, ModelType const& type);
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/ParallelComposition.cpp b/src/storage/jani/ParallelComposition.cpp
new file mode 100644
index 000000000..f767e32cc
--- /dev/null
+++ b/src/storage/jani/ParallelComposition.cpp
@@ -0,0 +1,33 @@
+#include "src/storage/jani/ParallelComposition.h"
+
+#include <boost/algorithm/string/join.hpp>
+
+namespace storm {
+    namespace jani {
+        
+        ParallelComposition::ParallelComposition(std::shared_ptr<Composition> const& leftSubcomposition, std::shared_ptr<Composition> const& rightSubcomposition, std::set<std::string> const& alphabet) : leftSubcomposition(leftSubcomposition), rightSubcomposition(rightSubcomposition), alphabet(alphabet) {
+            // Intentionally left empty.
+        }
+        
+        Composition const& ParallelComposition::getLeftSubcomposition() const {
+            return *leftSubcomposition;
+        }
+        
+        Composition const& ParallelComposition::getRightSubcomposition() const {
+            return *rightSubcomposition;
+        }
+        
+        std::set<std::string> const& ParallelComposition::getSynchronizationAlphabet() const {
+            return alphabet;
+        }
+
+        boost::any ParallelComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        void ParallelComposition::write(std::ostream& stream) const {
+            stream << this->getLeftSubcomposition() << " |[" << boost::algorithm::join(alphabet, ", ") << "]| " << this->getRightSubcomposition();
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/ParallelComposition.h b/src/storage/jani/ParallelComposition.h
new file mode 100644
index 000000000..4b7ff69be
--- /dev/null
+++ b/src/storage/jani/ParallelComposition.h
@@ -0,0 +1,49 @@
+#pragma once
+
+#include <set>
+#include <memory>
+
+#include "src/storage/jani/Composition.h"
+
+namespace storm {
+    namespace jani {
+        
+        class ParallelComposition : public Composition {
+        public:
+            /*!
+             * Creates a parallel composition of the two subcompositions.
+             */
+            ParallelComposition(std::shared_ptr<Composition> const& leftSubcomposition, std::shared_ptr<Composition> const& rightSubcomposition, std::set<std::string> const& alphabet = {});
+            
+            /*!
+             * Retrieves the left subcomposition.
+             */
+            Composition const& getLeftSubcomposition() const;
+
+            /*!
+             * Retrieves the right subcomposition.
+             */
+            Composition const& getRightSubcomposition() const;
+
+            /*!
+             * Retrieves the alphabet of actions over which to synchronize the automata.
+             */
+            std::set<std::string> const& getSynchronizationAlphabet() const;
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+            virtual void write(std::ostream& stream) const override;
+            
+        private:
+            // The left subcomposition.
+            std::shared_ptr<Composition> leftSubcomposition;
+            
+            // The right subcomposition.
+            std::shared_ptr<Composition> rightSubcomposition;
+            
+            // The alphabet of actions over which to synchronize.
+            std::set<std::string> alphabet;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/RenameComposition.cpp b/src/storage/jani/RenameComposition.cpp
new file mode 100644
index 000000000..77ab94f5c
--- /dev/null
+++ b/src/storage/jani/RenameComposition.cpp
@@ -0,0 +1,45 @@
+#include "src/storage/jani/RenameComposition.h"
+
+#include <vector>
+#include <sstream>
+
+#include <boost/algorithm/string/join.hpp>
+
+namespace storm {
+    namespace jani {
+        
+        RenameComposition::RenameComposition(std::shared_ptr<Composition> const& subcomposition, std::map<std::string, boost::optional<std::string>> const& renaming) : subcomposition(subcomposition), renaming(renaming) {
+            // Intentionally left empty.
+        }
+        
+        Composition const& RenameComposition::getSubcomposition() const {
+            return *subcomposition;
+        }
+        
+        boost::any RenameComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        std::map<std::string, boost::optional<std::string>> const& RenameComposition::getRenaming() const {
+            return renaming;
+        }
+        
+        void RenameComposition::write(std::ostream& stream) const {
+            std::vector<std::string> renamingStrings;
+            
+            for (auto const& entry : renaming) {
+                std::stringstream stream;
+                stream << entry.first << " -> ";
+                if (entry.second) {
+                    stream << entry.second.get();
+                } else {
+                    stream << "tau";
+                }
+            }
+            
+            stream << "(" << subcomposition << ") / {" << boost::join(renamingStrings, ", ") << "}";
+        }
+
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/RenameComposition.h b/src/storage/jani/RenameComposition.h
new file mode 100644
index 000000000..169a8d738
--- /dev/null
+++ b/src/storage/jani/RenameComposition.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include <memory>
+#include <map>
+
+#include <boost/optional.hpp>
+
+#include "src/storage/jani/Composition.h"
+
+namespace storm {
+    namespace jani {
+        
+        class RenameComposition : public Composition {
+        public:
+            RenameComposition(std::shared_ptr<Composition> const& subcomposition, std::map<std::string, boost::optional<std::string>> const& renaming = {});
+            
+            /*!
+             * Retrieves the subcomposition of this rename composition.
+             */
+            Composition const& getSubcomposition() const;
+            
+            /*!
+             * Retrieves the renaming of actions. If some action name is mapped to none, this indicates the action is to
+             * be renamed to the silent action.
+             */
+            std::map<std::string, boost::optional<std::string>> const& getRenaming() const;
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+            virtual void write(std::ostream& stream) const override;
+            
+        private:
+            // The subcomposition.
+            std::shared_ptr<Composition> subcomposition;
+            
+            // The renaming to perform. If one cation is mapped to none, this means that the action is to be renamed to
+            // the silent action.
+            std::map<std::string, boost::optional<std::string>> renaming;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/RewardIncrement.cpp b/src/storage/jani/RewardIncrement.cpp
new file mode 100644
index 000000000..b82743d45
--- /dev/null
+++ b/src/storage/jani/RewardIncrement.cpp
@@ -0,0 +1,19 @@
+#include "src/storage/jani/RewardIncrement.h"
+
+namespace storm {
+    namespace jani {
+        
+        RewardIncrement::RewardIncrement(uint64_t rewardIndex, storm::expressions::Expression const& value) : rewardIndex(rewardIndex), value(value) {
+            // Intentionally left empty.
+        }
+        
+        uint64_t RewardIncrement::getRewardIndex() const {
+            return rewardIndex;
+        }
+        
+        storm::expressions::Expression const& RewardIncrement::getValue() const {
+            return value;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/RewardIncrement.h b/src/storage/jani/RewardIncrement.h
new file mode 100644
index 000000000..383ce9fe0
--- /dev/null
+++ b/src/storage/jani/RewardIncrement.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <cstdint>
+
+#include "src/storage/expressions/Expression.h"
+
+namespace storm {
+    namespace jani {
+        
+        class RewardIncrement {
+        public:
+            /*!
+             * Creates an increment of a reward (given by its index) by the given expression.
+             *
+             * @param rewardIndex The index of the reward to increment.
+             * @param value The expression defining the amount the reward is the incremented.
+             */
+            RewardIncrement(uint64_t rewardIndex, storm::expressions::Expression const& value);
+
+            /*!
+             * Retrieves the index of the reward to increment.
+             */
+            uint64_t getRewardIndex() const;
+            
+            /*!
+             * Retrieves the expression defining the amount by which the reward is to be incremented.
+             */
+            storm::expressions::Expression const& getValue() const;
+            
+        private:
+            // The index of the reward that is to be incremented.
+            uint64_t rewardIndex;
+            
+            // The expression defining the amount the reward is to be incremented.
+            storm::expressions::Expression value;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/UnboundedIntegerVariable.cpp b/src/storage/jani/UnboundedIntegerVariable.cpp
new file mode 100644
index 000000000..bf8f7615f
--- /dev/null
+++ b/src/storage/jani/UnboundedIntegerVariable.cpp
@@ -0,0 +1,15 @@
+#include "src/storage/jani/UnboundedIntegerVariable.h"
+
+namespace storm {
+    namespace jani {
+        
+        UnboundedIntegerVariable::UnboundedIntegerVariable(std::string const& name, storm::expressions::Variable const& variable) : Variable(name, variable) {
+            // Intentionally left empty.
+        }
+        
+        bool UnboundedIntegerVariable::isUnboundedIntegerVariable() const {
+            return true;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/UnboundedIntegerVariable.h b/src/storage/jani/UnboundedIntegerVariable.h
new file mode 100644
index 000000000..585b953d4
--- /dev/null
+++ b/src/storage/jani/UnboundedIntegerVariable.h
@@ -0,0 +1,19 @@
+#pragma once
+
+#include "src/storage/jani/Variable.h"
+
+namespace storm {
+    namespace jani {
+        
+        class UnboundedIntegerVariable : public Variable {
+        public:
+            /*!
+             * Creates an unbounded integer variable.
+             */
+            UnboundedIntegerVariable(std::string const& name, storm::expressions::Variable const& variable);
+            
+            virtual bool isUnboundedIntegerVariable() const override;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Variable.cpp b/src/storage/jani/Variable.cpp
new file mode 100644
index 000000000..3bcb8fcd0
--- /dev/null
+++ b/src/storage/jani/Variable.cpp
@@ -0,0 +1,59 @@
+#include "src/storage/jani/Variable.h"
+
+#include "src/storage/jani/BooleanVariable.h"
+#include "src/storage/jani/BoundedIntegerVariable.h"
+#include "src/storage/jani/UnboundedIntegerVariable.h"
+
+namespace storm {
+    namespace jani {
+        
+        Variable::Variable(std::string const& name, storm::expressions::Variable const& variable) : name(name), variable(variable) {
+            // Intentionally left empty.
+        }
+        
+        storm::expressions::Variable const& Variable::getExpressionVariable() const {
+            return variable;
+        }
+
+        std::string const& Variable::getName() const {
+            return name;
+        }
+        
+        bool Variable::isBooleanVariable() const {
+            return false;
+        }
+        
+        bool Variable::isBoundedIntegerVariable() const {
+            return false;
+        }
+        
+        bool Variable::isUnboundedIntegerVariable() const {
+            return false;
+        }
+        
+        BooleanVariable& Variable::asBooleanVariable() {
+            return dynamic_cast<BooleanVariable&>(*this);
+        }
+        
+        BooleanVariable const& Variable::asBooleanVariable() const {
+            return dynamic_cast<BooleanVariable const&>(*this);
+        }
+        
+        BoundedIntegerVariable& Variable::asBoundedIntegerVariable() {
+            return dynamic_cast<BoundedIntegerVariable&>(*this);
+        }
+        
+        BoundedIntegerVariable const& Variable::asBoundedIntegerVariable() const {
+            return dynamic_cast<BoundedIntegerVariable const&>(*this);
+        }
+        
+        UnboundedIntegerVariable& Variable::asUnboundedIntegerVariable() {
+            return dynamic_cast<UnboundedIntegerVariable&>(*this);
+        }
+        
+        UnboundedIntegerVariable const& Variable::asUnboundedIntegerVariable() const {
+            return dynamic_cast<UnboundedIntegerVariable const&>(*this);
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/Variable.h b/src/storage/jani/Variable.h
new file mode 100644
index 000000000..2ef15321b
--- /dev/null
+++ b/src/storage/jani/Variable.h
@@ -0,0 +1,55 @@
+#pragma once
+
+#include <cstdint>
+#include <string>
+
+#include "src/storage/expressions/Variable.h"
+#include "src/storage/expressions/Expression.h"
+
+namespace storm {
+    namespace jani {
+        
+        class BooleanVariable;
+        class BoundedIntegerVariable;
+        class UnboundedIntegerVariable;
+        
+        class Variable {
+        public:
+            /*!
+             * Creates a new variable.
+             */
+            Variable(std::string const& name, storm::expressions::Variable const& variable);
+            
+            /*!
+             * Retrieves the associated expression variable
+             */
+            storm::expressions::Variable const& getExpressionVariable() const;
+            
+            /*!
+             * Retrieves the name of the variable.
+             */
+            std::string const& getName() const;
+                        
+            // Methods to determine the type of the variable.
+            virtual bool isBooleanVariable() const;
+            virtual bool isBoundedIntegerVariable() const;
+            virtual bool isUnboundedIntegerVariable() const;
+            
+            // Methods to get the variable as a different type.
+            BooleanVariable& asBooleanVariable();
+            BooleanVariable const& asBooleanVariable() const;
+            BoundedIntegerVariable& asBoundedIntegerVariable();
+            BoundedIntegerVariable const& asBoundedIntegerVariable() const;
+            UnboundedIntegerVariable& asUnboundedIntegerVariable();
+            UnboundedIntegerVariable const& asUnboundedIntegerVariable() const;
+            
+        private:
+            // The name of the variable.
+            std::string name;
+            
+            // The expression variable associated with this variable.
+            storm::expressions::Variable variable;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/jani/VariableSet.cpp b/src/storage/jani/VariableSet.cpp
new file mode 100644
index 000000000..78cfab2cc
--- /dev/null
+++ b/src/storage/jani/VariableSet.cpp
@@ -0,0 +1,172 @@
+#include "src/storage/jani/VariableSet.h"
+
+#include "src/utility/macros.h"
+#include "src/exceptions/WrongFormatException.h"
+#include "src/exceptions/InvalidArgumentException.h"
+
+namespace storm {
+    namespace jani {
+        
+        namespace detail {
+            
+            template<typename VariableType>
+            VariableType& Dereferencer<VariableType>::operator()(std::shared_ptr<VariableType> const& d) const {
+                return *d;
+            }
+            
+            template<typename VariableType>
+            Variables<VariableType>::Variables(input_iterator it, input_iterator ite) : it(it), ite(ite) {
+                // Intentionally left empty.
+            }
+                
+            template<typename VariableType>
+            typename Variables<VariableType>::iterator Variables<VariableType>::begin() {
+                return boost::make_transform_iterator(it, Dereferencer<VariableType>());
+            }
+            
+            template<typename VariableType>
+            typename Variables<VariableType>::iterator Variables<VariableType>::end() {
+                return boost::make_transform_iterator(ite, Dereferencer<VariableType>());
+            }
+
+            template<typename VariableType>
+            ConstVariables<VariableType>::ConstVariables(const_input_iterator it, const_input_iterator ite) : it(it), ite(ite) {
+                // Intentionally left empty.
+            }
+            
+            template<typename VariableType>
+            typename ConstVariables<VariableType>::const_iterator ConstVariables<VariableType>::begin() {
+                return boost::make_transform_iterator(it, Dereferencer<VariableType const>());
+            }
+            
+            template<typename VariableType>
+            typename ConstVariables<VariableType>::const_iterator ConstVariables<VariableType>::end() {
+                return boost::make_transform_iterator(ite, Dereferencer<VariableType const>());
+            }
+
+        }
+        
+        VariableSet::VariableSet() {
+            // Intentionally left empty.
+        }
+        
+        detail::Variables<BooleanVariable> VariableSet::getBooleanVariables() {
+            return detail::Variables<BooleanVariable>(booleanVariables.begin(), booleanVariables.end());
+        }
+        
+        detail::ConstVariables<BooleanVariable> VariableSet::getBooleanVariables() const {
+            return detail::ConstVariables<BooleanVariable>(booleanVariables.begin(), booleanVariables.end());
+        }
+
+        detail::Variables<BoundedIntegerVariable> VariableSet::getBoundedIntegerVariables() {
+            return detail::Variables<BoundedIntegerVariable>(boundedIntegerVariables.begin(), boundedIntegerVariables.end());
+        }
+
+        detail::ConstVariables<BoundedIntegerVariable> VariableSet::getBoundedIntegerVariables() const {
+            return detail::ConstVariables<BoundedIntegerVariable>(boundedIntegerVariables.begin(), boundedIntegerVariables.end());
+        }
+
+        detail::Variables<UnboundedIntegerVariable> VariableSet::getUnboundedIntegerVariables() {
+            return detail::Variables<UnboundedIntegerVariable>(unboundedIntegerVariables.begin(), unboundedIntegerVariables.end());
+        }
+
+        detail::ConstVariables<UnboundedIntegerVariable> VariableSet::getUnboundedIntegerVariables() const {
+            return detail::ConstVariables<UnboundedIntegerVariable>(unboundedIntegerVariables.begin(), unboundedIntegerVariables.end());
+        }
+
+        void VariableSet::addBooleanVariable(BooleanVariable const& variable) {
+            STORM_LOG_THROW(!this->hasVariable(variable.getName()), storm::exceptions::WrongFormatException, "Cannot add variable with name '" << variable.getName() << "', because a variable with that name already exists.");
+            std::shared_ptr<BooleanVariable> newVariable = std::make_shared<BooleanVariable>(variable);
+            variables.push_back(newVariable);
+            booleanVariables.push_back(newVariable);
+            nameToVariable.emplace(variable.getName(), variable.getExpressionVariable());
+            variableToVariable.emplace(variable.getExpressionVariable(), newVariable);
+        }
+        
+        void VariableSet::addBoundedIntegerVariable(BoundedIntegerVariable const& variable) {
+            STORM_LOG_THROW(!this->hasVariable(variable.getName()), storm::exceptions::WrongFormatException, "Cannot add variable with name '" << variable.getName() << "', because a variable with that name already exists.");
+            std::shared_ptr<BoundedIntegerVariable> newVariable = std::make_shared<BoundedIntegerVariable>(variable);
+            variables.push_back(newVariable);
+            boundedIntegerVariables.push_back(newVariable);
+            nameToVariable.emplace(variable.getName(), variable.getExpressionVariable());
+            variableToVariable.emplace(variable.getExpressionVariable(), newVariable);
+        }
+        
+        void VariableSet::addUnboundedIntegerVariable(UnboundedIntegerVariable const& variable) {
+            STORM_LOG_THROW(!this->hasVariable(variable.getName()), storm::exceptions::WrongFormatException, "Cannot add variable with name '" << variable.getName() << "', because a variable with that name already exists.");
+            std::shared_ptr<UnboundedIntegerVariable> newVariable = std::make_shared<UnboundedIntegerVariable>(variable);
+            variables.push_back(newVariable);
+            unboundedIntegerVariables.push_back(newVariable);
+            nameToVariable.emplace(variable.getName(), variable.getExpressionVariable());
+            variableToVariable.emplace(variable.getExpressionVariable(), newVariable);
+        }
+        
+        bool VariableSet::hasVariable(std::string const& name) const {
+            return nameToVariable.find(name) != nameToVariable.end();
+        }
+        
+        Variable const& VariableSet::getVariable(std::string const& name) const {
+            auto it = nameToVariable.find(name);
+            STORM_LOG_THROW(it != nameToVariable.end(), storm::exceptions::InvalidArgumentException, "Unable to retrieve unknown variable '" << name << "'.");
+            return getVariable(it->second);
+        }
+
+        VariableSet::iterator VariableSet::begin() {
+            return boost::make_transform_iterator(variables.begin(), detail::Dereferencer<Variable>());
+        }
+
+        VariableSet::const_iterator VariableSet::begin() const {
+            return boost::make_transform_iterator(variables.begin(), detail::Dereferencer<Variable const>());
+        }
+        
+        VariableSet::iterator VariableSet::end() {
+            return boost::make_transform_iterator(variables.end(), detail::Dereferencer<Variable>());
+        }
+
+        VariableSet::const_iterator VariableSet::end() const {
+            return boost::make_transform_iterator(variables.end(), detail::Dereferencer<Variable const>());
+        }
+
+        Variable const& VariableSet::getVariable(storm::expressions::Variable const& variable) const {
+            auto it = variableToVariable.find(variable);
+            STORM_LOG_THROW(it != variableToVariable.end(), storm::exceptions::InvalidArgumentException, "Unable to retrieve unknown variable '" << variable.getName() << "'.");
+            return *it->second;
+        }
+        
+        bool VariableSet::hasVariable(storm::expressions::Variable const& variable) const {
+            return variableToVariable.find(variable) != variableToVariable.end();
+        }
+        
+        bool VariableSet::containsBooleanVariable() const {
+            return !booleanVariables.empty();
+        }
+        
+        bool VariableSet::containsBoundedIntegerVariable() const {
+            return !boundedIntegerVariables.empty();
+        }
+        
+        bool VariableSet::containsUnboundedIntegerVariables() const {
+            return !unboundedIntegerVariables.empty();
+        }
+        
+        bool VariableSet::empty() const {
+            return !(containsBooleanVariable() || containsBoundedIntegerVariable() || containsUnboundedIntegerVariables());
+        }
+        
+        template class detail::Dereferencer<Variable>;
+        template class detail::Dereferencer<BooleanVariable>;
+        template class detail::Dereferencer<BoundedIntegerVariable>;
+        template class detail::Dereferencer<UnboundedIntegerVariable>;
+        template class detail::Dereferencer<Variable const>;
+        template class detail::Dereferencer<BooleanVariable const>;
+        template class detail::Dereferencer<BoundedIntegerVariable const>;
+        template class detail::Dereferencer<UnboundedIntegerVariable const>;
+        template class detail::Variables<BooleanVariable>;
+        template class detail::Variables<BoundedIntegerVariable>;
+        template class detail::Variables<UnboundedIntegerVariable>;
+        template class detail::ConstVariables<BooleanVariable>;
+        template class detail::ConstVariables<BoundedIntegerVariable>;
+        template class detail::ConstVariables<UnboundedIntegerVariable>;
+
+    }
+}
diff --git a/src/storage/jani/VariableSet.h b/src/storage/jani/VariableSet.h
new file mode 100644
index 000000000..2dc5105e3
--- /dev/null
+++ b/src/storage/jani/VariableSet.h
@@ -0,0 +1,196 @@
+#pragma once
+
+#include <vector>
+#include <set>
+
+#include <boost/iterator/transform_iterator.hpp>
+
+#include "src/storage/jani/BooleanVariable.h"
+#include "src/storage/jani/UnboundedIntegerVariable.h"
+#include "src/storage/jani/BoundedIntegerVariable.h"
+
+namespace storm {
+    namespace jani {
+        
+        class VariableSet;
+        
+        namespace detail {
+            
+            template<typename VariableType>
+            class Dereferencer {
+            public:
+                VariableType& operator()(std::shared_ptr<VariableType> const& d) const;
+            };
+            
+            template<typename VariableType>
+            class Variables {
+            public:
+                typedef typename std::vector<std::shared_ptr<VariableType>>::iterator input_iterator;
+                typedef boost::transform_iterator<Dereferencer<VariableType>, input_iterator> iterator;
+                
+                Variables(input_iterator it, input_iterator ite);
+                
+                iterator begin();
+                iterator end();
+                
+            private:
+                input_iterator it;
+                input_iterator ite;
+            };
+
+            template<typename VariableType>
+            class ConstVariables {
+            public:
+                typedef typename std::vector<std::shared_ptr<VariableType>>::const_iterator const_input_iterator;
+                typedef boost::transform_iterator<Dereferencer<VariableType const>, const_input_iterator> const_iterator;
+                
+                ConstVariables(const_input_iterator it, const_input_iterator ite);
+                
+                const_iterator begin();
+                const_iterator end();
+                
+            private:
+                const_input_iterator it;
+                const_input_iterator ite;
+            };
+        }
+        
+        class VariableSet {
+        public:
+            typedef typename std::vector<std::shared_ptr<Variable>>::iterator input_iterator;
+            typedef typename std::vector<std::shared_ptr<Variable>>::const_iterator const_input_iterator;
+            typedef boost::transform_iterator<detail::Dereferencer<Variable>, input_iterator> iterator;
+            typedef boost::transform_iterator<detail::Dereferencer<Variable const>, const_input_iterator> const_iterator;
+            
+            /*!
+             * Creates an empty variable set.
+             */
+            VariableSet();
+            
+            /*!
+             * Retrieves the boolean variables in this set.
+             */
+            detail::Variables<BooleanVariable> getBooleanVariables();
+
+            /*!
+             * Retrieves the boolean variables in this set.
+             */
+            detail::ConstVariables<BooleanVariable> getBooleanVariables() const;
+
+            /*!
+             * Retrieves the bounded integer variables in this set.
+             */
+            detail::Variables<BoundedIntegerVariable> getBoundedIntegerVariables();
+
+            /*!
+             * Retrieves the bounded integer variables in this set.
+             */
+            detail::ConstVariables<BoundedIntegerVariable> getBoundedIntegerVariables() const;
+
+            /*!
+             * Retrieves the unbounded integer variables in this set.
+             */
+            detail::Variables<UnboundedIntegerVariable> getUnboundedIntegerVariables();
+
+            /*!
+             * Retrieves the unbounded integer variables in this set.
+             */
+            detail::ConstVariables<UnboundedIntegerVariable> getUnboundedIntegerVariables() const;
+            
+            /*!
+             * Adds the given boolean variable to this set.
+             */
+            void addBooleanVariable(BooleanVariable const& variable);
+
+            /*!
+             * Adds the given bounded integer variable to this set.
+             */
+            void addBoundedIntegerVariable(BoundedIntegerVariable const& variable);
+
+            /*!
+             * Adds the given unbounded integer variable to this set.
+             */
+            void addUnboundedIntegerVariable(UnboundedIntegerVariable const& variable);
+
+            /*!
+             * Retrieves whether this variable set contains a variable with the given name.
+             */
+            bool hasVariable(std::string const& name) const;
+            
+            /*!
+             * Retrieves the variable with the given name.
+             */
+            Variable const& getVariable(std::string const& name) const;
+
+            /*!
+             * Retrieves whether this variable set contains a variable with the expression variable.
+             */
+            bool hasVariable(storm::expressions::Variable const& variable) const;
+            
+            /*!
+             * Retrieves the variable object associated with the given expression variable (if any).
+             */
+            Variable const& getVariable(storm::expressions::Variable const& variable) const;
+
+            /*!
+             * Retrieves an iterator to the variables in this set.
+             */
+            iterator begin();
+
+            /*!
+             * Retrieves an iterator to the variables in this set.
+             */
+            const_iterator begin() const;
+
+            /*!
+             * Retrieves the end iterator to the variables in this set.
+             */
+            iterator end();
+
+            /*!
+             * Retrieves the end iterator to the variables in this set.
+             */
+            const_iterator end() const;
+
+            /*!
+             * Retrieves whether the set of variables contains a boolean variable.
+             */
+            bool containsBooleanVariable() const;
+
+            /*!
+             * Retrieves whether the set of variables contains a bounded integer variable.
+             */
+            bool containsBoundedIntegerVariable() const;
+
+            /*!
+             * Retrieves whether the set of variables contains an unbounded integer variable.
+             */
+            bool containsUnboundedIntegerVariables() const;
+
+            /*!
+             * Retrieves whether this variable set is empty.
+             */
+            bool empty() const;
+            
+        private:
+            /// The vector of all variables.
+            std::vector<std::shared_ptr<Variable>> variables;
+            
+            /// The boolean variables in this set.
+            std::vector<std::shared_ptr<BooleanVariable>> booleanVariables;
+
+            /// The bounded integer variables in this set.
+            std::vector<std::shared_ptr<BoundedIntegerVariable>> boundedIntegerVariables;
+
+            /// The unbounded integer variables in this set.
+            std::vector<std::shared_ptr<UnboundedIntegerVariable>> unboundedIntegerVariables;
+            
+            /// A set of all variable names currently in use.
+            std::map<std::string, storm::expressions::Variable> nameToVariable;
+            
+            /// A mapping from expression variables to their variable objects.
+            std::map<storm::expressions::Variable, std::shared_ptr<Variable>> variableToVariable;
+        };
+        
+    }
+}
diff --git a/src/storage/prism/Assignment.cpp b/src/storage/prism/Assignment.cpp
index a6c8b4456..40b37d4a9 100644
--- a/src/storage/prism/Assignment.cpp
+++ b/src/storage/prism/Assignment.cpp
@@ -26,12 +26,6 @@ namespace storm {
         bool Assignment::isIdentity() const {
             if(this->expression.isVariable()) {
                 assert(this->expression.getVariables().size() == 1);
-                //if( variable == *(this->expression.getVariables().begin())) {
-                //    std::cout << variable.getName() << " == " << (this->expression.getVariables().begin())->getName() << std::endl;
-                //}
-                //else {
-                //    std::cout << "********" << variable.getName() << " != " << (this->expression.getVariables().begin())->getName() << std::endl;
-                //}
                 return variable == *(this->expression.getVariables().begin());
             }
             return false;
diff --git a/src/storage/prism/Assignment.h b/src/storage/prism/Assignment.h
index 1c45a2b78..c3318346a 100644
--- a/src/storage/prism/Assignment.h
+++ b/src/storage/prism/Assignment.h
@@ -61,7 +61,7 @@ namespace storm {
             Assignment substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const;
             
             /*!
-             * Checks whether the assignment is an identity  (lhs equals rhs)
+             * Checks whether the assignment is an identity (lhs equals rhs)
              * 
              * @return true iff the assignment is of the form a' = a.
              */
diff --git a/src/storage/prism/Composition.cpp b/src/storage/prism/Composition.cpp
new file mode 100644
index 000000000..0e9d688db
--- /dev/null
+++ b/src/storage/prism/Composition.cpp
@@ -0,0 +1,12 @@
+#include "src/storage/prism/Composition.h"
+
+namespace storm {
+    namespace prism {
+        
+        std::ostream& operator<<(std::ostream& stream, Composition const& composition) {
+            composition.writeToStream(stream);
+            return stream;
+        }
+        
+    }
+}
diff --git a/src/storage/prism/Composition.h b/src/storage/prism/Composition.h
new file mode 100644
index 000000000..b5817aaf2
--- /dev/null
+++ b/src/storage/prism/Composition.h
@@ -0,0 +1,27 @@
+#ifndef STORM_STORAGE_PRISM_COMPOSITION_H_
+#define STORM_STORAGE_PRISM_COMPOSITION_H_
+
+#include <ostream>
+
+#include "src/storage/prism/CompositionVisitor.h"
+
+namespace storm {
+    namespace prism {
+        class Composition {
+        public:
+            Composition() = default;
+            
+            friend std::ostream& operator<<(std::ostream& stream, Composition const& composition);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const = 0;
+            
+        protected:
+            virtual void writeToStream(std::ostream& stream) const = 0;
+            
+        private:
+            
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_COMPOSITION_H_ */
diff --git a/src/storage/prism/CompositionToJaniVisitor.cpp b/src/storage/prism/CompositionToJaniVisitor.cpp
new file mode 100644
index 000000000..173a70bdc
--- /dev/null
+++ b/src/storage/prism/CompositionToJaniVisitor.cpp
@@ -0,0 +1,66 @@
+#include "src/storage/prism/CompositionToJaniVisitor.h"
+#include "src/storage/prism/Compositions.h"
+
+#include "src/storage/jani/Compositions.h"
+#include "src/storage/jani/Model.h"
+
+namespace storm {
+    namespace prism {
+        
+        std::shared_ptr<storm::jani::Composition> CompositionToJaniVisitor::toJani(Composition const& composition, storm::jani::Model const& model) {
+            return boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.accept(*this, model));
+        }
+        
+        boost::any CompositionToJaniVisitor::visit(ModuleComposition const& composition, boost::any const& data) {
+            std::shared_ptr<storm::jani::Composition> result = std::make_shared<storm::jani::AutomatonComposition>(composition.getModuleName());
+            return result;
+        }
+        
+        boost::any CompositionToJaniVisitor::visit(RenamingComposition const& composition, boost::any const& data) {
+            std::map<std::string, boost::optional<std::string>> newRenaming;
+            for (auto const& renamingPair : composition.getActionRenaming()) {
+                newRenaming.emplace(renamingPair.first, renamingPair.second);
+            }
+            auto subcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getSubcomposition().accept(*this, data));
+            std::shared_ptr<storm::jani::Composition> result = std::make_shared<storm::jani::RenameComposition>(subcomposition, newRenaming);
+            return result;
+        }
+        
+        boost::any CompositionToJaniVisitor::visit(HidingComposition const& composition, boost::any const& data) {
+            std::map<std::string, boost::optional<std::string>> newRenaming;
+            for (auto const& action : composition.getActionsToHide()) {
+                newRenaming.emplace(action, boost::none);
+            }
+            auto subcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getSubcomposition().accept(*this, data));
+            std::shared_ptr<storm::jani::Composition> result = std::make_shared<storm::jani::RenameComposition>(subcomposition, newRenaming);
+            return result;
+        }
+        
+        boost::any CompositionToJaniVisitor::visit(SynchronizingParallelComposition const& composition, boost::any const& data) {
+            auto leftSubcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getLeftSubcomposition().accept(*this, data));
+            auto rightSubcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getRightSubcomposition().accept(*this, data));
+            
+            storm::jani::Model const& model = boost::any_cast<storm::jani::Model const&>(data);
+            std::set<std::string> allActions;
+            for (auto const& action : model.getActions()) {
+                allActions.insert(action.getName());
+            }
+            std::shared_ptr<storm::jani::Composition> result = std::make_shared<storm::jani::ParallelComposition>(leftSubcomposition, rightSubcomposition, allActions);
+            return result;
+        }
+        
+        boost::any CompositionToJaniVisitor::visit(InterleavingParallelComposition const& composition, boost::any const& data) {
+            auto leftSubcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getLeftSubcomposition().accept(*this, data));
+            auto rightSubcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getRightSubcomposition().accept(*this, data));
+            std::shared_ptr<storm::jani::Composition> result = std::make_shared<storm::jani::ParallelComposition>(leftSubcomposition, rightSubcomposition, std::set<std::string>());
+            return result;
+        }
+        
+        boost::any CompositionToJaniVisitor::visit(RestrictedParallelComposition const& composition, boost::any const& data) {
+            auto leftSubcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getLeftSubcomposition().accept(*this, data));
+            auto rightSubcomposition = boost::any_cast<std::shared_ptr<storm::jani::Composition>>(composition.getRightSubcomposition().accept(*this, data));
+            std::shared_ptr<storm::jani::Composition> result = std::make_shared<storm::jani::ParallelComposition>(leftSubcomposition, rightSubcomposition, composition.getSynchronizingActions());
+            return result;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/CompositionToJaniVisitor.h b/src/storage/prism/CompositionToJaniVisitor.h
new file mode 100644
index 000000000..c1fabff99
--- /dev/null
+++ b/src/storage/prism/CompositionToJaniVisitor.h
@@ -0,0 +1,29 @@
+#pragma once
+
+#include <memory>
+
+#include "src/storage/prism/CompositionVisitor.h"
+
+namespace storm {
+    namespace jani {
+        class Composition;
+        class Model;
+    }
+    
+    namespace prism {
+        class Composition;
+        
+        class CompositionToJaniVisitor : public CompositionVisitor {
+        public:
+            std::shared_ptr<storm::jani::Composition> toJani(Composition const& composition, storm::jani::Model const& model);
+            
+            virtual boost::any visit(ModuleComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(RenamingComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(HidingComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(SynchronizingParallelComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(InterleavingParallelComposition const& composition, boost::any const& data) override;
+            virtual boost::any visit(RestrictedParallelComposition const& composition, boost::any const& data) override;
+        };
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/CompositionVisitor.h b/src/storage/prism/CompositionVisitor.h
new file mode 100644
index 000000000..b266e8f28
--- /dev/null
+++ b/src/storage/prism/CompositionVisitor.h
@@ -0,0 +1,28 @@
+#ifndef STORM_STORAGE_PRISM_COMPOSITIONVISITOR_H_
+#define STORM_STORAGE_PRISM_COMPOSITIONVISITOR_H_
+
+#include <boost/any.hpp>
+
+namespace storm {
+    namespace prism {
+        
+        class ModuleComposition;
+        class RenamingComposition;
+        class HidingComposition;
+        class SynchronizingParallelComposition;
+        class InterleavingParallelComposition;
+        class RestrictedParallelComposition;
+        
+        class CompositionVisitor {
+        public:
+            virtual boost::any visit(ModuleComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(RenamingComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(HidingComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(SynchronizingParallelComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(InterleavingParallelComposition const& composition, boost::any const& data) = 0;
+            virtual boost::any visit(RestrictedParallelComposition const& composition, boost::any const& data) = 0;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_COMPOSITIONVISITOR_H_ */
\ No newline at end of file
diff --git a/src/storage/prism/Compositions.h b/src/storage/prism/Compositions.h
new file mode 100644
index 000000000..968142479
--- /dev/null
+++ b/src/storage/prism/Compositions.h
@@ -0,0 +1,6 @@
+#include "src/storage/prism/ModuleComposition.h"
+#include "src/storage/prism/RestrictedParallelComposition.h"
+#include "src/storage/prism/RenamingComposition.h"
+#include "src/storage/prism/SynchronizingParallelComposition.h"
+#include "src/storage/prism/InterleavingParallelComposition.h"
+#include "src/storage/prism/HidingComposition.h"
\ No newline at end of file
diff --git a/src/storage/prism/HidingComposition.cpp b/src/storage/prism/HidingComposition.cpp
new file mode 100644
index 000000000..78af490d0
--- /dev/null
+++ b/src/storage/prism/HidingComposition.cpp
@@ -0,0 +1,29 @@
+#include "src/storage/prism/HidingComposition.h"
+
+#include <boost/algorithm/string/join.hpp>
+
+namespace storm {
+    namespace prism {
+        
+        HidingComposition::HidingComposition(std::shared_ptr<Composition> const& sub, std::set<std::string> const& actionsToHide) : sub(sub), actionsToHide(actionsToHide) {
+            // Intentionally left empty.
+        }
+
+        boost::any HidingComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        Composition const& HidingComposition::getSubcomposition() const {
+            return *sub;
+        }
+        
+        std::set<std::string> const& HidingComposition::getActionsToHide() const {
+            return actionsToHide;
+        }
+        
+        void HidingComposition::writeToStream(std::ostream& stream) const {
+            stream << "(" << *sub << ")" << " " << "{" << boost::join(actionsToHide, ", ") << "}";
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/HidingComposition.h b/src/storage/prism/HidingComposition.h
new file mode 100644
index 000000000..2edba85b1
--- /dev/null
+++ b/src/storage/prism/HidingComposition.h
@@ -0,0 +1,34 @@
+#ifndef STORM_STORAGE_PRISM_HIDINGCOMPOSITION_H_
+#define STORM_STORAGE_PRISM_HIDINGCOMPOSITION_H_
+
+#include <set>
+#include <string>
+#include <memory>
+
+#include "src/storage/prism/Composition.h"
+
+namespace storm {
+    namespace prism {
+        class HidingComposition : public Composition {
+        public:
+            HidingComposition(std::shared_ptr<Composition> const& sub, std::set<std::string> const& actionsToHide);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+            Composition const& getSubcomposition() const;
+            
+            std::set<std::string> const& getActionsToHide() const;
+            
+        protected:
+            virtual void writeToStream(std::ostream& stream) const override;
+            
+        private:
+            std::shared_ptr<Composition> sub;
+            
+            // The actions to hide.
+            std::set<std::string> actionsToHide;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_HIDINGCOMPOSITION_H_ */
diff --git a/src/storage/prism/InitialConstruct.h b/src/storage/prism/InitialConstruct.h
index 5200fe805..8bd911386 100644
--- a/src/storage/prism/InitialConstruct.h
+++ b/src/storage/prism/InitialConstruct.h
@@ -10,17 +10,15 @@
 
 
 namespace storm {
-        namespace expressions {
-            class Variable;
-        }
+    namespace expressions {
+        class Variable;
+    }
 }
 
-
-
 namespace storm {
     namespace prism {
         class InitialConstruct : public LocatedInformation {
-            public:
+        public:
             /*!
              * Creates an initial construct with the given expression.
              *
diff --git a/src/storage/prism/IntegerVariable.cpp b/src/storage/prism/IntegerVariable.cpp
index 8ab2f9678..b2306ece0 100644
--- a/src/storage/prism/IntegerVariable.cpp
+++ b/src/storage/prism/IntegerVariable.cpp
@@ -14,6 +14,10 @@ namespace storm {
             return this->upperBoundExpression;
         }
         
+        storm::expressions::Expression IntegerVariable::getRangeExpression() const {
+            return this->getLowerBoundExpression() <= this->getExpressionVariable() && this->getExpressionVariable() <= this->getUpperBoundExpression();
+        }
+        
         IntegerVariable IntegerVariable::substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const {
             return IntegerVariable(this->getExpressionVariable(), this->getLowerBoundExpression().substitute(substitution), this->getUpperBoundExpression().substitute(substitution), this->getInitialValueExpression().substitute(substitution), this->getFilename(), this->getLineNumber());
         }
diff --git a/src/storage/prism/IntegerVariable.h b/src/storage/prism/IntegerVariable.h
index 024e1d214..fc1c6ecf5 100644
--- a/src/storage/prism/IntegerVariable.h
+++ b/src/storage/prism/IntegerVariable.h
@@ -45,6 +45,13 @@ namespace storm {
              */
             storm::expressions::Expression const& getUpperBoundExpression() const;
             
+            /*!
+             * Retrieves an expression characterizing the legal range of the variable.
+             *
+             * @return An expression characterizing the legal range of the variable.
+             */
+            storm::expressions::Expression getRangeExpression() const;
+            
             /*!
              * Substitutes all identifiers in the boolean variable according to the given map.
              *
diff --git a/src/storage/prism/InterleavingParallelComposition.cpp b/src/storage/prism/InterleavingParallelComposition.cpp
new file mode 100644
index 000000000..54fd113e4
--- /dev/null
+++ b/src/storage/prism/InterleavingParallelComposition.cpp
@@ -0,0 +1,19 @@
+#include "src/storage/prism/InterleavingParallelComposition.h"
+
+namespace storm {
+    namespace prism {
+        
+        InterleavingParallelComposition::InterleavingParallelComposition(std::shared_ptr<Composition> const& left, std::shared_ptr<Composition> const& right) : ParallelComposition(left, right) {
+            // Intentionally left empty.
+        }
+     
+        boost::any InterleavingParallelComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        void InterleavingParallelComposition::writeToStream(std::ostream& stream) const {
+            stream << "(" << this->getLeftSubcomposition() << " ||| " << this->getRightSubcomposition() << ")";
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/InterleavingParallelComposition.h b/src/storage/prism/InterleavingParallelComposition.h
new file mode 100644
index 000000000..7a77fe90c
--- /dev/null
+++ b/src/storage/prism/InterleavingParallelComposition.h
@@ -0,0 +1,20 @@
+#ifndef STORM_STORAGE_PRISM_INTERLEAVINGPARALLELCOMPOSITION_H_
+#define STORM_STORAGE_PRISM_INTERLEAVINGPARALLELCOMPOSITION_H_
+
+#include "src/storage/prism/ParallelComposition.h"
+
+namespace storm {
+    namespace prism {
+        class InterleavingParallelComposition : public ParallelComposition {
+        public:
+            InterleavingParallelComposition(std::shared_ptr<Composition> const& left, std::shared_ptr<Composition> const& right);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+
+        protected:
+            virtual void writeToStream(std::ostream& stream) const override;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_INTERLEAVINGPARALLELCOMPOSITION_H_ */
diff --git a/src/storage/prism/Module.cpp b/src/storage/prism/Module.cpp
index 47d44269a..d4168196d 100644
--- a/src/storage/prism/Module.cpp
+++ b/src/storage/prism/Module.cpp
@@ -43,6 +43,25 @@ namespace storm {
             return this->integerVariables;
         }
         
+        std::set<storm::expressions::Variable> Module::getAllExpressionVariables() const {
+            std::set<storm::expressions::Variable> result;
+            for (auto const& var : this->getBooleanVariables()) {
+                result.insert(var.getExpressionVariable());
+            }
+            for (auto const& var : this->getIntegerVariables()) {
+                result.insert(var.getExpressionVariable());
+            }
+            return result;
+        }
+        
+        std::vector<storm::expressions::Expression> Module::getAllRangeExpressions() const {
+            std::vector<storm::expressions::Expression> result;
+            for (auto const& integerVariable : this->integerVariables) {
+                result.push_back(integerVariable.getRangeExpression());
+            }
+            return result;
+        }
+        
         std::size_t Module::getNumberOfCommands() const {
             return this->commands.size();
         }
diff --git a/src/storage/prism/Module.h b/src/storage/prism/Module.h
index bb8c3b8d4..620432580 100644
--- a/src/storage/prism/Module.h
+++ b/src/storage/prism/Module.h
@@ -97,6 +97,22 @@ namespace storm {
              */
             std::vector<storm::prism::IntegerVariable> const& getIntegerVariables() const;
 
+            /*!
+             * Retrieves all expression variables used by this module.
+             *
+             * @return The set of expression variables used by this module.
+             */
+            std::set<storm::expressions::Variable> getAllExpressionVariables() const;
+            
+            
+            /*!
+             * Retrieves a list of expressions that characterize the legal ranges of all variables declared by this
+             * module.
+             *
+             * @return The list of expressions that characterize the legal ranges.
+             */
+            std::vector<storm::expressions::Expression> getAllRangeExpressions() const;
+            
             /*!
              * Retrieves the number of commands of this module.
              *
diff --git a/src/storage/prism/ModuleComposition.cpp b/src/storage/prism/ModuleComposition.cpp
new file mode 100644
index 000000000..a3f422e89
--- /dev/null
+++ b/src/storage/prism/ModuleComposition.cpp
@@ -0,0 +1,22 @@
+#include "src/storage/prism/ModuleComposition.h"
+
+namespace storm {
+    namespace prism {
+        
+        ModuleComposition::ModuleComposition(std::string const& moduleName) : moduleName(moduleName) {
+            // Intentionally left empty.
+        }
+        
+        boost::any ModuleComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        std::string const& ModuleComposition::getModuleName() const {
+            return moduleName;
+        }
+        
+        void ModuleComposition::writeToStream(std::ostream& stream) const {
+            stream << moduleName;
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/ModuleComposition.h b/src/storage/prism/ModuleComposition.h
new file mode 100644
index 000000000..20349d13b
--- /dev/null
+++ b/src/storage/prism/ModuleComposition.h
@@ -0,0 +1,28 @@
+#ifndef STORM_STORAGE_PRISM_MODULECOMPOSITION_H_
+#define STORM_STORAGE_PRISM_MODULECOMPOSITION_H_
+
+#include <string>
+
+#include "src/storage/prism/Composition.h"
+
+namespace storm {
+    namespace prism {
+        class ModuleComposition : public Composition {
+        public:
+            ModuleComposition(std::string const& moduleName);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+            std::string const& getModuleName() const;
+            
+        protected:
+            virtual void writeToStream(std::ostream& stream) const override;
+            
+        private:
+            // The name of the module to compose.
+            std::string moduleName;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_MODULECOMPOSITION_H_ */
diff --git a/src/storage/prism/ParallelComposition.cpp b/src/storage/prism/ParallelComposition.cpp
new file mode 100644
index 000000000..b74b12d53
--- /dev/null
+++ b/src/storage/prism/ParallelComposition.cpp
@@ -0,0 +1,21 @@
+#include "src/storage/prism/ParallelComposition.h"
+
+#include <boost/algorithm/string/join.hpp>
+
+namespace storm {
+    namespace prism {
+        
+        ParallelComposition::ParallelComposition(std::shared_ptr<Composition> const& left, std::shared_ptr<Composition> const& right) : left(left), right(right) {
+            // Intentionally left empty.
+        }
+        
+        Composition const& ParallelComposition::getLeftSubcomposition() const {
+            return *left;
+        }
+        
+        Composition const& ParallelComposition::getRightSubcomposition() const {
+            return *right;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/ParallelComposition.h b/src/storage/prism/ParallelComposition.h
new file mode 100644
index 000000000..5426ef97e
--- /dev/null
+++ b/src/storage/prism/ParallelComposition.h
@@ -0,0 +1,26 @@
+#ifndef STORM_STORAGE_PRISM_PARALLELCOMPOSITION_H_
+#define STORM_STORAGE_PRISM_PARALLELCOMPOSITION_H_
+
+#include <memory>
+#include <set>
+#include <string>
+
+#include "src/storage/prism/Composition.h"
+
+namespace storm {
+    namespace prism {
+        class ParallelComposition : public Composition {
+        public:
+            ParallelComposition(std::shared_ptr<Composition> const& left, std::shared_ptr<Composition> const& right);
+            
+            Composition const& getLeftSubcomposition() const;
+            Composition const& getRightSubcomposition() const;
+            
+        private:
+            std::shared_ptr<Composition> left;
+            std::shared_ptr<Composition> right;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_PARALLELCOMPOSITION_H_ */
diff --git a/src/storage/prism/Program.cpp b/src/storage/prism/Program.cpp
index 0a7b11bd6..c1a1e4cf0 100644
--- a/src/storage/prism/Program.cpp
+++ b/src/storage/prism/Program.cpp
@@ -13,26 +13,146 @@
 #include "src/exceptions/OutOfRangeException.h"
 #include "src/exceptions/WrongFormatException.h"
 #include "src/exceptions/InvalidTypeException.h"
+#include "src/exceptions/InvalidOperationException.h"
 #include "src/solver/SmtSolver.h"
 
+#include "src/storage/jani/Model.h"
+
+#include "src/storage/prism/CompositionVisitor.h"
+#include "src/storage/prism/Compositions.h"
+#include "src/storage/prism/CompositionToJaniVisitor.h"
+
 namespace storm {
     namespace prism {
-        Program::Program(std::shared_ptr<storm::expressions::ExpressionManager> manager, ModelType modelType, std::vector<Constant> const& constants, std::vector<BooleanVariable> const& globalBooleanVariables, std::vector<IntegerVariable> const& globalIntegerVariables, std::vector<Formula> const& formulas, std::vector<Module> const& modules, std::map<std::string, uint_fast64_t> const& actionToIndexMap, std::vector<RewardModel> const& rewardModels, bool fixInitialConstruct, storm::prism::InitialConstruct const& initialConstruct, std::vector<Label> const& labels, std::string const& filename, uint_fast64_t lineNumber, bool finalModel) 
+        class CompositionValidityChecker : public CompositionVisitor {
+        public:
+            CompositionValidityChecker(storm::prism::Program const& program) : program(program) {
+                // Intentionally left empty.
+            }
+            
+            void check(Composition const& composition) {
+                composition.accept(*this, boost::any());
+                if (appearingModules.size() != program.getNumberOfModules()) {
+                    STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Not every module is used in the system composition.");
+                }
+            }
+            
+            virtual boost::any visit(ModuleComposition const& composition, boost::any const& data) override {
+                bool isValid = program.hasModule(composition.getModuleName());
+                STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "The module \"" << composition.getModuleName() << "\" referred to in the system composition does not exist.");
+                isValid = appearingModules.find(composition.getModuleName()) == appearingModules.end();
+                STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "The module \"" << composition.getModuleName() << "\" is referred to more than once in the system composition.");
+                appearingModules.insert(composition.getModuleName());
+                std::set<uint_fast64_t> synchronizingActionIndices = program.getModule(composition.getModuleName()).getSynchronizingActionIndices();
+                return synchronizingActionIndices;
+            }
+            
+            virtual boost::any visit(RenamingComposition const& composition, boost::any const& data) override {
+                std::set<uint_fast64_t> subSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getSubcomposition().accept(*this, data));
+                
+                std::set<uint_fast64_t> newSynchronizingActionIndices = subSynchronizingActionIndices;
+                for (auto const& namePair : composition.getActionRenaming()) {
+                    if (!program.hasAction(namePair.first)) {
+                        STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "System composition refers to unknown action '" << namePair.first << "'.");
+                    } else if (!program.hasAction(namePair.second)) {
+                        STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "System composition refers to unknown action '" << namePair.second << "'.");
+                    } else {
+                        uint_fast64_t fromIndex = program.getActionIndex(namePair.first);
+                        uint_fast64_t toIndex = program.getActionIndex(namePair.second);
+                        auto it = subSynchronizingActionIndices.find(fromIndex);
+                        STORM_LOG_THROW(it != subSynchronizingActionIndices.end(), storm::exceptions::WrongFormatException, "Cannot rename action '" << namePair.first << "', because module '" << composition.getSubcomposition() << " does not have this action.");
+                        newSynchronizingActionIndices.erase(newSynchronizingActionIndices.find(fromIndex));
+                        newSynchronizingActionIndices.insert(toIndex);
+                    }
+                }
+                
+                
+                return newSynchronizingActionIndices;
+            }
+            
+            virtual boost::any visit(HidingComposition const& composition, boost::any const& data) override {
+                std::set<uint_fast64_t> subSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getSubcomposition().accept(*this, data));
+                
+                for (auto const& action : composition.getActionsToHide()) {
+                    if (!program.hasAction(action)) {
+                        STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "System composition refers to unknown action '" << action << "'.");
+                    } else {
+                        uint_fast64_t index = program.getActionIndex(action);
+                        auto it = subSynchronizingActionIndices.find(index);
+                        STORM_LOG_THROW(it != subSynchronizingActionIndices.end(), storm::exceptions::WrongFormatException, "Cannot hide action '" << action << "', because module '" << composition.getSubcomposition() << " does not have this action.");
+                        subSynchronizingActionIndices.erase(it);
+                    }
+                }
+                
+                return subSynchronizingActionIndices;
+            }
+            
+            virtual boost::any visit(SynchronizingParallelComposition const& composition, boost::any const& data) override {
+                std::set<uint_fast64_t> leftSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getLeftSubcomposition().accept(*this, data));
+                std::set<uint_fast64_t> rightSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getRightSubcomposition().accept(*this, data));
+                
+                std::set<uint_fast64_t> synchronizingActionIndices;
+                std::set_union(leftSynchronizingActionIndices.begin(), leftSynchronizingActionIndices.end(), rightSynchronizingActionIndices.begin(), rightSynchronizingActionIndices.end(), std::inserter(synchronizingActionIndices, synchronizingActionIndices.begin()));
+                
+                return synchronizingActionIndices;
+            }
+            
+            virtual boost::any visit(InterleavingParallelComposition const& composition, boost::any const& data) override {
+                std::set<uint_fast64_t> leftSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getLeftSubcomposition().accept(*this, data));
+                std::set<uint_fast64_t> rightSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getRightSubcomposition().accept(*this, data));
+                
+                std::set<uint_fast64_t> synchronizingActionIndices;
+                std::set_union(leftSynchronizingActionIndices.begin(), leftSynchronizingActionIndices.end(), rightSynchronizingActionIndices.begin(), rightSynchronizingActionIndices.end(), std::inserter(synchronizingActionIndices, synchronizingActionIndices.begin()));
+                
+                return synchronizingActionIndices;
+            }
+            
+            virtual boost::any visit(RestrictedParallelComposition const& composition, boost::any const& data) override {
+                std::set<uint_fast64_t> leftSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getLeftSubcomposition().accept(*this, data));
+                std::set<uint_fast64_t> rightSynchronizingActionIndices = boost::any_cast<std::set<uint_fast64_t>>(composition.getRightSubcomposition().accept(*this, data));
+                
+                for (auto const& action : composition.getSynchronizingActions()) {
+                    if (!program.hasAction(action)) {
+                        STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "System composition refers to unknown action '" << action << "'.");
+                    } else {
+                        uint_fast64_t index = program.getActionIndex(action);
+                        auto it = leftSynchronizingActionIndices.find(index);
+                        STORM_LOG_THROW(it != leftSynchronizingActionIndices.end(), storm::exceptions::WrongFormatException, "Cannot synchronize on action '" << action << "', because module '" << composition.getLeftSubcomposition() << " does not have this action.");
+                        it = rightSynchronizingActionIndices.find(index);
+                        STORM_LOG_THROW(it != rightSynchronizingActionIndices.end(), storm::exceptions::WrongFormatException, "Cannot synchronize on action '" << action << "', because module '" << composition.getRightSubcomposition() << " does not have this action.");
+                    }
+                }
+                
+                std::set<uint_fast64_t> synchronizingActionIndices;
+                std::set_union(leftSynchronizingActionIndices.begin(), leftSynchronizingActionIndices.end(), rightSynchronizingActionIndices.begin(), rightSynchronizingActionIndices.end(), std::inserter(synchronizingActionIndices, synchronizingActionIndices.begin()));
+                
+                return synchronizingActionIndices;
+            }
+            
+        private:
+            storm::prism::Program const& program;
+            std::set<std::string> appearingModules;
+        };
+        
+        Program::Program(std::shared_ptr<storm::expressions::ExpressionManager> manager, ModelType modelType, std::vector<Constant> const& constants, std::vector<BooleanVariable> const& globalBooleanVariables, std::vector<IntegerVariable> const& globalIntegerVariables, std::vector<Formula> const& formulas, std::vector<Module> const& modules, std::map<std::string, uint_fast64_t> const& actionToIndexMap, std::vector<RewardModel> const& rewardModels, std::vector<Label> const& labels, boost::optional<InitialConstruct> const& initialConstruct, boost::optional<SystemCompositionConstruct> const& compositionConstruct, std::string const& filename, uint_fast64_t lineNumber, bool finalModel)
         : LocatedInformation(filename, lineNumber), manager(manager),
-            modelType(modelType), constants(constants), constantToIndexMap(),
-            globalBooleanVariables(globalBooleanVariables), globalBooleanVariableToIndexMap(),
-            globalIntegerVariables(globalIntegerVariables), globalIntegerVariableToIndexMap(), 
-            formulas(formulas), formulaToIndexMap(), modules(modules), moduleToIndexMap(), 
-            rewardModels(rewardModels), rewardModelToIndexMap(), initialConstruct(initialConstruct), 
-            labels(labels), labelToIndexMap(), actionToIndexMap(actionToIndexMap), indexToActionMap(), actions(),
-            synchronizingActionIndices(), actionIndicesToModuleIndexMap(), variableToModuleIndexMap()
+        modelType(modelType), constants(constants), constantToIndexMap(),
+        globalBooleanVariables(globalBooleanVariables), globalBooleanVariableToIndexMap(),
+        globalIntegerVariables(globalIntegerVariables), globalIntegerVariableToIndexMap(),
+        formulas(formulas), formulaToIndexMap(), modules(modules), moduleToIndexMap(),
+        rewardModels(rewardModels), rewardModelToIndexMap(), systemCompositionConstruct(compositionConstruct),
+        labels(labels), labelToIndexMap(), actionToIndexMap(actionToIndexMap), indexToActionMap(), actions(),
+        synchronizingActionIndices(), actionIndicesToModuleIndexMap(), variableToModuleIndexMap()
         {
-
+            
             // Start by creating the necessary mappings from the given ones.
             this->createMappings();
-
-            // Create a new initial construct if the corresponding flag was set.
-            if (fixInitialConstruct) {
+            
+            // Set the initial construct.
+            if (initialConstruct) {
+                this->initialConstruct = initialConstruct.get();
+            } else {
+                // Create a new initial construct if none was given.
                 storm::expressions::Expression newInitialExpression = manager->boolean(true);
                 
                 for (auto const& booleanVariable : this->getGlobalBooleanVariables()) {
@@ -51,9 +171,8 @@ namespace storm {
                 }
                 this->initialConstruct = storm::prism::InitialConstruct(newInitialExpression, this->getInitialConstruct().getFilename(), this->getInitialConstruct().getLineNumber());
             }
-
+            
             if (finalModel) {
-
                 // If the model is supposed to be a CTMC, but contains probabilistic commands, we transform them to Markovian
                 // commands and issue a warning.
                 if (modelType == storm::prism::Program::ModelType::CTMC && storm::settings::getModule<storm::settings::modules::IOSettings>().isPrismCompatibilityEnabled()) {
@@ -72,7 +191,7 @@ namespace storm {
                 this->checkValidity(Program::ValidityCheckLevel::VALIDINPUT);
             }
         }
-    
+        
         Program::ModelType Program::getModelType() const {
             return modelType;
         }
@@ -149,12 +268,12 @@ namespace storm {
             for (auto const& module : this->getModules()) {
                 module.containsVariablesOnlyInUpdateProbabilities(undefinedConstantVariables);
             }
-
+            
             // Check the reward models.
             for (auto const& rewardModel : this->getRewardModels()) {
                 rewardModel.containsVariablesOnlyInRewardValueExpressions(undefinedConstantVariables);
             }
-                     
+            
             // Initial construct.
             if (this->getInitialConstruct().getInitialStatesExpression().containsVariable(undefinedConstantVariables)) {
                 return false;
@@ -179,7 +298,7 @@ namespace storm {
             }
             return result;
         }
-
+        
         std::string Program::getUndefinedConstantsAsString() const {
             std::stringstream stream;
             bool printComma = false;
@@ -217,12 +336,12 @@ namespace storm {
             }
             return constantsSubstitution;
         }
-
-    
+        
+        
         std::size_t Program::getNumberOfConstants() const {
             return this->getConstants().size();
         }
-
+        
         std::vector<BooleanVariable> const& Program::getGlobalBooleanVariables() const {
             return this->globalBooleanVariables;
         }
@@ -231,6 +350,40 @@ namespace storm {
             return this->globalIntegerVariables;
         }
         
+        std::set<storm::expressions::Variable> Program::getAllExpressionVariables() const {
+            std::set<storm::expressions::Variable> result;
+            
+            for (auto const& constant : constants) {
+                result.insert(constant.getExpressionVariable());
+            }
+            for (auto const& variable : globalBooleanVariables) {
+                result.insert(variable.getExpressionVariable());
+            }
+            for (auto const& variable : globalIntegerVariables) {
+                result.insert(variable.getExpressionVariable());
+            }
+            for (auto const& module : modules) {
+                auto const& moduleVariables = module.getAllExpressionVariables();
+                result.insert(moduleVariables.begin(), moduleVariables.end());
+            }
+            
+            return result;
+        }
+        
+        std::vector<storm::expressions::Expression> Program::getAllRangeExpressions() const {
+            std::vector<storm::expressions::Expression> result;
+            for (auto const& globalIntegerVariable : this->globalIntegerVariables) {
+                result.push_back(globalIntegerVariable.getRangeExpression());
+            }
+            
+            for (auto const& module : modules) {
+                std::vector<storm::expressions::Expression> moduleRangeExpressions = module.getAllRangeExpressions();
+                result.insert(result.end(), moduleRangeExpressions.begin(), moduleRangeExpressions.end());
+            }
+            
+            return result;
+        }
+        
         bool Program::globalBooleanVariableExists(std::string const& variableName) const {
             return this->globalBooleanVariableToIndexMap.count(variableName) > 0;
         }
@@ -244,7 +397,7 @@ namespace storm {
             STORM_LOG_THROW(nameIndexPair != this->globalBooleanVariableToIndexMap.end(), storm::exceptions::OutOfRangeException, "Unknown boolean variable '" << variableName << "'.");
             return this->getGlobalBooleanVariables()[nameIndexPair->second];
         }
-
+        
         IntegerVariable const& Program::getGlobalIntegerVariable(std::string const& variableName) const {
             auto const& nameIndexPair = this->globalIntegerVariableToIndexMap.find(variableName);
             STORM_LOG_THROW(nameIndexPair != this->globalIntegerVariableToIndexMap.end(), storm::exceptions::OutOfRangeException, "Unknown integer variable '" << variableName << "'.");
@@ -275,6 +428,10 @@ namespace storm {
             return this->modules[index];
         }
         
+        bool Program::hasModule(std::string const& moduleName) const {
+            return this->moduleToIndexMap.find(moduleName) != this->moduleToIndexMap.end();
+        }
+        
         Module const& Program::getModule(std::string const& moduleName) const {
             auto const& nameIndexPair = this->moduleToIndexMap.find(moduleName);
             STORM_LOG_THROW(nameIndexPair != this->moduleToIndexMap.end(), storm::exceptions::OutOfRangeException, "Unknown module '" << moduleName << "'.");
@@ -293,6 +450,30 @@ namespace storm {
             return this->initialConstruct;
         }
         
+        bool Program::specifiesSystemComposition() const {
+            return static_cast<bool>(systemCompositionConstruct);
+        }
+        
+        SystemCompositionConstruct const& Program::getSystemCompositionConstruct() const {
+            return systemCompositionConstruct.get();
+        }
+        
+        boost::optional<SystemCompositionConstruct> Program::getOptionalSystemCompositionConstruct() const {
+            return systemCompositionConstruct;
+        }
+        
+        std::shared_ptr<Composition> Program::getDefaultSystemComposition() const {
+            std::shared_ptr<Composition> current = std::make_shared<ModuleComposition>(this->modules.front().getName());
+            
+            for (uint_fast64_t index = 1; index < this->modules.size(); ++index) {
+                std::shared_ptr<Composition> newComposition = std::make_shared<SynchronizingParallelComposition>(current, std::make_shared<ModuleComposition>(this->modules[index].getName()));
+                current = newComposition;
+            }
+            
+            
+            return current;
+        }
+        
         std::set<std::string> const& Program::getActions() const {
             return this->actions;
         }
@@ -307,6 +488,20 @@ namespace storm {
             return indexNamePair->second;
         }
         
+        uint_fast64_t Program::getActionIndex(std::string const& actionName) const {
+            auto const& nameIndexPair = this->actionToIndexMap.find(actionName);
+            STORM_LOG_THROW(nameIndexPair != this->actionToIndexMap.end(), storm::exceptions::InvalidArgumentException, "Unknown action name '" << actionName << "'.");
+            return nameIndexPair->second;
+        }
+        
+        bool Program::hasAction(std::string const& actionName) const {
+            return this->actionToIndexMap.find(actionName) != this->actionToIndexMap.end();
+        }
+        
+        bool Program::hasAction(uint_fast64_t const& actionIndex) const {
+            return this->indexToActionMap.find(actionIndex) != this->indexToActionMap.end();
+        }
+        
         std::set<uint_fast64_t> const& Program::getModuleIndicesByAction(std::string const& action) const {
             auto const& nameIndexPair = this->actionToIndexMap.find(action);
             STORM_LOG_THROW(nameIndexPair != this->actionToIndexMap.end(), storm::exceptions::OutOfRangeException, "Action name '" << action << "' does not exist.");
@@ -385,7 +580,7 @@ namespace storm {
             STORM_LOG_THROW(it == this->labels.end(), storm::exceptions::InvalidArgumentException, "Cannot add a label '" << name << "', because a label with that name already exists.");
             this->labels.emplace_back(name, statePredicateExpression);
         }
-
+        
         void Program::removeLabel(std::string const& name) {
             auto it = std::find_if(this->labels.begin(), this->labels.end(), [&name] (storm::prism::Label const& label) { return label.getName() == name; });
             STORM_LOG_THROW(it != this->labels.end(), storm::exceptions::InvalidArgumentException, "Canno remove unknown label '" << name << "'.");
@@ -416,7 +611,7 @@ namespace storm {
                 newModules.push_back(module.restrictCommands(indexSet));
             }
             
-            return Program(this->manager, this->getModelType(), this->getConstants(), this->getGlobalBooleanVariables(), this->getGlobalIntegerVariables(), this->getFormulas(), newModules, this->getActionNameToIndexMapping(), this->getRewardModels(), false, this->getInitialConstruct(), this->getLabels());
+            return Program(this->manager, this->getModelType(), this->getConstants(), this->getGlobalBooleanVariables(), this->getGlobalIntegerVariables(), this->getFormulas(), newModules, this->getActionNameToIndexMapping(), this->getRewardModels(), this->getLabels(), this->getInitialConstruct(), this->getOptionalSystemCompositionConstruct());
         }
         
         void Program::createMappings() {
@@ -473,7 +668,7 @@ namespace storm {
                     this->variableToModuleIndexMap[integerVariable.getName()] = moduleIndex;
                 }
             }
-
+            
         }
         
         Program Program::defineUndefinedConstants(std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions) const {
@@ -516,7 +711,7 @@ namespace storm {
                 STORM_LOG_THROW(definedUndefinedConstants.find(constantExpressionPair.first) != definedUndefinedConstants.end(), storm::exceptions::InvalidArgumentException, "Unable to define non-existant constant.");
             }
             
-            return Program(this->manager, this->getModelType(), newConstants, this->getGlobalBooleanVariables(), this->getGlobalIntegerVariables(), this->getFormulas(), this->getModules(), this->getActionNameToIndexMapping(), this->getRewardModels(), false, this->getInitialConstruct(), this->getLabels());
+            return Program(this->manager, this->getModelType(), newConstants, this->getGlobalBooleanVariables(), this->getGlobalIntegerVariables(), this->getFormulas(), this->getModules(), this->getActionNameToIndexMapping(), this->getRewardModels(), this->getLabels(), this->getInitialConstruct(), this->getOptionalSystemCompositionConstruct());
         }
         
         Program Program::substituteConstants() const {
@@ -529,7 +724,7 @@ namespace storm {
                 // Put the corresponding expression in the substitution.
                 if(constant.isDefined()) {
                     constantSubstitution.emplace(constant.getExpressionVariable(), constant.getExpression().simplify());
-                
+                    
                     // If there is at least one more constant to come, we substitute the constants we have so far.
                     if (constantIndex + 1 < newConstants.size()) {
                         newConstants[constantIndex + 1] = newConstants[constantIndex + 1].substitute(constantSubstitution);
@@ -576,7 +771,7 @@ namespace storm {
                 newLabels.emplace_back(label.substitute(constantSubstitution));
             }
             
-            return Program(this->manager, this->getModelType(), newConstants, newBooleanVariables, newIntegerVariables, newFormulas, newModules, this->getActionNameToIndexMapping(), newRewardModels, false, newInitialConstruct, newLabels);
+            return Program(this->manager, this->getModelType(), newConstants, newBooleanVariables, newIntegerVariables, newFormulas, newModules, this->getActionNameToIndexMapping(), newRewardModels, newLabels, newInitialConstruct, this->getOptionalSystemCompositionConstruct());
         }
         
         void Program::checkValidity(Program::ValidityCheckLevel lvl) const {
@@ -617,7 +812,7 @@ namespace storm {
                 std::set<storm::expressions::Variable> illegalVariables;
                 std::set_difference(containedVariables.begin(), containedVariables.end(), constants.begin(), constants.end(), std::inserter(illegalVariables, illegalVariables.begin()));
                 bool isValid = illegalVariables.empty();
-
+                
                 if (!isValid) {
                     std::vector<std::string> illegalVariableNames;
                     for (auto const& var : illegalVariables) {
@@ -625,7 +820,7 @@ namespace storm {
                     }
                     STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "Error in " << variable.getFilename() << ", line " << variable.getLineNumber() << ": initial value expression refers to unknown constants: " << boost::algorithm::join(illegalVariableNames, ",") << ".");
                 }
-
+                
                 // Record the new identifier for future checks.
                 variables.insert(variable.getExpressionVariable());
                 all.insert(variable.getExpressionVariable());
@@ -638,7 +833,7 @@ namespace storm {
                 std::set<storm::expressions::Variable> illegalVariables;
                 std::set_difference(containedVariables.begin(), containedVariables.end(), constants.begin(), constants.end(), std::inserter(illegalVariables, illegalVariables.begin()));
                 bool isValid = illegalVariables.empty();
-
+                
                 if (!isValid) {
                     std::vector<std::string> illegalVariableNames;
                     for (auto const& var : illegalVariables) {
@@ -646,7 +841,7 @@ namespace storm {
                     }
                     STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "Error in " << variable.getFilename() << ", line " << variable.getLineNumber() << ": lower bound expression refers to unknown constants: " << boost::algorithm::join(illegalVariableNames, ",") << ".");
                 }
-
+                
                 containedVariables = variable.getLowerBoundExpression().getVariables();
                 std::set_difference(containedVariables.begin(), containedVariables.end(), constants.begin(), constants.end(), std::inserter(illegalVariables, illegalVariables.begin()));
                 isValid = illegalVariables.empty();
@@ -676,7 +871,7 @@ namespace storm {
                 allGlobals.insert(variable.getExpressionVariable());
                 globalVariables.insert(variable.getExpressionVariable());
             }
-
+            
             // Now go through the variables of the modules.
             for (auto const& module : this->getModules()) {
                 for (auto const& variable : module.getBooleanVariables()) {
@@ -806,7 +1001,7 @@ namespace storm {
                         std::set<storm::expressions::Variable> alreadyAssignedVariables;
                         for (auto const& assignment : update.getAssignments()) {
                             storm::expressions::Variable assignedVariable = manager->getVariable(assignment.getVariableName());
-
+                            
                             if (legalVariables.find(assignedVariable) == legalVariables.end()) {
                                 if (all.find(assignedVariable) != all.end()) {
                                     STORM_LOG_THROW(false, storm::exceptions::WrongFormatException, "Error in " << command.getFilename() << ", line " << command.getLineNumber() << ": assignment illegally refers to variable '" << assignment.getVariableName() << "'.");
@@ -881,12 +1076,12 @@ namespace storm {
                     bool isValid = std::includes(variablesAndConstants.begin(), variablesAndConstants.end(), containedVariables.begin(), containedVariables.end());
                     STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "Error in " << transitionReward.getFilename() << ", line " << transitionReward.getLineNumber() << ": state reward expression refers to unknown identifiers.");
                     STORM_LOG_THROW(transitionReward.getSourceStatePredicateExpression().hasBooleanType(), storm::exceptions::WrongFormatException, "Error in " << transitionReward.getFilename() << ", line " << transitionReward.getLineNumber() << ": state predicate must evaluate to type 'bool'.");
-
+                    
                     containedVariables = transitionReward.getTargetStatePredicateExpression().getVariables();
                     isValid = std::includes(variablesAndConstants.begin(), variablesAndConstants.end(), containedVariables.begin(), containedVariables.end());
                     STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "Error in " << transitionReward.getFilename() << ", line " << transitionReward.getLineNumber() << ": state reward expression refers to unknown identifiers.");
                     STORM_LOG_THROW(transitionReward.getTargetStatePredicateExpression().hasBooleanType(), storm::exceptions::WrongFormatException, "Error in " << transitionReward.getFilename() << ", line " << transitionReward.getLineNumber() << ": state predicate must evaluate to type 'bool'.");
-
+                    
                     
                     containedVariables = transitionReward.getRewardValueExpression().getVariables();
                     isValid = std::includes(variablesAndConstants.begin(), variablesAndConstants.end(), containedVariables.begin(), containedVariables.end());
@@ -900,6 +1095,12 @@ namespace storm {
             bool isValid = std::includes(variablesAndConstants.begin(), variablesAndConstants.end(), containedIdentifiers.begin(), containedIdentifiers.end());
             STORM_LOG_THROW(isValid, storm::exceptions::WrongFormatException, "Error in " << this->getInitialConstruct().getFilename() << ", line " << this->getInitialConstruct().getLineNumber() << ": initial expression refers to unknown identifiers.");
             
+            // Check the system composition if given.
+            if (systemCompositionConstruct) {
+                CompositionValidityChecker checker(*this);
+                checker.check(systemCompositionConstruct.get().getSystemComposition());
+            }
+            
             // Check the labels.
             for (auto const& label : this->getLabels()) {
                 std::set<storm::expressions::Variable> containedVariables = label.getStatePredicateExpression().getVariables();
@@ -925,14 +1126,14 @@ namespace storm {
                     for (auto const& command : module.getCommands()) {
                         if(!command.isLabeled()) continue;
                         for (auto const& update : command.getUpdates()) {
-                             for (auto const& assignment : update.getAssignments()) {
-                                 if(this->globalBooleanVariableExists(assignment.getVariable().getName())) {
-                                     globalBVarsWrittenToByCommandInThisModule.insert({assignment.getVariable().getName(), command.getActionName()});
-                                 }
-                                 else if(this->globalIntegerVariableExists(assignment.getVariable().getName())) {
-                                     globalIVarsWrittenToByCommandInThisModule.insert({assignment.getVariable().getName(), command.getActionName()});
-                                 }
-                             }
+                            for (auto const& assignment : update.getAssignments()) {
+                                if(this->globalBooleanVariableExists(assignment.getVariable().getName())) {
+                                    globalBVarsWrittenToByCommandInThisModule.insert({assignment.getVariable().getName(), command.getActionName()});
+                                }
+                                else if(this->globalIntegerVariableExists(assignment.getVariable().getName())) {
+                                    globalIVarsWrittenToByCommandInThisModule.insert({assignment.getVariable().getName(), command.getActionName()});
+                                }
+                            }
                         }
                     }
                     for(auto const& entry : globalIVarsWrittenToByCommandInThisModule) {
@@ -987,7 +1188,7 @@ namespace storm {
                         }
                     }
                 }
-            
+                
                 std::vector<storm::prism::BooleanVariable> newBVars;
                 for(auto const& variable : module.getBooleanVariables()) {
                     if(booleanVars.count(variable.getExpressionVariable()) == 0) {
@@ -1017,7 +1218,7 @@ namespace storm {
         }
         
         Program Program::replaceModulesAndConstantsInProgram(std::vector<Module> const& newModules, std::vector<Constant> const& newConstants) {
-            return Program(this->manager, modelType, newConstants, getGlobalBooleanVariables(), getGlobalIntegerVariables(), getFormulas(), newModules, getActionNameToIndexMapping(), getRewardModels(), false, getInitialConstruct(), getLabels(), "", 0, false);
+            return Program(this->manager, modelType, newConstants, getGlobalBooleanVariables(), getGlobalIntegerVariables(), getFormulas(), newModules, getActionNameToIndexMapping(), getRewardModels(), getLabels(), getInitialConstruct(), this->getOptionalSystemCompositionConstruct());
         }
         
         Program Program::flattenModules(std::unique_ptr<storm::utility::solver::SmtSolverFactory> const& smtSolverFactory) const {
@@ -1153,7 +1354,7 @@ namespace storm {
                     solver->allSat(allCommandVariables, [&] (storm::solver::SmtSolver::ModelReference& modelReference) -> bool {
                         // Now we need to reconstruct the chosen commands from the valuation of the command variables.
                         std::vector<std::vector<std::reference_wrapper<Command const>>> chosenCommands(possibleCommands.size());
-
+                        
                         for (uint_fast64_t outerIndex = 0; outerIndex < commandVariables.size(); ++outerIndex) {
                             for (uint_fast64_t innerIndex = 0; innerIndex < commandVariables[outerIndex].size(); ++innerIndex) {
                                 if (modelReference.getBooleanValue(commandVariables[outerIndex][innerIndex])) {
@@ -1175,13 +1376,13 @@ namespace storm {
                             for (uint_fast64_t index = 0; index < iterators.size(); ++index) {
                                 commandCombination[index] = *iterators[index];
                             }
-
+                            
                             newCommands.push_back(synchronizeCommands(nextCommandIndex, actionIndex, nextUpdateIndex, indexToActionMap.find(actionIndex)->second, commandCombination));
                             
                             // Move the counters appropriately.
                             ++nextCommandIndex;
                             nextUpdateIndex += newCommands.back().getNumberOfUpdates();
-
+                            
                             movedAtLeastOneIterator = false;
                             for (uint_fast64_t index = 0; index < iterators.size(); ++index) {
                                 ++iterators[index];
@@ -1203,9 +1404,9 @@ namespace storm {
             
             // Finally, we can create the module and the program and return it.
             storm::prism::Module singleModule(newModuleName.str(), allBooleanVariables, allIntegerVariables, newCommands, this->getFilename(), 0);
-            return Program(manager, this->getModelType(), this->getConstants(), std::vector<storm::prism::BooleanVariable>(), std::vector<storm::prism::IntegerVariable>(), this->getFormulas(), {singleModule}, actionToIndexMap, this->getRewardModels(), false, this->getInitialConstruct(), this->getLabels(), this->getFilename(), 0, true);
+            return Program(manager, this->getModelType(), this->getConstants(), std::vector<storm::prism::BooleanVariable>(), std::vector<storm::prism::IntegerVariable>(), this->getFormulas(), {singleModule}, actionToIndexMap, this->getRewardModels(), this->getLabels(), this->getInitialConstruct(), this->getOptionalSystemCompositionConstruct(), this->getFilename(), 0, true);
         }
-
+        
         std::unordered_map<uint_fast64_t, std::string> Program::buildCommandIndexToActionNameMap() const {
             std::unordered_map<uint_fast64_t, std::string> res;
             for(auto const& m : this->modules) {
@@ -1215,7 +1416,7 @@ namespace storm {
             }
             return res;
         }
-
+        
         std::unordered_map<uint_fast64_t, std::string> Program::buildActionIndexToActionNameMap() const {
             std::unordered_map<uint_fast64_t, std::string> res;
             for(auto const& nameIndexPair : actionToIndexMap) {
@@ -1223,7 +1424,7 @@ namespace storm {
             }
             return res;
         }
-
+        
         std::unordered_map<uint_fast64_t, uint_fast64_t> Program::buildCommandIndexToActionIndex() const {
             std::unordered_map<uint_fast64_t, uint_fast64_t> res;
             for(auto const& m : this->modules) {
@@ -1232,7 +1433,7 @@ namespace storm {
                 }
             }
             return res;
-
+            
         }
         
         Command Program::synchronizeCommands(uint_fast64_t newCommandIndex, uint_fast64_t actionIndex, uint_fast64_t firstUpdateIndex, std::string const& actionName, std::vector<std::reference_wrapper<Command const>> const& commands) const {
@@ -1291,11 +1492,11 @@ namespace storm {
             
             return Command(newCommandIndex, false, actionIndex, actionName, newGuard, newUpdates, this->getFilename(), 0);
         }
-
+        
         uint_fast64_t Program::numberOfActions() const {
             return this->actions.size();
         }
-
+        
         uint_fast64_t Program::largestActionIndex() const {
             assert(numberOfActions() != 0);
             return this->indexToActionMap.rbegin()->first;
@@ -1304,11 +1505,171 @@ namespace storm {
         storm::expressions::ExpressionManager const& Program::getManager() const {
             return *this->manager;
         }
-
+        
         storm::expressions::ExpressionManager& Program::getManager() {
             return *this->manager;
         }
+        
+        storm::jani::Model Program::toJani(bool allVariablesGlobal) const {
+            // Start by creating an empty JANI model.
+            storm::jani::ModelType modelType;
+            switch (this->getModelType()) {
+                case Program::ModelType::DTMC: modelType = storm::jani::ModelType::DTMC;
+                    break;
+                case Program::ModelType::CTMC: modelType = storm::jani::ModelType::CTMC;
+                    break;
+                case Program::ModelType::MDP: modelType = storm::jani::ModelType::MDP;
+                    break;
+                case Program::ModelType::CTMDP: modelType = storm::jani::ModelType::CTMDP;
+                    break;
+                case Program::ModelType::MA: modelType = storm::jani::ModelType::MA;
+                    break;
+                default: modelType = storm::jani::ModelType::UNDEFINED;
+            }
+            storm::jani::Model janiModel("jani_from_prism", modelType, 1, manager);
+            storm::expressions::Expression globalInitialStatesExpression;
+
+            // Add all constants of the PRISM program to the JANI model.
+            for (auto const& constant : constants) {
+                janiModel.addConstant(storm::jani::Constant(constant.getName(), constant.getExpressionVariable(), constant.isDefined() ? boost::optional<storm::expressions::Expression>(constant.getExpression()) : boost::none));
+            }
+            
+            // Add all global variables of the PRISM program to the JANI model.
+            for (auto const& variable : globalIntegerVariables) {
+                janiModel.addBoundedIntegerVariable(storm::jani::BoundedIntegerVariable(variable.getName(), variable.getExpressionVariable(), variable.getLowerBoundExpression(), variable.getUpperBoundExpression()));
+                storm::expressions::Expression variableInitialExpression = variable.getExpressionVariable() == variable.getInitialValueExpression();
+                globalInitialStatesExpression = globalInitialStatesExpression.isInitialized() ? globalInitialStatesExpression && variableInitialExpression : variableInitialExpression;
+            }
+            for (auto const& variable : globalBooleanVariables) {
+                janiModel.addBooleanVariable(storm::jani::BooleanVariable(variable.getName(), variable.getExpressionVariable()));
+                storm::expressions::Expression variableInitialExpression = storm::expressions::iff(variable.getExpressionVariable(), variable.getInitialValueExpression());
+                globalInitialStatesExpression = globalInitialStatesExpression.isInitialized() ? globalInitialStatesExpression && variableInitialExpression : variableInitialExpression;
+            }
+            
+            // Add all actions of the PRISM program to the JANI model.
+            for (auto const& action : indexToActionMap) {
+                // Ignore the empty action as every JANI program has predefined tau action.
+                if (!action.second.empty()) {
+                    janiModel.addAction(storm::jani::Action(action.second));
+                }
+            }
+            
+            // Because of the rules of JANI, we have to make all variables of modules global that are read by other modules.
+
+            // Create a mapping from variables to the indices of module indices that write/read the variable.
+            std::map<storm::expressions::Variable, std::set<uint_fast64_t>> variablesToAccessingModuleIndices;
+            for (uint_fast64_t index = 0; index < modules.size(); ++index) {
+                storm::prism::Module const& module = modules[index];
+                
+                for (auto const& command : module.getCommands()) {
+                    std::set<storm::expressions::Variable> variables = command.getGuardExpression().getVariables();
+                    for (auto const& variable : variables) {
+                        variablesToAccessingModuleIndices[variable].insert(index);
+                    }
+                    
+                    for (auto const& update : command.getUpdates()) {
+                        for (auto const& assignment : update.getAssignments()) {
+                            variables = assignment.getExpression().getVariables();
+                            for (auto const& variable : variables) {
+                                variablesToAccessingModuleIndices[variable].insert(index);
+                            }
+                            variablesToAccessingModuleIndices[assignment.getVariable()].insert(index);
+                        }
+                    }
+                }
+            }
+            
+            // Now create the separate JANI automata from the modules of the PRISM program. While doing so, we use the
+            // previously built mapping to make variables global that are read by more than one module.
+            for (auto const& module : modules) {
+                storm::jani::Automaton automaton(module.getName());
+                storm::expressions::Expression initialStatesExpression;
 
+                for (auto const& variable : module.getIntegerVariables()) {
+                    storm::jani::BoundedIntegerVariable newIntegerVariable(variable.getName(), variable.getExpressionVariable(), variable.getLowerBoundExpression(), variable.getUpperBoundExpression());
+                    std::set<uint_fast64_t> const& accessingModuleIndices = variablesToAccessingModuleIndices[variable.getExpressionVariable()];
+                    // If there is exactly one module reading and writing the variable, we can make the variable local to this module.
+                    if (!allVariablesGlobal && accessingModuleIndices.size() == 1) {
+                        automaton.addBoundedIntegerVariable(newIntegerVariable);
+                        storm::expressions::Expression variableInitialExpression = variable.getExpressionVariable() == variable.getInitialValueExpression();
+                        initialStatesExpression = initialStatesExpression.isInitialized() ? initialStatesExpression && variableInitialExpression : variableInitialExpression;
+                    } else if (!accessingModuleIndices.empty()) {
+                        // Otherwise, we need to make it global.
+                        janiModel.addBoundedIntegerVariable(newIntegerVariable);
+                        storm::expressions::Expression variableInitialExpression = variable.getExpressionVariable() == variable.getInitialValueExpression();
+                        globalInitialStatesExpression = globalInitialStatesExpression.isInitialized() ? globalInitialStatesExpression && variableInitialExpression : variableInitialExpression;
+                    }
+                }
+                for (auto const& variable : module.getBooleanVariables()) {
+                    storm::jani::BooleanVariable newBooleanVariable(variable.getName(), variable.getExpressionVariable());
+                    std::set<uint_fast64_t> const& accessingModuleIndices = variablesToAccessingModuleIndices[variable.getExpressionVariable()];
+                    // If there is exactly one module reading and writing the variable, we can make the variable local to this module.
+                    if (!allVariablesGlobal && accessingModuleIndices.size() == 1) {
+                        automaton.addBooleanVariable(newBooleanVariable);
+                        storm::expressions::Expression variableInitialExpression = storm::expressions::iff(variable.getExpressionVariable(), variable.getInitialValueExpression());
+                        initialStatesExpression = initialStatesExpression.isInitialized() ? initialStatesExpression && variableInitialExpression : variableInitialExpression;
+                    } else if (!accessingModuleIndices.empty()) {
+                        // Otherwise, we need to make it global.
+                        janiModel.addBooleanVariable(newBooleanVariable);
+                        storm::expressions::Expression variableInitialExpression = storm::expressions::iff(variable.getExpressionVariable(), variable.getInitialValueExpression());
+                        globalInitialStatesExpression = globalInitialStatesExpression.isInitialized() ? globalInitialStatesExpression && variableInitialExpression : variableInitialExpression;
+                    }
+                }
+                
+                // Set the proper expression characterizing the initial values of the automaton's variables.
+                automaton.setInitialStatesExpression(initialStatesExpression);
+                
+                // Create a single location that will have all the edges.
+                uint64_t onlyLocation = automaton.addLocation(storm::jani::Location("l"));
+                automaton.addInitialLocation(onlyLocation);
+                
+                for (auto const& command : module.getCommands()) {
+                    boost::optional<storm::expressions::Expression> rateExpression;
+                    std::vector<storm::jani::EdgeDestination> destinations;
+                    if (this->getModelType() == Program::ModelType::CTMC || this->getModelType() == Program::ModelType::CTMDP) {
+                        for (auto const& update : command.getUpdates()) {
+                            if (rateExpression) {
+                                rateExpression = rateExpression.get() + update.getLikelihoodExpression();
+                            } else {
+                                rateExpression = update.getLikelihoodExpression();
+                            }
+                        }
+                    }
+                    
+                    for (auto const& update : command.getUpdates()) {
+                        std::vector<storm::jani::Assignment> assignments;
+                        for (auto const& assignment : update.getAssignments()) {
+                            assignments.push_back(storm::jani::Assignment(assignment.getVariable(), assignment.getExpression()));
+                        }
+                        
+                        if (rateExpression) {
+                            destinations.push_back(storm::jani::EdgeDestination(onlyLocation, manager->integer(1) / rateExpression.get(), assignments));
+                        } else {
+                            destinations.push_back(storm::jani::EdgeDestination(onlyLocation, update.getLikelihoodExpression(), assignments));
+                        }
+                    }
+                    automaton.addEdge(storm::jani::Edge(onlyLocation, janiModel.getActionIndex(command.getActionName()), rateExpression, command.getGuardExpression(), destinations));
+                }
+                
+                janiModel.addAutomaton(automaton);
+            }
+            
+            // Set the proper expression characterizing the initial values of the global variables.
+            janiModel.setInitialStatesExpression(globalInitialStatesExpression);
+            
+            // Set the standard system composition. This is possible, because we reject non-standard compositions anyway.
+            if (this->specifiesSystemComposition()) {
+                CompositionToJaniVisitor visitor;
+                janiModel.setSystemComposition(visitor.toJani(this->getSystemCompositionConstruct().getSystemComposition(), janiModel));
+            } else {
+                janiModel.setSystemComposition(janiModel.getStandardSystemComposition());
+            }
+            
+            janiModel.finalize();
+            
+            return janiModel;
+        }
+        
         std::ostream& operator<<(std::ostream& out, Program::ModelType const& type) {
             switch (type) {
                 case Program::ModelType::UNDEFINED: out << "undefined"; break;
@@ -1353,6 +1714,12 @@ namespace storm {
                 stream << label << std::endl;
             }
             
+            stream << program.getInitialConstruct() << std::endl;
+            
+            if (program.specifiesSystemComposition()) {
+                stream << program.getSystemCompositionConstruct();
+            }
+            
             return stream;
         }
         
diff --git a/src/storage/prism/Program.h b/src/storage/prism/Program.h
index 3e8245a72..71719c583 100644
--- a/src/storage/prism/Program.h
+++ b/src/storage/prism/Program.h
@@ -1,21 +1,29 @@
 #ifndef STORM_STORAGE_PRISM_PROGRAM_H_
 #define STORM_STORAGE_PRISM_PROGRAM_H_
 
+#include <memory>
 #include <map>
 #include <vector>
 #include <set>
 #include <boost/container/flat_set.hpp>
+#include <boost/optional.hpp>
 
 #include "src/storage/prism/Constant.h"
 #include "src/storage/prism/Formula.h"
 #include "src/storage/prism/Label.h"
 #include "src/storage/prism/Module.h"
 #include "src/storage/prism/RewardModel.h"
+#include "src/storage/prism/SystemCompositionConstruct.h"
 #include "src/storage/prism/InitialConstruct.h"
+#include "src/storage/prism/Composition.h"
 #include "src/utility/solver.h"
 #include "src/utility/OsDetection.h"
 
 namespace storm {
+    namespace jani {
+        class Model;
+    }
+    
     namespace prism {
         class Program : public LocatedInformation {
         public:
@@ -38,18 +46,17 @@ namespace storm {
              * @param formulas The formulas defined in the program.
              * @param modules The modules of the program.
              * @param actionToIndexMap A mapping of action names to their indices.
-             * @param fixInitialConstruct A flag that indicates whether the given initial construct is to be ignored and
-             * replaced by a new one created from the initial values of the variables.
-             * @param initialConstruct The initial construct of the program. If the initial construct specifies "false"
-             * as the initial condition, the default values of the variables are used to construct a legal initial
-             * condition.
              * @param rewardModels The reward models of the program.
              * @param labels The labels defined for this program.
+             * @param initialConstruct The initial construct of the program. If none, then an initial construct is built
+             * using the initial values of the variables.
+             * @param compositionConstruct If not none, specifies how the modules are composed for the full system.
+             * If none, the regular parallel composition is assumed.
              * @param filename The filename in which the program is defined.
              * @param lineNumber The line number in which the program is defined.
              * @param finalModel If set to true, the program is checked for input-validity, as well as some post-processing.
              */
-            Program(std::shared_ptr<storm::expressions::ExpressionManager> manager, ModelType modelType, std::vector<Constant> const& constants, std::vector<BooleanVariable> const& globalBooleanVariables, std::vector<IntegerVariable> const& globalIntegerVariables, std::vector<Formula> const& formulas, std::vector<Module> const& modules, std::map<std::string, uint_fast64_t> const& actionToIndexMap, std::vector<RewardModel> const& rewardModels, bool fixInitialConstruct, storm::prism::InitialConstruct const& initialConstruct, std::vector<Label> const& labels, std::string const& filename = "", uint_fast64_t lineNumber = 0, bool finalModel = true);
+            Program(std::shared_ptr<storm::expressions::ExpressionManager> manager, ModelType modelType, std::vector<Constant> const& constants, std::vector<BooleanVariable> const& globalBooleanVariables, std::vector<IntegerVariable> const& globalIntegerVariables, std::vector<Formula> const& formulas, std::vector<Module> const& modules, std::map<std::string, uint_fast64_t> const& actionToIndexMap, std::vector<RewardModel> const& rewardModels, std::vector<Label> const& labels, boost::optional<InitialConstruct> const& initialConstruct, boost::optional<SystemCompositionConstruct> const& compositionConstruct, std::string const& filename = "", uint_fast64_t lineNumber = 0, bool finalModel = true);
             
             // Provide default implementations for constructors and assignments.
             Program() = default;
@@ -100,7 +107,7 @@ namespace storm {
              *
              * @return The undefined constants in the program.
              */
-            std::vector<std::reference_wrapper<storm::prism::Constant const>> getUndefinedConstants() const;
+            std::vector<std::reference_wrapper<Constant const>> getUndefinedConstants() const;
 
             /*!
              * Retrieves the undefined constants in the program as a comma-separated string.
@@ -192,6 +199,20 @@ namespace storm {
              */
             IntegerVariable const& getGlobalIntegerVariable(std::string const& variableName) const;
 
+            /*!
+             * Retrieves all expression variables used by this program.
+             *
+             * @return The set of expression variables used by this program.
+             */
+            std::set<storm::expressions::Variable> getAllExpressionVariables() const;
+            
+            /*!
+             * Retrieves a list of expressions that characterize the legal ranges of all variables.
+             *
+             * @return A list of expressions that characterize the legal ranges of all variables.
+             */
+            std::vector<storm::expressions::Expression> getAllRangeExpressions() const;
+            
             /*!
              * Retrieves the number of global boolean variables of the program.
              *
@@ -235,6 +256,13 @@ namespace storm {
              */
             Module const& getModule(uint_fast64_t index) const;
 
+            /*!
+             * Retrieves whether the program has a module with the given name.
+             *
+             * @return True iff a module with the given name exists.
+             */
+            bool hasModule(std::string const& moduleName) const;
+            
             /*!
              * Retrieves the module with the given name.
              *
@@ -262,7 +290,36 @@ namespace storm {
              *
              * @return The initial construct of the program.
              */
-            storm::prism::InitialConstruct const& getInitialConstruct() const;
+            InitialConstruct const& getInitialConstruct() const;
+            
+            /*!
+             * Retrieves whether the program specifies a system composition in terms of process algebra operations over
+             * the modules.
+             *
+             * @return True iff the program specifies a system composition.
+             */
+            bool specifiesSystemComposition() const;
+            
+            /*!
+             * If the program specifies a system composition construct, this method retrieves it.
+             *
+             * @return The system composition construct as specified by the program.
+             */
+            SystemCompositionConstruct const& getSystemCompositionConstruct() const;
+            
+            /*!
+             * Retrieves the system composition construct (if any) and none otherwise.
+             *
+             * @return The system composition construct specified by the program or none.
+             */
+            boost::optional<SystemCompositionConstruct> getOptionalSystemCompositionConstruct() const;
+            
+            /*!
+             * Retrieves the default system composition for this program.
+             *
+             * @return The default system composition.
+             */
+            std::shared_ptr<Composition> getDefaultSystemComposition() const;
             
             /*!
              * Retrieves the set of actions present in the program.
@@ -286,6 +343,28 @@ namespace storm {
              */
             std::string const& getActionName(uint_fast64_t actionIndex) const;
             
+            /*!
+             * Retrieves the index of the action with the given name.
+             *
+             * @param actionName The name of the action.
+             * @return The index of the action.
+             */
+            uint_fast64_t getActionIndex(std::string const& actionName) const;
+            
+            /*!
+             * Retrieves whether the program has an action with the given name.
+             *
+             * @return True iff the program has an action with the given name.
+             */
+            bool hasAction(std::string const& actionName) const;
+
+            /*!
+             * Retrieves whether the program has an action with the given index.
+             *
+             * @return True iff the program has an action with the given index.
+             */
+            bool hasAction(uint_fast64_t const& actionIndex) const;
+            
             /*!
              * Retrieves the indices of all modules within this program that contain commands that are labelled with the
              * given action.
@@ -490,6 +569,11 @@ namespace storm {
 
             uint_fast64_t largestActionIndex() const;
             
+            /*!
+             * Converts the PRISM model into an equivalent JANI model.
+             */
+            storm::jani::Model toJani(bool allVariablesGlobal = false) const;
+            
         private:
             /*!
              * This function builds a command that corresponds to the synchronization of the given list of commands.
@@ -549,7 +633,10 @@ namespace storm {
             std::map<std::string, uint_fast64_t> rewardModelToIndexMap;
             
             // The initial construct of the program.
-            storm::prism::InitialConstruct initialConstruct;
+            InitialConstruct initialConstruct;
+            
+            // If set, this specifies the way the modules are composed to obtain the full system.
+            boost::optional<SystemCompositionConstruct> systemCompositionConstruct;
             
             // The labels that are defined for this model.
             std::vector<Label> labels;
diff --git a/src/storage/prism/RenamingComposition.cpp b/src/storage/prism/RenamingComposition.cpp
new file mode 100644
index 000000000..4fc918fb4
--- /dev/null
+++ b/src/storage/prism/RenamingComposition.cpp
@@ -0,0 +1,37 @@
+#include "src/storage/prism/RenamingComposition.h"
+
+#include <vector>
+#include <sstream>
+#include <boost/algorithm/string/join.hpp>
+
+namespace storm {
+    namespace prism {
+        
+        RenamingComposition::RenamingComposition(std::shared_ptr<Composition> const& sub, std::map<std::string, std::string> const& actionRenaming) : sub(sub), actionRenaming(actionRenaming) {
+            // Intentionally left empty.
+        }
+        
+        boost::any RenamingComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        Composition const& RenamingComposition::getSubcomposition() const {
+            return *sub;
+        }
+        
+        std::map<std::string, std::string> const& RenamingComposition::getActionRenaming() const {
+            return actionRenaming;
+        }
+        
+        void RenamingComposition::writeToStream(std::ostream& stream) const {
+            std::vector<std::string> renamings;
+            for (auto const& renaming : actionRenaming) {
+                std::stringstream s;
+                s << renaming.second << " <- " << renaming.first;
+                renamings.push_back(s.str());
+            }
+            stream << *sub << "{" << boost::join(renamings, ", ") << "}";
+        }
+        
+    }
+}
diff --git a/src/storage/prism/RenamingComposition.h b/src/storage/prism/RenamingComposition.h
new file mode 100644
index 000000000..6bf31a5ea
--- /dev/null
+++ b/src/storage/prism/RenamingComposition.h
@@ -0,0 +1,35 @@
+#ifndef STORM_STORAGE_PRISM_RENAMINGCOMPOSITION_H_
+#define STORM_STORAGE_PRISM_RENAMINGCOMPOSITION_H_
+
+#include <memory>
+#include <string>
+#include <map>
+#include <boost/optional.hpp>
+
+#include "src/storage/prism/Composition.h"
+
+namespace storm {
+    namespace prism {
+        class RenamingComposition : public Composition {
+        public:
+            RenamingComposition(std::shared_ptr<Composition> const& sub, std::map<std::string, std::string> const& actionRenaming);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+            Composition const& getSubcomposition() const;
+            
+            std::map<std::string, std::string> const& getActionRenaming() const;
+            
+        protected:
+            virtual void writeToStream(std::ostream& stream) const override;
+            
+        private:
+            std::shared_ptr<Composition> sub;
+            
+            // The renaming of action indices to apply. If the target name is none, the action is hidden.
+            std::map<std::string, std::string> actionRenaming;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_RENAMINGCOMPOSITION_H_ */
diff --git a/src/storage/prism/RestrictedParallelComposition.cpp b/src/storage/prism/RestrictedParallelComposition.cpp
new file mode 100644
index 000000000..409b7aad3
--- /dev/null
+++ b/src/storage/prism/RestrictedParallelComposition.cpp
@@ -0,0 +1,25 @@
+#include "src/storage/prism/RestrictedParallelComposition.h"
+
+#include <boost/algorithm/string/join.hpp>
+
+namespace storm {
+    namespace prism {
+        
+        RestrictedParallelComposition::RestrictedParallelComposition(std::shared_ptr<Composition> const& left, std::set<std::string> const& synchronizingActions, std::shared_ptr<Composition> const& right) : storm::prism::ParallelComposition(left, right), synchronizingActions(synchronizingActions) {
+            // Intentionally left empty.
+        }
+        
+        boost::any RestrictedParallelComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+
+        std::set<std::string> const& RestrictedParallelComposition::getSynchronizingActions() const {
+            return synchronizingActions;
+        }
+        
+        void RestrictedParallelComposition::writeToStream(std::ostream& stream) const {
+            stream << "(" << this->getLeftSubcomposition() << " |[" << boost::algorithm::join(synchronizingActions, ", ") << "]| " << this->getRightSubcomposition() << ")";
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/RestrictedParallelComposition.h b/src/storage/prism/RestrictedParallelComposition.h
new file mode 100644
index 000000000..af7404056
--- /dev/null
+++ b/src/storage/prism/RestrictedParallelComposition.h
@@ -0,0 +1,28 @@
+#ifndef STORM_STORAGE_PRISM_RESTRICTEDPARALLELCOMPOSITION_H_
+#define STORM_STORAGE_PRISM_RESTRICTEDPARALLELCOMPOSITION_H_
+
+#include <set>
+#include <string>
+
+#include "src/storage/prism/ParallelComposition.h"
+
+namespace storm {
+    namespace prism {
+        class RestrictedParallelComposition : public ParallelComposition {
+        public:
+            RestrictedParallelComposition(std::shared_ptr<Composition> const& left, std::set<std::string> const& synchronizingActions, std::shared_ptr<Composition> const& right);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+
+            std::set<std::string> const& getSynchronizingActions() const;
+            
+        protected:
+            virtual void writeToStream(std::ostream& stream) const override;
+            
+        private:
+            std::set<std::string> synchronizingActions;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_RESTRICTEDPARALLELCOMPOSITION_H_ */
diff --git a/src/storage/prism/SynchronizingParallelComposition.cpp b/src/storage/prism/SynchronizingParallelComposition.cpp
new file mode 100644
index 000000000..b25334508
--- /dev/null
+++ b/src/storage/prism/SynchronizingParallelComposition.cpp
@@ -0,0 +1,19 @@
+#include "src/storage/prism/SynchronizingParallelComposition.h"
+
+namespace storm {
+    namespace prism {
+        
+        SynchronizingParallelComposition::SynchronizingParallelComposition(std::shared_ptr<Composition> const& left, std::shared_ptr<Composition> const& right) : ParallelComposition(left, right) {
+            // Intentionally left empty.
+        }
+        
+        boost::any SynchronizingParallelComposition::accept(CompositionVisitor& visitor, boost::any const& data) const {
+            return visitor.visit(*this, data);
+        }
+        
+        void SynchronizingParallelComposition::writeToStream(std::ostream& stream) const {
+            stream << "(" << this->getLeftSubcomposition() << " || " << this->getRightSubcomposition() << ")";
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/src/storage/prism/SynchronizingParallelComposition.h b/src/storage/prism/SynchronizingParallelComposition.h
new file mode 100644
index 000000000..a0aca654a
--- /dev/null
+++ b/src/storage/prism/SynchronizingParallelComposition.h
@@ -0,0 +1,20 @@
+#ifndef STORM_STORAGE_PRISM_SYNCHRONIZINGPARALLELCOMPOSITION_H_
+#define STORM_STORAGE_PRISM_SYNCHRONIZINGPARALLELCOMPOSITION_H_
+
+#include "src/storage/prism/ParallelComposition.h"
+
+namespace storm {
+    namespace prism {
+        class SynchronizingParallelComposition : public ParallelComposition {
+        public:
+            SynchronizingParallelComposition(std::shared_ptr<Composition> const& left, std::shared_ptr<Composition> const& right);
+            
+            virtual boost::any accept(CompositionVisitor& visitor, boost::any const& data) const override;
+            
+        protected:
+            virtual void writeToStream(std::ostream& stream) const override;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_SYNCHRONIZINGPARALLELCOMPOSITION_H_ */
diff --git a/src/storage/prism/SystemCompositionConstruct.cpp b/src/storage/prism/SystemCompositionConstruct.cpp
new file mode 100644
index 000000000..6213fb093
--- /dev/null
+++ b/src/storage/prism/SystemCompositionConstruct.cpp
@@ -0,0 +1,22 @@
+#include "src/storage/prism/SystemCompositionConstruct.h"
+
+namespace storm {
+    namespace prism {
+        
+        SystemCompositionConstruct::SystemCompositionConstruct(std::shared_ptr<Composition> const& composition, std::string const& filename, uint_fast64_t lineNumber) : LocatedInformation(filename, lineNumber), composition(composition) {
+            // Intentionlly left empty.
+        }
+        
+        Composition const& SystemCompositionConstruct::getSystemComposition() const {
+            return *composition;
+        }
+        
+        std::ostream& operator<<(std::ostream& stream, SystemCompositionConstruct const& systemCompositionConstruct) {
+            stream << "system" << std::endl;
+            stream << "\t" << systemCompositionConstruct.getSystemComposition() << std::endl;
+            stream << "endsystem" << std::endl;
+            return stream;
+        }
+        
+    }
+}
diff --git a/src/storage/prism/SystemCompositionConstruct.h b/src/storage/prism/SystemCompositionConstruct.h
new file mode 100644
index 000000000..cabb65389
--- /dev/null
+++ b/src/storage/prism/SystemCompositionConstruct.h
@@ -0,0 +1,44 @@
+#ifndef STORM_STORAGE_PRISM_SYSTEMCOMPOSITIONCONSTRUCT_H_
+#define STORM_STORAGE_PRISM_SYSTEMCOMPOSITIONCONSTRUCT_H_
+
+#include <string>
+#include <memory>
+
+#include "src/storage/prism/LocatedInformation.h"
+#include "src/utility/OsDetection.h"
+
+#include "src/storage/prism/Composition.h"
+
+namespace storm {
+    namespace prism {
+        class SystemCompositionConstruct : public LocatedInformation {
+        public:
+            /*!
+             * Creates an system composition construct with the given composition.
+             *
+             * @param composition A composition expression defining the system composition.
+             * @param filename The filename in which the command is defined.
+             * @param lineNumber The line number in which the command is defined.
+             */
+            SystemCompositionConstruct(std::shared_ptr<Composition> const& composition, std::string const& filename = "", uint_fast64_t lineNumber = 0);
+            
+            // Create default implementations of constructors/assignment.
+            SystemCompositionConstruct() = default;
+            SystemCompositionConstruct(SystemCompositionConstruct const& other) = default;
+            SystemCompositionConstruct& operator=(SystemCompositionConstruct const& other)= default;
+#ifndef WINDOWS
+            SystemCompositionConstruct(SystemCompositionConstruct&& other) = default;
+            SystemCompositionConstruct& operator=(SystemCompositionConstruct&& other) = default;
+#endif
+            
+            Composition const& getSystemComposition() const;
+            
+            friend std::ostream& operator<<(std::ostream& stream, SystemCompositionConstruct const& systemCompositionConstruct);
+
+        private:
+            std::shared_ptr<Composition> composition;
+        };
+    }
+}
+
+#endif /* STORM_STORAGE_PRISM_SYSTEMCOMPOSITIONCONSTRUCT_H_ */
\ No newline at end of file
diff --git a/src/storage/prism/Update.cpp b/src/storage/prism/Update.cpp
index 4c3432fde..9424ee176 100644
--- a/src/storage/prism/Update.cpp
+++ b/src/storage/prism/Update.cpp
@@ -9,7 +9,13 @@
 namespace storm {
     namespace prism {
         Update::Update(uint_fast64_t globalIndex, storm::expressions::Expression const& likelihoodExpression, std::vector<storm::prism::Assignment> const& assignments, std::string const& filename, uint_fast64_t lineNumber) : LocatedInformation(filename, lineNumber), likelihoodExpression(likelihoodExpression), assignments(assignments), variableToAssignmentIndexMap(), globalIndex(globalIndex) {
-            std::sort(this->assignments.begin(), this->assignments.end(), [] (storm::prism::Assignment const& assignment1, storm::prism::Assignment const& assignment2) { return assignment1.getVariable() < assignment2.getVariable(); } );
+            std::sort(this->assignments.begin(), this->assignments.end(), [] (storm::prism::Assignment const& assignment1, storm::prism::Assignment const& assignment2) {
+                bool smaller = assignment1.getVariable().getType().isBooleanType() && !assignment2.getVariable().getType().isBooleanType();
+                if (!smaller) {
+                    smaller = assignment1.getVariable() < assignment2.getVariable();
+                }
+                return smaller;
+            });
             this->createAssignmentMapping();
         }
         
diff --git a/src/storage/sparse/StateStorage.cpp b/src/storage/sparse/StateStorage.cpp
index 60af49179..f86bbcd48 100644
--- a/src/storage/sparse/StateStorage.cpp
+++ b/src/storage/sparse/StateStorage.cpp
@@ -5,7 +5,7 @@ namespace storm {
         namespace sparse {
                         
             template <typename StateType>
-            StateStorage<StateType>::StateStorage(uint64_t bitsPerState) : stateToId(bitsPerState, 10000000), initialStateIndices(), bitsPerState(bitsPerState) {
+            StateStorage<StateType>::StateStorage(uint64_t bitsPerState) : stateToId(bitsPerState, 10000000), initialStateIndices(), deadlockStateIndices(), bitsPerState(bitsPerState) {
                 // Intentionally left empty.
             }
 
diff --git a/src/storage/sparse/StateStorage.h b/src/storage/sparse/StateStorage.h
index eee1855c0..c35e743d1 100644
--- a/src/storage/sparse/StateStorage.h
+++ b/src/storage/sparse/StateStorage.h
@@ -21,6 +21,9 @@ namespace storm {
                 // A list of initial states in terms of their global indices.
                 std::vector<StateType> initialStateIndices;
                 
+                // A list of deadlock states.
+                std::vector<StateType> deadlockStateIndices;
+                
                 // The number of bits of each state.
                 uint64_t bitsPerState;
                 
diff --git a/src/utility/dd.cpp b/src/utility/dd.cpp
new file mode 100644
index 000000000..b50bc0031
--- /dev/null
+++ b/src/utility/dd.cpp
@@ -0,0 +1,44 @@
+#include "src/utility/dd.h"
+
+#include "src/storage/dd/Add.h"
+#include "src/storage/dd/Bdd.h"
+
+#include "src/utility/macros.h"
+
+namespace storm {
+    namespace utility {
+        namespace dd {
+            
+            template <storm::dd::DdType Type>
+            storm::dd::Bdd<Type> computeReachableStates(storm::dd::Bdd<Type> const& initialStates, storm::dd::Bdd<Type> const& transitions, std::set<storm::expressions::Variable> const& rowMetaVariables, std::set<storm::expressions::Variable> const& columnMetaVariables) {
+                storm::dd::Bdd<Type> reachableStates = initialStates;
+                
+                // Perform the BFS to discover all reachable states.
+                bool changed = true;
+                uint_fast64_t iteration = 0;
+                do {
+                    STORM_LOG_TRACE("Iteration " << iteration << " of reachability analysis.");
+                    changed = false;
+                    storm::dd::Bdd<Type> tmp = reachableStates.relationalProduct(transitions, rowMetaVariables, columnMetaVariables);
+                    storm::dd::Bdd<Type> newReachableStates = tmp && (!reachableStates);
+                    
+                    // Check whether new states were indeed discovered.
+                    if (!newReachableStates.isZero()) {
+                        changed = true;
+                    }
+                    
+                    
+                    reachableStates |= newReachableStates;
+
+                    ++iteration;
+                } while (changed);
+                
+                return reachableStates;
+            }
+            
+            template storm::dd::Bdd<storm::dd::DdType::CUDD> computeReachableStates(storm::dd::Bdd<storm::dd::DdType::CUDD> const& initialStates, storm::dd::Bdd<storm::dd::DdType::CUDD> const& transitions, std::set<storm::expressions::Variable> const& rowMetaVariables, std::set<storm::expressions::Variable> const& columnMetaVariables);
+            template storm::dd::Bdd<storm::dd::DdType::Sylvan> computeReachableStates(storm::dd::Bdd<storm::dd::DdType::Sylvan> const& initialStates, storm::dd::Bdd<storm::dd::DdType::Sylvan> const& transitions, std::set<storm::expressions::Variable> const& rowMetaVariables, std::set<storm::expressions::Variable> const& columnMetaVariables);
+            
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/utility/dd.h b/src/utility/dd.h
new file mode 100644
index 000000000..f9af62f29
--- /dev/null
+++ b/src/utility/dd.h
@@ -0,0 +1,24 @@
+#pragma once
+
+#include <set>
+
+#include "src/storage/dd/DdType.h"
+
+namespace storm {
+    namespace expressions {
+        class Variable;
+    }
+    namespace dd {
+        template<storm::dd::DdType Type>
+        class Bdd;
+    }
+    
+    namespace utility {
+        namespace dd {
+            
+            template <storm::dd::DdType Type>
+            storm::dd::Bdd<Type> computeReachableStates(storm::dd::Bdd<Type> const& initialStates, storm::dd::Bdd<Type> const& transitions, std::set<storm::expressions::Variable> const& rowMetaVariables, std::set<storm::expressions::Variable> const& columnMetaVariables);
+            
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/utility/jani.cpp b/src/utility/jani.cpp
new file mode 100644
index 000000000..6a91f14a7
--- /dev/null
+++ b/src/utility/jani.cpp
@@ -0,0 +1,72 @@
+#include "src/utility/jani.h"
+
+#include <boost/algorithm/string.hpp>
+
+#include "src/storage/expressions/ExpressionManager.h"
+#include "src/storage/jani/Model.h"
+
+#include "src/utility/macros.h"
+#include "src/exceptions/InvalidArgumentException.h"
+
+namespace storm {
+    namespace utility {
+        namespace jani {
+            
+            std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitionString(storm::jani::Model const& model, std::string const& constantDefinitionString) {
+                std::map<storm::expressions::Variable, storm::expressions::Expression> constantDefinitions;
+                std::set<storm::expressions::Variable> definedConstants;
+                
+                if (!constantDefinitionString.empty()) {
+                    // Parse the string that defines the undefined constants of the model and make sure that it contains exactly
+                    // one value for each undefined constant of the model.
+                    std::vector<std::string> definitions;
+                    boost::split(definitions, constantDefinitionString, boost::is_any_of(","));
+                    for (auto& definition : definitions) {
+                        boost::trim(definition);
+                        
+                        // Check whether the token could be a legal constant definition.
+                        std::size_t positionOfAssignmentOperator = definition.find('=');
+                        STORM_LOG_THROW(positionOfAssignmentOperator != std::string::npos, storm::exceptions::InvalidArgumentException, "Illegal constant definition string: syntax error.");
+                        
+                        // Now extract the variable name and the value from the string.
+                        std::string constantName = definition.substr(0, positionOfAssignmentOperator);
+                        boost::trim(constantName);
+                        std::string value = definition.substr(positionOfAssignmentOperator + 1);
+                        boost::trim(value);
+                        
+                        // Check whether the constant is a legal undefined constant of the program and if so, of what type it is.
+                        if (model.hasConstant(constantName)) {
+                            // Get the actual constant and check whether it's in fact undefined.
+                            auto const& constant = model.getConstant(constantName);
+                            storm::expressions::Variable variable = constant.getExpressionVariable();
+                            STORM_LOG_THROW(!constant.isDefined(), storm::exceptions::InvalidArgumentException, "Illegally trying to define already defined constant '" << constantName <<"'.");
+                            STORM_LOG_THROW(definedConstants.find(variable) == definedConstants.end(), storm::exceptions::InvalidArgumentException, "Illegally trying to define constant '" << constantName <<"' twice.");
+                            definedConstants.insert(variable);
+                            
+                            if (constant.getType().isBooleanType()) {
+                                if (value == "true") {
+                                    constantDefinitions[variable] = model.getExpressionManager().boolean(true);
+                                } else if (value == "false") {
+                                    constantDefinitions[variable] = model.getExpressionManager().boolean(false);
+                                } else {
+                                    throw storm::exceptions::InvalidArgumentException() << "Illegal value for boolean constant: " << value << ".";
+                                }
+                            } else if (constant.getType().isIntegerType()) {
+                                int_fast64_t integerValue = std::stoi(value);
+                                constantDefinitions[variable] = model.getExpressionManager().integer(integerValue);
+                            } else if (constant.getType().isRationalType()) {
+                                double doubleValue = std::stod(value);
+                                constantDefinitions[variable] = model.getExpressionManager().rational(doubleValue);
+                            }
+                        } else {
+                            STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "Illegal constant definition string: unknown undefined constant '" << constantName << "'.");
+                        }
+                    }
+                }
+                
+                return constantDefinitions;
+            }
+            
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/utility/jani.h b/src/utility/jani.h
new file mode 100644
index 000000000..08bc75b91
--- /dev/null
+++ b/src/utility/jani.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <map>
+
+namespace storm {
+    namespace expressions {
+        class Variable;
+        class Expression;
+    }
+    
+    namespace jani {
+        class Model;
+    }
+    
+    namespace utility {
+        namespace jani {
+            
+            std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitionString(storm::jani::Model const& model, std::string const& constantDefinitionString);
+            
+        }
+    }
+}
+
diff --git a/src/utility/prism.cpp b/src/utility/prism.cpp
index 822e01fdc..617a5642b 100644
--- a/src/utility/prism.cpp
+++ b/src/utility/prism.cpp
@@ -14,15 +14,8 @@ namespace storm {
         namespace prism {
             
             template<typename ValueType>
-            storm::prism::Program preprocessProgram(storm::prism::Program const& program, boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> const& constantDefinitions, boost::optional<std::set<std::string>> const& restrictedLabelSet, boost::optional<std::vector<storm::expressions::Expression>> const& expressionLabels) {
-                storm::prism::Program result;
-                
-                // Start by defining the undefined constants in the model.
-                if (constantDefinitions) {
-                    result = program.defineUndefinedConstants(constantDefinitions.get());
-                } else {
-                    result = program;
-                }
+            storm::prism::Program preprocess(storm::prism::Program const& program, std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions) {
+                storm::prism::Program result = program.defineUndefinedConstants(constantDefinitions);
                 
                 // If the program still contains undefined constants and we are not in a parametric setting, assemble an appropriate error message.
                 if (!std::is_same<ValueType, storm::RationalFunction>::value && result.hasUndefinedConstants()) {
@@ -43,30 +36,16 @@ namespace storm {
                     STORM_LOG_THROW(false, storm::exceptions::InvalidArgumentException, "The program contains undefined constants that appear in some places other than update probabilities and reward value expressions, which is not admitted.");
                 }
                 
-                // If the set of labels we are supposed to built is restricted, we need to remove the other labels from the program.
-                if (restrictedLabelSet) {
-                    result.filterLabels(restrictedLabelSet.get());
-                }
-                
-                // Build new labels.
-                if (expressionLabels) {
-                    std::map<storm::expressions::Variable, storm::expressions::Expression> constantsSubstitution = result.getConstantsSubstitution();
-                    
-                    for (auto const& expression : expressionLabels.get()) {
-                        std::stringstream stream;
-                        stream << expression.substitute(constantsSubstitution);
-                        std::string name = stream.str();
-                        if (!result.hasLabel(name)) {
-                            result.addLabel(name, expression);
-                        }
-                    }
-                }
-                
                 // Now that the program is fixed, we we need to substitute all constants with their concrete value.
                 result = result.substituteConstants();
                 return result;
             }
             
+            template<typename ValueType>
+            storm::prism::Program preprocess(storm::prism::Program const& program, std::string const& constantDefinitionString) {
+                return preprocess<ValueType>(program, parseConstantDefinitionString(program, constantDefinitionString));
+            }
+            
             std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitionString(storm::prism::Program const& program, std::string const& constantDefinitionString) {
                 std::map<storm::expressions::Variable, storm::expressions::Expression> constantDefinitions;
                 std::set<storm::expressions::Variable> definedConstants;
@@ -124,9 +103,11 @@ namespace storm {
                 return constantDefinitions;
             }
             
-            template storm::prism::Program preprocessProgram<double>(storm::prism::Program const& program, boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> const& constantDefinitions, boost::optional<std::set<std::string>> const& restrictedLabelSet, boost::optional<std::vector<storm::expressions::Expression>> const& expressionLabels);
+            template storm::prism::Program preprocess<double>(storm::prism::Program const& program, std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions);
+            template storm::prism::Program preprocess<storm::RationalFunction>(storm::prism::Program const& program, std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions);
 
-            template storm::prism::Program preprocessProgram<storm::RationalFunction>(storm::prism::Program const& program, boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> const& constantDefinitions, boost::optional<std::set<std::string>> const& restrictedLabelSet, boost::optional<std::vector<storm::expressions::Expression>> const& expressionLabels);
+            template storm::prism::Program preprocess<double>(storm::prism::Program const& program, std::string const& constantDefinitionString);
+            template storm::prism::Program preprocess<storm::RationalFunction>(storm::prism::Program const& program, std::string const& constantDefinitionString);
 
         }
     }
diff --git a/src/utility/prism.h b/src/utility/prism.h
index c6a8918b9..610f82bd0 100644
--- a/src/utility/prism.h
+++ b/src/utility/prism.h
@@ -20,10 +20,13 @@ namespace storm {
     namespace utility {
         namespace prism {
             
+            std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitionString(storm::prism::Program const& program, std::string const& constantDefinitionString);
+
             template<typename ValueType>
-            storm::prism::Program preprocessProgram(storm::prism::Program const& program, boost::optional<std::map<storm::expressions::Variable, storm::expressions::Expression>> const& constantDefinitions = boost::none, boost::optional<std::set<std::string>> const& restrictedLabelSet = boost::none, boost::optional<std::vector<storm::expressions::Expression>> const& expressionLabels = boost::none);
+            storm::prism::Program preprocess(storm::prism::Program const& program, std::map<storm::expressions::Variable, storm::expressions::Expression> const& constantDefinitions);
             
-            std::map<storm::expressions::Variable, storm::expressions::Expression> parseConstantDefinitionString(storm::prism::Program const& program, std::string const& constantDefinitionString);
+            template<typename ValueType>
+            storm::prism::Program preprocess(storm::prism::Program const& program, std::string const& constantDefinitionString);
             
         } // namespace prism
     } // namespace utility
diff --git a/src/utility/storm.cpp b/src/utility/storm.cpp
index 3f1c713b5..5956e72c9 100644
--- a/src/utility/storm.cpp
+++ b/src/utility/storm.cpp
@@ -1,9 +1,10 @@
+#include <src/parser/JaniParser.h>
 #include "storm.h"
 
 // Headers related to parsing.
 #include "src/parser/PrismParser.h"
 #include "src/parser/FormulaParser.h"
-
+#include "src/utility/macros.h"
 
 
 namespace storm {
@@ -13,7 +14,15 @@ namespace storm {
         program.checkValidity();
         return program;
     }
-     
+
+    storm::jani::Model parseJaniModel(std::string const& path) {
+        storm::jani::Model model = storm::parser::JaniParser::parse(path);
+        if(!model.checkValidity(true)) {
+            STORM_LOG_THROW(false, storm::exceptions::FileIoException, "Jani file parsing yields invalid model.");
+        }
+        return model;
+    }
+
     /**
      * Helper
      * @param FormulaParser
diff --git a/src/utility/storm.h b/src/utility/storm.h
index ce213cf08..3e7a5d992 100644
--- a/src/utility/storm.h
+++ b/src/utility/storm.h
@@ -14,12 +14,9 @@
 
 #include "storm-config.h"
 
-
-
 // Headers that provide auxiliary functionality.
 #include "src/settings/SettingsManager.h"
 
-
 #include "src/settings/modules/MarkovChainSettings.h"
 #include "src/settings/modules/IOSettings.h"
 #include "src/settings/modules/BisimulationSettings.h"
@@ -43,8 +40,10 @@
 
 #include "src/parser/AutoParser.h"
 
+#include "src/storage/jani/Model.h"
+
 // Headers of builders.
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 #include "src/builder/DdPrismModelBuilder.h"
 
 // Headers for model processing.
@@ -73,6 +72,10 @@
 #include "src/counterexamples/MILPMinimalLabelSetGenerator.h"
 #include "src/counterexamples/SMTMinimalCommandSetGenerator.h"
 
+// Headers related to PRISM model building.
+#include "src/generator/PrismNextStateGenerator.h"
+#include "src/utility/prism.h"
+
 // Headers related to exception handling.
 #include "src/exceptions/InvalidStateException.h"
 #include "src/exceptions/InvalidArgumentException.h"
@@ -81,16 +84,14 @@
 #include "src/exceptions/NotImplementedException.h"
 #include "src/exceptions/NotSupportedException.h"
 
-// Notice: The implementation for the template functions must stay in the header.
-// Otherwise the linker complains.
-
 namespace storm {
 
     template<typename ValueType>
     std::shared_ptr<storm::models::sparse::Model<ValueType>> buildExplicitModel(std::string const& transitionsFile, std::string const& labelingFile, boost::optional<std::string> const& stateRewardsFile = boost::none, boost::optional<std::string> const& transitionRewardsFile = boost::none, boost::optional<std::string> const& choiceLabelingFile = boost::none) {
         return storm::parser::AutoParser<>::parseModel(transitionsFile, labelingFile, stateRewardsFile ? stateRewardsFile.get() : "", transitionRewardsFile ? transitionRewardsFile.get() : "", choiceLabelingFile ? choiceLabelingFile.get() : "" );
     }
-            
+
+    storm::jani::Model parseModel(std::string const& path);
     storm::prism::Program parseProgram(std::string const& path);
     std::vector<std::shared_ptr<storm::logic::Formula const>> parseFormulasForExplicit(std::string const& inputString);
     std::vector<std::shared_ptr<storm::logic::Formula const>> parseFormulasForProgram(std::string const& inputString, storm::prism::Program const& program);
@@ -99,47 +100,36 @@ namespace storm {
     template<typename ValueType, storm::dd::DdType LibraryType = storm::dd::DdType::CUDD>
     storm::storage::ModelFormulasPair buildSymbolicModel(storm::prism::Program const& program, std::vector<std::shared_ptr<storm::logic::Formula const>> const& formulas) {
         storm::storage::ModelFormulasPair result;
-        storm::prism::Program translatedProgram;
-
+        
         // Get the string that assigns values to the unknown currently undefined constants in the model.
-        std::string constants = storm::settings::getModule<storm::settings::modules::IOSettings>().getConstantDefinitionString();
+        std::string constantDefinitionString = storm::settings::getModule<storm::settings::modules::IOSettings>().getConstantDefinitionString();
+        storm::prism::Program preprocessedProgram = storm::utility::prism::preprocess<ValueType>(program, constantDefinitionString);
+        std::map<storm::expressions::Variable, storm::expressions::Expression> constantsSubstitution = preprocessedProgram.getConstantsSubstitution();
 
         // Customize and perform model-building.
         if (storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().getEngine() == storm::settings::modules::MarkovChainSettings::Engine::Sparse) {
-            typename storm::builder::ExplicitPrismModelBuilder<ValueType, storm::models::sparse::StandardRewardModel<ValueType>>::Options options;
-            options = typename storm::builder::ExplicitPrismModelBuilder<ValueType, storm::models::sparse::StandardRewardModel<ValueType>>::Options(formulas);
-            options.addConstantDefinitionsFromString(program, constants);
+            storm::generator::NextStateGeneratorOptions options(formulas);
 
             // Generate command labels if we are going to build a counterexample later.
             if (storm::settings::getModule<storm::settings::modules::CounterexampleGeneratorSettings>().isMinimalCommandSetGenerationSet()) {
-                options.buildCommandLabels = true;
+                options.setBuildChoiceLabels(true);
             }
 
-            storm::builder::ExplicitPrismModelBuilder<ValueType> builder(program, options);
-            result.model = builder.translate();
-            translatedProgram = builder.getTranslatedProgram();
+            std::shared_ptr<storm::generator::NextStateGenerator<ValueType, uint32_t>> generator = std::make_shared<storm::generator::PrismNextStateGenerator<ValueType, uint32_t>>(preprocessedProgram, options);
+            storm::builder::ExplicitModelBuilder<ValueType> builder(generator);
+            result.model = builder.build();
         } else if (storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().getEngine() == storm::settings::modules::MarkovChainSettings::Engine::Dd || storm::settings::getModule<storm::settings::modules::MarkovChainSettings>().getEngine() == storm::settings::modules::MarkovChainSettings::Engine::Hybrid) {
             typename storm::builder::DdPrismModelBuilder<LibraryType>::Options options;
             options = typename storm::builder::DdPrismModelBuilder<LibraryType>::Options(formulas);
-            options.addConstantDefinitionsFromString(program, constants);
 
             storm::builder::DdPrismModelBuilder<LibraryType> builder;
-            result.model = builder.translateProgram(program, options);
-            translatedProgram = builder.getTranslatedProgram();
+            result.model = builder.build(program, options);
         }
+        
         // There may be constants of the model appearing in the formulas, so we replace all their occurrences
         // by their definitions in the translated program.
-
-        // Start by building a mapping from constants of the (translated) model to their defining expressions.
-        std::map<storm::expressions::Variable, storm::expressions::Expression> constantSubstitution;
-        for (auto const& constant : translatedProgram.getConstants()) {
-            if (constant.isDefined()) {
-                constantSubstitution.emplace(constant.getExpressionVariable(), constant.getExpression());
-            }
-        }
-
         for (auto const& formula : formulas) {
-            result.formulas.emplace_back(formula->substitute(constantSubstitution));
+            result.formulas.emplace_back(formula->substitute(constantsSubstitution));
         }
         return result;
     }
diff --git a/test/functional/.DS_Store b/test/functional/.DS_Store
deleted file mode 100644
index 31a582c70..000000000
Binary files a/test/functional/.DS_Store and /dev/null differ
diff --git a/test/functional/builder/DdJaniModelBuilderTest.cpp b/test/functional/builder/DdJaniModelBuilderTest.cpp
new file mode 100644
index 000000000..1470e196d
--- /dev/null
+++ b/test/functional/builder/DdJaniModelBuilderTest.cpp
@@ -0,0 +1,328 @@
+#include "gtest/gtest.h"
+#include "storm-config.h"
+#include "src/models/symbolic/Dtmc.h"
+#include "src/models/symbolic/Ctmc.h"
+#include "src/models/symbolic/Mdp.h"
+
+#include "src/storage/dd/Add.h"
+#include "src/storage/dd/Bdd.h"
+
+#include "src/models/symbolic/StandardRewardModel.h"
+#include "src/parser/PrismParser.h"
+#include "src/builder/DdJaniModelBuilder.h"
+
+#include "src/settings/SettingMemento.h"
+#include "src/settings/SettingsManager.h"
+#include "src/settings/modules/IOSettings.h"
+
+TEST(DdJaniModelBuilderTest_Sylvan, Dtmc) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm");
+    storm::jani::Model janiModel = program.toJani(true);
+    
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double> builder(janiModel);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = builder.build();
+    EXPECT_EQ(13ul, model->getNumberOfStates());
+    EXPECT_EQ(20ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(677ul, model->getNumberOfStates());
+    EXPECT_EQ(867ul, model->getNumberOfTransitions());
+        
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(8607ul, model->getNumberOfStates());
+    EXPECT_EQ(15113ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(273ul, model->getNumberOfStates());
+    EXPECT_EQ(397ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm");
+    janiModel = program.toJani(true);
+    
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(1728ul, model->getNumberOfStates());
+    EXPECT_EQ(2505ul, model->getNumberOfTransitions());
+}
+
+TEST(DdJaniModelBuilderTest_Cudd, Dtmc) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm");
+    storm::jani::Model janiModel = program.toJani(true);
+    
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double> builder(janiModel);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = builder.build();
+    EXPECT_EQ(13ul, model->getNumberOfStates());
+    EXPECT_EQ(20ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(677ul, model->getNumberOfStates());
+    EXPECT_EQ(867ul, model->getNumberOfTransitions());
+
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(8607ul, model->getNumberOfStates());
+    EXPECT_EQ(15113ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(273ul, model->getNumberOfStates());
+    EXPECT_EQ(397ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(1728ul, model->getNumberOfStates());
+    EXPECT_EQ(2505ul, model->getNumberOfTransitions());
+}
+
+TEST(DdJaniModelBuilderTest_Sylvan, Ctmc) {
+    // Set the PRISM compatibility mode temporarily. It is set to its old value once the returned object is destructed.
+    std::unique_ptr<storm::settings::SettingMemento> enablePrismCompatibility = storm::settings::mutableIOSettings().overridePrismCompatibilityMode(true);
+    
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm");
+    storm::jani::Model janiModel = program.toJani(true);
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double> builder(janiModel);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = builder.build();
+    EXPECT_EQ(276ul, model->getNumberOfStates());
+    EXPECT_EQ(1120ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(3478ul, model->getNumberOfStates());
+    EXPECT_EQ(14639ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(12ul, model->getNumberOfStates());
+    EXPECT_EQ(22ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/fms2.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(810ul, model->getNumberOfStates());
+    EXPECT_EQ(3699ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(66ul, model->getNumberOfStates());
+    EXPECT_EQ(189ul, model->getNumberOfTransitions());
+}
+
+TEST(DdJaniModelBuilderTest_Cudd, Ctmc) {
+    // Set the PRISM compatibility mode temporarily. It is set to its old value once the returned object is destructed.
+    std::unique_ptr<storm::settings::SettingMemento> enablePrismCompatibility = storm::settings::mutableIOSettings().overridePrismCompatibilityMode(true);
+    
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm");
+    storm::jani::Model janiModel = program.toJani(true);
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double> builder(janiModel);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = builder.build();
+    EXPECT_EQ(276ul, model->getNumberOfStates());
+    EXPECT_EQ(1120ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(3478ul, model->getNumberOfStates());
+    EXPECT_EQ(14639ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(12ul, model->getNumberOfStates());
+    EXPECT_EQ(22ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/fms2.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(810ul, model->getNumberOfStates());
+    EXPECT_EQ(3699ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    EXPECT_EQ(66ul, model->getNumberOfStates());
+    EXPECT_EQ(189ul, model->getNumberOfTransitions());
+}
+
+TEST(DdJaniModelBuilderTest_Sylvan, Mdp) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
+    storm::jani::Model janiModel = program.toJani(true);
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double> builder(janiModel);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    std::shared_ptr<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>> mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(169ul, mdp->getNumberOfStates());
+    EXPECT_EQ(436ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(254ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(364ul, mdp->getNumberOfStates());
+    EXPECT_EQ(654ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(573ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(272ul, mdp->getNumberOfStates());
+    EXPECT_EQ(492ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(400ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(1038ul, mdp->getNumberOfStates());
+    EXPECT_EQ(1282ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(1054ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/firewire3-0.5.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(4093ul, mdp->getNumberOfStates());
+    EXPECT_EQ(5585ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(5519ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/wlan0-2-2.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::Sylvan, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(37ul, mdp->getNumberOfStates());
+    EXPECT_EQ(59ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(59ul, mdp->getNumberOfChoices());
+}
+
+TEST(DdJaniModelBuilderTest_Cudd, Mdp) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
+    storm::jani::Model janiModel = program.toJani(true);
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double> builder(janiModel);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    std::shared_ptr<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>> mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(169ul, mdp->getNumberOfStates());
+    EXPECT_EQ(436ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(254ul, mdp->getNumberOfChoices());
+        
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(364ul, mdp->getNumberOfStates());
+    EXPECT_EQ(654ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(573ul, mdp->getNumberOfChoices());
+        
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(272ul, mdp->getNumberOfStates());
+    EXPECT_EQ(492ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(400ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(1038ul, mdp->getNumberOfStates());
+    EXPECT_EQ(1282ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(1054ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/firewire3-0.5.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(4093ul, mdp->getNumberOfStates());
+    EXPECT_EQ(5585ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(5519ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/wlan0-2-2.nm");
+    janiModel = program.toJani(true);
+    builder = storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double>(janiModel);
+    model = builder.build();
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(37ul, mdp->getNumberOfStates());
+    EXPECT_EQ(59ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(59ul, mdp->getNumberOfChoices());
+}
+
+TEST(DdJaniModelBuilderTest_Cudd, IllegalSynchronizingWrites) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2-illegalSynchronizingWrite.nm");
+    storm::jani::Model janiModel = program.toJani(true);
+    storm::builder::DdJaniModelBuilder<storm::dd::DdType::CUDD, double> builder(janiModel);
+    EXPECT_THROW(std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = builder.build(), storm::exceptions::WrongFormatException);
+}
\ No newline at end of file
diff --git a/test/functional/builder/DdPrismModelBuilderTest.cpp b/test/functional/builder/DdPrismModelBuilderTest.cpp
index 9e5607761..a6b73779a 100644
--- a/test/functional/builder/DdPrismModelBuilderTest.cpp
+++ b/test/functional/builder/DdPrismModelBuilderTest.cpp
@@ -13,27 +13,27 @@
 TEST(DdPrismModelBuilderTest_Sylvan, Dtmc) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm");
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(677ul, model->getNumberOfStates());
     EXPECT_EQ(867ul, model->getNumberOfTransitions());
-
+    
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
 
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
-
+    
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(1728ul, model->getNumberOfStates());
     EXPECT_EQ(2505ul, model->getNumberOfTransitions());
 }
@@ -41,27 +41,27 @@ TEST(DdPrismModelBuilderTest_Sylvan, Dtmc) {
 TEST(DdPrismModelBuilderTest_Cudd, Dtmc) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm");
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
-    
+        
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(677ul, model->getNumberOfStates());
     EXPECT_EQ(867ul, model->getNumberOfTransitions());
-    
+
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(1728ul, model->getNumberOfStates());
     EXPECT_EQ(2505ul, model->getNumberOfTransitions());
 }
@@ -72,27 +72,27 @@ TEST(DdPrismModelBuilderTest_Sylvan, Ctmc) {
     
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm");
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(276ul, model->getNumberOfStates());
     EXPECT_EQ(1120ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(3478ul, model->getNumberOfStates());
     EXPECT_EQ(14639ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(12ul, model->getNumberOfStates());
     EXPECT_EQ(22ul, model->getNumberOfTransitions());
 
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/fms2.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(810ul, model->getNumberOfStates());
     EXPECT_EQ(3699ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(66ul, model->getNumberOfStates());
     EXPECT_EQ(189ul, model->getNumberOfTransitions());
 }
@@ -103,34 +103,34 @@ TEST(DdPrismModelBuilderTest_Cudd, Ctmc) {
 
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm");
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(276ul, model->getNumberOfStates());
     EXPECT_EQ(1120ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(3478ul, model->getNumberOfStates());
     EXPECT_EQ(14639ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(12ul, model->getNumberOfStates());
     EXPECT_EQ(22ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/fms2.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(810ul, model->getNumberOfStates());
     EXPECT_EQ(3699ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(66ul, model->getNumberOfStates());
     EXPECT_EQ(189ul, model->getNumberOfTransitions());
 }
 
 TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     std::shared_ptr<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>> mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
@@ -140,7 +140,7 @@ TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
     EXPECT_EQ(254ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
@@ -150,7 +150,7 @@ TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
     EXPECT_EQ(573ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
@@ -160,7 +160,7 @@ TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
     EXPECT_EQ(400ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
@@ -170,7 +170,7 @@ TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
     EXPECT_EQ(1054ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/firewire3-0.5.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
@@ -180,7 +180,7 @@ TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
     EXPECT_EQ(5519ul, mdp->getNumberOfChoices());
 
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/wlan0-2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
@@ -192,7 +192,7 @@ TEST(DdPrismModelBuilderTest_Sylvan, Mdp) {
 
 TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     std::shared_ptr<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>> mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
@@ -202,7 +202,7 @@ TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     EXPECT_EQ(254ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
 
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
@@ -210,9 +210,9 @@ TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     EXPECT_EQ(364ul, mdp->getNumberOfStates());
     EXPECT_EQ(654ul, mdp->getNumberOfTransitions());
     EXPECT_EQ(573ul, mdp->getNumberOfChoices());
-
+    
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
@@ -222,7 +222,7 @@ TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     EXPECT_EQ(400ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
@@ -232,7 +232,7 @@ TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     EXPECT_EQ(1054ul, mdp->getNumberOfChoices());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/firewire3-0.5.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
@@ -242,7 +242,7 @@ TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     EXPECT_EQ(5519ul, mdp->getNumberOfChoices());
 
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/wlan0-2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
@@ -251,3 +251,52 @@ TEST(DdPrismModelBuilderTest_Cudd, Mdp) {
     EXPECT_EQ(59ul, mdp->getNumberOfTransitions());
     EXPECT_EQ(59ul, mdp->getNumberOfChoices());
 }
+
+TEST(DdPrismModelBuilderTest_Sylvan, Composition) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm");
+    
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    std::shared_ptr<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>> mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(21ul, mdp->getNumberOfStates());
+    EXPECT_EQ(61ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(61ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition2.nm");
+    
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::Sylvan>>();
+    
+    EXPECT_EQ(8ul, mdp->getNumberOfStates());
+    EXPECT_EQ(21ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(21ul, mdp->getNumberOfChoices());
+}
+
+TEST(DdPrismModelBuilderTest_Cudd, Composition) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm");
+    
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    std::shared_ptr<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>> mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(21ul, mdp->getNumberOfStates());
+    EXPECT_EQ(61ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(61ul, mdp->getNumberOfChoices());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition2.nm");
+    
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
+    
+    EXPECT_TRUE(model->getType() == storm::models::ModelType::Mdp);
+    mdp = model->as<storm::models::symbolic::Mdp<storm::dd::DdType::CUDD>>();
+    
+    EXPECT_EQ(8ul, mdp->getNumberOfStates());
+    EXPECT_EQ(21ul, mdp->getNumberOfTransitions());
+    EXPECT_EQ(21ul, mdp->getNumberOfChoices());
+}
+
diff --git a/test/functional/builder/ExplicitJaniModelBuilderTest.cpp b/test/functional/builder/ExplicitJaniModelBuilderTest.cpp
new file mode 100644
index 000000000..17df2ca97
--- /dev/null
+++ b/test/functional/builder/ExplicitJaniModelBuilderTest.cpp
@@ -0,0 +1,132 @@
+#include "gtest/gtest.h"
+#include "storm-config.h"
+#include "src/models/sparse/StandardRewardModel.h"
+#include "src/settings/SettingMemento.h"
+#include "src/parser/PrismParser.h"
+#include "src/builder/ExplicitModelBuilder.h"
+#include "src/storage/jani/Model.h"
+
+#include "src/settings/modules/IOSettings.h"
+
+TEST(ExplicitJaniModelBuilderTest, Dtmc) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm");
+    storm::jani::Model janiModel = program.toJani();
+    
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(13ul, model->getNumberOfStates());
+    EXPECT_EQ(20ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(677ul, model->getNumberOfStates());
+    EXPECT_EQ(867ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(8607ul, model->getNumberOfStates());
+    EXPECT_EQ(15113ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(273ul, model->getNumberOfStates());
+    EXPECT_EQ(397ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(1728ul, model->getNumberOfStates());
+    EXPECT_EQ(2505ul, model->getNumberOfTransitions());
+}
+
+TEST(ExplicitJaniModelBuilderTest, Ctmc) {
+    // Set the PRISM compatibility mode temporarily. It is set to its old value once the returned object is destructed.
+    std::unique_ptr<storm::settings::SettingMemento> enablePrismCompatibility = storm::settings::mutableIOSettings().overridePrismCompatibilityMode(true);
+    
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm");
+    storm::jani::Model janiModel = program.toJani();
+
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
+    EXPECT_EQ(276ul, model->getNumberOfStates());
+    EXPECT_EQ(1120ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(3478ul, model->getNumberOfStates());
+    EXPECT_EQ(14639ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(12ul, model->getNumberOfStates());
+    EXPECT_EQ(22ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/fms2.sm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(810ul, model->getNumberOfStates());
+    EXPECT_EQ(3699ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(66ul, model->getNumberOfStates());
+    EXPECT_EQ(189ul, model->getNumberOfTransitions());
+}
+
+TEST(ExplicitJaniModelBuilderTest, Mdp) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
+    storm::jani::Model janiModel = program.toJani();
+    
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
+    EXPECT_EQ(169ul, model->getNumberOfStates());
+    EXPECT_EQ(436ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(364ul, model->getNumberOfStates());
+    EXPECT_EQ(654ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(272ul, model->getNumberOfStates());
+    EXPECT_EQ(492ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(1038ul, model->getNumberOfStates());
+    EXPECT_EQ(1282ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/firewire3-0.5.nm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(4093ul, model->getNumberOfStates());
+    EXPECT_EQ(5585ul, model->getNumberOfTransitions());
+    
+    program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/wlan0-2-2.nm");
+    janiModel = program.toJani();
+    model = storm::builder::ExplicitModelBuilder<double>(janiModel).build();
+    EXPECT_EQ(37ul, model->getNumberOfStates());
+    EXPECT_EQ(59ul, model->getNumberOfTransitions());
+}
+
+TEST(ExplicitJaniModelBuilderTest, FailComposition) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm");
+    storm::jani::Model janiModel = program.toJani();
+
+    ASSERT_THROW(storm::builder::ExplicitModelBuilder<double>(janiModel).build(), storm::exceptions::WrongFormatException);
+}
+
+TEST(ExplicitJaniModelBuilderTest, IllegalSynchronizingWrites) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2-illegalSynchronizingWrite.nm");
+    storm::jani::Model janiModel = program.toJani();
+    
+    ASSERT_THROW(storm::builder::ExplicitModelBuilder<double>(janiModel).build(), storm::exceptions::WrongFormatException);
+}
+
diff --git a/test/functional/builder/ExplicitPrismModelBuilderTest.cpp b/test/functional/builder/ExplicitPrismModelBuilderTest.cpp
index 73675a25c..ac2b1f6fb 100644
--- a/test/functional/builder/ExplicitPrismModelBuilderTest.cpp
+++ b/test/functional/builder/ExplicitPrismModelBuilderTest.cpp
@@ -3,34 +3,34 @@
 #include "src/models/sparse/StandardRewardModel.h"
 #include "src/settings/SettingMemento.h"
 #include "src/parser/PrismParser.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 #include "src/settings/modules/IOSettings.h"
 
 TEST(ExplicitPrismModelBuilderTest, Dtmc) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die.pm");
     
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(677ul, model->getNumberOfStates());
     EXPECT_EQ(867ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(1728ul, model->getNumberOfStates());
     EXPECT_EQ(2505ul, model->getNumberOfTransitions());
 }
@@ -41,27 +41,27 @@ TEST(ExplicitPrismModelBuilderTest, Ctmc) {
 
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/cluster2.sm");
 
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(276ul, model->getNumberOfStates());
     EXPECT_EQ(1120ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/embedded2.sm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(3478ul, model->getNumberOfStates());
     EXPECT_EQ(14639ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/polling2.sm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(12ul, model->getNumberOfStates());
     EXPECT_EQ(22ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/fms2.sm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(810ul, model->getNumberOfStates());
     EXPECT_EQ(3699ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/tandem5.sm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(66ul, model->getNumberOfStates());
     EXPECT_EQ(189ul, model->getNumberOfTransitions());
 }
@@ -69,32 +69,38 @@ TEST(ExplicitPrismModelBuilderTest, Ctmc) {
 TEST(ExplicitPrismModelBuilderTest, Mdp) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
     
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(364ul, model->getNumberOfStates());
     EXPECT_EQ(654ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(272ul, model->getNumberOfStates());
     EXPECT_EQ(492ul, model->getNumberOfTransitions());
 
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(1038ul, model->getNumberOfStates());
     EXPECT_EQ(1282ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/firewire3-0.5.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(4093ul, model->getNumberOfStates());
     EXPECT_EQ(5585ul, model->getNumberOfTransitions());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/wlan0-2-2.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program).build();
     EXPECT_EQ(37ul, model->getNumberOfStates());
     EXPECT_EQ(59ul, model->getNumberOfTransitions());
 }
+
+TEST(ExplicitPrismModelBuilderTest, FailComposition) {
+    storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/system_composition.nm");
+
+    ASSERT_THROW(storm::builder::ExplicitModelBuilder<double>(program).build(), storm::exceptions::WrongFormatException);
+}
diff --git a/test/functional/builder/coin2-2-illegalSynchronizingWrite.nm b/test/functional/builder/coin2-2-illegalSynchronizingWrite.nm
new file mode 100644
index 000000000..3dd136929
--- /dev/null
+++ b/test/functional/builder/coin2-2-illegalSynchronizingWrite.nm
@@ -0,0 +1,60 @@
+// COIN FLIPPING PROTOCOL FOR POLYNOMIAL RANDOMIZED CONSENSUS [AH90] 
+// gxn/dxp 20/11/00
+
+mdp
+
+// constants
+const int N=2;
+const int K=2;
+const int range = 2*(K+1)*N;
+const int counter_init = (K+1)*N;
+const int left = N;
+const int right = 2*(K+1)*N - N;
+
+// shared coin
+global counter : [0..range] init counter_init;
+
+module process1
+	
+	// program counter
+	pc1 : [0..3];
+	// 0 - flip
+	// 1 - write 
+	// 2 - check
+	// 3 - finished
+	
+	// local coin
+	coin1 : [0..1];	
+
+	// flip coin
+	[] (pc1=0)  -> 0.5 : (coin1'=0) & (pc1'=1) + 0.5 : (coin1'=1) & (pc1'=1);
+	// write tails -1  (reset coin to add regularity)
+	[] (pc1=1) & (coin1=0) & (counter>0) -> 1 : (counter'=counter-1) & (pc1'=2) & (coin1'=0);
+	// write heads +1 (reset coin to add regularity)
+	[] (pc1=1) & (coin1=1) & (counter<range) -> 1 : (counter'=counter+1) & (pc1'=2) & (coin1'=0);
+	// check
+	// decide tails
+	[] (pc1=2) & (counter<=left) -> 1 : (pc1'=3) & (coin1'=0);
+	// decide heads
+	[] (pc1=2) & (counter>=right) -> 1 : (pc1'=3) & (coin1'=1);
+	// flip again
+	[] (pc1=2) & (counter>left) & (counter<right) -> 1 : (pc1'=0);
+	// loop (all loop together when done)
+	[done] (pc1=3) -> 1 : (pc1'=3)&(counter'=counter);
+
+endmodule
+
+// construct remaining processes through renaming
+module process2 = process1[pc1=pc2,coin1=coin2] endmodule
+
+// labels
+label "finished" = pc1=3 & pc2=3 ;
+label "all_coins_equal_0" = coin1=0 & coin2=0 ;
+label "all_coins_equal_1" = coin1=1 & coin2=1 ;
+label "agree" = coin1=coin2 ;
+
+// rewards
+rewards "steps"
+	true : 1;
+endrewards
+
diff --git a/test/functional/builder/system_composition.nm b/test/functional/builder/system_composition.nm
new file mode 100644
index 000000000..30f4368b2
--- /dev/null
+++ b/test/functional/builder/system_composition.nm
@@ -0,0 +1,30 @@
+mdp
+
+module one
+	x : [0 .. 2] init 0;
+
+	[a] x=0 -> (x'=1);
+	[] x>=0 -> (x'=2);
+	[done] x>=1 -> true;
+endmodule
+
+module two
+	y : [0 .. 2] init 0;
+
+	[b] y=0 -> (y'=1);
+	[] y>=0 -> (y'=2);
+	[done] y>=1 -> true;
+endmodule
+
+module three
+	z : [0 .. 2] init 0;
+
+	[a] z=0 -> (z'=1);
+	[] x=0&y=0&z=1 -> (z'=2);
+	[loop] z>=1 -> true;
+endmodule
+
+system
+	((one || two {b <- a}) / {a}) {done <- loop} || three
+endsystem
+
diff --git a/test/functional/builder/system_composition2.nm b/test/functional/builder/system_composition2.nm
new file mode 100644
index 000000000..3d8eff315
--- /dev/null
+++ b/test/functional/builder/system_composition2.nm
@@ -0,0 +1,30 @@
+mdp
+
+module one
+	x : [0 .. 2] init 0;
+
+	[a] x=0 -> (x'=1);
+	[] x>=0 -> (x'=2);
+	[done] x>=1 -> true;
+endmodule
+
+module two
+	y : [0 .. 2] init 0;
+
+	[b] y=0 -> (y'=1);
+	[] y>=0 -> (y'=2);
+	[done] y>=1 -> true;
+endmodule
+
+module three
+	z : [0 .. 2] init 0;
+
+	[a] z=0 -> (z'=1);
+	[] x=0&y=0&z=1 -> (z'=2);
+	[loop] z>=1 -> true;
+endmodule
+
+system
+	((one || two {b <- a})) {done <- loop} || three
+endsystem
+
diff --git a/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp
index 6b6fb9d3f..25763b37f 100644
--- a/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp
+++ b/test/functional/modelchecker/GmmxxCtmcCslModelCheckerTest.cpp
@@ -4,7 +4,7 @@
 #include "src/parser/PrismParser.h"
 #include "src/parser/FormulaParser.h"
 #include "src/logic/Formulas.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 #include "src/solver/GmmxxLinearEquationSolver.h"
 #include "src/models/sparse/StandardRewardModel.h"
@@ -28,14 +28,8 @@ TEST(GmmxxCtmcCslModelCheckerTest, Cluster) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-#ifdef WINDOWS
-    storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#else
-	typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#endif
-    options.buildAllRewardModels = false;
-    options.rewardModelsToBuild.insert("num_repairs");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate();
+    storm::generator::NextStateGeneratorOptions options;
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true). addRewardModel("num_repairs")).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
@@ -111,14 +105,7 @@ TEST(GmmxxCtmcCslModelCheckerTest, Embedded) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-#ifdef WINDOWS
-	storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#else
-	typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#endif
-    options.buildAllRewardModels = false;
-    options.rewardModelsToBuild.insert("up");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true). addRewardModel("up")).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
@@ -180,7 +167,7 @@ TEST(GmmxxCtmcCslModelCheckerTest, Polling) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
@@ -221,13 +208,7 @@ TEST(GmmxxCtmcCslModelCheckerTest, Tandem) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-#ifdef WINDOWS
-	storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#else
-	typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#endif
-    options.rewardModelsToBuild.insert("customers");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true). addRewardModel("customers")).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
diff --git a/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp
index 1c3b8a83b..bb96f4511 100644
--- a/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/GmmxxDtmcPrctlModelCheckerTest.cpp
@@ -14,7 +14,7 @@
 #include "src/settings/SettingMemento.h"
 #include "src/parser/AutoParser.h"
 #include "src/parser/PrismParser.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 TEST(GmmxxDtmcPrctlModelCheckerTest, Die) {
     std::shared_ptr<storm::models::sparse::Model<double>> abstractModel = storm::parser::AutoParser<>::parseModel(STORM_CPP_BASE_PATH "/examples/dtmc/die/die.tra", STORM_CPP_BASE_PATH "/examples/dtmc/die/die.lab", "", STORM_CPP_BASE_PATH "/examples/dtmc/die/die.coin_flips.trans.rew");
@@ -284,7 +284,7 @@ TEST(GmmxxDtmcPrctlModelCheckerTest, LRA) {
 TEST(GmmxxDtmcPrctlModelCheckerTest, Conditional) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/modelchecker/test_conditional.pm");
     
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(true, true)).build();
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Dtmc);
     ASSERT_EQ(4ul, model->getNumberOfStates());
     ASSERT_EQ(5ul, model->getNumberOfTransitions());
diff --git a/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp
index 757f69aad..52196371d 100644
--- a/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp
+++ b/test/functional/modelchecker/GmmxxHybridCtmcCslModelCheckerTest.cpp
@@ -38,7 +38,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Cluster_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_repairs");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -135,7 +135,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Cluster_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_repairs");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
@@ -232,7 +232,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Embedded_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("up");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -311,7 +311,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Embedded_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("up");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
@@ -383,7 +383,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Polling_Cudd) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -419,7 +419,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Polling_Sylvan) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
@@ -469,7 +469,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Tandem_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("customers");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -557,7 +557,7 @@ TEST(GmmxxHybridCtmcCslModelCheckerTest, Tandem_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("customers");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
diff --git a/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp
index 38d914ae9..0c4679382 100644
--- a/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/GmmxxHybridDtmcPrctlModelCheckerTest.cpp
@@ -32,7 +32,7 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Die_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coin_flips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
 
@@ -93,7 +93,7 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Die_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coin_flips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
@@ -146,7 +146,7 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Crowds_Cudd) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
@@ -190,7 +190,7 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, Crowds_Sylvan) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
@@ -242,7 +242,7 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, SynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
@@ -294,7 +294,7 @@ TEST(GmmxxHybridDtmcPrctlModelCheckerTest, SynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp
index 17f5300a0..98c91ec1a 100644
--- a/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/GmmxxHybridMdpPrctlModelCheckerTest.cpp
@@ -34,7 +34,7 @@ TEST(GmmxxHybridMdpPrctlModelCheckerTest, Dice_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coinflips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
@@ -131,7 +131,7 @@ TEST(GmmxxHybridMdpPrctlModelCheckerTest, Dice_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coinflips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
@@ -228,7 +228,7 @@ TEST(GmmxxHybridMdpPrctlModelCheckerTest, AsynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(3172ul, model->getNumberOfStates());
     EXPECT_EQ(7144ul, model->getNumberOfTransitions());
     
@@ -307,7 +307,7 @@ TEST(GmmxxHybridMdpPrctlModelCheckerTest, AsynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(3172ul, model->getNumberOfStates());
     EXPECT_EQ(7144ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/modelchecker/GmmxxMdpPrctlModelCheckerTest.cpp b/test/functional/modelchecker/GmmxxMdpPrctlModelCheckerTest.cpp
index 74535e8da..c5f7899dc 100644
--- a/test/functional/modelchecker/GmmxxMdpPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/GmmxxMdpPrctlModelCheckerTest.cpp
@@ -15,7 +15,7 @@
 #include "src/settings/modules/NativeEquationSolverSettings.h"
 #include "src/parser/AutoParser.h"
 #include "src/parser/PrismParser.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 TEST(GmmxxMdpPrctlModelCheckerTest, Dice) {
     std::shared_ptr<storm::models::sparse::Model<double>> abstractModel = storm::parser::AutoParser<>::parseModel(STORM_CPP_BASE_PATH "/examples/mdp/two_dice/two_dice.tra", STORM_CPP_BASE_PATH "/examples/mdp/two_dice/two_dice.lab", "", STORM_CPP_BASE_PATH "/examples/mdp/two_dice/two_dice.flip.trans.rew");
@@ -197,7 +197,9 @@ TEST(GmmxxMdpPrctlModelCheckerTest, SchedulerGeneration) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    storm::generator::NextStateGeneratorOptions options;
+    options.setBuildAllLabels();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, options).build();
     EXPECT_EQ(4ul, model->getNumberOfStates());
     EXPECT_EQ(11ul, model->getNumberOfTransitions());
     
@@ -241,13 +243,13 @@ TEST(GmmxxMdpPrctlModelCheckerTest, SchedulerGeneration) {
     EXPECT_EQ(0, scheduler2.getChoice(3));
 }
 
-TEST(GmmxxMdpPrctlModelCheckerTest, tiny_rewards) {
+TEST(GmmxxMdpPrctlModelCheckerTest, TinyRewards) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/modelchecker/tiny_rewards.nm");
 
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(true, true)).build();
     EXPECT_EQ(3ul, model->getNumberOfStates());
     EXPECT_EQ(4ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp
index da8f47228..65d58c19f 100644
--- a/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp
+++ b/test/functional/modelchecker/NativeCtmcCslModelCheckerTest.cpp
@@ -4,7 +4,7 @@
 #include "src/parser/PrismParser.h"
 #include "src/parser/FormulaParser.h"
 #include "src/logic/Formulas.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 #include "src/utility/solver.h"
 #include "src/models/sparse/StandardRewardModel.h"
@@ -26,14 +26,7 @@ TEST(NativeCtmcCslModelCheckerTest, Cluster) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-#ifdef WINDOWS
-    storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#else
-	typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#endif
-    options.buildAllRewardModels = false;
-    options.rewardModelsToBuild.insert("num_repairs");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true). addRewardModel("num_repairs")).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
@@ -102,14 +95,9 @@ TEST(NativeCtmcCslModelCheckerTest, Embedded) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-#ifdef WINDOWS
-    storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#else
-	typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#endif
-    options.buildAllRewardModels = false;
-    options.rewardModelsToBuild.insert("up");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate();
+    storm::generator::NextStateGeneratorOptions options;
+    options.addRewardModel("up").setBuildAllLabels();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, options).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
@@ -164,7 +152,7 @@ TEST(NativeCtmcCslModelCheckerTest, Polling) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
@@ -198,14 +186,7 @@ TEST(NativeCtmcCslModelCheckerTest, Tandem) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model with the customers reward structure.
-#ifdef WINDOWS
-    storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#else
-	typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-#endif
-    options.buildAllRewardModels = false;
-    options.rewardModelsToBuild.insert("customers");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true).addRewardModel("customers")).build();
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::sparse::Ctmc<double>> ctmc = model->as<storm::models::sparse::Ctmc<double>>();
     uint_fast64_t initialState = *ctmc->getInitialStates().begin();
diff --git a/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp b/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp
index 80b467d22..d2e3ff7d6 100644
--- a/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp
+++ b/test/functional/modelchecker/NativeHybridCtmcCslModelCheckerTest.cpp
@@ -37,7 +37,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Cluster_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_repairs");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -134,7 +134,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Cluster_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_repairs");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
@@ -231,7 +231,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Embedded_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("up");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -310,7 +310,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Embedded_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("up");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
@@ -382,7 +382,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Polling_Cudd) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -418,7 +418,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Polling_Sylvan) {
     std::shared_ptr<storm::logic::Formula const> formula(nullptr);
     
     // Build the model.
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
@@ -468,7 +468,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Tandem_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("customers");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::CUDD>>();
     
@@ -558,7 +558,7 @@ TEST(NativeHybridCtmcCslModelCheckerTest, Tandem_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("customers");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     ASSERT_EQ(storm::models::ModelType::Ctmc, model->getType());
     std::shared_ptr<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>> ctmc = model->as<storm::models::symbolic::Ctmc<storm::dd::DdType::Sylvan>>();
     
diff --git a/test/functional/modelchecker/NativeHybridDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/NativeHybridDtmcPrctlModelCheckerTest.cpp
index fe5b5e202..072745694 100644
--- a/test/functional/modelchecker/NativeHybridDtmcPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/NativeHybridDtmcPrctlModelCheckerTest.cpp
@@ -33,7 +33,7 @@ TEST(NativeHybridDtmcPrctlModelCheckerTest, Die_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coin_flips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
@@ -94,7 +94,7 @@ TEST(NativeHybridDtmcPrctlModelCheckerTest, Die_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coin_flips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
@@ -147,7 +147,7 @@ TEST(NativeHybridDtmcPrctlModelCheckerTest, Crowds_Cudd) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
@@ -191,7 +191,7 @@ TEST(NativeHybridDtmcPrctlModelCheckerTest, Crowds_Sylvan) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
@@ -243,7 +243,7 @@ TEST(NativeHybridDtmcPrctlModelCheckerTest, SynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
@@ -295,7 +295,7 @@ TEST(NativeHybridDtmcPrctlModelCheckerTest, SynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/modelchecker/NativeHybridMdpPrctlModelCheckerTest.cpp b/test/functional/modelchecker/NativeHybridMdpPrctlModelCheckerTest.cpp
index abd2650e9..07eacac65 100644
--- a/test/functional/modelchecker/NativeHybridMdpPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/NativeHybridMdpPrctlModelCheckerTest.cpp
@@ -32,7 +32,7 @@ TEST(NativeHybridMdpPrctlModelCheckerTest, Dice_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coinflips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
@@ -128,7 +128,7 @@ TEST(NativeHybridMdpPrctlModelCheckerTest, Dice_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coinflips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
@@ -224,7 +224,7 @@ TEST(NativeHybridMdpPrctlModelCheckerTest, AsynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(3172ul, model->getNumberOfStates());
     EXPECT_EQ(7144ul, model->getNumberOfTransitions());
     
@@ -303,7 +303,7 @@ TEST(NativeHybridMdpPrctlModelCheckerTest, AsynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(3172ul, model->getNumberOfStates());
     EXPECT_EQ(7144ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp b/test/functional/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp
index b1ea8296a..a653f8e16 100644
--- a/test/functional/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp
@@ -31,7 +31,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, Die_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coin_flips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
@@ -92,7 +92,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, Die_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coin_flips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(13ul, model->getNumberOfStates());
     EXPECT_EQ(20ul, model->getNumberOfTransitions());
     
@@ -146,7 +146,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, Crowds_Cudd) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
@@ -190,7 +190,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, Crowds_Sylvan) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(8607ul, model->getNumberOfStates());
     EXPECT_EQ(15113ul, model->getNumberOfTransitions());
     
@@ -245,7 +245,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, SynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
@@ -297,7 +297,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, SynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(273ul, model->getNumberOfStates());
     EXPECT_EQ(397ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp b/test/functional/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp
index fa24aaa6f..9ad5265a9 100644
--- a/test/functional/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp
+++ b/test/functional/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp
@@ -31,7 +31,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, Dice_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coinflips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
@@ -128,7 +128,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, Dice_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("coinflips");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(169ul, model->getNumberOfStates());
     EXPECT_EQ(436ul, model->getNumberOfTransitions());
     
@@ -225,7 +225,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, AsynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(3172ul, model->getNumberOfStates());
     EXPECT_EQ(7144ul, model->getNumberOfTransitions());
     
@@ -304,7 +304,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, AsynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(3172ul, model->getNumberOfStates());
     EXPECT_EQ(7144ul, model->getNumberOfTransitions());
     
diff --git a/test/functional/parser/JaniParserTest.cpp b/test/functional/parser/JaniParserTest.cpp
new file mode 100644
index 000000000..20dbf08a7
--- /dev/null
+++ b/test/functional/parser/JaniParserTest.cpp
@@ -0,0 +1,20 @@
+#include "gtest/gtest.h"
+#include "storm-config.h"
+#include "src/parser/JaniParser.h"
+#include "src/storage/jani/Model.h"
+
+
+TEST(JaniParser, DieTest) {
+    std::string testFileInput = STORM_CPP_TESTS_BASE_PATH"/../examples/jani-examples/dice.jani";
+    storm::jani::Model model = storm::parser::JaniParser::parse(testFileInput);
+}
+
+TEST(JaniParser, BrpTest) {
+    std::string testFileInput = STORM_CPP_TESTS_BASE_PATH"/../examples/jani-examples/brp.jani";
+    storm::jani::Model model = storm::parser::JaniParser::parse(testFileInput);
+}
+
+TEST(JaniParser, ConsensusTest) {
+    std::string testFileInput = STORM_CPP_TESTS_BASE_PATH"/../examples/jani-examples/consensus-6.jani";
+    storm::jani::Model model = storm::parser::JaniParser::parse(testFileInput);
+}
\ No newline at end of file
diff --git a/test/functional/permissiveschedulers/MilpPermissiveSchedulerTest.cpp b/test/functional/permissiveschedulers/MilpPermissiveSchedulerTest.cpp
index 657d36575..696cc8b83 100644
--- a/test/functional/permissiveschedulers/MilpPermissiveSchedulerTest.cpp
+++ b/test/functional/permissiveschedulers/MilpPermissiveSchedulerTest.cpp
@@ -5,11 +5,13 @@
 #include "src/parser/FormulaParser.h"
 #include "src/logic/Formulas.h"
 #include "src/permissivesched/PermissiveSchedulers.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 #include "src/models/sparse/StandardRewardModel.h"
 #include "src/modelchecker/prctl/SparseMdpPrctlModelChecker.h"
 
+#ifdef STORM_HAVE_GUROBI
+
 TEST(MilpPermissiveSchedulerTest, DieSelection) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die_c1.nm");
     storm::parser::FormulaParser formulaParser(program.getManager().getSharedPointer());
@@ -22,13 +24,9 @@ TEST(MilpPermissiveSchedulerTest, DieSelection) {
     auto formula001b = formulaParser.parseSingleFormulaFromString("P<=0.17 [ F \"one\"]")->asProbabilityOperatorFormula();
     
     // Customize and perform model-building.
-    typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
-    
-    options = typename storm::builder::ExplicitPrismModelBuilder<double>::Options(formula02);
-    options.addConstantDefinitionsFromString(program, "");
-    options.buildCommandLabels = true;
-    
-    std::shared_ptr<storm::models::sparse::Mdp<double>> mdp = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate()->as<storm::models::sparse::Mdp<double>>();
+    storm::generator::NextStateGeneratorOptions options;
+    options.setBuildAllLabels().setBuildChoiceLabels(true);
+    std::shared_ptr<storm::models::sparse::Mdp<double>> mdp = storm::builder::ExplicitModelBuilder<double>(program, options).build()->as<storm::models::sparse::Mdp<double>>();
     
     boost::optional<storm::ps::SubMDPPermissiveScheduler<>> perms = storm::ps::computePermissiveSchedulerViaMILP<>(*mdp, formula02);
     EXPECT_NE(perms, boost::none);
@@ -58,3 +56,5 @@ TEST(MilpPermissiveSchedulerTest, DieSelection) {
     //
     
 }
+
+#endif
\ No newline at end of file
diff --git a/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp b/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp
index 2790cd86a..157f96ee8 100644
--- a/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp
+++ b/test/functional/permissiveschedulers/SmtPermissiveSchedulerTest.cpp
@@ -5,13 +5,13 @@
 #include "src/parser/FormulaParser.h"
 #include "src/logic/Formulas.h"
 #include "src/permissivesched/PermissiveSchedulers.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 #include "src/models/sparse/StandardRewardModel.h"
 #include "src/modelchecker/prctl/SparseMdpPrctlModelChecker.h"
 
 
-#ifdef STORM_HAVE_MSAT
+#if defined(STORM_HAVE_MSAT) || defined(STORM_HAVE_Z3)
 
 TEST(SmtPermissiveSchedulerTest, DieSelection) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/die_c1.nm");
@@ -25,13 +25,9 @@ TEST(SmtPermissiveSchedulerTest, DieSelection) {
     auto formula001b = formulaParser.parseSingleFormulaFromString("P<=0.05 [ F \"one\"]")->asProbabilityOperatorFormula();
     
     // Customize and perform model-building.
-    typename storm::builder::ExplicitPrismModelBuilder<double>::Options options;
+    storm::generator::NextStateGeneratorOptions options(formula02b);
     
-    options = typename storm::builder::ExplicitPrismModelBuilder<double>::Options(formula02b);
-    options.addConstantDefinitionsFromString(program, "");
-    options.buildCommandLabels = true;
-    
-    std::shared_ptr<storm::models::sparse::Mdp<double>> mdp = storm::builder::ExplicitPrismModelBuilder<double>(program, options).translate()->as<storm::models::sparse::Mdp<double>>();
+    std::shared_ptr<storm::models::sparse::Mdp<double>> mdp = storm::builder::ExplicitModelBuilder<double>(program, options).build()->as<storm::models::sparse::Mdp<double>>();
     
 //    boost::optional<storm::ps::SubMDPPermissiveScheduler<>> perms = storm::ps::computePermissiveSchedulerViaSMT<>(*mdp, formula02);
 //    EXPECT_NE(perms, boost::none);
@@ -62,4 +58,4 @@ TEST(SmtPermissiveSchedulerTest, DieSelection) {
     
 }
 
-#endif // STORM_HAVE_MSAT
+#endif // STORM_HAVE_MSAT || STORM_HAVE_Z3
diff --git a/test/functional/storage/NondeterministicModelBisimulationDecompositionTest.cpp b/test/functional/storage/NondeterministicModelBisimulationDecompositionTest.cpp
index 65c5ef132..531d29f5a 100644
--- a/test/functional/storage/NondeterministicModelBisimulationDecompositionTest.cpp
+++ b/test/functional/storage/NondeterministicModelBisimulationDecompositionTest.cpp
@@ -4,7 +4,7 @@
 #include "src/parser/PrismParser.h"
 #include "src/parser/FormulaParser.h"
 
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 
 #include "src/storage/bisimulation/NondeterministicModelBisimulationDecomposition.h"
 #include "src/models/sparse/Mdp.h"
@@ -14,7 +14,7 @@ TEST(NondeterministicModelBisimulationDecomposition, TwoDice) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/two_dice.nm");
 
     // Build the die model without its reward model.
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
 
     ASSERT_EQ(model->getType(), storm::models::ModelType::Mdp);
     std::shared_ptr<storm::models::sparse::Mdp<double>> mdp = model->as<storm::models::sparse::Mdp<double>>();
diff --git a/test/functional/storage/PrismProgramTest.cpp b/test/functional/storage/PrismProgramTest.cpp
index 36607a13c..1ae7c4f32 100644
--- a/test/functional/storage/PrismProgramTest.cpp
+++ b/test/functional/storage/PrismProgramTest.cpp
@@ -4,6 +4,8 @@
 
 #include "src/utility/solver.h"
 
+#include "src/storage/jani/Model.h"
+
 #ifdef STORM_HAVE_MSAT
 TEST(PrismProgramTest, FlattenModules) {
     storm::prism::Program result;
@@ -22,3 +24,26 @@ TEST(PrismProgramTest, FlattenModules) {
     EXPECT_EQ(180, result.getModule(0).getNumberOfCommands());
 }
 #endif
+
+TEST(PrismProgramTest, ConvertToJani) {
+    storm::prism::Program prismProgram;
+    storm::jani::Model janiModel;
+
+    ASSERT_NO_THROW(prismProgram = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/parser/prism/leader3.nm"));
+    ASSERT_NO_THROW(janiModel = prismProgram.toJani());
+    
+    ASSERT_NO_THROW(prismProgram = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/parser/prism/wlan0_collide.nm"));
+    ASSERT_NO_THROW(janiModel = prismProgram.toJani());
+    
+    ASSERT_NO_THROW(prismProgram = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/brp-16-2.pm"));
+    ASSERT_NO_THROW(janiModel = prismProgram.toJani());
+
+    ASSERT_NO_THROW(prismProgram = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm"));
+    ASSERT_NO_THROW(janiModel = prismProgram.toJani());
+    
+    ASSERT_NO_THROW(prismProgram = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader-3-5.pm"));
+    ASSERT_NO_THROW(janiModel = prismProgram.toJani());
+
+    ASSERT_NO_THROW(prismProgram = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/nand-5-2.pm"));
+    ASSERT_NO_THROW(janiModel = prismProgram.toJani());
+}
\ No newline at end of file
diff --git a/test/functional/utility/GraphTest.cpp b/test/functional/utility/GraphTest.cpp
index 4c6bf0d50..2813e1a9b 100644
--- a/test/functional/utility/GraphTest.cpp
+++ b/test/functional/utility/GraphTest.cpp
@@ -9,7 +9,7 @@
 #include "src/models/sparse/Mdp.h"
 #include "src/models/sparse/StandardRewardModel.h"
 #include "src/builder/DdPrismModelBuilder.h"
-#include "src/builder/ExplicitPrismModelBuilder.h"
+#include "src/builder/ExplicitModelBuilder.h"
 #include "src/utility/graph.h"
 #include "src/storage/dd/Add.h"
 #include "src/storage/dd/Bdd.h"
@@ -17,7 +17,7 @@
 
 TEST(GraphTest, SymbolicProb01_Cudd) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Dtmc);
     
@@ -38,7 +38,7 @@ TEST(GraphTest, SymbolicProb01_Cudd) {
 
 TEST(GraphTest, SymbolicProb01_Sylvan) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Dtmc);
     
@@ -59,7 +59,7 @@ TEST(GraphTest, SymbolicProb01_Sylvan) {
 
 TEST(GraphTest, SymbolicProb01MinMax_Cudd) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
 
@@ -76,7 +76,7 @@ TEST(GraphTest, SymbolicProb01MinMax_Cudd) {
     }
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
 
@@ -101,7 +101,7 @@ TEST(GraphTest, SymbolicProb01MinMax_Cudd) {
     }
         
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     
@@ -120,7 +120,7 @@ TEST(GraphTest, SymbolicProb01MinMax_Cudd) {
 
 TEST(GraphTest, SymbolicProb01MinMax_Sylvan) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
 
@@ -137,7 +137,7 @@ TEST(GraphTest, SymbolicProb01MinMax_Sylvan) {
     }
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     
@@ -162,7 +162,7 @@ TEST(GraphTest, SymbolicProb01MinMax_Sylvan) {
     }
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
-    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     
@@ -181,7 +181,7 @@ TEST(GraphTest, SymbolicProb01MinMax_Sylvan) {
 
 TEST(GraphTest, ExplicitProb01) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/crowds-5-5.pm");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Dtmc);
     
@@ -202,7 +202,7 @@ TEST(GraphTest, ExplicitProb01) {
 
 TEST(GraphTest, ExplicitProb01MinMax) {
     storm::prism::Program program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/leader3.nm");
-    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     
@@ -217,7 +217,7 @@ TEST(GraphTest, ExplicitProb01MinMax) {
     EXPECT_EQ(364ul, statesWithProbability01.second.getNumberOfSetBits());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/coin2-2.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     
@@ -238,7 +238,7 @@ TEST(GraphTest, ExplicitProb01MinMax) {
     EXPECT_EQ(35ul, statesWithProbability01.second.getNumberOfSetBits());
     
     program = storm::parser::PrismParser::parse(STORM_CPP_TESTS_BASE_PATH "/functional/builder/csma2-2.nm");
-    model = storm::builder::ExplicitPrismModelBuilder<double>(program).translate();
+    model = storm::builder::ExplicitModelBuilder<double>(program, storm::generator::NextStateGeneratorOptions(false, true)).build();
     
     ASSERT_TRUE(model->getType() == storm::models::ModelType::Mdp);
     
diff --git a/test/functional/utility/ModelInstantiatorTest.cpp b/test/functional/utility/ModelInstantiatorTest.cpp
index dea5da735..c7a9c0e31 100644
--- a/test/functional/utility/ModelInstantiatorTest.cpp
+++ b/test/functional/utility/ModelInstantiatorTest.cpp
@@ -22,7 +22,6 @@ TEST(ModelInstantiatorTest, BrpProb) {
     
     std::string programFile = STORM_CPP_TESTS_BASE_PATH "/functional/utility/brp16_2.pm";
     std::string formulaAsString = "P=? [F s=5 ]";
-    std::string constantsAsString = ""; //e.g. pL=0.9,TOACK=0.5
     
     // Program and formula
     storm::prism::Program program = storm::parseProgram(programFile);
@@ -30,10 +29,8 @@ TEST(ModelInstantiatorTest, BrpProb) {
     std::vector<std::shared_ptr<storm::logic::Formula const>> formulas = storm::parseFormulasForProgram(formulaAsString, program);
     ASSERT_TRUE(formulas.size()==1);
     // Parametric model
-    typename storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>::Options options = storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>::Options(*formulas[0]);
-    options.addConstantDefinitionsFromString(program, constantsAsString); 
-    options.preserveFormula(*formulas[0]);
-    std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> dtmc = storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>(program, options).translate()->as<storm::models::sparse::Dtmc<storm::RationalFunction>>();
+    storm::generator::NextStateGeneratorOptions options(*formulas.front());
+    std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> dtmc = storm::builder::ExplicitModelBuilder<storm::RationalFunction>(program, options).build()->as<storm::models::sparse::Dtmc<storm::RationalFunction>>();
     
     storm::utility::ModelInstantiator<storm::models::sparse::Dtmc<storm::RationalFunction>, storm::models::sparse::Dtmc<double>> modelInstantiator(*dtmc);
     EXPECT_FALSE(dtmc->hasRewardModel());
@@ -143,7 +140,6 @@ TEST(ModelInstantiatorTest, Brp_Rew) {
     
     std::string programFile = STORM_CPP_TESTS_BASE_PATH "/functional/utility/brp16_2.pm";
     std::string formulaAsString = "R=? [F ((s=5) | (s=0&srep=3)) ]";
-    std::string constantsAsString = ""; //e.g. pL=0.9,TOACK=0.5
     
     // Program and formula
     storm::prism::Program program = storm::parseProgram(programFile);
@@ -151,10 +147,8 @@ TEST(ModelInstantiatorTest, Brp_Rew) {
     std::vector<std::shared_ptr<storm::logic::Formula const>> formulas = storm::parseFormulasForProgram(formulaAsString, program);
     ASSERT_TRUE(formulas.size()==1);
     // Parametric model
-    typename storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>::Options options = storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>::Options(*formulas[0]);
-    options.addConstantDefinitionsFromString(program, constantsAsString); 
-    options.preserveFormula(*formulas[0]);
-    std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> dtmc = storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>(program, options).translate()->as<storm::models::sparse::Dtmc<storm::RationalFunction>>();
+    storm::generator::NextStateGeneratorOptions options(*formulas.front());
+    std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalFunction>> dtmc = storm::builder::ExplicitModelBuilder<storm::RationalFunction>(program, options).build()->as<storm::models::sparse::Dtmc<storm::RationalFunction>>();
 
     storm::utility::ModelInstantiator<storm::models::sparse::Dtmc<storm::RationalFunction>, storm::models::sparse::Dtmc<double>> modelInstantiator(*dtmc);
     
@@ -216,7 +210,6 @@ TEST(ModelInstantiatorTest, Consensus) {
     
     std::string programFile = STORM_CPP_TESTS_BASE_PATH "/functional/utility/coin2_2.pm";
     std::string formulaAsString = "Pmin=? [F \"finished\"&\"all_coins_equal_1\" ]";
-    std::string constantsAsString = ""; //e.g. pL=0.9,TOACK=0.5
     
     // Program and formula
     storm::prism::Program program = storm::parseProgram(programFile);
@@ -224,10 +217,8 @@ TEST(ModelInstantiatorTest, Consensus) {
     std::vector<std::shared_ptr<storm::logic::Formula const>> formulas = storm::parseFormulasForProgram(formulaAsString, program);
     ASSERT_TRUE(formulas.size()==1);
     // Parametric model
-    typename storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>::Options options = storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>::Options(*formulas[0]);
-    options.addConstantDefinitionsFromString(program, constantsAsString); 
-    options.preserveFormula(*formulas[0]);
-    std::shared_ptr<storm::models::sparse::Mdp<storm::RationalFunction>> mdp = storm::builder::ExplicitPrismModelBuilder<storm::RationalFunction>(program, options).translate()->as<storm::models::sparse::Mdp<storm::RationalFunction>>();
+    storm::generator::NextStateGeneratorOptions options(*formulas.front());
+    std::shared_ptr<storm::models::sparse::Mdp<storm::RationalFunction>> mdp = storm::builder::ExplicitModelBuilder<storm::RationalFunction>(program, options).build()->as<storm::models::sparse::Mdp<storm::RationalFunction>>();
 
     storm::utility::ModelInstantiator<storm::models::sparse::Mdp<storm::RationalFunction>, storm::models::sparse::Mdp<double>> modelInstantiator(*mdp);
     
diff --git a/test/performance/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp b/test/performance/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp
index c1c76347f..22c6532a8 100644
--- a/test/performance/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp
+++ b/test/performance/modelchecker/SymbolicDtmcPrctlModelCheckerTest.cpp
@@ -31,7 +31,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, SynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(131521ul, model->getNumberOfStates());
     EXPECT_EQ(164288ul, model->getNumberOfTransitions());
     
@@ -83,7 +83,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, SynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("num_rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(131521ul, model->getNumberOfStates());
     EXPECT_EQ(164288ul, model->getNumberOfTransitions());
     
@@ -127,7 +127,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, Crowds_Cudd) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program);
     EXPECT_EQ(586242ul, model->getNumberOfStates());
     EXPECT_EQ(1753883ul, model->getNumberOfTransitions());
     
@@ -171,7 +171,7 @@ TEST(SymbolicDtmcPrctlModelCheckerTest, Crowds_Sylvan) {
     // A parser that we use for conveniently constructing the formulas.
     storm::parser::FormulaParser formulaParser;
     
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program);
     EXPECT_EQ(586242ul, model->getNumberOfStates());
     EXPECT_EQ(1753883ul, model->getNumberOfTransitions());
     
diff --git a/test/performance/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp b/test/performance/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp
index 67f92a29f..b31b37a71 100644
--- a/test/performance/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp
+++ b/test/performance/modelchecker/SymbolicMdpPrctlModelCheckerTest.cpp
@@ -31,7 +31,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, AsynchronousLeader_Cudd) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD>().build(program, options);
     EXPECT_EQ(27299ul, model->getNumberOfStates());
     EXPECT_EQ(74365ul, model->getNumberOfTransitions());
     
@@ -83,7 +83,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, AsynchronousLeader_Sylvan) {
 #endif
     options.buildAllRewardModels = false;
     options.rewardModelsToBuild.insert("rounds");
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan>().build(program, options);
     EXPECT_EQ(27299ul, model->getNumberOfStates());
     EXPECT_EQ(74365ul, model->getNumberOfTransitions());
     
@@ -137,7 +137,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, CSMA_Cudd) {
     options.rewardModelsToBuild.insert("time");
     
     storm::builder::DdPrismModelBuilder<storm::dd::DdType::CUDD> builder;
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = builder.translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::CUDD>> model = builder.build(program, options);
     storm::prism::Program translatedProgram = builder.getTranslatedProgram();
     
     EXPECT_EQ(36850ul, model->getNumberOfStates());
@@ -194,7 +194,7 @@ TEST(SymbolicMdpPrctlModelCheckerTest, CSMA_Sylvan) {
     options.rewardModelsToBuild.insert("time");
     
     storm::builder::DdPrismModelBuilder<storm::dd::DdType::Sylvan> builder;
-    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = builder.translateProgram(program, options);
+    std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan>> model = builder.build(program, options);
     storm::prism::Program translatedProgram = builder.getTranslatedProgram();
     
     EXPECT_EQ(36850ul, model->getNumberOfStates());